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

IWSDAddress

COM
IIDb9574c6c-12a6-4f74-93a1-3318ff605759継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

トランスポートアドレスの各構成要素へのアクセスを提供します。

メソッド 2

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

vtbl 3 HRESULT Serialize(LPWSTR pszBuffer, DWORD cchLength, BOOL fSafe)

アドレスの構成要素を組み立てて文字列にします。

pszBufferLPWSTRout組み立てられたアドレスを受け取るバッファー。
cchLengthDWORDinpszBuffer の長さ (バイト単位)。
fSafeBOOLinTRUE の場合、生成される文字列はネットワークセーフになります。たとえば、IWSDTransportAddress を使用して IPv6 アドレスを構築した場合、シリアル化された文字列には IPv6 スコープ識別子が含まれません。一方、fSafeFALSE の場合は、生成される文字列に IPv6 スコープ識別子が含まれます。その他の IWSDAddress 派生オブジェクトでは、このパラメーターに特別な意味はありません (移植可能なアドレスを生成することを保証する以外の意味はありません)。

戻り値

戻り値には次のものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
pszBufferNULL です。
E_ABORT
メソッドを完了できませんでした。
vtbl 4 HRESULT Deserialize(LPWSTR pszBuffer)

アドレスを解析し、その構成要素を検証してオブジェクトに保存します。

pszBufferLPWSTRinオブジェクトに保存するアドレス。

戻り値

戻り値には次のものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_INVALIDARG
pszBufferNULL であるか、その文字数が WSD_MAX_TEXT_LENGTH (8192) を超えているか、有効な形式のアドレスが含まれていません。
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_IWSDAddress "{B9574C6C-12A6-4F74-93A1-3318FF605759}"
#usecom global IWSDAddress IID_IWSDAddress "{}"
#comfunc global IWSDAddress_Serialize    3 var,int,int
#comfunc global IWSDAddress_Deserialize  4 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。