IUpdateServiceManager2::AddService2 メソッド (wuapi.h)
承認キャビネット ファイル (.cab) を必要とせずに、Windows Update エージェント (WUA) にサービスを登録します。 このメソッドは、 IUpdateServiceRegistration インターフェイスへのポインターも返します。
構文
HRESULT AddService2(
[in] BSTR serviceID,
[in] LONG flags,
[in] BSTR authorizationCabPath,
[out] IUpdateServiceRegistration **retval
);
パラメーター
[in] serviceID
登録するサービスの識別子。
[in] flags
ビットごとの OR 演算を使用して結合される AddServiceFlag 値の組み合わせ。 結果の値は、サービス登録のオプションを指定します。 詳細については、「備考」を参照してください。
[in] authorizationCabPath
サービス登録に必要な情報を含む Microsoft 署名付きローカル キャビネット ファイル (.cab) のパス。 空の場合、更新エージェントは、ネットワーク接続が使用可能なときに、サービス登録中に承認キャビネット ファイル (.cab) を検索します。
[out] retval
追加されたサービスを表す IUpdateServiceRegistration インターフェイスへのポインター。
戻り値
成功した場合 は、S_OK を返します。 それ以外の場合は、COM または Windows エラー コードを返します。
このメソッドは、次のエラー コードを返すこともできます。
リターン コード | 説明 |
---|---|
|
パラメーター値が無効です。 |
|
authorizationCabPath パラメーターが null 文字列に設定されている場合、リモート コンピューターからこのメソッドを呼び出すことはできません。 |
|
承認キャビネット ファイル (.cab) の有効期限が切れています。 |
|
自動更新の状態を変更できませんでした。 |
注釈
asfAllowOnlineRegistration フラグが指定されている場合、このメソッドはネットワーク エラー コードを返す場合があります。
authorizationCabPath パラメーターは、このメソッドでは省略可能です。 authorizationCabPath パラメーターが指定されていない場合は、Windows Update サーバーから取得されます。
このメソッドは、asfAllowOnlineRegistration フラグまたは asfAllowPendingRegistration フラグが指定されている場合、および authorizationCabPath パラメーターの値が空の文字列でない場合に、E_INVALIDARGを返します。
このメソッドは、asfRegisterServiceWithAU フラグが指定されている場合に、要求された変更が承認キャビネット ファイル (.cab) の指定に反する場合に、要求された変更が自動更新の状態に反する場合にWU_E_DS_INVALIDOPERATIONを返します。 承認キャビネット ファイルが署名されていない場合、 WinVerifyTrust 関数によってエラーが返されます。
更新エージェントと AddService2 は、flags パラメーターで指定した AddServiceFlag 値に応じて、次の方法で動作します。
- asfAllowPendingRegistration を指定せずに asfAllowOnlineRegistration を指定すると、更新エージェントは直ちにオンラインにしてサービスを登録しようとします。 AddService2 は、登録の成功または失敗を反映する HRESULT 値を返します。 登録に失敗した場合、更新エージェントは今後サービスを登録しようとしません。
- asfAllowOnlineRegistration を指定せずに asfAllowPendingRegistration を指定した場合、更新エージェントはサービスをすぐに登録しません。 AddService2 は、S_OKを返して、更新エージェントが後でサービスの登録を試み、登録が最終的に成功することを保証しないことを示します。
- asfAllowPendingRegistration と asfAllowOnlineRegistration を一緒に指定すると、更新エージェントは直ちにオンラインにしてサービスを登録しようとします。 AddService2 は 、登録が成功した場合にS_OKを返します。 登録が失敗した場合、AddService2 はエラー HRESULT 値を返しますが、更新エージェントは後でサービスの登録を試みます。
- asfAllowPendingRegistration、asfAllowOnlineRegistration、またはその両方を指定する場合は、authorizationCabPath パラメーターにも NULL を指定します。
- asfAllowPendingRegistration も asfAllowOnlineRegistration も指定しない場合 (つまり、フラグが 0 または asfRegisterServiceWithAU の場合)、authorizationCabPath パラメーターに NULL 以外のパスを指定する必要があります。 このモードでは、 AddService2 はキャビネット ファイル (.cab) を処理し、 IUpdateServiceManager::AddService と同じ方法でサービスを登録します。
- asfRegisterServiceWithAU を指定した場合、サービスの登録が成功するまで、既定の自動更新 サービスへの変更は発生しません (Windows Updateユーザー インターフェイスには反映されません)。 つまり、登録が直ちに成功した場合 (asfAllowPendingRegistration を指定したか、キャビネット ファイル (.cab) を指定したため)、自動更新 サービスの変更も直ちに行われます。 登録が後で成功しない場合 (asfAllowPendingRegistration を指定したため)、保留中のサービス登録が最終的に成功しない限り、自動更新サービスの変更は行われません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP、Windows 2000 Professional sp3 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003、Windows 2000 Server SP3 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wuapi.h |
Library | Wuguid.lib |
[DLL] | Wuapi.dll |