IShellUIHelper
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 13
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
vtbl 7 HRESULT ResetFirstBootMode()
vtbl 8 HRESULT ResetSafeMode()
vtbl 9 HRESULT RefreshOfflineDesktop()
| URL | LPWSTR | in | お気に入りに追加するページの URL を指定する。 |
| Title | VARIANT* | inoptional | お気に入りに付けるタイトルを保持する VARIANT へのポインタである。省略可能である。 |
| URL | LPWSTR | in | 追加するチャンネル定義(CDF)の URL を指定する。 |
vtbl 12 HRESULT AddDesktopComponent(LPWSTR URL, LPWSTR Type, VARIANT* Left, VARIANT* Top, VARIANT* Width, VARIANT* Height)
| URL | LPWSTR | in | 追加するデスクトップ コンポーネントの URL を指定する。 |
| Type | LPWSTR | in | コンポーネントの種別("image" または "website")を指定する。 |
| Left | VARIANT* | inoptional | コンポーネントの左位置を保持する VARIANT へのポインタである。省略可能である。 |
| Top | VARIANT* | inoptional | コンポーネントの上位置を保持する VARIANT へのポインタである。省略可能である。 |
| Width | VARIANT* | inoptional | コンポーネントの幅を保持する VARIANT へのポインタである。省略可能である。 |
| Height | VARIANT* | inoptional | コンポーネントの高さを保持する VARIANT へのポインタである。省略可能である。 |
vtbl 13 HRESULT IsSubscribed(LPWSTR URL, VARIANT_BOOL* pBool)
| URL | LPWSTR | in | 購読状態を調べるリソースの URL を指定する。 |
| pBool | VARIANT_BOOL* | out | 指定 URL が購読済みかどうかを受け取る VARIANT_BOOL へのポインタである。 |
| URL | LPWSTR | in | 移動先のページの URL を指定する。 |
| strQuery | LPWSTR | in | ナビゲーション後にページ内で強調表示する検索文字列を指定する。 |
| varTargetFrame | VARIANT* | in | 表示先となるフレーム名を保持する VARIANT へのポインタである。 |
vtbl 15 HRESULT ImportExportFavorites(VARIANT_BOOL fImport, LPWSTR strImpExpPath)
| fImport | VARIANT_BOOL | in | インポートを行うか(TRUE)エクスポートを行うか(FALSE)を示す VARIANT_BOOL を指定する。 |
| strImpExpPath | LPWSTR | in | インポート元またはエクスポート先のファイルパスを指定する。 |
| Form | VARIANT* | inoptional | オートコンプリート用に保存するフォームを保持する VARIANT へのポインタである。 |
| strSearch | LPWSTR | in | アドレス補完で解決する検索文字列を指定する。 |
| strFailureUrl | LPWSTR | in | 解決に失敗した場合に移動する URL を指定する。 |
| pvarTargetFrame | VARIANT* | inoptional | 表示先となるフレーム名を保持する VARIANT へのポインタである。 |
| Reserved | VARIANT* | inoptional | 予約済みであり、通常は使用しない VARIANT へのポインタである。 |
| bstrName | LPWSTR | in | 表示するブラウザー UI(ダイアログ)の名前を指定する。 |
| pvarIn | VARIANT* | in | UI に渡す入力パラメーターを保持する VARIANT へのポインタである。 |
| pvarOut | VARIANT* | out | UI からの出力結果を受け取る VARIANT へのポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IShellUIHelper "{729FE2F8-1EA8-11D1-8F85-00C04FC2FBE1}" #usecom global IShellUIHelper IID_IShellUIHelper "{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}" #comfunc global IShellUIHelper_ResetFirstBootMode 7 #comfunc global IShellUIHelper_ResetSafeMode 8 #comfunc global IShellUIHelper_RefreshOfflineDesktop 9 #comfunc global IShellUIHelper_AddFavorite 10 wstr,var #comfunc global IShellUIHelper_AddChannel 11 wstr #comfunc global IShellUIHelper_AddDesktopComponent 12 wstr,wstr,var,var,var,var #comfunc global IShellUIHelper_IsSubscribed 13 wstr,var #comfunc global IShellUIHelper_NavigateAndFind 14 wstr,wstr,var #comfunc global IShellUIHelper_ImportExportFavorites 15 int,wstr #comfunc global IShellUIHelper_AutoCompleteSaveForm 16 var #comfunc global IShellUIHelper_AutoScan 17 wstr,wstr,var #comfunc global IShellUIHelper_AutoCompleteAttach 18 var #comfunc global IShellUIHelper_ShowBrowserUI 19 wstr,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IShellUIHelper "{729FE2F8-1EA8-11D1-8F85-00C04FC2FBE1}" #usecom global IShellUIHelper IID_IShellUIHelper "{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}" #comfunc global IShellUIHelper_ResetFirstBootMode 7 #comfunc global IShellUIHelper_ResetSafeMode 8 #comfunc global IShellUIHelper_RefreshOfflineDesktop 9 #comfunc global IShellUIHelper_AddFavorite 10 wstr,sptr #comfunc global IShellUIHelper_AddChannel 11 wstr #comfunc global IShellUIHelper_AddDesktopComponent 12 wstr,wstr,sptr,sptr,sptr,sptr #comfunc global IShellUIHelper_IsSubscribed 13 wstr,sptr #comfunc global IShellUIHelper_NavigateAndFind 14 wstr,wstr,sptr #comfunc global IShellUIHelper_ImportExportFavorites 15 int,wstr #comfunc global IShellUIHelper_AutoCompleteSaveForm 16 sptr #comfunc global IShellUIHelper_AutoScan 17 wstr,wstr,sptr #comfunc global IShellUIHelper_AutoCompleteAttach 18 sptr #comfunc global IShellUIHelper_ShowBrowserUI 19 wstr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。