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

IPMT

COM
IID01f3b398-9527-4736-94db-5195878e97a8継承元IUnknown自前メソッド開始 vtbl3

メソッド 19

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

vtbl 3 HRESULT Initialize(ISectionList* pSectionList, IMpeg2Data* pMPEGData)
pSectionListISectionList*inPMTを構成するセクション一覧ISectionListへのポインタ。
pMPEGDataIMpeg2Data*inデータ取得元のIMpeg2Dataインターフェイスへのポインタ。
vtbl 4 HRESULT GetProgramNumber(WORD* pwVal)
pwValWORD*outこのPMTが記述するプログラム番号を受け取るWORDポインタ。
vtbl 5 HRESULT GetVersionNumber(BYTE* pbVal)
pbValBYTE*outPMTのバージョン番号を受け取るBYTEポインタ。
vtbl 6 HRESULT GetPcrPid(WORD* pPidVal)
pPidValWORD*outPCRを伝送するパケットのPIDを受け取るWORDポインタ。
vtbl 7 HRESULT GetCountOfTableDescriptors(DWORD* pdwVal)
pdwValDWORD*outプログラムレベルのディスクリプタ数を受け取るDWORDポインタ。
vtbl 8 HRESULT GetTableDescriptorByIndex(DWORD dwIndex, IGenericDescriptor** ppDescriptor)
dwIndexDWORDin対象ディスクリプタの0起点インデックスを指定する。
ppDescriptorIGenericDescriptor**out指定ディスクリプタIGenericDescriptorを受け取るポインタ。
vtbl 9 HRESULT GetTableDescriptorByTag(BYTE bTag, DWORD* pdwCookie, IGenericDescriptor** ppDescriptor)
bTagBYTEin検索対象のディスクリプタタグを指定する。
pdwCookieDWORD*inout同一タグの反復検索に用いる位置クッキーを受け渡すDWORDポインタ。
ppDescriptorIGenericDescriptor**out該当ディスクリプタIGenericDescriptorを受け取るポインタ。
vtbl 10 HRESULT GetCountOfRecords(WORD* pwVal)
pwValWORD*outPMT内のエレメンタリストリームレコード数を受け取るWORDポインタ。
vtbl 11 HRESULT GetRecordStreamType(DWORD dwRecordIndex, BYTE* pbVal)
dwRecordIndexDWORDin対象レコードの0起点インデックスを指定する。
pbValBYTE*out指定レコードのストリーム種別を受け取るBYTEポインタ。
vtbl 12 HRESULT GetRecordElementaryPid(DWORD dwRecordIndex, WORD* pPidVal)
dwRecordIndexDWORDin対象レコードの0起点インデックスを指定する。
pPidValWORD*out指定レコードのエレメンタリストリームPIDを受け取るWORDポインタ。
vtbl 13 HRESULT GetRecordCountOfDescriptors(DWORD dwRecordIndex, DWORD* pdwVal)
dwRecordIndexDWORDin対象レコードの0起点インデックスを指定する。
pdwValDWORD*out指定レコードのディスクリプタ数を受け取るDWORDポインタ。
vtbl 14 HRESULT GetRecordDescriptorByIndex(DWORD dwRecordIndex, DWORD dwDescIndex, IGenericDescriptor** ppDescriptor)
dwRecordIndexDWORDin対象レコードの0起点インデックスを指定する。
dwDescIndexDWORDinレコード内ディスクリプタの0起点インデックスを指定する。
ppDescriptorIGenericDescriptor**out指定ディスクリプタIGenericDescriptorを受け取るポインタ。
vtbl 15 HRESULT GetRecordDescriptorByTag(DWORD dwRecordIndex, BYTE bTag, DWORD* pdwCookie, IGenericDescriptor** ppDescriptor)
dwRecordIndexDWORDin対象レコードの0起点インデックスを指定する。
bTagBYTEin検索対象のディスクリプタタグを指定する。
pdwCookieDWORD*inout同一タグの反復検索に用いる位置クッキーを受け渡すDWORDポインタ。
ppDescriptorIGenericDescriptor**out該当ディスクリプタIGenericDescriptorを受け取るポインタ。
vtbl 16 HRESULT QueryServiceGatewayInfo(DSMCC_ELEMENT** ppDSMCCList, DWORD* puiCount)
ppDSMCCListDSMCC_ELEMENT**outDSM-CCサービスゲートウェイ要素の配列DSMCC_ELEMENTを受け取るポインタ。
puiCountDWORD*out返される要素の個数を受け取るDWORDポインタ。
vtbl 17 HRESULT QueryMPEInfo(MPE_ELEMENT** ppMPEList, DWORD* puiCount)
ppMPEListMPE_ELEMENT**outマルチプロトコルカプセル化要素の配列MPE_ELEMENTを受け取るポインタ。
puiCountDWORD*out返される要素の個数を受け取るDWORDポインタ。
vtbl 18 HRESULT RegisterForNextTable(HANDLE hNextTableAvailable)
hNextTableAvailableHANDLEin次バージョンのテーブル到着を通知するイベントのハンドル。
vtbl 19 HRESULT GetNextTable(IPMT** ppPMT)
ppPMTIPMT**out次バージョンのPMTインターフェイスを受け取るポインタ。
vtbl 20 HRESULT RegisterForWhenCurrent(HANDLE hNextTableIsCurrent)
hNextTableIsCurrentHANDLEin次テーブルが現行になった際に通知するイベントのハンドル。
vtbl 21 HRESULT ConvertNextToCurrent()

HSP用 COM定義

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

出力引数:
#define global IID_IPMT "{01F3B398-9527-4736-94DB-5195878E97A8}"
#usecom global IPMT IID_IPMT "{}"
#comfunc global IPMT_Initialize                   3 sptr,sptr
#comfunc global IPMT_GetProgramNumber             4 var
#comfunc global IPMT_GetVersionNumber             5 var
#comfunc global IPMT_GetPcrPid                    6 var
#comfunc global IPMT_GetCountOfTableDescriptors   7 var
#comfunc global IPMT_GetTableDescriptorByIndex    8 int,sptr
#comfunc global IPMT_GetTableDescriptorByTag      9 int,var,sptr
#comfunc global IPMT_GetCountOfRecords            10 var
#comfunc global IPMT_GetRecordStreamType          11 int,var
#comfunc global IPMT_GetRecordElementaryPid       12 int,var
#comfunc global IPMT_GetRecordCountOfDescriptors  13 int,var
#comfunc global IPMT_GetRecordDescriptorByIndex   14 int,int,sptr
#comfunc global IPMT_GetRecordDescriptorByTag     15 int,int,var,sptr
#comfunc global IPMT_QueryServiceGatewayInfo      16 var,var
#comfunc global IPMT_QueryMPEInfo                 17 var,var
#comfunc global IPMT_RegisterForNextTable         18 sptr
#comfunc global IPMT_GetNextTable                 19 sptr
#comfunc global IPMT_RegisterForWhenCurrent       20 sptr
#comfunc global IPMT_ConvertNextToCurrent         21
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。