IPBDA_EIT
COM公式ドキュメント
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からクライアントが情報を取得できるようにするメソッドを実装します。IPBDASiParser::GetEIT メソッドがこのインターフェイスへのポインターを返します。
メソッド 11
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からデータを取得するオブジェクトを初期化します。
| size | DWORD | in | 各セクションの初期化に使用するデータのバッファーサイズを指定します。 |
| pBuffer | BYTE* | in | 各セクションの初期化に使用するバッファーを指定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からテーブル識別子を取得します。
| pbVal | BYTE* | out | テーブル識別子を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からバージョン番号を取得します。
| pwVal | WORD* | out | バージョン番号を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からサービス識別子を取得します。サービス識別子は、イベントを含むサービスを識別します。
| plwVal | ULONGLONG* | out | サービス識別子を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からイベントレコードの数を受け取ります。
| pdwVal | DWORD* | out | レコードの数を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) 内のイベントレコードから一意の識別子を受け取ります。
| dwRecordIndex | DWORD | in | サービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。 |
| plwVal | ULONGLONG* | out | イベント識別子を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) 内のイベントレコードから開始時刻を取得します。
| dwRecordIndex | DWORD | in | サービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。 |
| pmdtVal | MPEG_DATE_AND_TIME* | out | イベントレコードから開始時刻を受け取る MPEG_DATE_AND_TIME 構造体へのポインターです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) 内のイベントレコードから継続時間を取得します。
| dwRecordIndex | DWORD | in | サービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。 |
| pmdVal | MPEG_TIME* | out | イベントの継続時間を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からイベントレコードの数を取得します。
| dwRecordIndex | DWORD | in | サービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。 |
| pdwVal | DWORD* | out | 記述子の数を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) 内の指定したレコードの記述子を取得します。
| dwRecordIndex | DWORD | in | サービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。 |
| dwIndex | DWORD | in | 取得する記述子を、0 から始まるインデックスで指定します。特定のレコードの記述子の数を取得するには、IPBDA_EIT::GetRecordCountOfDescriptors メソッドを呼び出します。 |
| ppDescriptor | IGenericDescriptor** | out | IGenericDescriptor インターフェイスポインターを受け取る変数のアドレスです。このインターフェイスを使用して記述子内の情報を取得します。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Protected Broadcast Device Architecture (PBDA) トランスポートストリームからの event information table (EIT) 内のレコードを検索し、指定した記述子タグを持つ記述子を探します。
| dwRecordIndex | DWORD | in | サービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。 |
| bTag | BYTE | in | 検索する記述子タグを指定します。 |
| pdwCookie | DWORD* | inout | 記述子リスト内の検索開始位置を指定する変数へのポインターです。このパラメーターは省略可能です。*pdwCookie の値が NULL の場合、検索はリストの最初の記述子から始まります。それ以外の場合、検索は pdwCookie で指定された位置から始まります。メソッドが返るとき、pdwCookie パラメーターには、一致する次の記述子がある場合はその位置が格納されます。このパラメーターを使用すると、記述子リストを反復処理して、特定の記述子タグのすべてのインスタンスを探すことができます。 |
| ppDescriptor | IGenericDescriptor** | out | IGenericDescriptor インターフェイスへのポインターを受け取ります。このインターフェイスを使用して記述子内の情報を取得します。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IPBDA_EIT "{A35F2DEA-098F-4EBD-984C-2BD4C3C8CE0A}" #usecom global IPBDA_EIT IID_IPBDA_EIT "{}" #comfunc global IPBDA_EIT_Initialize 3 int,var #comfunc global IPBDA_EIT_GetTableId 4 var #comfunc global IPBDA_EIT_GetVersionNumber 5 var #comfunc global IPBDA_EIT_GetServiceIdx 6 var #comfunc global IPBDA_EIT_GetCountOfRecords 7 var #comfunc global IPBDA_EIT_GetRecordEventId 8 int,var #comfunc global IPBDA_EIT_GetRecordStartTime 9 int,var #comfunc global IPBDA_EIT_GetRecordDuration 10 int,var #comfunc global IPBDA_EIT_GetRecordCountOfDescriptors 11 int,var #comfunc global IPBDA_EIT_GetRecordDescriptorByIndex 12 int,int,sptr #comfunc global IPBDA_EIT_GetRecordDescriptorByTag 13 int,int,var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IPBDA_EIT "{A35F2DEA-098F-4EBD-984C-2BD4C3C8CE0A}" #usecom global IPBDA_EIT IID_IPBDA_EIT "{}" #comfunc global IPBDA_EIT_Initialize 3 int,sptr #comfunc global IPBDA_EIT_GetTableId 4 sptr #comfunc global IPBDA_EIT_GetVersionNumber 5 sptr #comfunc global IPBDA_EIT_GetServiceIdx 6 sptr #comfunc global IPBDA_EIT_GetCountOfRecords 7 sptr #comfunc global IPBDA_EIT_GetRecordEventId 8 int,sptr #comfunc global IPBDA_EIT_GetRecordStartTime 9 int,sptr #comfunc global IPBDA_EIT_GetRecordDuration 10 int,sptr #comfunc global IPBDA_EIT_GetRecordCountOfDescriptors 11 int,sptr #comfunc global IPBDA_EIT_GetRecordDescriptorByIndex 12 int,int,sptr #comfunc global IPBDA_EIT_GetRecordDescriptorByTag 13 int,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。