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

IWSDiscoveryProvider

COM
IID8ffc8e55-f0eb-480f-88b7-b435dd281d45継承元IUnknown自前メソッド開始 vtbl3

メソッド 7

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

vtbl 3 HRESULT SetAddressFamily(DWORD dwAddressFamily)
dwAddressFamilyDWORDin探索に使うアドレスファミリ(IPv4/IPv6 等)を指定する。
vtbl 4 HRESULT Attach(IWSDiscoveryProviderNotify* pSink)
pSinkIWSDiscoveryProviderNotify*in探索結果通知を受け取るコールバックシンクを指定する。
vtbl 5 HRESULT Detach()
vtbl 6 HRESULT SearchById(LPWSTR pszId, LPWSTR pszTag)
pszIdLPWSTRin探索対象サービスのエンドポイント識別子を指定する。
pszTagLPWSTRinoptionalこの検索を識別する任意のタグ文字列を指定する。NULL 可。
vtbl 7 HRESULT SearchByAddress(LPWSTR pszAddress, LPWSTR pszTag)
pszAddressLPWSTRin探索対象サービスのトランスポートアドレスを指定する。
pszTagLPWSTRinoptionalこの検索を識別する任意のタグ文字列を指定する。NULL 可。
vtbl 8 HRESULT SearchByType(WSD_NAME_LIST* pTypesList, WSD_URI_LIST* pScopesList, LPWSTR pszMatchBy, LPWSTR pszTag)
pTypesListWSD_NAME_LIST*inoptional一致条件とするサービス型の名前リストを指定する。NULL 可。
pScopesListWSD_URI_LIST*inoptional一致条件とするスコープ URI リストを指定する。NULL 可。
pszMatchByLPWSTRinoptionalスコープ照合に使う照合規則 URI を指定する。NULL 可。
pszTagLPWSTRinoptionalこの検索を識別する任意のタグ文字列を指定する。NULL 可。
vtbl 9 HRESULT GetXMLContext(IWSDXMLContext** ppContext)
ppContextIWSDXMLContext**outプロバイダが使用する IWSDXMLContext を受け取る出力先である。

HSP用 COM定義

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

出力引数:
#define global IID_IWSDiscoveryProvider "{8FFC8E55-F0EB-480F-88B7-B435DD281D45}"
#usecom global IWSDiscoveryProvider IID_IWSDiscoveryProvider "{}"
#comfunc global IWSDiscoveryProvider_SetAddressFamily  3 int
#comfunc global IWSDiscoveryProvider_Attach            4 sptr
#comfunc global IWSDiscoveryProvider_Detach            5
#comfunc global IWSDiscoveryProvider_SearchById        6 wstr,wstr
#comfunc global IWSDiscoveryProvider_SearchByAddress   7 wstr,wstr
#comfunc global IWSDiscoveryProvider_SearchByType      8 var,var,wstr,wstr
#comfunc global IWSDiscoveryProvider_GetXMLContext     9 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。