Win32 API 日本語リファレンス
ホームMedia.DirectShow.Tv › IPBDA_EIT

IPBDA_EIT

COM
IIDa35f2dea-098f-4ebd-984c-2bd4c3c8ce0a継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からクライアントが情報を取得できるようにするメソッドを実装します。IPBDASiParser::GetEIT メソッドがこのインターフェイスへのポインターを返します。

メソッド 11

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

vtbl 3 HRESULT Initialize(DWORD size, BYTE* pBuffer)

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からデータを取得するオブジェクトを初期化します。

sizeDWORDin各セクションの初期化に使用するデータのバッファーサイズを指定します。
pBufferBYTE*in各セクションの初期化に使用するバッファーを指定します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT GetTableId(BYTE* pbVal)

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からテーブル識別子を取得します。

pbValBYTE*outテーブル識別子を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT GetVersionNumber(WORD* pwVal)

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からバージョン番号を取得します。

pwValWORD*outバージョン番号を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 6 HRESULT GetServiceIdx(ULONGLONG* plwVal)

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からサービス識別子を取得します。サービス識別子は、イベントを含むサービスを識別します。

plwValULONGLONG*outサービス識別子を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT GetCountOfRecords(DWORD* pdwVal)

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からイベントレコードの数を受け取ります。

pdwValDWORD*outレコードの数を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 8 HRESULT GetRecordEventId(DWORD dwRecordIndex, ULONGLONG* plwVal)

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) 内のイベントレコードから一意の識別子を受け取ります。

dwRecordIndexDWORDinサービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。
plwValULONGLONG*outイベント識別子を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 9 HRESULT GetRecordStartTime(DWORD dwRecordIndex, MPEG_DATE_AND_TIME* pmdtVal)

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) 内のイベントレコードから開始時刻を取得します。

dwRecordIndexDWORDinサービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。
pmdtValMPEG_DATE_AND_TIME*outイベントレコードから開始時刻を受け取る MPEG_DATE_AND_TIME 構造体へのポインターです。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 10 HRESULT GetRecordDuration(DWORD dwRecordIndex, MPEG_TIME* pmdVal)

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) 内のイベントレコードから継続時間を取得します。

dwRecordIndexDWORDinサービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。
pmdValMPEG_TIME*outイベントの継続時間を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 11 HRESULT GetRecordCountOfDescriptors(DWORD dwRecordIndex, DWORD* pdwVal)

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) からイベントレコードの数を取得します。

dwRecordIndexDWORDinサービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。
pdwValDWORD*out記述子の数を受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 12 HRESULT GetRecordDescriptorByIndex(DWORD dwRecordIndex, DWORD dwIndex, IGenericDescriptor** ppDescriptor)

Protected Broadcast Device Architecture (PBDA) トランスポートストリーム内の event information table (EIT) 内の指定したレコードの記述子を取得します。

dwRecordIndexDWORDinサービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。
dwIndexDWORDin取得する記述子を、0 から始まるインデックスで指定します。特定のレコードの記述子の数を取得するには、IPBDA_EIT::GetRecordCountOfDescriptors メソッドを呼び出します。
ppDescriptorIGenericDescriptor**outIGenericDescriptor インターフェイスポインターを受け取る変数のアドレスです。このインターフェイスを使用して記述子内の情報を取得します。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 13 HRESULT GetRecordDescriptorByTag(DWORD dwRecordIndex, BYTE bTag, DWORD* pdwCookie, IGenericDescriptor** ppDescriptor)

Protected Broadcast Device Architecture (PBDA) トランスポートストリームからの event information table (EIT) 内のレコードを検索し、指定した記述子タグを持つ記述子を探します。

dwRecordIndexDWORDinサービスレコード番号を、0 から始まるインデックスで指定します。 EIT 内のレコード数を取得するには、IPBDA_EIT::GetCountOfRecords メソッドを呼び出します。
bTagBYTEin検索する記述子タグを指定します。
pdwCookieDWORD*inout記述子リスト内の検索開始位置を指定する変数へのポインターです。このパラメーターは省略可能です。*pdwCookie の値が NULL の場合、検索はリストの最初の記述子から始まります。それ以外の場合、検索は pdwCookie で指定された位置から始まります。メソッドが返るとき、pdwCookie パラメーターには、一致する次の記述子がある場合はその位置が格納されます。このパラメーターを使用すると、記述子リストを反復処理して、特定の記述子タグのすべてのインスタンスを探すことができます。
ppDescriptorIGenericDescriptor**outIGenericDescriptor インターフェイスへのポインターを受け取ります。このインターフェイスを使用して記述子内の情報を取得します。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 指定が可能。