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

IPAT

COM
IID6623b511-4b5f-43c3-9a01-e8ff84188060継承元IUnknown自前メソッド開始 vtbl3

メソッド 11

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

vtbl 3 HRESULT Initialize(ISectionList* pSectionList, IMpeg2Data* pMPEGData)
pSectionListISectionList*inPATを構成するセクション一覧ISectionListへのポインタ。
pMPEGDataIMpeg2Data*inデータ取得元のIMpeg2Dataインターフェイスへのポインタ。
vtbl 4 HRESULT GetTransportStreamId(WORD* pwVal)
pwValWORD*outトランスポートストリームID(TSID)を受け取るWORDポインタ。
vtbl 5 HRESULT GetVersionNumber(BYTE* pbVal)
pbValBYTE*outPATのバージョン番号を受け取るBYTEポインタ。
vtbl 6 HRESULT GetCountOfRecords(DWORD* pdwVal)
pdwValDWORD*outPAT内のプログラムレコード数を受け取るDWORDポインタ。
vtbl 7 HRESULT GetRecordProgramNumber(DWORD dwIndex, WORD* pwVal)
dwIndexDWORDin対象レコードの0起点インデックスを指定する。
pwValWORD*out指定レコードのプログラム番号を受け取るWORDポインタ。
vtbl 8 HRESULT GetRecordProgramMapPid(DWORD dwIndex, WORD* pwVal)
dwIndexDWORDin対象レコードの0起点インデックスを指定する。
pwValWORD*out指定レコードのPMTのPIDを受け取るWORDポインタ。
vtbl 9 HRESULT FindRecordProgramMapPid(WORD wProgramNumber, WORD* pwVal)
wProgramNumberWORDin検索対象のプログラム番号を指定する。
pwValWORD*out該当プログラムのPMTのPIDを受け取るWORDポインタ。
vtbl 10 HRESULT RegisterForNextTable(HANDLE hNextTableAvailable)
hNextTableAvailableHANDLEin次バージョンのテーブル到着を通知するイベントのハンドル。
vtbl 11 HRESULT GetNextTable(IPAT** ppPAT)
ppPATIPAT**out次バージョンのPATインターフェイスを受け取るポインタ。
vtbl 12 HRESULT RegisterForWhenCurrent(HANDLE hNextTableIsCurrent)
hNextTableIsCurrentHANDLEin次テーブルが現行になった際に通知するイベントのハンドル。
vtbl 13 HRESULT ConvertNextToCurrent()

HSP用 COM定義

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

出力引数:
#define global IID_IPAT "{6623B511-4B5F-43C3-9A01-E8FF84188060}"
#usecom global IPAT IID_IPAT "{}"
#comfunc global IPAT_Initialize               3 sptr,sptr
#comfunc global IPAT_GetTransportStreamId     4 var
#comfunc global IPAT_GetVersionNumber         5 var
#comfunc global IPAT_GetCountOfRecords        6 var
#comfunc global IPAT_GetRecordProgramNumber   7 int,var
#comfunc global IPAT_GetRecordProgramMapPid   8 int,var
#comfunc global IPAT_FindRecordProgramMapPid  9 int,var
#comfunc global IPAT_RegisterForNextTable     10 sptr
#comfunc global IPAT_GetNextTable             11 sptr
#comfunc global IPAT_RegisterForWhenCurrent   12 sptr
#comfunc global IPAT_ConvertNextToCurrent     13
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。