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

IWSDTransportAddress

COM
IID70d23498-4ee6-4340-a3df-d845d2235467継承元IWSDAddress自前メソッド開始 vtbl5

公式ドキュメント

IP ベースのトランスポートアドレスを表します。

メソッド 5

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

vtbl 5 HRESULT GetPort(WORD* pwPort)

このトランスポートアドレスに関連付けられた IP ポート番号を取得します。

pwPortWORD*outアドレスオブジェクトに関連付けられたポート番号。

戻り値

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

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
pwPortNULL です。
vtbl 6 HRESULT SetPort(WORD wPort)

このトランスポートアドレスに対して IP ポート番号のみを設定します。

wPortWORDinアドレスオブジェクトの IP ポート番号。

戻り値

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
vtbl 7 HRESULT GetTransportAddress(LPWSTR* ppszAddress)

アドレスオブジェクトの文字列表現へのポインターを取得します。(IWSDTransportAddress.GetTransportAddress)

ppszAddressLPWSTR*outアドレスオブジェクトの文字列表現。このポインターは解放しないでください。

戻り値

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

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
ppszAddressNULL です。
S_FALSE
トランスポートアドレスがまだ設定されていません。トランスポートアドレスを設定するには、NULL 以外のアドレスを指定して SetTransportAddress を呼び出してください。

解説(Remarks)

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

vtbl 8 HRESULT GetTransportAddressEx(BOOL fSafe, LPWSTR* ppszAddress)

アドレスオブジェクトの文字列表現へのポインターを取得します。(IWSDTransportAddress.GetTransportAddressEx)

fSafeBOOLin

IPv6 アドレスのスコープ識別子を、返される ppszAddress 文字列に含めるかどうかを指定します。たとえば、アドレスオブジェクトが IPv6 リンクローカルアドレスを表しており、fSafeFALSE の場合、返される ppszAddress 文字列に IPv6 スコープ識別子が含まれます。

アドレスオブジェクトが IPv4 アドレスまたはホスト名を表す場合、このパラメーターは無視されます。

ppszAddressLPWSTR*outアドレスオブジェクトの文字列表現。このポインターは解放しないでください。

戻り値

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

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
ppszAddressNULL です。
S_FALSE
トランスポートアドレスがまだ設定されていません。トランスポートアドレスを設定するには、NULL 以外のアドレスを指定して SetTransportAddress を呼び出してください。

解説(Remarks)

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

vtbl 9 HRESULT SetTransportAddress(LPWSTR pszAddress)

トランスポートアドレスの文字列表現を設定します。

pszAddressLPWSTRinoptionalトランスポートアドレスの文字列表現。

戻り値

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

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_INVALIDARG
ppszAddress が指すアドレス文字列の文字数が WSD_MAX_TEXT_LENGTH (8192) を超えている、ppszAddressNULL である、または ppszAddress の形式が認識されませんでした。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWSDTransportAddress "{70D23498-4EE6-4340-A3DF-D845D2235467}"
#usecom global IWSDTransportAddress IID_IWSDTransportAddress "{}"
#comfunc global IWSDTransportAddress_GetPort                5 var
#comfunc global IWSDTransportAddress_SetPort                6 int
#comfunc global IWSDTransportAddress_GetTransportAddress    7 var
#comfunc global IWSDTransportAddress_GetTransportAddressEx  8 int,var
#comfunc global IWSDTransportAddress_SetTransportAddress    9 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。