IAtscPsipParser
COM公式ドキュメント
このトピックは、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。
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| punkMpeg2Data | IUnknown* | inoptional | MPEG-2 Sections and Tables Filter、または IMpeg2Data インターフェースを実装する別のオブジェクトの IUnknown インターフェースへのポインター。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| punkMpeg2Data ポインターが IMpeg2Data インターフェースを公開していません。 | |
| NULL ポインター引数です。 | |
| メソッドが成功しました。 |
解説(Remarks)
このメソッドが呼び出されるまで、このインターフェースの他のすべてのメソッドは失敗します。
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| ppPAT | IPAT** | out | IPAT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| フィルターが割り当てられた時間内にテーブルを受信しませんでした。 | |
| Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
解説(Remarks)
フィルターが所定の時間内に一致するテーブルを受信しない場合、メソッドは失敗します。
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| dwTimeout | DWORD | in | タイムアウト値をミリ秒単位で指定します。タイムアウト期間内にフィルターがデータを受信しない場合、メソッドは失敗します。 |
| ppCAT | ICAT** | out | ICAT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| フィルターが割り当てられた時間内にテーブルを受信しませんでした。 | |
| Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
解説(Remarks)
このメソッドは、current とマークされた最初の CAT、すなわち current_next_indicator ビットが 1 であるものを返します。
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| pid | WORD | in | 要求する PMT の PID を指定します。 |
| pwProgramNumber | WORD* | in | テーブルのプログラム番号を格納する変数への省略可能なポインター。この値を使用して要求をフィルタリングできます。それ以外の場合は、このパラメーターを NULL に設定します。 |
| ppPMT | IPMT** | out | IPMT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| フィルターが割り当てられた時間内にテーブルを受信しませんでした。 | |
| Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
解説(Remarks)
フィルターが所定の時間内に一致するテーブルを受信しない場合、メソッドは失敗します。
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| ppTSDT | ITSDT** | out | ITSDT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| フィルターが割り当てられた時間内にテーブルを受信しませんでした。 | |
| Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
解説(Remarks)
フィルターが所定の時間内に一致するテーブルを受信しない場合、メソッドは失敗します。
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| ppMGT | IATSC_MGT** | out | IATSC_MGT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| フィルターが割り当てられた時間内にテーブルを受信しませんでした。 | |
| Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
解説(Remarks)
フィルターが所定の時間内に一致するテーブルを受信しない場合、メソッドは失敗します。
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| tableId | BYTE | in | VCT のテーブル識別子 (TID) を指定します。mpeg2data.h で宣言されている次の値のいずれかを使用します。
| ||||||
| fGetNextTable | BOOL | in | 現在のテーブルと次のテーブルのどちらを検索するかを示すブール値。値が TRUE の場合、メソッドは current_next_indicator フラグが 1 に設定されたテーブルを検索します。それ以外の場合、メソッドは current_next_indicator フラグが 0 に設定されたテーブルを検索します。 | ||||||
| ppVCT | IATSC_VCT** | out | IATSC_VCT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| 引数が無効です。 | |
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| フィルターが割り当てられた時間内にテーブルを受信しませんでした。 | |
| Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
解説(Remarks)
フィルターが所定の時間内に一致するテーブルを受信しない場合、メソッドは失敗します。
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| pid | WORD | in | 要求する EIT のパケット識別子 (PID) を指定します。 |
| pwSourceId | WORD* | in | テーブルのソース識別子を格納する変数への省略可能なポインター。この値を使用して要求をフィルタリングできます。それ以外の場合は、このパラメーターを NULL に設定します。 |
| dwTimeout | DWORD | in | タイムアウト値をミリ秒単位で指定します。タイムアウト期間内にフィルターがデータを受信しない場合、メソッドは失敗します。 |
| ppEIT | IATSC_EIT** | out | IATSC_EIT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| フィルターが割り当てられた時間内にテーブルを受信しませんでした。 | |
| Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| pid | WORD | in | 要求する ETT のパケット識別子 (PID) を指定します。 |
| wSourceId | WORD* | in | テーブルのソース識別子を格納する変数への省略可能なポインター。この値を使用して要求をフィルタリングできます。それ以外の場合は、このパラメーターを NULL に設定します。 |
| pwEventId | WORD* | in | テーブルのイベント識別子を格納する変数への省略可能なポインター。この値を使用して要求をフィルタリングできます。それ以外の場合は、このパラメーターを NULL に設定します。 |
| ppETT | IATSC_ETT** | out | IATSC_ETT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| フィルターが割り当てられた時間内にテーブルを受信しませんでした。 | |
| Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
解説(Remarks)
フィルターが所定の時間内に一致するテーブルを受信しない場合、メソッドは失敗します。
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| ppSTT | IATSC_STT** | out | IATSC_STT インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| フィルターが割り当てられた時間内にテーブルを受信しませんでした。 | |
| Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
解説(Remarks)
フィルターが所定の時間内に一致するテーブルを受信しない場合、メソッドは失敗します。
このトピックは、Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 以降に適用されます。
| pid | WORD | in | 要求する EAS のパケット識別子 (PID) を指定します。 Note 以前のバージョンのドキュメントでは、このパラメーターをタイムアウト値として誤って説明していました。
|
| ppEAS | ISCTE_EAS** | out | ISCTE_EAS インターフェースポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| フィルターが割り当てられた時間内にテーブルを受信しませんでした。 | |
| Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
解説(Remarks)
フィルターが所定の時間内に一致するテーブルを受信しない場合、メソッドは失敗します。
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 指定が可能。#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,sptr,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,sptr,int,sptr #comfunc global IAtscPsipParser_GetETT 11 int,sptr,sptr,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が無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。