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

IWSDiscoveredService

COM
IID4bad8a3b-b374-4420-9632-aac945b374aa継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

このインターフェイスは、リモートで探索(ディスカバリー)されたホストを表します。

メソッド 11

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

vtbl 3 HRESULT GetEndpointReference(WSD_ENDPOINT_REFERENCE** ppEndpointReference)

リモートデバイスのエンドポイントを参照する WS-Addressing アドレスを取得します。

ppEndpointReferenceWSD_ENDPOINT_REFERENCE**outリモートデバイスのエンドポイントを参照する WS-Addressing アドレス。詳細については、WSD_ENDPOINT_REFERENCE を参照してください。出力された構造体は解放しないでください。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

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

解説(Remarks)

返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。

vtbl 4 HRESULT GetTypes(WSD_NAME_LIST** ppTypesList)

WS-Discovery Types の一覧を取得します。

ppTypesListWSD_NAME_LIST**outリモートデバイスが送信した Hello、ProbeMatch、または ResolveMatch メッセージで提供された WS-Discovery Types の一覧。詳細については、WSD_NAME_LIST を参照してください。出力された構造体は解放しないでください。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

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

解説(Remarks)

返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。

vtbl 5 HRESULT GetScopes(WSD_URI_LIST** ppScopesList)

WS-Discovery Scopes の一覧を取得します。

ppScopesListWSD_URI_LIST**outリモートデバイスが送信した Hello、ProbeMatch、または ResolveMatch メッセージで提供された WS-Discovery Scopes の一覧。詳細については、WSD_URI_LIST を参照してください。出力された構造体は解放しないでください。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

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

解説(Remarks)

返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。

vtbl 6 HRESULT GetXAddrs(WSD_URI_LIST** ppXAddrsList)

WS-Discovery XAddrs の一覧を取得します。

ppXAddrsListWSD_URI_LIST**outリモートデバイスが送信した Hello、ProbeMatch、または ResolveMatch メッセージで提供された WS-Discovery XAddrs の一覧。詳細については、WSD_URI_LIST を参照してください。出力された構造体は解放しないでください。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

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

解説(Remarks)

返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。

vtbl 7 HRESULT GetMetadataVersion(ULONGLONG* pullMetadataVersion)

このメッセージのメタデータバージョンを取得します。

pullMetadataVersionULONGLONG*outこのメッセージのメタデータバージョン。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

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

解説(Remarks)

バージョン管理は、デバイスの状態変化によりメタデータ交換を再度実行する必要があるかどうかを判断するために使用されます。

vtbl 8 HRESULT GetExtendedDiscoXML(WSDXML_ELEMENT** ppHeaderAny, WSDXML_ELEMENT** ppBodyAny)

SOAP メッセージのヘッダーまたはボディで提供されるカスタムデータや拡張データを取得します。

ppHeaderAnyWSDXML_ELEMENT**outSOAP メッセージのヘッダー部分に追加されたカスタムデータ。詳細については、WSDXML_ELEMENT を参照してください。出力された構造体は解放しないでください。
ppBodyAnyWSDXML_ELEMENT**outSOAP メッセージのボディ部分に追加されたカスタムデータ。詳細については、WSDXML_ELEMENT を参照してください。出力された構造体は解放しないでください。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

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

解説(Remarks)

一部のデバイスは、探索(ディスカバリー)フェーズで追加情報を伝えるために、SOAP メッセージのヘッダー部分およびボディ部分にカスタムデータを追加することがあります。

返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。

vtbl 9 HRESULT GetProbeResolveTag(LPWSTR* ppszTag)

この探索済みサービスオブジェクトに対応する検索タグを取得します。

ppszTagLPWSTR*outこの IWSDiscoveredService オブジェクトが対応する、IWSDiscoveryProvider の検索メソッドに渡された検索タグ。IWSDiscoveredService が Hello メッセージの結果である場合、タグは NULL になります。出力された文字列は解放しないでください。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

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

解説(Remarks)

返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。

vtbl 10 HRESULT GetRemoteTransportAddress(LPWSTR* ppszRemoteTransportAddress)

リモートのトランスポート (IP) アドレスの文字列表現を取得します。

ppszRemoteTransportAddressLPWSTR*outリモートのトランスポート (IP) アドレスの文字列表現。利用できない場合は NULL になります。 出力された文字列は解放しないでください。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

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

解説(Remarks)

返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。

このメソッドが返す文字列には、IPv4 アドレス、または "fe80::1" のように角かっこで囲まれていない IPv6 アドレスが含まれる場合があります。また、"[fe80::1]:1234" のようにポートを含む角かっこ付きの IPv6 アドレスが含まれる場合もあります。呼び出し側は、両方の可能性を考慮して文字列を慎重に解析する必要があります。

vtbl 11 HRESULT GetLocalTransportAddress(LPWSTR* ppszLocalTransportAddress)

ローカルのトランスポート (IP) アドレスの文字列表現を取得します。

ppszLocalTransportAddressLPWSTR*outローカルのトランスポート (IP) アドレスの文字列表現。利用できない場合は NULL になります。 出力された文字列は解放しないでください。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

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

解説(Remarks)

返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。

vtbl 12 HRESULT GetLocalInterfaceGUID(GUID* pGuid)

メッセージを受信したローカルネットワークインターフェイスの GUID を取得します。

pGuidGUID*outメッセージを受信したローカルネットワークインターフェイスの GUID。ローカルインターフェイスの GUID が利用できない場合、構造体はクリアされます。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
pGuidNULL です。
vtbl 13 HRESULT GetInstanceId(ULONGLONG* pullInstanceId)

このメッセージのインスタンス識別子を取得します。

pullInstanceIdULONGLONG*outこのメッセージのインスタンス識別子へのポインター。

戻り値

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

返される可能性のある値には、以下が含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
pullInstanceIdNULL です。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWSDiscoveredService "{4BAD8A3B-B374-4420-9632-AAC945B374AA}"
#usecom global IWSDiscoveredService IID_IWSDiscoveredService "{}"
#comfunc global IWSDiscoveredService_GetEndpointReference       3 var
#comfunc global IWSDiscoveredService_GetTypes                   4 var
#comfunc global IWSDiscoveredService_GetScopes                  5 var
#comfunc global IWSDiscoveredService_GetXAddrs                  6 var
#comfunc global IWSDiscoveredService_GetMetadataVersion         7 var
#comfunc global IWSDiscoveredService_GetExtendedDiscoXML        8 var,var
#comfunc global IWSDiscoveredService_GetProbeResolveTag         9 var
#comfunc global IWSDiscoveredService_GetRemoteTransportAddress  10 var
#comfunc global IWSDiscoveredService_GetLocalTransportAddress   11 var
#comfunc global IWSDiscoveredService_GetLocalInterfaceGUID      12 var
#comfunc global IWSDiscoveredService_GetInstanceId              13 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。