ホーム › System.UpdateAgent › IUpdateServiceManager
IUpdateServiceManager
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 7
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
vtbl 7 HRESULT get_Services(IUpdateServiceCollection** retval)
| retval | IUpdateServiceCollection** | out | 登録されている更新サービスのコレクションを受け取る IUpdateServiceCollection へのポインタである。 |
vtbl 8 HRESULT AddService(LPWSTR serviceID, LPWSTR authorizationCabPath, IUpdateService** retval)
| serviceID | LPWSTR | in | 追加する更新サービスを一意に識別するサービス ID 文字列を指定する。 |
| authorizationCabPath | LPWSTR | in | サービスの登録を承認するための認証 CAB ファイルのパスを指定する。 |
| retval | IUpdateService** | out | 追加された更新サービスを表す IUpdateService を受け取るポインタである。 |
| serviceID | LPWSTR | in | 自動更新(AU)に登録する更新サービスのサービス ID 文字列を指定する。 |
| serviceID | LPWSTR | in | 削除する更新サービスのサービス ID 文字列を指定する。 |
| serviceID | LPWSTR | in | 自動更新(AU)から登録を解除する更新サービスのサービス ID 文字列を指定する。 |
vtbl 12 HRESULT AddScanPackageService(LPWSTR serviceName, LPWSTR scanFileLocation, INT flags, IUpdateService** ppService)
| serviceName | LPWSTR | in | 追加するスキャンパッケージサービスの名前を指定する。 |
| scanFileLocation | LPWSTR | in | スキャンファイル(オフラインスキャンパッケージ)の場所を示すパスを指定する。 |
| flags | INT | in | サービス追加時の動作を制御するフラグを指定する。 |
| ppService | IUpdateService** | out | 追加されたスキャンパッケージサービスを受け取る IUpdateService へのポインタである。 |
| optionName | LPWSTR | in | 設定するオプションの名前を指定する。 |
| optionValue | VARIANT | in | オプションに設定する値を格納した VARIANT である。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IUpdateServiceManager "{23857E3C-02BA-44A3-9423-B1C900805F37}"
#usecom global IUpdateServiceManager IID_IUpdateServiceManager "{F8D253D9-89A4-4DAA-87B6-1168369F0B21}"
#comfunc global IUpdateServiceManager_get_Services 7 sptr
#comfunc global IUpdateServiceManager_AddService 8 wstr,wstr,sptr
#comfunc global IUpdateServiceManager_RegisterServiceWithAU 9 wstr
#comfunc global IUpdateServiceManager_RemoveService 10 wstr
#comfunc global IUpdateServiceManager_UnregisterServiceWithAU 11 wstr
#comfunc global IUpdateServiceManager_AddScanPackageService 12 wstr,wstr,int,sptr
#comfunc global IUpdateServiceManager_SetOption 13 wstr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。