IShellUIHelper7
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 9
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
vtbl 88 HRESULT SetExperimentalFlag(LPWSTR bstrFlagString, VARIANT_BOOL vfFlag)
| bstrFlagString | LPWSTR | in | 設定する実験的フラグの名前を指定する。 |
| vfFlag | VARIANT_BOOL | in | フラグに設定する有効/無効の値を示す VARIANT_BOOL を指定する。 |
vtbl 89 HRESULT GetExperimentalFlag(LPWSTR bstrFlagString, VARIANT_BOOL* vfFlag)
| bstrFlagString | LPWSTR | in | 取得する実験的フラグの名前を指定する。 |
| vfFlag | VARIANT_BOOL* | out | フラグの現在値を受け取る VARIANT_BOOL へのポインタである。 |
| bstrValueString | LPWSTR | in | 設定する実験的値の名前を指定する。 |
| dwValue | DWORD | in | 実験的値に設定する数値を指定する。 |
| bstrValueString | LPWSTR | in | 取得する実験的値の名前を指定する。 |
| pdwValue | DWORD* | out | 実験的値の現在値を受け取る DWORD へのポインタである。 |
vtbl 92 HRESULT ResetAllExperimentalFlagsAndValues()
vtbl 93 HRESULT GetNeedIEAutoLaunchFlag(LPWSTR bstrUrl, VARIANT_BOOL* flag)
| bstrUrl | LPWSTR | in | 判定対象とするサイトの URL を指定する。 |
| flag | VARIANT_BOOL* | out | そのサイトで Internet Explorer の自動起動が必要かどうかを受け取る VARIANT_BOOL へのポインタである。 |
vtbl 94 HRESULT SetNeedIEAutoLaunchFlag(LPWSTR bstrUrl, VARIANT_BOOL flag)
| bstrUrl | LPWSTR | in | 設定対象とするサイトの URL を指定する。 |
| flag | VARIANT_BOOL | in | そのサイトで Internet Explorer の自動起動を必要とするかどうかを示す VARIANT_BOOL を指定する。 |
vtbl 95 HRESULT HasNeedIEAutoLaunchFlag(LPWSTR bstrUrl, VARIANT_BOOL* exists)
| bstrUrl | LPWSTR | in | 判定対象とするサイトの URL を指定する。 |
| exists | VARIANT_BOOL* | out | そのサイトに対する IE 自動起動フラグが設定されているかどうかを受け取る VARIANT_BOOL へのポインタである。 |
vtbl 96 HRESULT LaunchIE(LPWSTR bstrUrl, VARIANT_BOOL automated)
| bstrUrl | LPWSTR | in | Internet Explorer で開く URL を指定する。 |
| automated | VARIANT_BOOL | in | 起動が自動化されたものかどうかを示す VARIANT_BOOL を指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IShellUIHelper7 "{60E567C8-9573-4AB2-A264-637C6C161CB1}" #usecom global IShellUIHelper7 IID_IShellUIHelper7 "{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}" #comfunc global IShellUIHelper7_SetExperimentalFlag 88 wstr,int #comfunc global IShellUIHelper7_GetExperimentalFlag 89 wstr,var #comfunc global IShellUIHelper7_SetExperimentalValue 90 wstr,int #comfunc global IShellUIHelper7_GetExperimentalValue 91 wstr,var #comfunc global IShellUIHelper7_ResetAllExperimentalFlagsAndValues 92 #comfunc global IShellUIHelper7_GetNeedIEAutoLaunchFlag 93 wstr,var #comfunc global IShellUIHelper7_SetNeedIEAutoLaunchFlag 94 wstr,int #comfunc global IShellUIHelper7_HasNeedIEAutoLaunchFlag 95 wstr,var #comfunc global IShellUIHelper7_LaunchIE 96 wstr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IShellUIHelper7 "{60E567C8-9573-4AB2-A264-637C6C161CB1}" #usecom global IShellUIHelper7 IID_IShellUIHelper7 "{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}" #comfunc global IShellUIHelper7_SetExperimentalFlag 88 wstr,int #comfunc global IShellUIHelper7_GetExperimentalFlag 89 wstr,sptr #comfunc global IShellUIHelper7_SetExperimentalValue 90 wstr,int #comfunc global IShellUIHelper7_GetExperimentalValue 91 wstr,sptr #comfunc global IShellUIHelper7_ResetAllExperimentalFlagsAndValues 92 #comfunc global IShellUIHelper7_GetNeedIEAutoLaunchFlag 93 wstr,sptr #comfunc global IShellUIHelper7_SetNeedIEAutoLaunchFlag 94 wstr,int #comfunc global IShellUIHelper7_HasNeedIEAutoLaunchFlag 95 wstr,sptr #comfunc global IShellUIHelper7_LaunchIE 96 wstr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。