IWSDiscoveryPublisherNotify
COM公式ドキュメント
IWSDiscoveryPublisher からのコールバック通知を受け取るために、クライアントプログラムが実装するインターフェイスです。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
探索(ディスカバリー)パブリッシャーが Probe を受信したときに呼び出されます。
| pSoap | WSD_SOAP_MESSAGE* | in | 探索パブリッシャーが受信した Probe メッセージを格納する WSD_SOAP_MESSAGE 構造体へのポインター。 |
| pMessageParameters | IWSDMessageParameters* | in | 受信したメッセージに関連付けられたトランスポート情報を格納する IWSDMessageParameters インターフェイスへのポインター。 |
戻り値
戻り値に意味はありません。実装者は S_OK を返してください。
解説(Remarks)
ProbeHandler は、探索パブリッシャーが Probe を受信するたびに呼び出されます。受信した Probe がホストに一致するかどうかを判断するために、コールバックインターフェイス側でホスト情報を指定して MatchProbe または MatchProbeEx を呼び出す必要があります。
pSoap に渡される Probe メッセージの本文は、WSD_PROBE 構造体にキャストできます。
探索(ディスカバリー)パブリッシャーが Resolve を受信したときに呼び出されます。
| pSoap | WSD_SOAP_MESSAGE* | in | 探索パブリッシャーが受信した Resolve メッセージを格納する WSD_SOAP_MESSAGE 構造体へのポインター。 |
| pMessageParameters | IWSDMessageParameters* | in | 受信したメッセージに関連付けられたトランスポート情報を格納する IWSDMessageParameters インターフェイスへのポインター。 |
戻り値
戻り値に意味はありません。実装者は S_OK を返してください。
解説(Remarks)
ResolveHandler は、探索パブリッシャーが Resolve を受信するたびに呼び出されます。受信した Resolve がホストに一致するかどうかを判断するために、コールバックインターフェイス側でホスト情報を指定して MatchResolve または MatchResolveEx を呼び出す必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWSDiscoveryPublisherNotify "{E67651B0-337A-4B3C-9758-733388568251}" #usecom global IWSDiscoveryPublisherNotify IID_IWSDiscoveryPublisherNotify "{}" #comfunc global IWSDiscoveryPublisherNotify_ProbeHandler 3 var,sptr #comfunc global IWSDiscoveryPublisherNotify_ResolveHandler 4 var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWSDiscoveryPublisherNotify "{E67651B0-337A-4B3C-9758-733388568251}" #usecom global IWSDiscoveryPublisherNotify IID_IWSDiscoveryPublisherNotify "{}" #comfunc global IWSDiscoveryPublisherNotify_ProbeHandler 3 sptr,sptr #comfunc global IWSDiscoveryPublisherNotify_ResolveHandler 4 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。