ComObject

COM オブジェクトを作成します。

ComObj := ComObject(CLSID , IID)

ComObject自体はComValueから派生したクラスですが、COMオブジェクトの作成または識別にのみ使用されます。

パラメータ

CLSID

型:文字列

作成する COM オブジェクトの CLSID または人間が読める Prog ID。

IID

型:文字列

If omitted, it defaults to "{00020400-0000-0000-C000-000000000046}" (IID_IDispatch). Otherwise, specify the identifier of the interface to return. ほとんどの場合、これは省略されます。

戻り値

型:オブジェクト

この関数は、IIDパラメータに依存するタイプのCOMラッパーオブジェクトを返します。

IIDクラスバリアント型説明
IID_IDispatch ComObject VT_DISPATCH (9) 通常のオブジェクトの構文を使用して、スクリプトがオブジェクトのプロパティやメソッドを呼び出せるようにします。
その他のIID ComValue VT_UNKNOWN (13) Ptrプロパティのみを提供し、DllCallまたはComCallにオブジェクトを渡すことができます。

エラー処理

パラメータが無効であったり、オブジェクトがIIDで指定されたインタフェースをサポートしていない場合など、失敗した場合は例外がスローされます。

ComValueComObjGetComObjActiveComObjConnectComObjArrayComObjQueryComCallCreateObject (Microsoft Docs)

For a long list of v1.1 examples, see this archived forum thread.

Internet Explorerのインスタンスを起動し、表示させ、Webサイトへ移動することができます。

ie := ComObject("InternetExplorer.Application")
ie.Visible := true  ; IE7では正しく動作しないことが確認されています。
ie.Navigate("https://www.autohotkey.com/")

デスクトップの現在の壁紙のパスを取得します。

AD_GETWP_BMP := 0
AD_GETWP_LAST_APPLIED := 0x00000002
CLSID_ActiveDesktop := "{75048700-EF1F-11D0-9888-006097DEACF9}"
IID_IActiveDesktop := "{F490EB00-1240-11D1-9888-006097DEACF9}"
cchWallpaper := 260
GetWallpaper := 4

AD := ComObject(CLSID_ActiveDesktop, IID_IActiveDesktop)
wszWallpaper := Buffer(cchWallpaper * 2)
ComCall(GetWallpaper, AD, "ptr", wszWallpaper, "uint", cchWallpaper, "uint", AD_GETWP_LAST_APPLIED)
Wallpaper := StrGet(wszWallpaper, "UTF-16")
MsgBox "Wallpaper: " Wallpaper