IWSDiscoveredService
COM公式ドキュメント
このインターフェイスは、リモートで探索(ディスカバリー)されたホストを表します。
メソッド 11
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
リモートデバイスのエンドポイントを参照する WS-Addressing アドレスを取得します。
| ppEndpointReference | WSD_ENDPOINT_REFERENCE** | out | リモートデバイスのエンドポイントを参照する WS-Addressing アドレス。詳細については、WSD_ENDPOINT_REFERENCE を参照してください。出力された構造体は解放しないでください。 |
戻り値
このメソッドは次の値のいずれかを返すことがあります。
返される可能性のある値には、以下が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| ppEndPointReference が NULL です。 |
解説(Remarks)
返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。
WS-Discovery Types の一覧を取得します。
| ppTypesList | WSD_NAME_LIST** | out | リモートデバイスが送信した Hello、ProbeMatch、または ResolveMatch メッセージで提供された WS-Discovery Types の一覧。詳細については、WSD_NAME_LIST を参照してください。出力された構造体は解放しないでください。 |
戻り値
このメソッドは次の値のいずれかを返すことがあります。
返される可能性のある値には、以下が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| ppTypesList が NULL です。 |
解説(Remarks)
返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。
WS-Discovery Scopes の一覧を取得します。
| ppScopesList | WSD_URI_LIST** | out | リモートデバイスが送信した Hello、ProbeMatch、または ResolveMatch メッセージで提供された WS-Discovery Scopes の一覧。詳細については、WSD_URI_LIST を参照してください。出力された構造体は解放しないでください。 |
戻り値
このメソッドは次の値のいずれかを返すことがあります。
返される可能性のある値には、以下が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| ppScopesList が NULL です。 |
解説(Remarks)
返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。
WS-Discovery XAddrs の一覧を取得します。
| ppXAddrsList | WSD_URI_LIST** | out | リモートデバイスが送信した Hello、ProbeMatch、または ResolveMatch メッセージで提供された WS-Discovery XAddrs の一覧。詳細については、WSD_URI_LIST を参照してください。出力された構造体は解放しないでください。 |
戻り値
このメソッドは次の値のいずれかを返すことがあります。
返される可能性のある値には、以下が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| ppXAddrsList が NULL です。 |
解説(Remarks)
返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。
このメッセージのメタデータバージョンを取得します。
| pullMetadataVersion | ULONGLONG* | out | このメッセージのメタデータバージョン。 |
戻り値
このメソッドは次の値のいずれかを返すことがあります。
返される可能性のある値には、以下が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| pullMetadataVersion が NULL です。 |
解説(Remarks)
バージョン管理は、デバイスの状態変化によりメタデータ交換を再度実行する必要があるかどうかを判断するために使用されます。
SOAP メッセージのヘッダーまたはボディで提供されるカスタムデータや拡張データを取得します。
| ppHeaderAny | WSDXML_ELEMENT** | out | SOAP メッセージのヘッダー部分に追加されたカスタムデータ。詳細については、WSDXML_ELEMENT を参照してください。出力された構造体は解放しないでください。 |
| ppBodyAny | WSDXML_ELEMENT** | out | SOAP メッセージのボディ部分に追加されたカスタムデータ。詳細については、WSDXML_ELEMENT を参照してください。出力された構造体は解放しないでください。 |
戻り値
解説(Remarks)
一部のデバイスは、探索(ディスカバリー)フェーズで追加情報を伝えるために、SOAP メッセージのヘッダー部分およびボディ部分にカスタムデータを追加することがあります。
返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。
この探索済みサービスオブジェクトに対応する検索タグを取得します。
| ppszTag | LPWSTR* | out | この IWSDiscoveredService オブジェクトが対応する、IWSDiscoveryProvider の検索メソッドに渡された検索タグ。IWSDiscoveredService が Hello メッセージの結果である場合、タグは NULL になります。出力された文字列は解放しないでください。 |
戻り値
このメソッドは次の値のいずれかを返すことがあります。
返される可能性のある値には、以下が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| ppszTag が NULL です。 |
解説(Remarks)
返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。
リモートのトランスポート (IP) アドレスの文字列表現を取得します。
| ppszRemoteTransportAddress | LPWSTR* | out | リモートのトランスポート (IP) アドレスの文字列表現。利用できない場合は NULL になります。 出力された文字列は解放しないでください。 |
戻り値
このメソッドは次の値のいずれかを返すことがあります。
返される可能性のある値には、以下が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| ppszRemoteTransportAddress が NULL です。 |
解説(Remarks)
返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。
このメソッドが返す文字列には、IPv4 アドレス、または "fe80::1" のように角かっこで囲まれていない IPv6 アドレスが含まれる場合があります。また、"[fe80::1]:1234" のようにポートを含む角かっこ付きの IPv6 アドレスが含まれる場合もあります。呼び出し側は、両方の可能性を考慮して文字列を慎重に解析する必要があります。
ローカルのトランスポート (IP) アドレスの文字列表現を取得します。
| ppszLocalTransportAddress | LPWSTR* | out | ローカルのトランスポート (IP) アドレスの文字列表現。利用できない場合は NULL になります。 出力された文字列は解放しないでください。 |
戻り値
このメソッドは次の値のいずれかを返すことがあります。
返される可能性のある値には、以下が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| ppszLocalTransportAddress が NULL です。 |
解説(Remarks)
返されるポインター値は、IWSDiscoveredService オブジェクトの有効期間中のみ有効です。
メッセージを受信したローカルネットワークインターフェイスの GUID を取得します。
| pGuid | GUID* | out | メッセージを受信したローカルネットワークインターフェイスの GUID。ローカルインターフェイスの GUID が利用できない場合、構造体はクリアされます。 |
戻り値
このメソッドは次の値のいずれかを返すことがあります。
返される可能性のある値には、以下が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| pGuid が NULL です。 |
このメッセージのインスタンス識別子を取得します。
| pullInstanceId | ULONGLONG* | out | このメッセージのインスタンス識別子へのポインター。 |
戻り値
このメソッドは次の値のいずれかを返すことがあります。
返される可能性のある値には、以下が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| pullInstanceId が NULL です。 |
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 方式にも切替可。#define global IID_IWSDiscoveredService "{4BAD8A3B-B374-4420-9632-AAC945B374AA}" #usecom global IWSDiscoveredService IID_IWSDiscoveredService "{}" #comfunc global IWSDiscoveredService_GetEndpointReference 3 sptr #comfunc global IWSDiscoveredService_GetTypes 4 sptr #comfunc global IWSDiscoveredService_GetScopes 5 sptr #comfunc global IWSDiscoveredService_GetXAddrs 6 sptr #comfunc global IWSDiscoveredService_GetMetadataVersion 7 sptr #comfunc global IWSDiscoveredService_GetExtendedDiscoXML 8 sptr,sptr #comfunc global IWSDiscoveredService_GetProbeResolveTag 9 sptr #comfunc global IWSDiscoveredService_GetRemoteTransportAddress 10 sptr #comfunc global IWSDiscoveredService_GetLocalTransportAddress 11 sptr #comfunc global IWSDiscoveredService_GetLocalInterfaceGUID 12 sptr #comfunc global IWSDiscoveredService_GetInstanceId 13 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。