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
登録するホスト サービス オブジェクトへのオプションの参照。
戻り値
可能な戻り値には、次のものが含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
メソッドは正常に完了しました。 |
|
pszServiceId は NULL です。 |
|
pszServiceId または pszEndpointAddress の文字数が WSD_MAX_TEXT_LENGTH (8192) を超えているか、pPortType と pPortName の両方が指定されています。 |
|
メソッドが失敗しました。 ホストが初期化されていないか、 pszServiceId で指定されたサービスが見つからなかったため、失敗した可能性があります。 Init を呼び出して、デバイス ホストを初期化します。 |
|
操作を完了するにはメモリが不足しています。 |
解説
このメソッドが呼び出されると、デバイスはサービス オブジェクトへの参照を追加し、サービスにアドレス指定された要求メッセージに応答してそのメソッドを呼び出します。 デバイス ホストで RemoveDynamicService メソッドを呼び出して、サービスへの参照を解放し、サービスでのメソッドの呼び出しを停止します。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wsdhost.h (Wsdapi.h を含む) |
[DLL] | Wsdapi.dll |