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

IMcastLeaseInfo

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDdf0daefd-a289-11d1-8697-006008b0e5d2継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

IMcastLeaseInfo インターフェイスは、マルチキャストアドレスの割り当てに関する情報を取得または設定できるメソッドを公開します。IMcastLease オブジェクトは、IMcastAddressAllocation::CreateLeaseInfo を呼び出すことで作成されます。

メソッド 10

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_RequestID(LPWSTR* ppRequestID)

get_RequestID メソッドは、リースの要求 ID を取得します。

ppRequestIDLPWSTR*outこのリースの要求 ID を受け取る BSTR へのポインター。要求 ID は、このリース要求をサーバーに対して一意に識別します。

戻り値

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

リターンコード 説明
S_OK
メソッドが成功しました。
S_FAIL
リース情報オブジェクトに無効な要求 ID が含まれています。
E_POINTER
呼び出し元が無効なポインター引数を渡しました。
E_OUTOFMEMORY
BSTR を割り当てるのに十分なメモリがありません。

解説(Remarks)

アプリケーションは、ppRequestID パラメーターに割り当てられたメモリを解放するために SysFreeString を使用する必要があります。

この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。

vtbl 8 HRESULT get_LeaseStartTime(DOUBLE* pTime)

get_LeaseStartTime メソッドは、リースの開始時刻を取得します。

pTimeDOUBLE*outリースの開始時刻を受け取る DATE へのポインター。

戻り値

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

リターンコード 説明
S_OK
メソッドが成功しました。
E_POINTER
呼び出し元が無効なポインター引数を渡しました。
E_INVALIDARG
開始時刻または終了時刻の書式変換に失敗しました。

解説(Remarks)

この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。

vtbl 9 HRESULT put_LeaseStartTime(DOUBLE time)

put_LeaseStartTime メソッドは、リースの開始時刻を設定します。このメソッドは、put_LeaseStopTime と組み合わせることで、IMcastAddressAllocation::CreateLeaseInfo を呼び出すことなくリースを更新できます。

timeDOUBLEinリースの開始時刻を指定する DATE

戻り値

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

リターンコード 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
開始時刻または終了時刻の書式変換に失敗しました。

解説(Remarks)

この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。

vtbl 10 HRESULT get_LeaseStopTime(DOUBLE* pTime)

get_LeaseStopTime メソッドは、リースの終了時刻を取得します。

pTimeDOUBLE*outリースの終了時刻を受け取る DATE へのポインター。

戻り値

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

リターンコード 説明
S_OK
メソッドが成功しました。
E_POINTER
呼び出し元が無効なポインター引数を渡しました。
E_INVALIDARG
開始時刻または終了時刻の書式変換に失敗しました。

解説(Remarks)

この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。

vtbl 11 HRESULT put_LeaseStopTime(DOUBLE time)

put_LeaseStopTime メソッドは、リースの終了時刻を設定します。このメソッドは、put_LeaseStartTime と組み合わせることで、IMcastAddressAllocation::CreateLeaseInfo を呼び出すことなくリースを更新できます。

timeDOUBLEinリースの終了時刻を指定する DATE

戻り値

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

リターンコード 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
開始時刻または終了時刻の書式変換に失敗しました。

解説(Remarks)

この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。

vtbl 12 HRESULT get_AddressCount(INT* pCount)

get_AddressCount メソッドは、このリースで要求または付与されたアドレスの数を取得します。

pCountINT*outこのリースで要求または付与されたアドレスの数を受け取る LONG へのポインター。

戻り値

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

リターンコード 説明
S_OK
メソッドが成功しました。
E_POINTER
呼び出し元が無効なポインター引数を渡しました。

解説(Remarks)

この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。

vtbl 13 HRESULT get_ServerAddress(LPWSTR* ppAddress)

get_ServerAddress メソッドは、このリースを付与するマルチキャストサーバーのアドレスを表す文字列を取得します。

ppAddressLPWSTR*outこの要求または更新を付与するサーバーのアドレスの文字列表現を受け取る BSTR へのポインター。

戻り値

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

リターンコード 説明
S_OK
メソッドが成功しました。
S_FALSE
サーバーアドレスが指定されていません。
E_POINTER
呼び出し元が無効なポインター引数を渡しました。
E_OUTOFMEMORY
文字列を割り当てるのに十分なメモリがありません。

解説(Remarks)

BSTR 文字列 ppAddress は、ドット区切りの 4 組表記による IP バージョン 4 アドレスです (例: 10.111.222.111)。リース情報オブジェクトが付与済みのリースを表していない場合 (たとえば、 IMcastAddressAllocation::RequestAddress または IMcastAddressAllocation::RenewAddress によって返されたものではない場合)、アドレスは文字列 "Unspecified" として報告されます。

