IMcastLeaseInfo
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IMcastLeaseInfo インターフェイスは、マルチキャストアドレスの割り当てに関する情報を取得または設定できるメソッドを公開します。IMcastLease オブジェクトは、IMcastAddressAllocation::CreateLeaseInfo を呼び出すことで作成されます。
メソッド 10
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
get_RequestID メソッドは、リースの要求 ID を取得します。
| ppRequestID | LPWSTR* | out | このリースの要求 ID を受け取る BSTR へのポインター。要求 ID は、このリース要求をサーバーに対して一意に識別します。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
リース情報オブジェクトに無効な要求 ID が含まれています。 |
| 呼び出し元が無効なポインター引数を渡しました。 | |
| BSTR を割り当てるのに十分なメモリがありません。 |
解説(Remarks)
アプリケーションは、ppRequestID パラメーターに割り当てられたメモリを解放するために SysFreeString を使用する必要があります。
この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。
get_LeaseStartTime メソッドは、リースの開始時刻を取得します。
| pTime | DOUBLE* | out | リースの開始時刻を受け取る DATE へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 | |
| 呼び出し元が無効なポインター引数を渡しました。 | |
| 開始時刻または終了時刻の書式変換に失敗しました。 |
解説(Remarks)
この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。
put_LeaseStartTime メソッドは、リースの開始時刻を設定します。このメソッドは、put_LeaseStopTime と組み合わせることで、IMcastAddressAllocation::CreateLeaseInfo を呼び出すことなくリースを更新できます。
| time | DOUBLE | in | リースの開始時刻を指定する DATE。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 | |
| 開始時刻または終了時刻の書式変換に失敗しました。 |
解説(Remarks)
この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。
get_LeaseStopTime メソッドは、リースの終了時刻を取得します。
| pTime | DOUBLE* | out | リースの終了時刻を受け取る DATE へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 | |
| 呼び出し元が無効なポインター引数を渡しました。 | |
| 開始時刻または終了時刻の書式変換に失敗しました。 |
解説(Remarks)
この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。
put_LeaseStopTime メソッドは、リースの終了時刻を設定します。このメソッドは、put_LeaseStartTime と組み合わせることで、IMcastAddressAllocation::CreateLeaseInfo を呼び出すことなくリースを更新できます。
| time | DOUBLE | in | リースの終了時刻を指定する DATE。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 | |
| 開始時刻または終了時刻の書式変換に失敗しました。 |
解説(Remarks)
この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。
get_AddressCount メソッドは、このリースで要求または付与されたアドレスの数を取得します。
| pCount | INT* | out | このリースで要求または付与されたアドレスの数を受け取る LONG へのポインター。 |
戻り値
解説(Remarks)
この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。
get_ServerAddress メソッドは、このリースを付与するマルチキャストサーバーのアドレスを表す文字列を取得します。
| ppAddress | LPWSTR* | out | この要求または更新を付与するサーバーのアドレスの文字列表現を受け取る BSTR へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドが成功しました。 | |
| サーバーアドレスが指定されていません。 | |
| 呼び出し元が無効なポインター引数を渡しました。 | |
| 文字列を割り当てるのに十分なメモリがありません。 |
解説(Remarks)
BSTR 文字列 ppAddress は、ドット区切りの 4 組表記による IP バージョン 4 アドレスです (例: 10.111.222.111)。リース情報オブジェクトが付与済みのリースを表していない場合 (たとえば、 IMcastAddressAllocation::RequestAddress または IMcastAddressAllocation::RenewAddress によって返されたものではない場合)、アドレスは文字列 "Unspecified" として報告されます。
アプリケーションは、ppAddress パラメーターに割り当てられたメモリを解放するために SysFreeString を使用する必要があります。
この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。
get_TTL メソッドは、このリースに関連付けられた TTL (Time To Live) 値を取得します。
| pTTL | INT* | out | このリースに関連付けられた TTL 値を受け取る LONG へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| 呼び出し元が無効なポインター引数を渡しました。 | |
| このリースに関連付けられた TTL はありません。 |
解説(Remarks)
TTL は、マルチキャストルーティングの実装において多かれ少なかれ重要な意味を持ちます。一般に、TTL 値が大きいほど、マルチキャストスコープは "広く"、より包括的になります。ほとんどのアプリケーションでは、TTL を扱う必要はありません。
この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。
get_Addresses メソッドは、このリースまたはリース要求の対象であるマルチキャストアドレスのコレクションを取得します。このメソッドは主に Visual Basic やその他のスクリプト言語向けです。C++ プログラマーは代わりに EnumerateAddresses を使用します。
| pVariant | VARIANT* | out | BSTR 文字列の ITCollection を受け取る VARIANT へのポインター。各文字列は、ドット区切りの 4 組表記による IP バージョン 4 アドレスです (例: 10.111.222.111)。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| 呼び出し元が無効なポインター引数を渡しました。 | |
| コレクションを割り当てるのに十分なメモリがありません。 |
解説(Remarks)
各アドレスは、ドット区切りの 4 組表記で BSTR として表される IP バージョン 4 アドレスです (例: 10.111.222.111)。
TAPI は、IMcastLeaseInfo::get_Addresses によって返される ITAddress インターフェイスに対して AddRef メソッドを呼び出します。アプリケーションは、 ITAddress インターフェイスに関連付けられたリソースを解放するために、このインターフェイスに対して Release を呼び出す必要があります。
この関数は、データを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がそのデータを読み取ることができる可能性があります。このメソッドを使用する前に、データをクリアテキストで送信することのセキュリティリスクを考慮する必要があります。
EnumerateAddresses メソッドは、このリースまたはリース要求の対象であるマルチキャストアドレスのコレクションを取得します。このメソッドは主に C++ プログラマー向けです。Visual Basic やその他のスクリプト言語は代わりに get_Addresses を使用します。
| ppEnumAddresses | IEnumBstr** | out | 新しい IEnumBstr オブジェクトへのポインターを返します。 IEnumBstr は、BSTR 文字列を列挙する標準の列挙子インターフェイスです。各文字列は、ドット区切りの 4 組表記による IP バージョン 4 アドレスです (例: 10.111.222.111)。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| 呼び出し元が無効なポインター引数を渡しました。 | |
| 列挙子を割り当てるのに十分なメモリがありません。 |
解説(Remarks)
TAPI は、IMcastLeaseInfo::EnumerateAddresses によって返される IEnumBstr インターフェイスに対して AddRef メソッドを呼び出します。アプリケーションは、 IEnumBstr インターフェイスに関連付けられたリソースを解放するために、このインターフェイスに対して Release を呼び出す必要があります。
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 不要)。#define global IID_IMcastLeaseInfo "{DF0DAEFD-A289-11D1-8697-006008B0E5D2}" #usecom global IMcastLeaseInfo IID_IMcastLeaseInfo "{}" #comfunc global IMcastLeaseInfo_get_RequestID 7 sptr #comfunc global IMcastLeaseInfo_get_LeaseStartTime 8 sptr #comfunc global IMcastLeaseInfo_put_LeaseStartTime 9 double #comfunc global IMcastLeaseInfo_get_LeaseStopTime 10 sptr #comfunc global IMcastLeaseInfo_put_LeaseStopTime 11 double #comfunc global IMcastLeaseInfo_get_AddressCount 12 sptr #comfunc global IMcastLeaseInfo_get_ServerAddress 13 sptr #comfunc global IMcastLeaseInfo_get_TTL 14 sptr #comfunc global IMcastLeaseInfo_get_Addresses 15 sptr #comfunc global IMcastLeaseInfo_EnumerateAddresses 16 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。