Win32 API 日本語リファレンス
ホームDevices.WebServicesOnDevices › IWSDEndpointProxy

IWSDEndpointProxy

COM
IID1860d430-b24c-4975-9f90-dbb39baa24ec継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

デバイスサービスのメッセージングプロキシを実装します。

解説(Remarks)

サービスプロキシオブジェクトは複数のエンドポイント上に存在する場合があります。エンドポイントは URL をより完全に表現したものです (追加の有用なデータを含みます)。あるエンドポイントは IPv4 アドレス上の HTTP をサポートし、別のエンドポイントは IPv6 アドレス上の HTTPS をサポートすることがあります。同じサービスが両方のエンドポイント上に存在するため、サービスは内部にエンドポイントプロキシオブジェクトを保持し、各エンドポイントプロキシがサービスの利用可能な単一のエンドポイントに対応していることが重要です。エンドポイントプロキシは、片方向メッセージや双方向メッセージの送信など、サービスに対する単純なメッセージング要求を処理します。

エンドポイントプロキシは通常 WSDAPI の内部で使用されますが、メッセージレベルの機能を公開するために IWSDServiceProxy オブジェクトや IWSDDeviceProxy オブジェクトから取得することもできます。

メソッド 7

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SendOneWayRequest(void* pBody, WSD_OPERATION* pOperation)

片方向の要求メッセージを送信します。

pBodyvoid*inメッセージの本文。
pOperationWSD_OPERATION*in実行する操作を指定する WSD_OPERATION 構造体への参照。

戻り値

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
pOperationNULL です。

解説(Remarks)

このメソッドは通常、生成されたプロキシコードからのみ呼び出されます。

vtbl 4 HRESULT SendTwoWayRequest(void* pBody, WSD_OPERATION* pOperation, WSD_SYNCHRONOUS_RESPONSE_CONTEXT* pResponseContext)

同期呼び出しパターンを使用して双方向の要求メッセージを送信します。

pBodyvoid*inメッセージの本文。
pOperationWSD_OPERATION*in実行する操作を指定する WSD_OPERATION 構造体への参照。
pResponseContextWSD_SYNCHRONOUS_RESPONSE_CONTEXT*inoptional要求に対する応答の処理コンテキストを指定する WSD_SYNCHRONOUS_RESPONSE_CONTEXT 構造体、またはその他のコンテキスト構造体への参照。

戻り値

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
pOperationNULL です。

解説(Remarks)

このメソッドは通常、生成されたプロキシコードからのみ呼び出されます。

同期呼び出しパターンを使用する場合、responseContext の値には WSD_SYNCHRONOUS_RESPONSE_CONTEXT を使用します。

vtbl 5 HRESULT SendTwoWayRequestAsync(void* pBody, WSD_OPERATION* pOperation, IUnknown* pAsyncState, IWSDAsyncCallback* pCallback, IWSDAsyncResult** pResult)

非同期呼び出しパターンを使用して双方向の要求メッセージを送信します。

pBodyvoid*inメッセージの本文。
pOperationWSD_OPERATION*in実行する操作を指定する WSD_OPERATION 構造体への参照。
pAsyncStateIUnknown*in操作の完了時に pCallback に渡される匿名データ。このデータは、クライアントオブジェクトを保留中の操作に関連付けるために使用されます。このパラメーターは省略可能な場合があります。
pCallbackIWSDAsyncCallback*inメッセージ状態のコールバック通知を行う IWSDAsyncCallback オブジェクトへの参照。このパラメーターは省略可能な場合があります。
pResultIWSDAsyncResult**out操作の結果を指定する IWSDAsyncResult オブジェクトへの参照。

戻り値

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
pOperation または pResultNULL です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。

解説(Remarks)

このメソッドは通常、生成されたプロキシコードからのみ呼び出されます。

vtbl 6 HRESULT AbortAsyncOperation(IWSDAsyncResult* pAsyncResult)

保留中の非同期操作を中止します。

pAsyncResultIWSDAsyncResult*inAbort メソッドを呼び出して非同期操作を終了します。

戻り値

このメソッドは次の値のいずれかを返すことができます。

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_INVALIDARG
pAsyncResultNULL であるか、pAsyncResultIWSDAsyncCallback インターフェイスをサポートしていません。
vtbl 7 HRESULT ProcessFault(WSD_SOAP_FAULT* pFault)

GetFaultInfo で取得した SOAP フォールトを処理します。

pFaultWSD_SOAP_FAULT*inフォールトデータを格納する WSD_SOAP_FAULT 構造体へのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
pFaultNULL です。
S_FALSE
フォールトはメモリに保存されていませんでした。
vtbl 8 HRESULT GetErrorInfo(LPWSTR* ppszErrorInfo)

直近のエラーに関する情報を取得します。

ppszErrorInfoLPWSTR*out最後に記録されたエラーのデータを格納するバッファーへのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
ppszErrorInfoNULL です。

解説(Remarks)

注意 ppszErrorInfo で返されるエラー情報は、不要になった時点で WSDFreeLinkedMemory によって解放する必要があります。
vtbl 9 HRESULT GetFaultInfo(WSD_SOAP_FAULT** ppFault)

直近に受信したフォールトに関する情報を取得します。

ppFaultWSD_SOAP_FAULT**outSOAP フォールト情報を格納する WSD_SOAP_FAULT 構造体へのポインターへのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
ppFaultNULL です。

解説(Remarks)

注意 ppFault で返されるフォールト情報は、不要になった時点で WSDFreeLinkedMemory によって解放する必要があります。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IWSDEndpointProxy "{1860D430-B24C-4975-9F90-DBB39BAA24EC}"
#usecom global IWSDEndpointProxy IID_IWSDEndpointProxy "{}"
#comfunc global IWSDEndpointProxy_SendOneWayRequest       3 sptr,var
#comfunc global IWSDEndpointProxy_SendTwoWayRequest       4 sptr,var,var
#comfunc global IWSDEndpointProxy_SendTwoWayRequestAsync  5 sptr,var,sptr,sptr,sptr
#comfunc global IWSDEndpointProxy_AbortAsyncOperation     6 sptr
#comfunc global IWSDEndpointProxy_ProcessFault            7 var
#comfunc global IWSDEndpointProxy_GetErrorInfo            8 var
#comfunc global IWSDEndpointProxy_GetFaultInfo            9 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。