IISDB_NBIT
COM公式ドキュメント
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)から情報を取得するメソッドを実装します。NBITは、ISDB放送の多重化されたトランスポートストリームに含まれる番組を記述します。
メソッド 15
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)から取り込んだテーブルセクションデータを使用して、オブジェクトを初期化します。
| pSectionList | ISectionList* | in | セクションデータを格納するSectionListオブジェクトのISectionListインターフェイスへのポインター。 |
| pMPEGData | IMpeg2Data* | in | MPEG-2 Sections and TablesフィルターのIMpeg2Dataインターフェイスへのポインター。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster Information Table)内のサブテーブルのバージョン番号を取得します。
| pbVal | BYTE* | out | バージョン番号を受け取ります。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)から、MPEG-2トランスポートストリームを発信した放送事業者を識別する識別子を取得します。
| pwVal | WORD* | out | original network IDを受け取ります。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)内のレコード数を取得します。
| pdwVal | DWORD* | out | レコード数を受け取ります。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)。
| dwRecordIndex | DWORD | in | レコード番号を0から始まるインデックスで指定します。 NBIT内のレコード数を取得するには、IISDB_NBIT::GetCountOfRecordsメソッドを呼び出します。 |
| pwVal | WORD* | out | レコードのinformation_typeフィールドを受け取ります。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)内のレコードからinformation_typeフィールドを取得します。
| dwRecordIndex | DWORD | in | レコード番号を0から始まるインデックスで指定します。 NBIT内のレコード数を取得するには、IISDB_NBIT::GetCountOfRecordsメソッドを呼び出します。 | ||||||||||||
| pbVal | BYTE* | out | information_typeフィールドを受け取ります。このフィールドには次のいずれかの値を格納できます。
|
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)内のレコードから、description_body_locationフィールドの値を受け取ります。
| dwRecordIndex | DWORD | in | NBIT内で記述子を含むレコードのインデックス。 | ||||||||||
| pbVal | BYTE* | out | 記述子の位置を示す2ビットのコードを受け取ります。次のいずれかの値になります。
|
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)内のレコードからsection_numberフィールドを取得します。
| dwRecordIndex | DWORD | in | レコード番号を0から始まるインデックスで指定します。 NBIT内のレコード数を取得するには、IISDB_NBIT::GetCountOfRecordsメソッドを呼び出します。 |
| pbVal | BYTE* | out | NBITレコードからsection_numberフィールドの値を取得します。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)からuser_definedフィールドを取得します。
| dwRecordIndex | DWORD | in | user-definedフィールドを含むレコードを0から始まるインデックスで指定します。 NBIT内のレコード数を取得するには、IISDB_NBIT::GetCountOfRecords メソッドを呼び出します。 |
| pbVal | BYTE* | out | user_definedフィールドの値を受け取ります。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)内のセクションについて、number_of_keysフィールドの値を返します。
| dwRecordIndex | DWORD | in | レコード番号を0から始まるインデックスで指定します。NBIT内のレコード数を取得するには、IISDB_NBIT::GetCountOfRecordsメソッドを呼び出します。 |
| pbVal | BYTE* | out | number_of_keysフィールドの値を受け取ります。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)内のレコードからnumber_of_keysフィールドを取得します。
| dwRecordIndex | DWORD | in | レコード番号を0から始まるインデックスで指定します。 NBIT内のレコード数を取得するには、IISDB_NBIT::GetCountOfRecordsメソッドを呼び出します。 |
| pbKeys | BYTE** | out | NBITレコードからnumber_of_keysフィールドを取得します。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)内のレコードについて、記述子の数を返します。
| dwRecordIndex | DWORD | in | レコード番号を0から始まるインデックスで指定します。NBIT内のレコード数を取得するには、IISDB_NBIT::GetCountOfRecordsメソッドを呼び出します。 |
| pdwVal | DWORD* | out | 記述子の数を受け取ります。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
記述子のインデックスに基づいて、ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)内の指定したレコードの記述子を取得します。
| dwRecordIndex | DWORD | in | レコード番号を0から始まるインデックスで指定します。 NBIT内のレコード数を取得するには、IISDB_NBIT::GetCountOfRecordsメソッドを呼び出します。 |
| dwIndex | DWORD | in | 取得する記述子を0から始まるインデックスで指定します。 特定のレコードの記述子数を取得するには、IISDB_NBIT::GetRecordCountOfDescriptorsメソッドを呼び出します。 |
| ppDescriptor | IGenericDescriptor** | out | 記述子が実装するIGenericDescriptorインターフェイスへのポインター。このインターフェイスの解放は呼び出し側の責任です。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
記述子の標準タグを使用して、ISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)内のレコードから記述子を取得します。
| dwRecordIndex | DWORD | in | レコード番号を0から始まるインデックスで指定します。NBIT内のレコード数を取得するには、IISDB_NBIT::GetCountOfRecordsメソッドを呼び出します。 |
| bTag | BYTE | in | 検索対象の記述子タグを指定します。 |
| pdwCookie | DWORD* | inoutoptional | 記述子リスト内の開始位置を受け取ります。このパラメーターは省略可能です。 pdwCookieの値がNULLの場合、検索はリストの最初の記述子から開始されます。それ以外の場合、検索はpdwCookieで指定された位置から開始されます。メソッドが返るとき、pdwCookieパラメーターには次に一致する記述子の位置が(存在すれば)格納されます。このパラメーターを使用すると、特定の記述子タグのすべてのインスタンスを探しながら、記述子リストを反復処理できます。 |
| ppDescriptor | IGenericDescriptor** | out | IGenericDescriptorインターフェイスポインターを受け取る変数のアドレス。 このインターフェイスを使用して記述子内の情報を取得します。呼び出し側はインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
このISDB(Integrated Services Digital Broadcasting)のNBIT(network broadcaster information table)のインスタンスのハッシュ値を返します。
| pdwVersionHash | DWORD* | out | ハッシュ値を受け取ります。 |
戻り値
このメソッドが成功した場合はS_OKを返します。それ以外の場合はHRESULTエラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IISDB_NBIT "{1B1863EF-08F1-40B7-A559-3B1EFF8CAFA6}" #usecom global IISDB_NBIT IID_IISDB_NBIT "{}" #comfunc global IISDB_NBIT_Initialize 3 sptr,sptr #comfunc global IISDB_NBIT_GetVersionNumber 4 var #comfunc global IISDB_NBIT_GetOriginalNetworkId 5 var #comfunc global IISDB_NBIT_GetCountOfRecords 6 var #comfunc global IISDB_NBIT_GetRecordInformationId 7 int,var #comfunc global IISDB_NBIT_GetRecordInformationType 8 int,var #comfunc global IISDB_NBIT_GetRecordDescriptionBodyLocation 9 int,var #comfunc global IISDB_NBIT_GetRecordMessageSectionNumber 10 int,var #comfunc global IISDB_NBIT_GetRecordUserDefined 11 int,var #comfunc global IISDB_NBIT_GetRecordNumberOfKeys 12 int,var #comfunc global IISDB_NBIT_GetRecordKeys 13 int,var #comfunc global IISDB_NBIT_GetRecordCountOfDescriptors 14 int,var #comfunc global IISDB_NBIT_GetRecordDescriptorByIndex 15 int,int,sptr #comfunc global IISDB_NBIT_GetRecordDescriptorByTag 16 int,int,var,sptr #comfunc global IISDB_NBIT_GetVersionHash 17 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IISDB_NBIT "{1B1863EF-08F1-40B7-A559-3B1EFF8CAFA6}" #usecom global IISDB_NBIT IID_IISDB_NBIT "{}" #comfunc global IISDB_NBIT_Initialize 3 sptr,sptr #comfunc global IISDB_NBIT_GetVersionNumber 4 sptr #comfunc global IISDB_NBIT_GetOriginalNetworkId 5 sptr #comfunc global IISDB_NBIT_GetCountOfRecords 6 sptr #comfunc global IISDB_NBIT_GetRecordInformationId 7 int,sptr #comfunc global IISDB_NBIT_GetRecordInformationType 8 int,sptr #comfunc global IISDB_NBIT_GetRecordDescriptionBodyLocation 9 int,sptr #comfunc global IISDB_NBIT_GetRecordMessageSectionNumber 10 int,sptr #comfunc global IISDB_NBIT_GetRecordUserDefined 11 int,sptr #comfunc global IISDB_NBIT_GetRecordNumberOfKeys 12 int,sptr #comfunc global IISDB_NBIT_GetRecordKeys 13 int,sptr #comfunc global IISDB_NBIT_GetRecordCountOfDescriptors 14 int,sptr #comfunc global IISDB_NBIT_GetRecordDescriptorByIndex 15 int,int,sptr #comfunc global IISDB_NBIT_GetRecordDescriptorByTag 16 int,int,sptr,sptr #comfunc global IISDB_NBIT_GetVersionHash 17 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。