IWebWizardHost
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 9
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
vtbl 7 HRESULT FinalBack()
vtbl 8 HRESULT FinalNext()
vtbl 9 HRESULT Cancel()
| bstrCaption | LPWSTR | in | ウィザードに設定するキャプション(タイトル)文字列を指定する。 |
| pbstrCaption | LPWSTR* | out | ウィザードの現在のキャプション(タイトル)文字列を受け取る BSTR ポインタである。 |
| bstrPropertyName | LPWSTR | in | 設定するプロパティの名前を指定する。 |
| pvProperty | VARIANT* | in | 設定するプロパティの値を示す VARIANT へのポインタである。 |
| bstrPropertyName | LPWSTR | in | 取得するプロパティの名前を指定する。 |
| pvProperty | VARIANT* | out | 取得したプロパティの値を受け取る VARIANT ポインタである。 |
vtbl 14 HRESULT SetWizardButtons(VARIANT_BOOL vfEnableBack, VARIANT_BOOL vfEnableNext, VARIANT_BOOL vfLastPage)
| vfEnableBack | VARIANT_BOOL | in | 「戻る」ボタンを有効にするかどうかを指定する。 |
| vfEnableNext | VARIANT_BOOL | in | 「次へ」ボタンを有効にするかどうかを指定する。 |
| vfLastPage | VARIANT_BOOL | in | 現在のページが最終ページかどうかを指定する。 |
| bstrHeaderTitle | LPWSTR | in | ウィザードのヘッダーに表示するタイトル文字列を指定する。 |
| bstrHeaderSubtitle | LPWSTR | in | ウィザードのヘッダーに表示するサブタイトル文字列を指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IWebWizardHost "{18BCC359-4990-4BFB-B951-3C83702BE5F9}" #usecom global IWebWizardHost IID_IWebWizardHost "{C827F149-55C1-4D28-935E-57E47CAED973}" #comfunc global IWebWizardHost_FinalBack 7 #comfunc global IWebWizardHost_FinalNext 8 #comfunc global IWebWizardHost_Cancel 9 #comfunc global IWebWizardHost_put_Caption 10 wstr #comfunc global IWebWizardHost_get_Caption 11 var #comfunc global IWebWizardHost_put_Property 12 wstr,var #comfunc global IWebWizardHost_get_Property 13 wstr,var #comfunc global IWebWizardHost_SetWizardButtons 14 int,int,int #comfunc global IWebWizardHost_SetHeaderText 15 wstr,wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IWebWizardHost "{18BCC359-4990-4BFB-B951-3C83702BE5F9}" #usecom global IWebWizardHost IID_IWebWizardHost "{C827F149-55C1-4D28-935E-57E47CAED973}" #comfunc global IWebWizardHost_FinalBack 7 #comfunc global IWebWizardHost_FinalNext 8 #comfunc global IWebWizardHost_Cancel 9 #comfunc global IWebWizardHost_put_Caption 10 wstr #comfunc global IWebWizardHost_get_Caption 11 sptr #comfunc global IWebWizardHost_put_Property 12 wstr,sptr #comfunc global IWebWizardHost_get_Property 13 wstr,sptr #comfunc global IWebWizardHost_SetWizardButtons 14 int,int,int #comfunc global IWebWizardHost_SetHeaderText 15 wstr,wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。