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

IAtscPsipParser

COM
IIDb2c98995-5eb2-4fb1-b406-f3e8e2026a9a継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。IAtscPsipParser インターフェースは、ATSC Program and System Information Protocol (PSIP) テーブルを取得します。

解説(Remarks)

このインターフェースへのポインターを取得するには、CoCreateInstance を呼び出します。次の CLSID を使用してください。

3508C064-B94E-420b-A821-20C8096FAADC

この CLSID は SDK ヘッダーでは公開されていません。アプリケーションで新しい GUID 定数を定義してください。

オブジェクトの他のメソッドを呼び出す前に、Initialize を呼び出す必要があります。

メソッド 11

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

vtbl 3 HRESULT Initialize(IUnknown* punkMpeg2Data)

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

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

戻り値

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

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

解説(Remarks)

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

vtbl 4 HRESULT GetPAT(IPAT** ppPAT)

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

ppPATIPAT**outIPAT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。

戻り値

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

リターンコード 説明
E_OUTOFMEMORY
メモリが不足しています。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターが割り当てられた時間内にテーブルを受信しませんでした。
MPEG2_E_UNINITIALIZED
Initialize メソッドが呼び出されていません。
S_OK
メソッドが成功しました。

解説(Remarks)

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

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

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

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

戻り値

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

リターンコード 説明
E_OUTOFMEMORY
メモリが不足しています。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターが割り当てられた時間内にテーブルを受信しませんでした。
MPEG2_E_UNINITIALIZED
Initialize メソッドが呼び出されていません。
S_OK
メソッドが成功しました。

解説(Remarks)

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

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

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

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

戻り値

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

リターンコード 説明
E_OUTOFMEMORY
メモリが不足しています。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターが割り当てられた時間内にテーブルを受信しませんでした。
MPEG2_E_UNINITIALIZED
Initialize メソッドが呼び出されていません。
S_OK
メソッドが成功しました。

解説(Remarks)

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

vtbl 7 HRESULT GetTSDT(ITSDT** ppTSDT)

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

ppTSDTITSDT**outITSDT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。

戻り値

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

リターンコード 説明
E_OUTOFMEMORY
メモリが不足しています。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターが割り当てられた時間内にテーブルを受信しませんでした。
MPEG2_E_UNINITIALIZED
Initialize メソッドが呼び出されていません。
S_OK
メソッドが成功しました。

解説(Remarks)

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

vtbl 8 HRESULT GetMGT(IATSC_MGT** ppMGT)

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

ppMGTIATSC_MGT**outIATSC_MGT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。

戻り値

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

リターンコード 説明
E_OUTOFMEMORY
メモリが不足しています。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターが割り当てられた時間内にテーブルを受信しませんでした。
MPEG2_E_UNINITIALIZED
Initialize メソッドが呼び出されていません。
S_OK
メソッドが成功しました。

解説(Remarks)

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

vtbl 9 HRESULT GetVCT(BYTE tableId, BOOL fGetNextTable, IATSC_VCT** ppVCT)

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

tableIdBYTEin

VCT のテーブル識別子 (TID) を指定します。mpeg2data.h で宣言されている次の値のいずれかを使用します。

説明
ATSC_VCT_CABL_TID (0xC9) ケーブル
ATSC_VCT_TERR_TID (0xC8) 地上波
fGetNextTableBOOLin現在のテーブルと次のテーブルのどちらを検索するかを示すブール値。値が TRUE の場合、メソッドは current_next_indicator フラグが 1 に設定されたテーブルを検索します。それ以外の場合、メソッドは current_next_indicator フラグが 0 に設定されたテーブルを検索します。
ppVCTIATSC_VCT**outIATSC_VCT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。

戻り値

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

リターンコード 説明
E_INVALIDARG
引数が無効です。
E_OUTOFMEMORY
メモリが不足しています。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターが割り当てられた時間内にテーブルを受信しませんでした。
MPEG2_E_UNINITIALIZED
Initialize メソッドが呼び出されていません。
S_OK
メソッドが成功しました。

解説(Remarks)

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

vtbl 10 HRESULT GetEIT(WORD pid, WORD* pwSourceId, DWORD dwTimeout, IATSC_EIT** ppEIT)

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

