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 エラー コードを返します。

このメソッドは、次のエラー コードを返すこともできます。

リターン コード 説明
E_INVALIDARG
パラメーター値が無効です。
E_ACCESSDENIED
authorizationCabPath パラメーターが null 文字列に設定されている場合、リモート コンピューターからこのメソッドを呼び出すことはできません。
WU_E_DS_SERVICEEXPIRED
承認キャビネット ファイル (.cab) の有効期限が切れています。
WU_E_DS_INVALIDOPERATION
自動更新の状態を変更できませんでした。

注釈

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を返して、更新エージェントが後でサービスの登録を試み、登録が最終的に成功することを保証しないことを示します。
  • asfAllowPendingRegistrationasfAllowOnlineRegistration を一緒に指定すると、更新エージェントは直ちにオンラインにしてサービスを登録しようとします。 AddService2 は 、登録が成功した場合にS_OKを返します。 登録が失敗した場合、AddService2 はエラー HRESULT 値を返しますが、更新エージェントは後でサービスの登録を試みます。
  • asfAllowPendingRegistrationasfAllowOnlineRegistration、またはその両方を指定する場合は、authorizationCabPath パラメーターにも NULL を指定します。
  • asfAllowPendingRegistrationasfAllowOnlineRegistration も指定しない場合 (つまり、フラグが 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

こちらもご覧ください

IUpdateServiceManager2