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

IDvbSiParser

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

公式ドキュメント

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。IDvbSiParser は、DVB トランスポートストリームから program specific information (PSI) テーブルおよび service information (SI) テーブルを取得します。

解説(Remarks)

このインターフェイスへのポインターを取得する方法については、IDvbSiParser2 の解説を参照してください。

メソッド 15

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

vtbl 3 HRESULT Initialize(IUnknown* punkMpeg2Data)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

punkMpeg2DataIUnknown*inMPEG-2 Sections and Tables Filter、または IMpeg2Data インターフェイスを実装する別のオブジェクトの IUnknown インターフェイスへのポインター。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_NOINTERFACE
punkMpeg2Data ポインターが IMpeg2Data インターフェイスを公開していません。
E_POINTER
NULL ポインター引数です。
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドが呼び出されるまで、このインターフェイスの他のすべてのメソッドは失敗します。

vtbl 4 HRESULT GetPAT(IPAT** ppPAT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

ppPATIPAT**outIPAT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。

解説(Remarks)

所定の時間内に一致するテーブルをフィルターが受信しない場合、このメソッドは失敗します。

vtbl 5 HRESULT GetCAT(DWORD dwTimeout, ICAT** ppCAT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

dwTimeoutDWORDinタイムアウト値をミリ秒単位で指定します。タイムアウト期間内にフィルターがデータを受信しない場合、このメソッドは失敗します。
ppCATICAT**outICAT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドは、current とマークされた最初の CAT、すなわち current_next_indicator ビットが 1 の CAT を返します。

vtbl 6 HRESULT GetPMT(WORD pid, WORD* pwProgramNumber, IPMT** ppPMT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

pidWORDin要求する PMT の PID を指定します。
pwProgramNumberWORD*inoptionalテーブルのプログラム番号を格納する変数への省略可能なポインター。この値を使用して要求をフィルターできます。それ以外の場合は、このパラメーターを NULL に設定します。
ppPMTIPMT**outIPMT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。

解説(Remarks)

所定の時間内に一致するテーブルをフィルターが受信しない場合、このメソッドは失敗します。

vtbl 7 HRESULT GetTSDT(ITSDT** ppTSDT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

ppTSDTITSDT**outITSDT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。

解説(Remarks)

所定の時間内に一致するテーブルをフィルターが受信しない場合、このメソッドは失敗します。

vtbl 8 HRESULT GetNIT(BYTE tableId, WORD* pwNetworkId, IDVB_NIT** ppNIT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

tableIdBYTEin

NIT のテーブル識別子を指定します。次の表の値のいずれかを使用します。

説明
DVB_NIT_ACTUAL_TID (0x40) このトランスポートストリームを伝送するネットワークの NIT。
DVB_NIT_OTHER_TID (0x41) 別のネットワークの NIT。
pwNetworkIdWORD*inoptionalネットワーク識別子を格納する省略可能なパラメーター。この値を使用して要求をフィルターできます。それ以外の場合は、このパラメーターを NULL に設定します。
ppNITIDVB_NIT**outIDVB_NIT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_INVALIDARG
無効な引数です。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。

解説(Remarks)

所定の時間内に一致するテーブルをフィルターが受信しない場合、このメソッドは失敗します。

vtbl 9 HRESULT GetSDT(BYTE tableId, WORD* pwTransportStreamId, IDVB_SDT** ppSDT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

tableIdBYTEin

SDT のテーブル識別子を指定します。次の表の値のいずれかを使用します。

説明
DVB_SDT_ACTUAL_TID (0x42) 現在のトランスポートストリームの SDT。
DVB_SDT_OTHER_TID (0x46) 別のトランスポートストリームの SDT。
pwTransportStreamIdWORD*inoptionalトランスポートストリーム識別子 (TSID) を格納する省略可能なパラメーター。この値を使用して要求をフィルターできます。それ以外の場合は、このパラメーターを NULL に設定します。
ppSDTIDVB_SDT**outIDVB_SDT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_INVALIDARG
無効な引数です。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。

解説(Remarks)

所定の時間内に一致するテーブルをフィルターが受信しない場合、このメソッドは失敗します。

vtbl 10 HRESULT GetEIT(BYTE tableId, WORD* pwServiceId, IDVB_EIT** ppEIT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

tableIdBYTEin

EIT のテーブル識別子を指定します。次の表の値のいずれかを使用します。

説明
DVB_EIT_ACTUAL_TID (0x4E) このトランスポートストリームの present/following EIT。
DVB_EIT_OTHER_TID (0x4F) 別のトランスポートストリームの present/following EIT。
0x50 – 0x5F このトランスポートストリームの schedule EIT。
0x60 – 0x6F 別のトランスポートストリームの schedule EIT。
pwServiceIdWORD*inoptionalサービス識別子を格納する省略可能なパラメーター。この値を使用して要求をフィルターできます。それ以外の場合は、このパラメーターを NULL に設定します。
ppEITIDVB_EIT**outIDVB_EIT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_INVALIDARG
無効な引数です。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。

解説(Remarks)

所定の時間内に一致するテーブルをフィルターが受信しない場合、このメソッドは失敗します。

vtbl 11 HRESULT GetBAT(WORD* pwBouquetId, IDVB_BAT** ppBAT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

pwBouquetIdWORD*inoptionalbouquet 識別子を格納する省略可能なパラメーター。この値を使用して要求をフィルターできます。それ以外の場合は、このパラメーターを NULL に設定します。
ppBATIDVB_BAT**outIDVB_BAT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。

解説(Remarks)

所定の時間内に一致するテーブルをフィルターが受信しない場合、このメソッドは失敗します。

vtbl 12 HRESULT GetRST(DWORD dwTimeout, IDVB_RST** ppRST)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

dwTimeoutDWORDinタイムアウト値をミリ秒単位で指定します。タイムアウト期間内にフィルターがデータを受信しない場合、このメソッドは失敗します。
ppRSTIDVB_RST**outIDVB_RST インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。
vtbl 13 HRESULT GetST(WORD pid, DWORD dwTimeout, IDVB_ST** ppST)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

pidWORDinST のパケット識別子 (PID) を指定します。有効な PID は 0x10 から 0x14 まで (両端を含む) の範囲です。
dwTimeoutDWORDinタイムアウト値をミリ秒単位で指定します。タイムアウト期間内にフィルターがデータを受信しない場合、このメソッドは失敗します。
ppSTIDVB_ST**outIDVB_ST インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_INVALIDARG
無効な引数です。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。
vtbl 14 HRESULT GetTDT(IDVB_TDT** ppTDT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

ppTDTIDVB_TDT**outIDVB_TDT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。

解説(Remarks)

所定の時間内に一致するテーブルをフィルターが受信しない場合、このメソッドは失敗します。

vtbl 15 HRESULT GetTOT(IDVB_TOT** ppTOT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

ppTOTIDVB_TOT**outIDVB_TOT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。

解説(Remarks)

所定の時間内に一致するテーブルをフィルターが受信しない場合、このメソッドは失敗します。

vtbl 16 HRESULT GetDIT(DWORD dwTimeout, IDVB_DIT** ppDIT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

dwTimeoutDWORDinタイムアウト値をミリ秒単位で指定します。タイムアウト期間内にフィルターがデータを受信しない場合、このメソッドは失敗します。
ppDITIDVB_DIT**outIDVB_DIT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。
vtbl 17 HRESULT GetSIT(DWORD dwTimeout, IDVB_SIT** ppSIT)

このトピックは、Microsoft Windows XP Media Center Edition 2005 用の Update Rollup 2 以降に適用されます。

dwTimeoutDWORDinタイムアウト値をミリ秒単位で指定します。タイムアウト期間内にフィルターがデータを受信しない場合、このメソッドは失敗します。
ppSITIDVB_SIT**outIDVB_SIT インターフェイスポインターを受け取る変数のアドレス。呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれます。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターは割り当てられた時間内にテーブルを受信しませんでした。
S_OK
メソッドは成功しました。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 指定が可能。