pidWORDin要求する EIT のパケット識別子 (PID) を指定します。
pwSourceIdWORD*inテーブルのソース識別子を格納する変数への省略可能なポインター。この値を使用して要求をフィルタリングできます。それ以外の場合は、このパラメーターを NULL に設定します。
dwTimeoutDWORDinタイムアウト値をミリ秒単位で指定します。タイムアウト期間内にフィルターがデータを受信しない場合、メソッドは失敗します。
ppEITIATSC_EIT**outIATSC_EIT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。

戻り値

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

リターンコード 説明
E_OUTOFMEMORY
メモリが不足しています。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターが割り当てられた時間内にテーブルを受信しませんでした。
MPEG2_E_UNINITIALIZED
Initialize メソッドが呼び出されていません。
S_OK
メソッドが成功しました。
vtbl 11 HRESULT GetETT(WORD pid, WORD* wSourceId, WORD* pwEventId, IATSC_ETT** ppETT)

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

pidWORDin要求する ETT のパケット識別子 (PID) を指定します。
wSourceIdWORD*inテーブルのソース識別子を格納する変数への省略可能なポインター。この値を使用して要求をフィルタリングできます。それ以外の場合は、このパラメーターを NULL に設定します。
pwEventIdWORD*inテーブルのイベント識別子を格納する変数への省略可能なポインター。この値を使用して要求をフィルタリングできます。それ以外の場合は、このパラメーターを NULL に設定します。
ppETTIATSC_ETT**outIATSC_ETT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。

戻り値

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

リターンコード 説明
E_OUTOFMEMORY
メモリが不足しています。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターが割り当てられた時間内にテーブルを受信しませんでした。
MPEG2_E_UNINITIALIZED
Initialize メソッドが呼び出されていません。
S_OK
メソッドが成功しました。

解説(Remarks)

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

vtbl 12 HRESULT GetSTT(IATSC_STT** ppSTT)

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

ppSTTIATSC_STT**outIATSC_STT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。

戻り値

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

リターンコード 説明
E_OUTOFMEMORY
メモリが不足しています。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターが割り当てられた時間内にテーブルを受信しませんでした。
MPEG2_E_UNINITIALIZED
Initialize メソッドが呼び出されていません。
S_OK
メソッドが成功しました。

解説(Remarks)

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

vtbl 13 HRESULT GetEAS(WORD pid, ISCTE_EAS** ppEAS)

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

pidWORDin

要求する EAS のパケット識別子 (PID) を指定します。

Note 以前のバージョンのドキュメントでは、このパラメーターをタイムアウト値として誤って説明していました。
ppEASISCTE_EAS**outISCTE_EAS インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。

戻り値

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

リターンコード 説明
E_OUTOFMEMORY
メモリが不足しています。
E_POINTER
NULL ポインター引数です。
MPEG2_E_SECTION_NOT_FOUND
フィルターが割り当てられた時間内にテーブルを受信しませんでした。
MPEG2_E_UNINITIALIZED
Initialize メソッドが呼び出されていません。
S_OK
メソッドが成功しました。

解説(Remarks)

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IAtscPsipParser "{B2C98995-5EB2-4FB1-B406-F3E8E2026A9A}"
#usecom global IAtscPsipParser IID_IAtscPsipParser "{}"
#comfunc global IAtscPsipParser_Initialize  3 sptr
#comfunc global IAtscPsipParser_GetPAT      4 sptr
#comfunc global IAtscPsipParser_GetCAT      5 int,sptr
#comfunc global IAtscPsipParser_GetPMT      6 int,var,sptr
#comfunc global IAtscPsipParser_GetTSDT     7 sptr
#comfunc global IAtscPsipParser_GetMGT      8 sptr
#comfunc global IAtscPsipParser_GetVCT      9 int,int,sptr
#comfunc global IAtscPsipParser_GetEIT      10 int,var,int,sptr
#comfunc global IAtscPsipParser_GetETT      11 int,var,var,sptr
#comfunc global IAtscPsipParser_GetSTT      12 sptr
#comfunc global IAtscPsipParser_GetEAS      13 int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。