次の方法で共有


IWSDDeviceHost::AddDynamicService メソッド (wsdhost.h)

受信要求のサービス オブジェクトを登録しますが、デバイス ホスト メタデータにサービスを追加しません。 これは、一時的な (動的) サービスに使用されます。

構文

HRESULT AddDynamicService(
  [in]           LPCWSTR              pszServiceId,
  [in, optional] LPCWSTR              pszEndpointAddress,
  [in, optional] const WSD_PORT_TYPE  *pPortType,
  [in, optional] const WSDXML_NAME    *pPortName,
  [in, optional] const WSDXML_ELEMENT *pAny,
  [in, optional] IUnknown             *pService
);

パラメーター

[in] pszServiceId

動的サービスの ID。 サービス ID は、サービス ホスト メタデータ内のすべてのサービス ID と、その他の登録済み動的サービスとは異なる必要があります。 pszServiceId は URI である必要があります。

[in, optional] pszEndpointAddress

このサービスのエンドポイント アドレスとして使用する省略可能な URI。 何も指定しない場合、デバイス ホストは、すべてのローカル トランスポート アドレスでサービスを使用できる必要があると想定します。

[in, optional] pPortType

ポートの種類を指定する WSD_PORT_TYPE 構造体への参照。 NULL を指定できます。 pPortType と pPortName の 1 つだけを指定します

[in, optional] pPortName

サービスの種類を指定する WSDXML_NAME 構造体への参照と、サービスを指定したポートに関連付ける。 pPortType と pPortName の 1 つだけを指定します

[in, optional] pAny

動的サービス メタデータに含める拡張可能セクションへの省略可能な参照。

[in, optional] pService

登録するホスト サービス オブジェクトへのオプションの参照。

戻り値

可能な戻り値には、次のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
pszServiceIdNULL です
E_INVALIDARG
pszServiceId または pszEndpointAddress の文字数が WSD_MAX_TEXT_LENGTH (8192) を超えているか、pPortTypepPortName の両方が指定されています。
E_FAIL
メソッドが失敗しました。 ホストが初期化されていないか、 pszServiceId で指定されたサービスが見つからなかったため、失敗した可能性があります。 Init を呼び出して、デバイス ホストを初期化します。
E_OUTOFMEMORY
操作を完了するにはメモリが不足しています。

解説

このメソッドが呼び出されると、デバイスはサービス オブジェクトへの参照を追加し、サービスにアドレス指定された要求メッセージに応答してそのメソッドを呼び出します。 デバイス ホストで RemoveDynamicService メソッドを呼び出して、サービスへの参照を解放し、サービスでのメソッドの呼び出しを停止します。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wsdhost.h (Wsdapi.h を含む)
[DLL] Wsdapi.dll

関連項目

IWSDDeviceHost