Win32 API 日本語リファレンス
ホームSystem.UpdateAgent › IUpdateServiceManager

IUpdateServiceManager

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID23857e3c-02ba-44a3-9423-b1c900805f37継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

メソッド 7

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Services(IUpdateServiceCollection** retval)
retvalIUpdateServiceCollection**out登録されている更新サービスのコレクションを受け取る IUpdateServiceCollection へのポインタである。
vtbl 8 HRESULT AddService(LPWSTR serviceID, LPWSTR authorizationCabPath, IUpdateService** retval)
serviceIDLPWSTRin追加する更新サービスを一意に識別するサービス ID 文字列を指定する。
authorizationCabPathLPWSTRinサービスの登録を承認するための認証 CAB ファイルのパスを指定する。
retvalIUpdateService**out追加された更新サービスを表す IUpdateService を受け取るポインタである。
vtbl 9 HRESULT RegisterServiceWithAU(LPWSTR serviceID)
serviceIDLPWSTRin自動更新(AU)に登録する更新サービスのサービス ID 文字列を指定する。
vtbl 10 HRESULT RemoveService(LPWSTR serviceID)
serviceIDLPWSTRin削除する更新サービスのサービス ID 文字列を指定する。
vtbl 11 HRESULT UnregisterServiceWithAU(LPWSTR serviceID)
serviceIDLPWSTRin自動更新(AU)から登録を解除する更新サービスのサービス ID 文字列を指定する。
vtbl 12 HRESULT AddScanPackageService(LPWSTR serviceName, LPWSTR scanFileLocation, INT flags, IUpdateService** ppService)
serviceNameLPWSTRin追加するスキャンパッケージサービスの名前を指定する。
scanFileLocationLPWSTRinスキャンファイル(オフラインスキャンパッケージ)の場所を示すパスを指定する。
flagsINTinサービス追加時の動作を制御するフラグを指定する。
ppServiceIUpdateService**out追加されたスキャンパッケージサービスを受け取る IUpdateService へのポインタである。
vtbl 13 HRESULT SetOption(LPWSTR optionName, VARIANT optionValue)
optionNameLPWSTRin設定するオプションの名前を指定する。
optionValueVARIANTinオプションに設定する値を格納した 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 不要)。