ComObjType()
実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 |
キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル |
レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト
ComObjType() [v1.0.91+][編集]
AHKL COMオブジェクトの型情報を取得する。
VarType := ComObjType(ComObject) Name := ComObjType(ComObject, "Name") IID := ComObjType(ComObject, "IID")
Parameters[編集]
引数名 | 説明 |
---|---|
ComObject | COMオブジェクトまたは typed value を含むラッパーオブジェクト。 |
VarType | 値の型を示す整数。下記参照。 |
Name | インターフェース型名。 |
IID | グローバル一意識別子(GUID)インタフェースタイプを表す。 |
戻り値[編集]
第2パラメタの省略時は、ラッパーオブジェクトに格納されている値のバリアント型情報が返る。
第2パラメタが "Name" または "IID"、COMオブジェクト(variant type VT_DISPATCH)を格納するラッパーオブジェクトの場合は、COMオブジェクトのプライマリインターフェイスでの型名・識別子が返る。
不正なパラメタであったり、エラーが生じた場合は、空白文字列が返る。
バリアント型の定数[編集]
型名 | 整数 | 説明 |
---|---|---|
VT_EMPTY | 0 | 値なしNo value |
VT_NULL | 1 | SQL-style Null |
VT_I2 | 2 | 16-bit signed int |
VT_I4 | 3 | 32-bit signed int |
VT_R4 | 4 | 32-bit floating-point number |
VT_R8 | 5 | 64-bit floating-point number |
VT_CY | 6 | Currency |
VT_DATE | 7 | Date |
VT_BSTR | 8 | COM string (Unicode string with length prefix) |
VT_DISPATCH | 9 | COM object |
VT_ERROR | 0xA | Error code (32-bit integer) |
VT_BOOL | 0xB | Boolean True (-1) or False (0) |
VT_VARIANT | 0xC | VARIANT (must be combined with VT_ARRAY or VT_BYREF) |
VT_UNKNOWN | 0xD | IUnknown interface pointer |
VT_DECIMAL | 0xE | (not supported) |
VT_I1 | 0x10 | 8-bit signed int |
VT_UI1 | 0x11 | 8-bit unsigned int |
VT_UI2 | 0x12 | 16-bit unsigned int |
VT_UI4 | 0x13 | 32-bit unsigned int |
VT_I8 | 0x14 | 64-bit signed int |
VT_UI8 | 0x15 | 64-bit unsigned int |
VT_INT | 0x16 | Signed machine int |
VT_UINT | 0x17 | Unsigned machine int |
VT_RECORD | 0x24 | User-defined type |
VT_ARRAY | 0x2000 | SAFEARRAY |
VT_BYREF | 0x4000 | Pointer to another type of value |
VT_ARRAYとVT_BYREFは別の値(ビット単位のOR)と組み合わして正確な型を指定します。
例えば、0x2003は32ビット符号付き整数のSAFEARRAYを識別、0x400CはVARIANTへのポインタを識別する。
Remarks[編集]
最も一般的なケースでは、COMオブジェクトのメソッドやプロパティの戻り値は、AutoHotkeyでサポートする適切な型に変換される。 特殊にハンドルされていない型は VariantChangeType を介して文字列型に変換される。 これに失敗した場合や、バリアント型が VT_ARRAY や VT_BYREF フラグを持っていた場合は、値とその型情報の双方を持つオブジェクトが戻り値となる。
ComObjType(x)
が整数値を返す場合、x はCOMオブジェクトのラッパーである。
Related[編集]
ComObjValue(), ComObjCreate(), ComObjGet(), ComObjActive()
Example(s)[編集]
d := ComObjCreate("Scripting.Dictionary") VarType := ComObjType(d); Always 9 for script-callable objects.
Name := ComObjType(d, "Name"); Only valid for script-callable objects.
IID := ComObjType(d, "IID"); As above.
MsgBox Variant type:`t%VarType%`nType name:`t%Name%`nInterface ID:`t%IID%