アプリケーションは、ppAddress パラメーターに割り当てられたメモリを解放するために SysFreeString を使用する必要があります。

この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。

vtbl 14 HRESULT get_TTL(INT* pTTL)

get_TTL メソッドは、このリースに関連付けられた TTL (Time To Live) 値を取得します。

pTTLINT*outこのリースに関連付けられた TTL 値を受け取る LONG へのポインター。

戻り値

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

説明
S_OK
メソッドが成功しました。
E_POINTER
呼び出し元が無効なポインター引数を渡しました。
E_FAIL
このリースに関連付けられた TTL はありません。

解説(Remarks)

TTL は、マルチキャストルーティングの実装において多かれ少なかれ重要な意味を持ちます。一般に、TTL 値が大きいほど、マルチキャストスコープは "広く"、より包括的になります。ほとんどのアプリケーションでは、TTL を扱う必要はありません。

この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。

vtbl 15 HRESULT get_Addresses(VARIANT* pVariant)

get_Addresses メソッドは、このリースまたはリース要求の対象であるマルチキャストアドレスのコレクションを取得します。このメソッドは主に Visual Basic やその他のスクリプト言語向けです。C++ プログラマーは代わりに EnumerateAddresses を使用します。

pVariantVARIANT*outBSTR 文字列の ITCollection を受け取る VARIANT へのポインター。各文字列は、ドット区切りの 4 組表記による IP バージョン 4 アドレスです (例: 10.111.222.111)。

戻り値

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

説明
S_OK
メソッドが成功しました。
E_POINTER
呼び出し元が無効なポインター引数を渡しました。
E_OUTOFMEMORY
コレクションを割り当てるのに十分なメモリがありません。

解説(Remarks)

各アドレスは、ドット区切りの 4 組表記で BSTR として表される IP バージョン 4 アドレスです (例: 10.111.222.111)。

TAPI は、IMcastLeaseInfo::get_Addresses によって返される ITAddress インターフェイスに対して AddRef メソッドを呼び出します。アプリケーションは、 ITAddress インターフェイスに関連付けられたリソースを解放するために、このインターフェイスに対して Release を呼び出す必要があります。

この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。

vtbl 16 HRESULT EnumerateAddresses(IEnumBstr** ppEnumAddresses)

EnumerateAddresses メソッドは、このリースまたはリース要求の対象であるマルチキャストアドレスのコレクションを取得します。このメソッドは主に C++ プログラマー向けです。Visual Basic やその他のスクリプト言語は代わりに get_Addresses を使用します。

ppEnumAddressesIEnumBstr**out新しい IEnumBstr オブジェクトへのポインターを返します。 IEnumBstr は、BSTR 文字列を列挙する標準の列挙子インターフェイスです。各文字列は、ドット区切りの 4 組表記による IP バージョン 4 アドレスです (例: 10.111.222.111)。

戻り値

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

説明
S_OK
メソッドが成功しました。
E_POINTER
呼び出し元が無効なポインター引数を渡しました。
E_OUTOFMEMORY
列挙子を割り当てるのに十分なメモリがありません。

解説(Remarks)

TAPI は、IMcastLeaseInfo::EnumerateAddresses によって返される IEnumBstr インターフェイスに対して AddRef メソッドを呼び出します。アプリケーションは、 IEnumBstr インターフェイスに関連付けられたリソースを解放するために、このインターフェイスに対して Release を呼び出す必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IMcastLeaseInfo "{DF0DAEFD-A289-11D1-8697-006008B0E5D2}"
#usecom global IMcastLeaseInfo IID_IMcastLeaseInfo "{}"
#comfunc global IMcastLeaseInfo_get_RequestID       7 var
#comfunc global IMcastLeaseInfo_get_LeaseStartTime  8 var
#comfunc global IMcastLeaseInfo_put_LeaseStartTime  9 double
#comfunc global IMcastLeaseInfo_get_LeaseStopTime   10 var
#comfunc global IMcastLeaseInfo_put_LeaseStopTime   11 double
#comfunc global IMcastLeaseInfo_get_AddressCount    12 var
#comfunc global IMcastLeaseInfo_get_ServerAddress   13 var
#comfunc global IMcastLeaseInfo_get_TTL             14 var
#comfunc global IMcastLeaseInfo_get_Addresses       15 var
#comfunc global IMcastLeaseInfo_EnumerateAddresses  16 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。