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

ISectionList

COM
IIDafec1eb5-2a64-46c6-bf4b-ae3ccb6afdb0継承元IUnknown自前メソッド開始 vtbl3

メソッド 7

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

vtbl 3 HRESULT Initialize(MPEG_REQUEST_TYPE requestType, IMpeg2Data* pMpeg2Data, MPEG_CONTEXT* pContext, WORD pid, BYTE tid, MPEG2_FILTER* pFilter, DWORD timeout, HANDLE hDoneEvent)
requestTypeMPEG_REQUEST_TYPEin取得方法を示すMPEG_REQUEST_TYPE列挙値。
pMpeg2DataIMpeg2Data*inデータ取得元のIMpeg2Dataインターフェイスへのポインタ。
pContextMPEG_CONTEXT*in取得処理のコンテキストを示すMPEG_CONTEXTへのポインタ。
pidWORDin取得対象のパケット識別子(PID)を指定する。
tidBYTEin取得対象のテーブル識別子(TID)を指定する。
pFilterMPEG2_FILTER*inセクションを絞り込むMPEG2_FILTER構造体へのポインタ。NULL可。
timeoutDWORDin取得待機のタイムアウトをミリ秒単位で指定する。
hDoneEventHANDLEin取得完了を通知するイベントオブジェクトのハンドル。
vtbl 4 HRESULT InitializeWithRawSections(MPEG_PACKET_LIST* pmplSections)
pmplSectionsMPEG_PACKET_LIST*in生のセクションパケット列を保持するMPEG_PACKET_LISTへのポインタ。
vtbl 5 HRESULT CancelPendingRequest()
vtbl 6 HRESULT GetNumberOfSections(WORD* pCount)
pCountWORD*out一覧に含まれるセクション数を受け取るWORDポインタ。
vtbl 7 HRESULT GetSectionData(WORD sectionNumber, DWORD* pdwRawPacketLength, SECTION** ppSection)
sectionNumberWORDin取得対象セクションの0起点インデックスを指定する。
pdwRawPacketLengthDWORD*out生パケットの長さをバイト単位で受け取るDWORDポインタ。
ppSectionSECTION**out指定セクションのデータSECTIONを受け取るポインタ。
vtbl 8 HRESULT GetProgramIdentifier(WORD* pPid)
pPidWORD*inこのセクション一覧のパケット識別子(PID)を受け取るWORDポインタ。
vtbl 9 HRESULT GetTableIdentifier(BYTE* pTableId)
pTableIdBYTE*inこのセクション一覧のテーブル識別子(TID)を受け取るBYTEポインタ。

HSP用 COM定義

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

出力引数:
#define global IID_ISectionList "{AFEC1EB5-2A64-46C6-BF4B-AE3CCB6AFDB0}"
#usecom global ISectionList IID_ISectionList "{73DA5D04-4347-45D3-A9DC-FAE9DDBE558D}"
#comfunc global ISectionList_Initialize                 3 int,sptr,var,int,int,var,int,sptr
#comfunc global ISectionList_InitializeWithRawSections  4 var
#comfunc global ISectionList_CancelPendingRequest       5
#comfunc global ISectionList_GetNumberOfSections        6 var
#comfunc global ISectionList_GetSectionData             7 int,var,var
#comfunc global ISectionList_GetProgramIdentifier       8 var
#comfunc global ISectionList_GetTableIdentifier         9 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。