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

IDvbSiParser

COM
IIDb758a7bd-14dc-449d-b828-35909acb3b1e継承元IUnknown自前メソッド開始 vtbl3

メソッド 15

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

vtbl 3 HRESULT Initialize(IUnknown* punkMpeg2Data)
punkMpeg2DataIUnknown*inMPEG-2セクションを取得するIMpeg2DataのIUnknownを渡し、パーサを初期化する。
vtbl 4 HRESULT GetPAT(IPAT** ppPAT)
ppPATIPAT**out取得したPAT(番組対応表)を表すIPATインタフェースを受け取る出力ポインタ。
vtbl 5 HRESULT GetCAT(DWORD dwTimeout, ICAT** ppCAT)
dwTimeoutDWORDinCAT取得を待つタイムアウト時間。単位はミリ秒。
ppCATICAT**out取得したCAT(限定受信対応表)を表すICATインタフェースを受け取る出力ポインタ。
vtbl 6 HRESULT GetPMT(WORD pid, WORD* pwProgramNumber, IPMT** ppPMT)
pidWORDinPMTが格納されているトランスポートストリームのパケットID(PID)を指定する。
pwProgramNumberWORD*inoptional対象のプログラム番号を入出力するポインタ。NULL可。
ppPMTIPMT**out取得したPMT(番組マップ表)を表すIPMTインタフェースを受け取る出力ポインタ。
vtbl 7 HRESULT GetTSDT(ITSDT** ppTSDT)
ppTSDTITSDT**out取得したTSDT(トランスポートストリーム記述表)を表すITSDTを受け取る出力ポインタ。
vtbl 8 HRESULT GetNIT(BYTE tableId, WORD* pwNetworkId, IDVB_NIT** ppNIT)
tableIdBYTEin取得対象のNITのテーブルID。自ネットワークか他ネットワークかを区別する。
pwNetworkIdWORD*inoptional対象ネットワークIDを入出力するポインタ。NULL可。
ppNITIDVB_NIT**out取得したNIT(ネットワーク情報表)を表すIDVB_NITを受け取る出力ポインタ。
vtbl 9 HRESULT GetSDT(BYTE tableId, WORD* pwTransportStreamId, IDVB_SDT** ppSDT)
tableIdBYTEin取得対象のSDTのテーブルID。自TSか他TSかを区別する。
pwTransportStreamIdWORD*inoptional対象トランスポートストリームIDを入出力するポインタ。NULL可。
ppSDTIDVB_SDT**out取得したSDT(サービス記述表)を表すIDVB_SDTを受け取る出力ポインタ。
vtbl 10 HRESULT GetEIT(BYTE tableId, WORD* pwServiceId, IDVB_EIT** ppEIT)
tableIdBYTEin取得対象のEITのテーブルID。現在/予定や自他TSの区別を表す。
pwServiceIdWORD*inoptional対象サービスIDを入出力するポインタ。NULL可。
ppEITIDVB_EIT**out取得したEIT(イベント情報表)を表すIDVB_EITを受け取る出力ポインタ。
vtbl 11 HRESULT GetBAT(WORD* pwBouquetId, IDVB_BAT** ppBAT)
pwBouquetIdWORD*inoptional対象ブーケIDを入出力するポインタ。NULL可。
ppBATIDVB_BAT**out取得したBAT(ブーケ対応表)を表すIDVB_BATを受け取る出力ポインタ。
vtbl 12 HRESULT GetRST(DWORD dwTimeout, IDVB_RST** ppRST)
dwTimeoutDWORDinRST取得を待つタイムアウト時間。単位はミリ秒。
ppRSTIDVB_RST**out取得したRST(実行状態表)を表すIDVB_RSTを受け取る出力ポインタ。
vtbl 13 HRESULT GetST(WORD pid, DWORD dwTimeout, IDVB_ST** ppST)
pidWORDinSTを取得するトランスポートストリームのパケットID(PID)を指定する。
dwTimeoutDWORDinST取得を待つタイムアウト時間。単位はミリ秒。
ppSTIDVB_ST**out取得したST(スタッフィング表)を表すIDVB_STを受け取る出力ポインタ。
vtbl 14 HRESULT GetTDT(IDVB_TDT** ppTDT)
ppTDTIDVB_TDT**out取得したTDT(時刻日付表)を表すIDVB_TDTを受け取る出力ポインタ。
vtbl 15 HRESULT GetTOT(IDVB_TOT** ppTOT)
ppTOTIDVB_TOT**out取得したTOT(時刻オフセット表)を表すIDVB_TOTを受け取る出力ポインタ。
vtbl 16 HRESULT GetDIT(DWORD dwTimeout, IDVB_DIT** ppDIT)
dwTimeoutDWORDinDIT取得を待つタイムアウト時間。単位はミリ秒。
ppDITIDVB_DIT**out取得したDIT(分断情報表)を表すIDVB_DITを受け取る出力ポインタ。
vtbl 17 HRESULT GetSIT(DWORD dwTimeout, IDVB_SIT** ppSIT)
dwTimeoutDWORDinSIT取得を待つタイムアウト時間。単位はミリ秒。
ppSITIDVB_SIT**out取得したSIT(選択情報表)を表すIDVB_SITを受け取る出力ポインタ。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDvbSiParser "{B758A7BD-14DC-449D-B828-35909ACB3B1E}"
#usecom global IDvbSiParser IID_IDvbSiParser "{}"
#comfunc global IDvbSiParser_Initialize  3 sptr
#comfunc global IDvbSiParser_GetPAT      4 sptr
#comfunc global IDvbSiParser_GetCAT      5 int,sptr
#comfunc global IDvbSiParser_GetPMT      6 int,var,sptr
#comfunc global IDvbSiParser_GetTSDT     7 sptr
#comfunc global IDvbSiParser_GetNIT      8 int,var,sptr
#comfunc global IDvbSiParser_GetSDT      9 int,var,sptr
#comfunc global IDvbSiParser_GetEIT      10 int,var,sptr
#comfunc global IDvbSiParser_GetBAT      11 var,sptr
#comfunc global IDvbSiParser_GetRST      12 int,sptr
#comfunc global IDvbSiParser_GetST       13 int,int,sptr
#comfunc global IDvbSiParser_GetTDT      14 sptr
#comfunc global IDvbSiParser_GetTOT      15 sptr
#comfunc global IDvbSiParser_GetDIT      16 int,sptr
#comfunc global IDvbSiParser_GetSIT      17 int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。