次の方法で共有


WSDCreateDeviceProxyAdvanced 関数 (wsdclient.h)

デバイス プロキシを作成し、 IWSDDeviceProxy インターフェイスへのポインターを返します。

構文

HRESULT WSDCreateDeviceProxyAdvanced(
  [in]  LPCWSTR         pszDeviceId,
        IWSDAddress     *pDeviceAddress,
  [in]  LPCWSTR         pszLocalId,
  [in]  IWSDXMLContext  *pContext,
  [out] IWSDDeviceProxy **ppDeviceProxy
);

パラメーター

[in] pszDeviceId

デバイスの論理アドレスまたは物理アドレス。 論理アドレスは、 という形式 urn:uuid:{guid}です。 物理アドレスは、http または https でプレフィックスが付いた URI です。 このアドレスが https でプレフィックス付きの URI である場合、プロキシは SSL/TLS プロトコルを使用します。

pszDeviceId または pszLocalId のいずれかが https でプレフィックス付き URL である場合は、両方の URL が同一である必要があります。 そうでない場合、 WSDCreateDeviceProxyAdvanced はE_INVALIDARGを返します。

デバイス アドレスの先頭に @ 文字を付ける場合があります。 pszDeviceId が @で始まる場合、この関数はデバイス プロキシの作成時にデバイス メタデータを取得しません。

pDeviceAddress

デバイス トランスポート アドレスを定義する IWSDAddress インターフェイス。 pDeviceAddress を指定すると、pszDeviceId に渡される論理アドレスの解決を必要とせずに、デバイス プロキシを作成できます。 このパラメーターは NULL である可能性があります。

[in] pszLocalId

プロキシを識別し、イベント シンク エンドポイントとして機能するために使用される、クライアントの論理アドレスまたは物理アドレス。 論理アドレスは、 という形式 urn:uuid:{guid}です。

クライアントがセキュリティで保護されたチャネルを使用してイベントを受信する場合、アドレスは https でプレフィックス付きの URI になります。 この URI では、WSDAPI とのセキュリティで保護された接続用にこのポートが予約されているため、ポート 5358 を指定する必要があります。 WSDCreateDeviceProxyAdvanced を呼び出す前に、ポートを SSL サーバー証明書で構成する必要があります。 ポート構成の詳細については、「 HttpSetServiceConfiguration」を参照してください。

[in] pContext

カスタム メッセージ型または名前空間を定義する IWSDXMLContext インターフェイス。

NULL の場合は、組み込みのメッセージ型と名前空間を表す既定のコンテキストが使用されます。

[out] ppDeviceProxy

クライアント アプリケーションとミドルウェアのリモート WSD デバイスを表すために使用する IWSDDeviceProxy インターフェイスへのポインター。

戻り値

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

リターン コード 説明
S_OK
メソッドが正常に完了しました。
E_INVALIDARG
pszDeviceIdNULLpszLocalIdNULLpszDeviceId の文字数がWSD_MAX_TEXT_LENGTH (8192)、 pszLocalId の文字数が WSD_MAX_TEXT_LENGTH (8192) を超える、 または pszDeviceId が https でプレフィックス付きの URI を指し、その URL が pszLocalId に渡される URI と一致しません。
E_POINTER
ppDeviceProxyNULL です
E_OUTOFMEMORY
操作を完了するためのメモリ不足。

解説

WSDCreateDeviceProxyAdvanced 関数は IWSDDeviceProxy::Init メソッドを呼び出し、IWSDDeviceProxy オブジェクトのインスタンスを初期化します。

pszDeviceId パラメーターが @ 文字で始まる場合を除き、この関数はデバイス メタデータも取得します。 デバイス プロキシの作成後にデバイス メタデータを取得するには、返された IWSDDeviceProxy オブジェクトで IWSDDeviceProxy::BeginGetMetadataIWSDDeviceProxy::EndGetMetadata を呼び出します。

WSDCreateDeviceProxyAdvanced 関数呼び出しのトラブルシューティングについては、「WSDAPI アプリケーションのトラブルシューティング」を参照してください。

要件

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

関連項目

WSDAPI アプリケーションのトラブルシューティング