IWSDiscoveryPublisher
COM公式ドキュメント
ホストのアナウンスと、ホストへの受信クエリの管理を行うためのメソッドを提供します。
解説(Remarks)
このインターフェイスは、WS-Discovery における「サーバー」側 (ホスト側) を表します。
メソッド 13
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ホストを公開する際に使用する IP アドレスファミリ (IPv4、IPv6、またはその両方) を指定します。
| dwAddressFamily | DWORD | in | ホストを公開する際に使用するアドレスファミリです。
|
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| dwAddressFamily に、WSDAPI_ADDRESSFAMILY_IPV4、WSDAPI_ADDRESSFAMILY_IPV6、WSDAPI_ADDRESSFAMILY_IPV4 | WSDAPI_ADDRESSFAMILY_IPV6 以外の値が指定されています。 | |
| このパブリッシャーには、既にアドレスファミリが設定されています。 | |
|
dwAddressFamily で指定されたアドレスファミリを、システムがサポートしていません。 |
解説(Remarks)
このメソッドは、パブリッシャーに通知シンクをアタッチする前に呼び出す必要があります。
コールバック通知シンクを探索 (ディスカバリー) パブリッシャーにアタッチします。
| pSink | IWSDiscoveryPublisherNotify* | in | コールバック通知を受け取るために初期化されたインターフェイスを表す IWSDiscoveryPublisherNotify オブジェクトへのポインターです。このパラメーターに NULL を指定することはできません。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| pSink が NULL です。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
通知シンクは、受信クエリを受け取るたびにコールバックを受け取ります。1 つのパブリッシャーに複数の通知シンクを登録することもできます。
コールバック通知シンクを探索 (ディスカバリー) パブリッシャーからデタッチします。
| pSink | IWSDiscoveryPublisherNotify* | in | コールバック通知の受け取りを停止する IWSDiscoveryPublisherNotify インターフェイスへのポインターです。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| pSink が NULL です。 | |
| メソッドが失敗しました。 |
解説(Remarks)
Hello メッセージを送信して、ネットワークホストの存在をアナウンスします。
| pszId | LPWSTR | in | デバイスの論理アドレスまたは物理アドレスです。これはデバイスのエンドポイントアドレスとして使用されます。論理アドレスは urn:uuid:{guid} の形式です。物理アドレスには、http または https を前置した URI、あるいは単に uri を前置した URI を指定できます。可能な限り論理アドレスを使用してください。 |
| ullMetadataVersion | ULONGLONG | in | 現在のメタデータのバージョンです。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullInstanceId | ULONGLONG | in | 公開されるデバイスの現在のインスタンスを示す識別子です。この識別子は、サービスが再起動されるたびにインクリメントする必要があります。インスタンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullMessageNumber | ULONGLONG | in | 現在のメッセージについて、インスタンス識別子のスコープ内で使用されるカウンターです。メッセージ番号は、メッセージごとにインクリメントする必要があります。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| pszSessionId | LPWSTR | inoptional | 現在のセッションについて、インスタンス識別子のスコープ内で一意となる識別子です。このパラメーターは、Probe メッセージの AppSequence ブロック内のシーケンス識別子に対応します。シーケンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 このパラメーターには NULL を指定できます。 |
| pTypesList | WSD_NAME_LIST* | inoptional | 公開ホストがサポートする型の一覧を表す WSD_NAME_LIST 構造体へのポインターです。NULL を指定できます。 |
| pScopesList | WSD_URI_LIST* | inoptional | 公開ホストがサポートする、一致対象のスコープの一覧を表す WSD_URI_LIST 構造体へのポインターです。この一覧には、文字列形式のハッシュ値が格納されます。NULL を指定できます。 |
| pXAddrsList | WSD_URI_LIST* | inoptional | 公開ホストがサポートするトランスポートアドレスの一覧を表す WSD_URI_LIST 構造体へのポインターです。各トランスポートアドレスの文字列には、リモートホストが接続に使用できるアドレスとポート番号が含まれます。NULL を指定できます。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
次の条件のいずれか 1 つ以上に該当します。
|
|
|
登録された通知シンクがありません。シンクをアタッチするには、RegisterNotificationSink を呼び出してください。 |
| パブリッシャーが開始されていません。通知シンクをアタッチするとパブリッシャーが開始されます。シンクをアタッチするには、RegisterNotificationSink を呼び出してください。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
成功した場合、Publish は指定された情報を含む WS-Discovery の Hello メッセージをローカルサブネットに送信します。
Bye メッセージを送信して、ネットワークホストの離脱をアナウンスします。
| pszId | LPWSTR | in | デバイスの論理アドレスまたは物理アドレスです。これはデバイスのエンドポイントアドレスとして使用されます。論理アドレスは urn:uuid:{guid} の形式です。物理アドレスには、http または https を前置した URI、あるいは単に uri を前置した URI を指定できます。可能な限り論理アドレスを使用してください。 |
| ullInstanceId | ULONGLONG | in | 公開されるデバイスの現在のインスタンスを示す識別子です。この識別子は、サービスが再起動されるたびにインクリメントする必要があります。インスタンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullMessageNumber | ULONGLONG | in | 現在のメッセージについて、インスタンス識別子のスコープ内で使用されるカウンターです。メッセージ番号は、メッセージごとにインクリメントする必要があります。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| pszSessionId | LPWSTR | inoptional | 現在のセッションについて、インスタンス識別子のスコープ内で一意となる識別子です。このパラメーターは、Probe メッセージの AppSequence ブロック内のシーケンス識別子に対応します。シーケンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 このパラメーターには NULL を指定できます。 |
| pAny | WSDXML_ELEMENT* | inoptional | メッセージ本文の "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
次の条件のいずれか 1 つ以上に該当します。
|
|
| パブリッシャーが開始されていません。通知シンクをアタッチするとパブリッシャーが開始されます。シンクをアタッチするには、RegisterNotificationSink を呼び出してください。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
成功した場合、UnPublish は指定された情報を含む WS-Discovery の Bye メッセージをローカルサブネットに送信します。
Probe メッセージが指定されたホストに一致するかどうかを判定し、一致する場合は WS-Discovery の ProbeMatches メッセージを送信します。
| pProbeMessage | WSD_SOAP_MESSAGE* | in | 通知シンクの ProbeHandler に渡された Probe メッセージを表す WSD_SOAP_MESSAGE 構造体へのポインターです。 |
| pMessageParameters | IWSDMessageParameters* | in | 通知シンクの ProbeHandler に渡された送信パラメーターを表す IWSDMessageParameters オブジェクトへのポインターです。 |
| pszId | LPWSTR | in | デバイスの論理アドレスまたは物理アドレスです。これはデバイスのエンドポイントアドレスとして使用されます。論理アドレスは urn:uuid:{guid} の形式です。物理アドレスには、http または https を前置した URI、あるいは単に uri を前置した URI を指定できます。可能な限り論理アドレスを使用してください。 |
| ullMetadataVersion | ULONGLONG | in | 現在のメタデータのバージョンです。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullInstanceId | ULONGLONG | in | 公開されるデバイスの現在のインスタンスを示す識別子です。この識別子は、サービスが再起動されるたびにインクリメントする必要があります。インスタンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullMessageNumber | ULONGLONG | in | 現在のメッセージについて、インスタンス識別子のスコープ内で使用されるカウンターです。メッセージ番号は、メッセージごとにインクリメントする必要があります。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| pszSessionId | LPWSTR | inoptional | 現在のセッションについて、インスタンス識別子のスコープ内で一意となる識別子です。このパラメーターは、Probe メッセージの AppSequence ブロック内のシーケンス識別子に対応します。シーケンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 このパラメーターには NULL を指定できます。 |
| pTypesList | WSD_NAME_LIST* | inoptional | 公開ホストがサポートする型の一覧を表す WSD_NAME_LIST 構造体へのポインターです。NULL を指定できます。 pTypesList が指定されている場合、MatchProbe は WS-Discovery の照合ロジックを使用して、一覧内の型が pProbeMessage で指定された型と一致するかどうかを確認します。 |
| pScopesList | WSD_URI_LIST* | inoptional | 公開ホストがサポートする、一致対象のスコープの一覧を表す WSD_URI_LIST 構造体へのポインターです。この一覧には、文字列形式のハッシュ値が格納されます。NULL を指定できます。 pScopesList が指定されている場合、MatchProbe は WS-Discovery の照合ロジックを使用して、一覧内のスコープが pProbeMessage で指定されたスコープと一致するかどうかを確認します。 |
| pXAddrsList | WSD_URI_LIST* | inoptional | 公開ホストがサポートするトランスポートアドレスの一覧を表す WSD_URI_LIST 構造体へのポインターです。各トランスポートアドレスの文字列には、リモートホストが接続に使用できるアドレスとポート番号が含まれます。NULL を指定できます。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
次の条件のいずれか 1 つ以上に該当します。
|
|
| パブリッシャーが開始されていません。通知シンクをアタッチするとパブリッシャーが開始されます。シンクをアタッチするには、RegisterNotificationSink を呼び出してください。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
MatchProbe は、探索パブリッシャーが ProbeHandler コールバックを発行した場合にのみ呼び出してください。pProbeMessage と pMessageParameters は、コールバックから MatchProbe にそのまま渡されます。ProbeHandler は、指定された Probe メッセージが一致するかどうかをパブリッシャーが判定し、一致する場合に必要に応じて ProbeMatches 応答を発行するために必要な情報も渡します。
MatchProbe は、バインドされているすべてのアダプターで ProbeMatches メッセージを送信し、WS-Discovery で必要とされる場合はメッセージの再送信を自動的に行います。
Resolve メッセージが指定されたホストに一致するかどうかを判定し、一致する場合は WS-Discovery の ResolveMatches メッセージを送信します。
| pResolveMessage | WSD_SOAP_MESSAGE* | in | 通知シンクの ResolveHandler に渡された Resolve メッセージを表す WSD_SOAP_MESSAGE 構造体へのポインターです。 |
| pMessageParameters | IWSDMessageParameters* | in | 通知シンクの ResolveHandler に渡された送信パラメーターを表す IWSDMessageParameters オブジェクトへのポインターです。 |
| pszId | LPWSTR | in | デバイスの論理アドレスまたは物理アドレスです。これはデバイスのエンドポイントアドレスとして使用されます。論理アドレスは urn:uuid:{guid} の形式です。物理アドレスには、http または https を前置した URI、あるいは単に uri を前置した URI を指定できます。可能な限り論理アドレスを使用してください。 |
| ullMetadataVersion | ULONGLONG | in | 現在のメタデータのバージョンです。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullInstanceId | ULONGLONG | in | 公開されるデバイスの現在のインスタンスを示す識別子です。この識別子は、サービスが再起動されるたびにインクリメントする必要があります。インスタンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullMessageNumber | ULONGLONG | in | 現在のメッセージについて、インスタンス識別子のスコープ内で使用されるカウンターです。メッセージ番号は、メッセージごとにインクリメントする必要があります。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| pszSessionId | LPWSTR | inoptional | 現在のセッションについて、インスタンス識別子のスコープ内で一意となる識別子です。このパラメーターは、Probe メッセージの AppSequence ブロック内のシーケンス識別子に対応します。シーケンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 このパラメーターには NULL を指定できます。 |
| pTypesList | WSD_NAME_LIST* | inoptional | 公開ホストがサポートする型の一覧を表す WSD_NAME_LIST 構造体へのポインターです。NULL を指定できます。 pTypesList が指定されている場合、MatchResolve は WS-Discovery の照合ロジックを使用して、型が pResolveMessage で指定されたものと一致するかどうかを確認します。 |
| pScopesList | WSD_URI_LIST* | inoptional | 公開ホストがサポートする、一致対象のスコープの一覧を表す WSD_URI_LIST 構造体へのポインターです。この一覧には、文字列形式のハッシュ値が格納されます。NULL を指定できます。 pScopesList が指定されている場合、MatchResolve は WS-Discovery の照合ロジックを使用して、スコープが pResolveMessage で指定されたものと一致するかどうかを確認します。 |
| pXAddrsList | WSD_URI_LIST* | inoptional | 公開ホストがサポートするトランスポートアドレスの一覧を表す WSD_URI_LIST 構造体へのポインターです。各トランスポートアドレスの文字列には、リモートホストが接続に使用できるアドレスとポート番号が含まれます。pXAddrsList および pXAddrsList->Element に NULL を指定することはできません。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
次の条件のいずれか 1 つ以上に該当します。
|
|
| パブリッシャーが開始されていません。通知シンクをアタッチするとパブリッシャーが開始されます。シンクをアタッチするには、RegisterNotificationSink を呼び出してください。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
MatchResolve は、探索パブリッシャーが ResolveHandler コールバックを発行した場合にのみ呼び出してください。pResolveMessage と pMessageParameters は、コールバックから MatchResolve にそのまま渡されます。ResolveHandler は、指定された Resolve メッセージが一致するかどうかをパブリッシャーが判定し、一致する場合に必要に応じて ResolveMatches 応答を発行するために必要な情報も渡します。
MatchResolve は、バインドされているすべてのアダプターで ResolveMatches メッセージを送信し、WS-Discovery で必要とされる場合はメッセージの再送信を自動的に行います。
拡張情報を含む Hello メッセージを送信して、ネットワークホストの存在をアナウンスします。
| pszId | LPWSTR | in | デバイスの論理アドレスまたは物理アドレスです。これはデバイスのエンドポイントアドレスとして使用されます。論理アドレスは urn:uuid:{guid} の形式です。物理アドレスには、http または https を前置した URI、あるいは単に uri を前置した URI を指定できます。可能な限り論理アドレスを使用してください。 |
| ullMetadataVersion | ULONGLONG | in | 現在のメタデータのバージョンです。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullInstanceId | ULONGLONG | in | 公開されるデバイスの現在のインスタンスを示す識別子です。この識別子は、サービスが再起動されるたびにインクリメントする必要があります。インスタンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullMessageNumber | ULONGLONG | in | 現在のメッセージについて、インスタンス識別子のスコープ内で使用されるカウンターです。メッセージ番号は、メッセージごとにインクリメントする必要があります。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| pszSessionId | LPWSTR | inoptional | 現在のセッションについて、インスタンス識別子のスコープ内で一意となる識別子です。このパラメーターは、Probe メッセージの AppSequence ブロック内のシーケンス識別子に対応します。シーケンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 このパラメーターには NULL を指定できます。 |
| pTypesList | WSD_NAME_LIST* | inoptional | 公開ホストがサポートする型の一覧を表す WSD_NAME_LIST 構造体へのポインターです。NULL を指定できます。 |
| pScopesList | WSD_URI_LIST* | inoptional | 公開ホストがサポートする、一致対象のスコープの一覧を表す WSD_URI_LIST 構造体へのポインターです。この一覧には、文字列形式のハッシュ値が格納されます。NULL を指定できます。 |
| pXAddrsList | WSD_URI_LIST* | inoptional | 公開ホストがサポートするトランスポートアドレスの一覧を表す WSD_URI_LIST 構造体へのポインターです。各トランスポートアドレスの文字列には、リモートホストが接続に使用できるアドレスとポート番号が含まれます。NULL を指定できます。 |
| pHeaderAny | WSDXML_ELEMENT* | inoptional | ヘッダーの "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
| pReferenceParameterAny | WSDXML_ELEMENT* | inoptional | 参照パラメータープロパティの "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
| pPolicyAny | WSDXML_ELEMENT* | inoptional | 使用されません。 |
| pEndpointReferenceAny | WSDXML_ELEMENT* | inoptional | エンドポイントの "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
| pAny | WSDXML_ELEMENT* | inoptional | メッセージ本文の "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
次の条件のいずれか 1 つ以上に該当します。
|
|
|
登録された通知シンクがありません。シンクをアタッチするには、RegisterNotificationSink を呼び出してください。 |
| パブリッシャーが開始されていません。通知シンクをアタッチするとパブリッシャーが開始されます。シンクをアタッチするには、RegisterNotificationSink を呼び出してください。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
成功した場合、PublishEx は指定された情報を含む WS-Discovery の Hello メッセージをローカルサブネットに送信します。
WSDXML_ELEMENT 構造体を指すパラメーターを使用すると、送信される Hello メッセージの内容を独自の情報で拡張できます。
Probe メッセージが指定されたホストに一致するかどうかを判定し、一致する場合は拡張情報を含む WS-Discovery の ProbeMatches メッセージを送信します。
| pProbeMessage | WSD_SOAP_MESSAGE* | in | 通知シンクの ProbeHandler に渡された Probe メッセージを表す WSD_SOAP_MESSAGE 構造体へのポインターです。 |
| pMessageParameters | IWSDMessageParameters* | in | 通知シンクの ProbeHandler に渡された送信パラメーターを表す IWSDMessageParameters オブジェクトへのポインターです。 |
| pszId | LPWSTR | in | デバイスの論理アドレスまたは物理アドレスです。これはデバイスのエンドポイントアドレスとして使用されます。論理アドレスは urn:uuid:{guid} の形式です。物理アドレスには、http または https を前置した URI、あるいは単に uri を前置した URI を指定できます。可能な限り論理アドレスを使用してください。 |
| ullMetadataVersion | ULONGLONG | in | 現在のメタデータのバージョンです。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullInstanceId | ULONGLONG | in | 公開されるデバイスの現在のインスタンスを示す識別子です。この識別子は、サービスが再起動されるたびにインクリメントする必要があります。インスタンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullMessageNumber | ULONGLONG | in | 現在のメッセージについて、インスタンス識別子のスコープ内で使用されるカウンターです。メッセージ番号は、メッセージごとにインクリメントする必要があります。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| pszSessionId | LPWSTR | inoptional | 現在のセッションについて、インスタンス識別子のスコープ内で一意となる識別子です。このパラメーターは、Probe メッセージの AppSequence ブロック内のシーケンス識別子に対応します。シーケンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 このパラメーターには NULL を指定できます。 |
| pTypesList | WSD_NAME_LIST* | inoptional | 公開ホストがサポートする型の一覧を表す WSD_NAME_LIST 構造体へのポインターです。NULL を指定できます。 pTypesList が指定されている場合、MatchProbe は WS-Discovery の照合ロジックを使用して、一覧内の型が pProbeMessage で指定された型と一致するかどうかを確認します。 |
| pScopesList | WSD_URI_LIST* | inoptional | 公開ホストがサポートする、一致対象のスコープの一覧を表す WSD_URI_LIST 構造体へのポインターです。この一覧には、文字列形式のハッシュ値が格納されます。NULL を指定できます。 pScopesList が指定されている場合、MatchProbe は WS-Discovery の照合ロジックを使用して、一覧内のスコープが pProbeMessage で指定されたスコープと一致するかどうかを確認します。 |
| pXAddrsList | WSD_URI_LIST* | inoptional | 公開ホストがサポートするトランスポートアドレスの一覧を表す WSD_URI_LIST 構造体へのポインターです。各トランスポートアドレスの文字列には、リモートホストが接続に使用できるアドレスとポート番号が含まれます。NULL を指定できます。 |
| pHeaderAny | WSDXML_ELEMENT* | inoptional | ヘッダーの "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
| pReferenceParameterAny | WSDXML_ELEMENT* | inoptional | 参照パラメータープロパティの "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
| pPolicyAny | WSDXML_ELEMENT* | inoptional | 使用されません。 |
| pEndpointReferenceAny | WSDXML_ELEMENT* | inoptional | エンドポイントの "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
| pAny | WSDXML_ELEMENT* | inoptional | メッセージ本文の "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
次の条件のいずれか 1 つ以上に該当します。
|
|
| パブリッシャーが開始されていません。通知シンクをアタッチするとパブリッシャーが開始されます。シンクをアタッチするには、RegisterNotificationSink を呼び出してください。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
MatchProbeEx は、探索パブリッシャーが ProbeHandler コールバックを発行した場合にのみ呼び出してください。pProbeMessage と pMessageParameters は、コールバックから MatchProbeEx にそのまま渡されます。ProbeHandler は、指定された Probe メッセージが一致するかどうかをパブリッシャーが判定し、一致する場合に必要に応じて ProbeMatches 応答を発行するために必要な情報も渡します。
MatchProbeEx は、バインドされているすべてのアダプターで ProbeMatches メッセージを送信し、WS-Discovery で必要とされる場合はメッセージの再送信を自動的に行います。
WSDXML_ELEMENT 構造体を指すパラメーターを使用すると、送信される ProbeMatches メッセージの内容を独自の情報で拡張できます。
Resolve メッセージが指定されたホストに一致するかどうかを判定し、一致する場合は拡張情報を含む WS-Discovery の ResolveMatches メッセージを送信します。
| pResolveMessage | WSD_SOAP_MESSAGE* | in | 通知シンクの ResolveHandler に渡された Resolve メッセージを表す WSD_SOAP_MESSAGE 構造体へのポインターです。 |
| pMessageParameters | IWSDMessageParameters* | in | 通知シンクの ResolveHandler に渡された送信パラメーターを表す IWSDMessageParameters オブジェクトへのポインターです。 |
| pszId | LPWSTR | in | デバイスの論理アドレスまたは物理アドレスです。これはデバイスのエンドポイントアドレスとして使用されます。論理アドレスは urn:uuid:{guid} の形式です。物理アドレスには、http または https を前置した URI、あるいは単に uri を前置した URI を指定できます。可能な限り論理アドレスを使用してください。 |
| ullMetadataVersion | ULONGLONG | in | 現在のメタデータのバージョンです。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullInstanceId | ULONGLONG | in | 公開されるデバイスの現在のインスタンスを示す識別子です。この識別子は、サービスが再起動されるたびにインクリメントする必要があります。インスタンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| ullMessageNumber | ULONGLONG | in | 現在のメッセージについて、インスタンス識別子のスコープ内で使用されるカウンターです。メッセージ番号は、メッセージごとにインクリメントする必要があります。 メモ WS-Discovery 仕様との互換性のため、この値は UINT_MAX (4294967295) 以下である必要があります。
|
| pszSessionId | LPWSTR | inoptional | 現在のセッションについて、インスタンス識別子のスコープ内で一意となる識別子です。このパラメーターは、Probe メッセージの AppSequence ブロック内のシーケンス識別子に対応します。シーケンス識別子の詳細については、WS-Discovery 仕様の付録 I を参照してください。 このパラメーターには NULL を指定できます。 |
| pTypesList | WSD_NAME_LIST* | inoptional | 公開ホストがサポートする型の一覧を表す WSD_NAME_LIST 構造体へのポインターです。NULL を指定できます。 pTypesList が指定されている場合、MatchResolveEx は WS-Discovery の照合ロジックを使用して、型が pResolveMessage で指定されたものと一致するかどうかを確認します。 |
| pScopesList | WSD_URI_LIST* | inoptional | 公開ホストがサポートする、一致対象のスコープの一覧を表す WSD_URI_LIST 構造体へのポインターです。この一覧には、文字列形式のハッシュ値が格納されます。NULL を指定できます。 pScopesList が指定されている場合、MatchResolveEx は WS-Discovery の照合ロジックを使用して、スコープが pResolveMessage で指定されたものと一致するかどうかを確認します。 |
| pXAddrsList | WSD_URI_LIST* | inoptional | 公開ホストがサポートするトランスポートアドレスの一覧を表す WSD_URI_LIST 構造体へのポインターです。各トランスポートアドレスの文字列には、リモートホストが接続に使用できるアドレスとポート番号が含まれます。pXAddrsList および pXAddrsList->Element に NULL を指定することはできません。 |
| pHeaderAny | WSDXML_ELEMENT* | inoptional | ヘッダーの "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
| pReferenceParameterAny | WSDXML_ELEMENT* | inoptional | 参照パラメータープロパティの "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
| pPolicyAny | WSDXML_ELEMENT* | inoptional | 使用されません。 |
| pEndpointReferenceAny | WSDXML_ELEMENT* | inoptional | エンドポイントの "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
| pAny | WSDXML_ELEMENT* | inoptional | メッセージ本文の "ANY" セクションに挿入する XML 要素を格納する WSDXML_ELEMENT 構造体へのポインターです。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
次の条件のいずれか 1 つ以上に該当します。
|
|
| パブリッシャーが開始されていません。通知シンクをアタッチするとパブリッシャーが開始されます。シンクをアタッチするには、RegisterNotificationSink を呼び出してください。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
MatchResolveEx は、探索パブリッシャーが ResolveHandler コールバックを発行した場合にのみ呼び出してください。pResolveMessage と pMessageParameters は、コールバックから MatchResolveEx にそのまま渡されます。ResolveHandler は、指定された Resolve メッセージが一致するかどうかをパブリッシャーが判定し、一致する場合に必要に応じて ResolveMatches 応答を発行するために必要な情報も渡します。
MatchResolveEx は、バインドされているすべてのアダプターで ResolveMatches メッセージを送信し、WS-Discovery で必要とされる場合はメッセージの再送信を自動的に行います。
WSDXML_ELEMENT 構造体を指すパラメーターを使用すると、送信される ResolveMatches メッセージの内容を独自の情報で拡張できます。
カスタムのスコープ照合ルールのサポートを追加します。
| pScopeMatchingRule | IWSDScopeMatchingRule* | in | カスタムのスコープ照合ルールを表す IWSDScopeMatchingRule オブジェクトへのポインターです。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| pScopeMatchingRule が NULL です。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
RegisterScopeMatchingRule を使用すると、独自のスコープ照合ルールを定義し、WS-Discovery 仕様で定義されている既存のルールセットに追加できます。
カスタムのスコープ照合ルールのサポートを削除します。
| pScopeMatchingRule | IWSDScopeMatchingRule* | in | カスタムのスコープ照合ルールを表す IWSDScopeMatchingRule オブジェクトへのポインターです。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| pScopeMatchingRule が NULL です。 |
解説(Remarks)
UnRegisterScopeMatchingRule は、以前に関連付けられたカスタムのスコープ照合ルールを削除します。
デバイスに関連付けられた XML コンテキストを取得します。
| ppContext | IWSDXMLContext** | out | XML コンテキストを表す IWSDXMLContext オブジェクトへのポインターを受け取るポインターです。 |
戻り値
戻り値には、次のものが含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| ppContext が NULL です。 | |
| パブリッシャーが開始されていません。通知シンクをアタッチするとパブリッシャーが開始されます。シンクをアタッチするには、RegisterNotificationSink を呼び出してください。 |
解説(Remarks)
トランザクションの XML 状態に対する省略可能なコンテキストを返します。サービスレイヤーを使用する場合は、XML の名前空間と型を登録したコンテキストである必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWSDiscoveryPublisher "{AE01E1A8-3FF9-4148-8116-057CC616FE13}" #usecom global IWSDiscoveryPublisher IID_IWSDiscoveryPublisher "{}" #comfunc global IWSDiscoveryPublisher_SetAddressFamily 3 int #comfunc global IWSDiscoveryPublisher_RegisterNotificationSink 4 sptr #comfunc global IWSDiscoveryPublisher_UnRegisterNotificationSink 5 sptr #comfunc global IWSDiscoveryPublisher_Publish 6 wstr,int64,int64,int64,wstr,var,var,var #comfunc global IWSDiscoveryPublisher_UnPublish 7 wstr,int64,int64,wstr,var #comfunc global IWSDiscoveryPublisher_MatchProbe 8 var,sptr,wstr,int64,int64,int64,wstr,var,var,var #comfunc global IWSDiscoveryPublisher_MatchResolve 9 var,sptr,wstr,int64,int64,int64,wstr,var,var,var #comfunc global IWSDiscoveryPublisher_PublishEx 10 wstr,int64,int64,int64,wstr,var,var,var,var,var,var,var,var #comfunc global IWSDiscoveryPublisher_MatchProbeEx 11 var,sptr,wstr,int64,int64,int64,wstr,var,var,var,var,var,var,var,var #comfunc global IWSDiscoveryPublisher_MatchResolveEx 12 var,sptr,wstr,int64,int64,int64,wstr,var,var,var,var,var,var,var,var #comfunc global IWSDiscoveryPublisher_RegisterScopeMatchingRule 13 sptr #comfunc global IWSDiscoveryPublisher_UnRegisterScopeMatchingRule 14 sptr #comfunc global IWSDiscoveryPublisher_GetXMLContext 15 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWSDiscoveryPublisher "{AE01E1A8-3FF9-4148-8116-057CC616FE13}" #usecom global IWSDiscoveryPublisher IID_IWSDiscoveryPublisher "{}" #comfunc global IWSDiscoveryPublisher_SetAddressFamily 3 int #comfunc global IWSDiscoveryPublisher_RegisterNotificationSink 4 sptr #comfunc global IWSDiscoveryPublisher_UnRegisterNotificationSink 5 sptr #comfunc global IWSDiscoveryPublisher_Publish 6 wstr,int64,int64,int64,wstr,sptr,sptr,sptr #comfunc global IWSDiscoveryPublisher_UnPublish 7 wstr,int64,int64,wstr,sptr #comfunc global IWSDiscoveryPublisher_MatchProbe 8 sptr,sptr,wstr,int64,int64,int64,wstr,sptr,sptr,sptr #comfunc global IWSDiscoveryPublisher_MatchResolve 9 sptr,sptr,wstr,int64,int64,int64,wstr,sptr,sptr,sptr #comfunc global IWSDiscoveryPublisher_PublishEx 10 wstr,int64,int64,int64,wstr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IWSDiscoveryPublisher_MatchProbeEx 11 sptr,sptr,wstr,int64,int64,int64,wstr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IWSDiscoveryPublisher_MatchResolveEx 12 sptr,sptr,wstr,int64,int64,int64,wstr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IWSDiscoveryPublisher_RegisterScopeMatchingRule 13 sptr #comfunc global IWSDiscoveryPublisher_UnRegisterScopeMatchingRule 14 sptr #comfunc global IWSDiscoveryPublisher_GetXMLContext 15 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。