IWSDEndpointProxy
COM公式ドキュメント
デバイスサービスのメッセージングプロキシを実装します。
解説(Remarks)
サービスプロキシオブジェクトは複数のエンドポイント上に存在する場合があります。エンドポイントは URL をより完全に表現したものです (追加の有用なデータを含みます)。あるエンドポイントは IPv4 アドレス上の HTTP をサポートし、別のエンドポイントは IPv6 アドレス上の HTTPS をサポートすることがあります。同じサービスが両方のエンドポイント上に存在するため、サービスは内部にエンドポイントプロキシオブジェクトを保持し、各エンドポイントプロキシがサービスの利用可能な単一のエンドポイントに対応していることが重要です。エンドポイントプロキシは、片方向メッセージや双方向メッセージの送信など、サービスに対する単純なメッセージング要求を処理します。
エンドポイントプロキシは通常 WSDAPI の内部で使用されますが、メッセージレベルの機能を公開するために IWSDServiceProxy オブジェクトや IWSDDeviceProxy オブジェクトから取得することもできます。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
片方向の要求メッセージを送信します。
| pBody | void* | in | メッセージの本文。 |
| pOperation | WSD_OPERATION* | in | 実行する操作を指定する WSD_OPERATION 構造体への参照。 |
戻り値
解説(Remarks)
このメソッドは通常、生成されたプロキシコードからのみ呼び出されます。
同期呼び出しパターンを使用して双方向の要求メッセージを送信します。
| pBody | void* | in | メッセージの本文。 |
| pOperation | WSD_OPERATION* | in | 実行する操作を指定する WSD_OPERATION 構造体への参照。 |
| pResponseContext | WSD_SYNCHRONOUS_RESPONSE_CONTEXT* | inoptional | 要求に対する応答の処理コンテキストを指定する WSD_SYNCHRONOUS_RESPONSE_CONTEXT 構造体、またはその他のコンテキスト構造体への参照。 |
戻り値
解説(Remarks)
このメソッドは通常、生成されたプロキシコードからのみ呼び出されます。
同期呼び出しパターンを使用する場合、responseContext の値には WSD_SYNCHRONOUS_RESPONSE_CONTEXT を使用します。
非同期呼び出しパターンを使用して双方向の要求メッセージを送信します。
| pBody | void* | in | メッセージの本文。 |
| pOperation | WSD_OPERATION* | in | 実行する操作を指定する WSD_OPERATION 構造体への参照。 |
| pAsyncState | IUnknown* | in | 操作の完了時に pCallback に渡される匿名データ。このデータは、クライアントオブジェクトを保留中の操作に関連付けるために使用されます。このパラメーターは省略可能な場合があります。 |
| pCallback | IWSDAsyncCallback* | in | メッセージ状態のコールバック通知を行う IWSDAsyncCallback オブジェクトへの参照。このパラメーターは省略可能な場合があります。 |
| pResult | IWSDAsyncResult** | out | 操作の結果を指定する IWSDAsyncResult オブジェクトへの参照。 |
戻り値
戻り値には次のものが含まれますが、これらに限定されません:
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| pOperation または pResult が NULL です。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
このメソッドは通常、生成されたプロキシコードからのみ呼び出されます。
保留中の非同期操作を中止します。
| pAsyncResult | IWSDAsyncResult* | in | Abort メソッドを呼び出して非同期操作を終了します。 |
戻り値
このメソッドは次の値のいずれかを返すことができます。
戻り値には次のものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| pAsyncResult が NULL であるか、pAsyncResult が IWSDAsyncCallback インターフェイスをサポートしていません。 |
GetFaultInfo で取得した SOAP フォールトを処理します。
| pFault | WSD_SOAP_FAULT* | in | フォールトデータを格納する WSD_SOAP_FAULT 構造体へのポインター。 |
戻り値
戻り値には次のものが含まれますが、これらに限定されません:
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| pFault が NULL です。 | |
| フォールトはメモリに保存されていませんでした。 |
直近のエラーに関する情報を取得します。
| ppszErrorInfo | LPWSTR* | out | 最後に記録されたエラーのデータを格納するバッファーへのポインター。 |
戻り値
解説(Remarks)
直近に受信したフォールトに関する情報を取得します。
| ppFault | WSD_SOAP_FAULT** | out | SOAP フォールト情報を格納する WSD_SOAP_FAULT 構造体へのポインターへのポインター。 |
戻り値
解説(Remarks)
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 指定が可能。#define global IID_IWSDEndpointProxy "{1860D430-B24C-4975-9F90-DBB39BAA24EC}" #usecom global IWSDEndpointProxy IID_IWSDEndpointProxy "{}" #comfunc global IWSDEndpointProxy_SendOneWayRequest 3 sptr,sptr #comfunc global IWSDEndpointProxy_SendTwoWayRequest 4 sptr,sptr,sptr #comfunc global IWSDEndpointProxy_SendTwoWayRequestAsync 5 sptr,sptr,sptr,sptr,sptr #comfunc global IWSDEndpointProxy_AbortAsyncOperation 6 sptr #comfunc global IWSDEndpointProxy_ProcessFault 7 sptr #comfunc global IWSDEndpointProxy_GetErrorInfo 8 sptr #comfunc global IWSDEndpointProxy_GetFaultInfo 9 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。