master
  1/*** Autogenerated by WIDL 10.4 from include/mpeg2data.idl - Do not edit ***/
  2
  3#ifdef _WIN32
  4#ifndef __REQUIRED_RPCNDR_H_VERSION__
  5#define __REQUIRED_RPCNDR_H_VERSION__ 475
  6#endif
  7#include <rpc.h>
  8#include <rpcndr.h>
  9#endif
 10
 11#ifndef COM_NO_WINDOWS_H
 12#include <windows.h>
 13#include <ole2.h>
 14#endif
 15
 16#ifndef __mpeg2data_h__
 17#define __mpeg2data_h__
 18
 19/* Forward declarations */
 20
 21#ifndef __IMpeg2TableFilter_FWD_DEFINED__
 22#define __IMpeg2TableFilter_FWD_DEFINED__
 23typedef interface IMpeg2TableFilter IMpeg2TableFilter;
 24#ifdef __cplusplus
 25interface IMpeg2TableFilter;
 26#endif /* __cplusplus */
 27#endif
 28
 29#ifndef __Mpeg2TableFilter_FWD_DEFINED__
 30#define __Mpeg2TableFilter_FWD_DEFINED__
 31#ifdef __cplusplus
 32typedef class Mpeg2TableFilter Mpeg2TableFilter;
 33#else
 34typedef struct Mpeg2TableFilter Mpeg2TableFilter;
 35#endif /* defined __cplusplus */
 36#endif /* defined __Mpeg2TableFilter_FWD_DEFINED__ */
 37
 38#ifndef __IMpeg2Data_FWD_DEFINED__
 39#define __IMpeg2Data_FWD_DEFINED__
 40typedef interface IMpeg2Data IMpeg2Data;
 41#ifdef __cplusplus
 42interface IMpeg2Data;
 43#endif /* __cplusplus */
 44#endif
 45
 46#ifndef __ISectionList_FWD_DEFINED__
 47#define __ISectionList_FWD_DEFINED__
 48typedef interface ISectionList ISectionList;
 49#ifdef __cplusplus
 50interface ISectionList;
 51#endif /* __cplusplus */
 52#endif
 53
 54#ifndef __IMpeg2Stream_FWD_DEFINED__
 55#define __IMpeg2Stream_FWD_DEFINED__
 56typedef interface IMpeg2Stream IMpeg2Stream;
 57#ifdef __cplusplus
 58interface IMpeg2Stream;
 59#endif /* __cplusplus */
 60#endif
 61
 62#ifndef __SectionList_FWD_DEFINED__
 63#define __SectionList_FWD_DEFINED__
 64#ifdef __cplusplus
 65typedef class SectionList SectionList;
 66#else
 67typedef struct SectionList SectionList;
 68#endif /* defined __cplusplus */
 69#endif /* defined __SectionList_FWD_DEFINED__ */
 70
 71#ifndef __Mpeg2Stream_FWD_DEFINED__
 72#define __Mpeg2Stream_FWD_DEFINED__
 73#ifdef __cplusplus
 74typedef class Mpeg2Stream Mpeg2Stream;
 75#else
 76typedef struct Mpeg2Stream Mpeg2Stream;
 77#endif /* defined __cplusplus */
 78#endif /* defined __Mpeg2Stream_FWD_DEFINED__ */
 79
 80#ifndef __Mpeg2Data_FWD_DEFINED__
 81#define __Mpeg2Data_FWD_DEFINED__
 82#ifdef __cplusplus
 83typedef class Mpeg2Data Mpeg2Data;
 84#else
 85typedef struct Mpeg2Data Mpeg2Data;
 86#endif /* defined __cplusplus */
 87#endif /* defined __Mpeg2Data_FWD_DEFINED__ */
 88
 89/* Headers for imported files */
 90
 91#include <oaidl.h>
 92#include <ocidl.h>
 93#include <bdaiface.h>
 94#include <mpeg2structs.h>
 95
 96#ifdef __cplusplus
 97extern "C" {
 98#endif
 99
100#ifndef __ISectionList_FWD_DEFINED__
101#define __ISectionList_FWD_DEFINED__
102typedef interface ISectionList ISectionList;
103#ifdef __cplusplus
104interface ISectionList;
105#endif /* __cplusplus */
106#endif
107
108#ifndef __IMpeg2Stream_FWD_DEFINED__
109#define __IMpeg2Stream_FWD_DEFINED__
110typedef interface IMpeg2Stream IMpeg2Stream;
111#ifdef __cplusplus
112interface IMpeg2Stream;
113#endif /* __cplusplus */
114#endif
115
116#define MPEG_PAT_PID 0x0000
117#define MPEG_PAT_TID 0x00
118#define MPEG_CAT_PID 0x0001
119#define MPEG_CAT_TID 0x01
120#define MPEG_PMT_TID 0x02
121#define MPEG_TSDT_PID 0x0002
122#define MPEG_TSDT_TID 0x03
123#define ATSC_MGT_PID 0x1ffb
124#define ATSC_MGT_TID 0xc7
125#define ATSC_VCT_PID 0x1ffb
126#define ATSC_VCT_TERR_TID 0xc8
127#define ATSC_VCT_CABL_TID 0xc9
128#define ATSC_EIT_TID 0xcb
129#define ATSC_ETT_TID 0xcc
130#define ATSC_RRT_TID 0xca
131#define ATSC_RRT_PID 0x1ffb
132#define ATSC_STT_PID 0x1ffb
133#define ATSC_STT_TID 0xcd
134#define ATSC_PIT_TID 0xd0
135#define DVB_NIT_PID 0x0010
136#define DVB_NIT_ACTUAL_TID 0x40
137#define DVB_NIT_OTHER_TID 0x41
138#define DVB_SDT_PID 0x0011
139#define DVB_SDT_ACTUAL_TID 0x42
140#define DVB_SDT_OTHER_TID 0x46
141#define DVB_BAT_PID 0x0011
142#define DVB_BAT_TID 0x4a
143#define DVB_EIT_PID 0x0012
144#define DVB_EIT_ACTUAL_TID 0x4e
145#define DVB_EIT_OTHER_TID 0x4f
146#define DVB_RST_PID 0x0013
147#define DVB_RST_TID 0x71
148#define DVB_TDT_PID 0x0014
149#define DVB_TDT_TID 0x70
150#define DVB_ST_PID_16 0x0010
151#define DVB_ST_PID_17 0x0011
152#define DVB_ST_PID_18 0x0012
153#define DVB_ST_PID_19 0x0013
154#define DVB_ST_PID_20 0x0014
155#define DVB_ST_TID 0x72
156#define ISDB_ST_TID 0x72
157#define DVB_TOT_PID 0x0014
158#define DVB_TOT_TID 0x73
159#define DVB_DIT_PID 0x001e
160#define DVB_DIT_TID 0x7e
161#define DVB_SIT_PID 0x001f
162#define DVB_SIT_TID 0x7f
163#define ISDB_EMM_TID 0x85
164#define ISDB_BIT_PID 0x0024
165#define ISDB_BIT_TID 0xc4
166#define ISDB_NBIT_PID 0x0025
167#define ISDB_NBIT_MSG_TID 0xc5
168#define ISDB_NBIT_REF_TID 0xc6
169#define ISDB_LDT_PID 0x0025
170#define ISDB_LDT_TID 0xc7
171#define ISDB_SDTT_PID 0x0023
172#define ISDB_SDTT_ALT_PID 0x0028
173#define ISDB_SDTT_TID 0xc3
174#define ISDB_CDT_PID 0x0029
175#define ISDB_CDT_TID 0xc8
176#define SCTE_EAS_TID 0xd8
177#define SCTE_EAS_IB_PID 0x1ffb
178#define SCTE_EAS_OOB_PID 0x1ffc
179/*****************************************************************************
180 * IMpeg2TableFilter interface
181 */
182#ifndef __IMpeg2TableFilter_INTERFACE_DEFINED__
183#define __IMpeg2TableFilter_INTERFACE_DEFINED__
184
185DEFINE_GUID(IID_IMpeg2TableFilter, 0xbdcdd913, 0x9ecd, 0x4fb2, 0x81,0xae, 0xad,0xf7,0x47,0xea,0x75,0xa5);
186#if defined(__cplusplus) && !defined(CINTERFACE)
187MIDL_INTERFACE("bdcdd913-9ecd-4fb2-81ae-adf747ea75a5")
188IMpeg2TableFilter : public IUnknown
189{
190    virtual HRESULT STDMETHODCALLTYPE AddPID(
191        PID p) = 0;
192
193    virtual HRESULT STDMETHODCALLTYPE AddTable(
194        PID p,
195        TID t) = 0;
196
197    virtual HRESULT STDMETHODCALLTYPE AddExtension(
198        PID p,
199        TID t,
200        TEID e) = 0;
201
202    virtual HRESULT STDMETHODCALLTYPE RemovePID(
203        PID p) = 0;
204
205    virtual HRESULT STDMETHODCALLTYPE RemoveTable(
206        PID p,
207        TID t) = 0;
208
209    virtual HRESULT STDMETHODCALLTYPE RemoveExtension(
210        PID p,
211        TID t,
212        TEID e) = 0;
213
214};
215#ifdef __CRT_UUID_DECL
216__CRT_UUID_DECL(IMpeg2TableFilter, 0xbdcdd913, 0x9ecd, 0x4fb2, 0x81,0xae, 0xad,0xf7,0x47,0xea,0x75,0xa5)
217#endif
218#else
219typedef struct IMpeg2TableFilterVtbl {
220    BEGIN_INTERFACE
221
222    /*** IUnknown methods ***/
223    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
224        IMpeg2TableFilter *This,
225        REFIID riid,
226        void **ppvObject);
227
228    ULONG (STDMETHODCALLTYPE *AddRef)(
229        IMpeg2TableFilter *This);
230
231    ULONG (STDMETHODCALLTYPE *Release)(
232        IMpeg2TableFilter *This);
233
234    /*** IMpeg2TableFilter methods ***/
235    HRESULT (STDMETHODCALLTYPE *AddPID)(
236        IMpeg2TableFilter *This,
237        PID p);
238
239    HRESULT (STDMETHODCALLTYPE *AddTable)(
240        IMpeg2TableFilter *This,
241        PID p,
242        TID t);
243
244    HRESULT (STDMETHODCALLTYPE *AddExtension)(
245        IMpeg2TableFilter *This,
246        PID p,
247        TID t,
248        TEID e);
249
250    HRESULT (STDMETHODCALLTYPE *RemovePID)(
251        IMpeg2TableFilter *This,
252        PID p);
253
254    HRESULT (STDMETHODCALLTYPE *RemoveTable)(
255        IMpeg2TableFilter *This,
256        PID p,
257        TID t);
258
259    HRESULT (STDMETHODCALLTYPE *RemoveExtension)(
260        IMpeg2TableFilter *This,
261        PID p,
262        TID t,
263        TEID e);
264
265    END_INTERFACE
266} IMpeg2TableFilterVtbl;
267
268interface IMpeg2TableFilter {
269    CONST_VTBL IMpeg2TableFilterVtbl* lpVtbl;
270};
271
272#ifdef COBJMACROS
273#ifndef WIDL_C_INLINE_WRAPPERS
274/*** IUnknown methods ***/
275#define IMpeg2TableFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
276#define IMpeg2TableFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
277#define IMpeg2TableFilter_Release(This) (This)->lpVtbl->Release(This)
278/*** IMpeg2TableFilter methods ***/
279#define IMpeg2TableFilter_AddPID(This,p) (This)->lpVtbl->AddPID(This,p)
280#define IMpeg2TableFilter_AddTable(This,p,t) (This)->lpVtbl->AddTable(This,p,t)
281#define IMpeg2TableFilter_AddExtension(This,p,t,e) (This)->lpVtbl->AddExtension(This,p,t,e)
282#define IMpeg2TableFilter_RemovePID(This,p) (This)->lpVtbl->RemovePID(This,p)
283#define IMpeg2TableFilter_RemoveTable(This,p,t) (This)->lpVtbl->RemoveTable(This,p,t)
284#define IMpeg2TableFilter_RemoveExtension(This,p,t,e) (This)->lpVtbl->RemoveExtension(This,p,t,e)
285#else
286/*** IUnknown methods ***/
287static inline HRESULT IMpeg2TableFilter_QueryInterface(IMpeg2TableFilter* This,REFIID riid,void **ppvObject) {
288    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
289}
290static inline ULONG IMpeg2TableFilter_AddRef(IMpeg2TableFilter* This) {
291    return This->lpVtbl->AddRef(This);
292}
293static inline ULONG IMpeg2TableFilter_Release(IMpeg2TableFilter* This) {
294    return This->lpVtbl->Release(This);
295}
296/*** IMpeg2TableFilter methods ***/
297static inline HRESULT IMpeg2TableFilter_AddPID(IMpeg2TableFilter* This,PID p) {
298    return This->lpVtbl->AddPID(This,p);
299}
300static inline HRESULT IMpeg2TableFilter_AddTable(IMpeg2TableFilter* This,PID p,TID t) {
301    return This->lpVtbl->AddTable(This,p,t);
302}
303static inline HRESULT IMpeg2TableFilter_AddExtension(IMpeg2TableFilter* This,PID p,TID t,TEID e) {
304    return This->lpVtbl->AddExtension(This,p,t,e);
305}
306static inline HRESULT IMpeg2TableFilter_RemovePID(IMpeg2TableFilter* This,PID p) {
307    return This->lpVtbl->RemovePID(This,p);
308}
309static inline HRESULT IMpeg2TableFilter_RemoveTable(IMpeg2TableFilter* This,PID p,TID t) {
310    return This->lpVtbl->RemoveTable(This,p,t);
311}
312static inline HRESULT IMpeg2TableFilter_RemoveExtension(IMpeg2TableFilter* This,PID p,TID t,TEID e) {
313    return This->lpVtbl->RemoveExtension(This,p,t,e);
314}
315#endif
316#endif
317
318#endif
319
320
321#endif  /* __IMpeg2TableFilter_INTERFACE_DEFINED__ */
322
323/*****************************************************************************
324 * Mpeg2TableFilter coclass
325 */
326
327DEFINE_GUID(CLSID_Mpeg2TableFilter, 0x752845f1, 0x758f, 0x4c83, 0xa0,0x43, 0x42,0x70,0xc5,0x93,0x30,0x8e);
328
329#ifdef __cplusplus
330class DECLSPEC_UUID("752845f1-758f-4c83-a043-4270c593308e") Mpeg2TableFilter;
331#ifdef __CRT_UUID_DECL
332__CRT_UUID_DECL(Mpeg2TableFilter, 0x752845f1, 0x758f, 0x4c83, 0xa0,0x43, 0x42,0x70,0xc5,0x93,0x30,0x8e)
333#endif
334#endif
335
336typedef struct Mpeg2TableSampleHdr {
337    BYTE SectionCount;
338    BYTE Reserved[3];
339    LONG SectionOffsets[1];
340} Mpeg2TableSampleHdr;
341#ifndef __Mpeg2DataLib_LIBRARY_DEFINED__
342#define __Mpeg2DataLib_LIBRARY_DEFINED__
343
344DEFINE_GUID(LIBID_Mpeg2DataLib, 0xdbaf6c1b, 0xb6a4, 0x4898, 0xae,0x65, 0x20,0x4f,0x0d,0x95,0x09,0xa1);
345
346/*****************************************************************************
347 * IMpeg2Data interface
348 */
349#ifndef __IMpeg2Data_INTERFACE_DEFINED__
350#define __IMpeg2Data_INTERFACE_DEFINED__
351
352DEFINE_GUID(IID_IMpeg2Data, 0x9b396d40, 0xf380, 0x4e3c, 0xa5,0x14, 0x1a,0x82,0xbf,0x6e,0xbf,0xe6);
353#if defined(__cplusplus) && !defined(CINTERFACE)
354MIDL_INTERFACE("9b396d40-f380-4e3c-a514-1a82bf6ebfe6")
355IMpeg2Data : public IUnknown
356{
357    virtual HRESULT STDMETHODCALLTYPE GetSection(
358        PID pid,
359        TID tid,
360        PMPEG2_FILTER filter,
361        DWORD timeout,
362        ISectionList **section_list) = 0;
363
364    virtual HRESULT STDMETHODCALLTYPE GetTable(
365        PID pid,
366        TID tid,
367        PMPEG2_FILTER filter,
368        DWORD timeout,
369        ISectionList **section_list) = 0;
370
371    virtual HRESULT STDMETHODCALLTYPE GetStreamOfSections(
372        PID pid,
373        TID tid,
374        PMPEG2_FILTER filter,
375        HANDLE data_ready_event,
376        IMpeg2Stream **mpeg_stream) = 0;
377
378};
379#ifdef __CRT_UUID_DECL
380__CRT_UUID_DECL(IMpeg2Data, 0x9b396d40, 0xf380, 0x4e3c, 0xa5,0x14, 0x1a,0x82,0xbf,0x6e,0xbf,0xe6)
381#endif
382#else
383typedef struct IMpeg2DataVtbl {
384    BEGIN_INTERFACE
385
386    /*** IUnknown methods ***/
387    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
388        IMpeg2Data *This,
389        REFIID riid,
390        void **ppvObject);
391
392    ULONG (STDMETHODCALLTYPE *AddRef)(
393        IMpeg2Data *This);
394
395    ULONG (STDMETHODCALLTYPE *Release)(
396        IMpeg2Data *This);
397
398    /*** IMpeg2Data methods ***/
399    HRESULT (STDMETHODCALLTYPE *GetSection)(
400        IMpeg2Data *This,
401        PID pid,
402        TID tid,
403        PMPEG2_FILTER filter,
404        DWORD timeout,
405        ISectionList **section_list);
406
407    HRESULT (STDMETHODCALLTYPE *GetTable)(
408        IMpeg2Data *This,
409        PID pid,
410        TID tid,
411        PMPEG2_FILTER filter,
412        DWORD timeout,
413        ISectionList **section_list);
414
415    HRESULT (STDMETHODCALLTYPE *GetStreamOfSections)(
416        IMpeg2Data *This,
417        PID pid,
418        TID tid,
419        PMPEG2_FILTER filter,
420        HANDLE data_ready_event,
421        IMpeg2Stream **mpeg_stream);
422
423    END_INTERFACE
424} IMpeg2DataVtbl;
425
426interface IMpeg2Data {
427    CONST_VTBL IMpeg2DataVtbl* lpVtbl;
428};
429
430#ifdef COBJMACROS
431#ifndef WIDL_C_INLINE_WRAPPERS
432/*** IUnknown methods ***/
433#define IMpeg2Data_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
434#define IMpeg2Data_AddRef(This) (This)->lpVtbl->AddRef(This)
435#define IMpeg2Data_Release(This) (This)->lpVtbl->Release(This)
436/*** IMpeg2Data methods ***/
437#define IMpeg2Data_GetSection(This,pid,tid,filter,timeout,section_list) (This)->lpVtbl->GetSection(This,pid,tid,filter,timeout,section_list)
438#define IMpeg2Data_GetTable(This,pid,tid,filter,timeout,section_list) (This)->lpVtbl->GetTable(This,pid,tid,filter,timeout,section_list)
439#define IMpeg2Data_GetStreamOfSections(This,pid,tid,filter,data_ready_event,mpeg_stream) (This)->lpVtbl->GetStreamOfSections(This,pid,tid,filter,data_ready_event,mpeg_stream)
440#else
441/*** IUnknown methods ***/
442static inline HRESULT IMpeg2Data_QueryInterface(IMpeg2Data* This,REFIID riid,void **ppvObject) {
443    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
444}
445static inline ULONG IMpeg2Data_AddRef(IMpeg2Data* This) {
446    return This->lpVtbl->AddRef(This);
447}
448static inline ULONG IMpeg2Data_Release(IMpeg2Data* This) {
449    return This->lpVtbl->Release(This);
450}
451/*** IMpeg2Data methods ***/
452static inline HRESULT IMpeg2Data_GetSection(IMpeg2Data* This,PID pid,TID tid,PMPEG2_FILTER filter,DWORD timeout,ISectionList **section_list) {
453    return This->lpVtbl->GetSection(This,pid,tid,filter,timeout,section_list);
454}
455static inline HRESULT IMpeg2Data_GetTable(IMpeg2Data* This,PID pid,TID tid,PMPEG2_FILTER filter,DWORD timeout,ISectionList **section_list) {
456    return This->lpVtbl->GetTable(This,pid,tid,filter,timeout,section_list);
457}
458static inline HRESULT IMpeg2Data_GetStreamOfSections(IMpeg2Data* This,PID pid,TID tid,PMPEG2_FILTER filter,HANDLE data_ready_event,IMpeg2Stream **mpeg_stream) {
459    return This->lpVtbl->GetStreamOfSections(This,pid,tid,filter,data_ready_event,mpeg_stream);
460}
461#endif
462#endif
463
464#endif
465
466
467#endif  /* __IMpeg2Data_INTERFACE_DEFINED__ */
468
469/*****************************************************************************
470 * ISectionList interface
471 */
472#ifndef __ISectionList_INTERFACE_DEFINED__
473#define __ISectionList_INTERFACE_DEFINED__
474
475DEFINE_GUID(IID_ISectionList, 0xafec1eb5, 0x2a64, 0x46c6, 0xbf,0x4b, 0xae,0x3c,0xcb,0x6a,0xfd,0xb0);
476#if defined(__cplusplus) && !defined(CINTERFACE)
477MIDL_INTERFACE("afec1eb5-2a64-46c6-bf4b-ae3ccb6afdb0")
478ISectionList : public IUnknown
479{
480    virtual HRESULT STDMETHODCALLTYPE Initialize(
481        MPEG_REQUEST_TYPE request_type,
482        IMpeg2Data *mpeg2_data,
483        PMPEG_CONTEXT context,
484        PID pid,
485        TID tid,
486        PMPEG2_FILTER filter,
487        DWORD timeout,
488        HANDLE done_event) = 0;
489
490    virtual HRESULT STDMETHODCALLTYPE InitializeWithRawSections(
491        PMPEG_PACKET_LIST mpl_sections) = 0;
492
493    virtual HRESULT STDMETHODCALLTYPE CancelPendingRequest(
494        ) = 0;
495
496    virtual HRESULT STDMETHODCALLTYPE GetNumberOfSections(
497        WORD *count) = 0;
498
499    virtual HRESULT STDMETHODCALLTYPE GetSectionData(
500        WORD section_number,
501        DWORD *raw_packet_length,
502        PSECTION *section) = 0;
503
504    virtual HRESULT STDMETHODCALLTYPE GetProgramIdentifier(
505        PID *pid) = 0;
506
507    virtual HRESULT STDMETHODCALLTYPE GetTableIdentifier(
508        TID *tid) = 0;
509
510};
511#ifdef __CRT_UUID_DECL
512__CRT_UUID_DECL(ISectionList, 0xafec1eb5, 0x2a64, 0x46c6, 0xbf,0x4b, 0xae,0x3c,0xcb,0x6a,0xfd,0xb0)
513#endif
514#else
515typedef struct ISectionListVtbl {
516    BEGIN_INTERFACE
517
518    /*** IUnknown methods ***/
519    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
520        ISectionList *This,
521        REFIID riid,
522        void **ppvObject);
523
524    ULONG (STDMETHODCALLTYPE *AddRef)(
525        ISectionList *This);
526
527    ULONG (STDMETHODCALLTYPE *Release)(
528        ISectionList *This);
529
530    /*** ISectionList methods ***/
531    HRESULT (STDMETHODCALLTYPE *Initialize)(
532        ISectionList *This,
533        MPEG_REQUEST_TYPE request_type,
534        IMpeg2Data *mpeg2_data,
535        PMPEG_CONTEXT context,
536        PID pid,
537        TID tid,
538        PMPEG2_FILTER filter,
539        DWORD timeout,
540        HANDLE done_event);
541
542    HRESULT (STDMETHODCALLTYPE *InitializeWithRawSections)(
543        ISectionList *This,
544        PMPEG_PACKET_LIST mpl_sections);
545
546    HRESULT (STDMETHODCALLTYPE *CancelPendingRequest)(
547        ISectionList *This);
548
549    HRESULT (STDMETHODCALLTYPE *GetNumberOfSections)(
550        ISectionList *This,
551        WORD *count);
552
553    HRESULT (STDMETHODCALLTYPE *GetSectionData)(
554        ISectionList *This,
555        WORD section_number,
556        DWORD *raw_packet_length,
557        PSECTION *section);
558
559    HRESULT (STDMETHODCALLTYPE *GetProgramIdentifier)(
560        ISectionList *This,
561        PID *pid);
562
563    HRESULT (STDMETHODCALLTYPE *GetTableIdentifier)(
564        ISectionList *This,
565        TID *tid);
566
567    END_INTERFACE
568} ISectionListVtbl;
569
570interface ISectionList {
571    CONST_VTBL ISectionListVtbl* lpVtbl;
572};
573
574#ifdef COBJMACROS
575#ifndef WIDL_C_INLINE_WRAPPERS
576/*** IUnknown methods ***/
577#define ISectionList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
578#define ISectionList_AddRef(This) (This)->lpVtbl->AddRef(This)
579#define ISectionList_Release(This) (This)->lpVtbl->Release(This)
580/*** ISectionList methods ***/
581#define ISectionList_Initialize(This,request_type,mpeg2_data,context,pid,tid,filter,timeout,done_event) (This)->lpVtbl->Initialize(This,request_type,mpeg2_data,context,pid,tid,filter,timeout,done_event)
582#define ISectionList_InitializeWithRawSections(This,mpl_sections) (This)->lpVtbl->InitializeWithRawSections(This,mpl_sections)
583#define ISectionList_CancelPendingRequest(This) (This)->lpVtbl->CancelPendingRequest(This)
584#define ISectionList_GetNumberOfSections(This,count) (This)->lpVtbl->GetNumberOfSections(This,count)
585#define ISectionList_GetSectionData(This,section_number,raw_packet_length,section) (This)->lpVtbl->GetSectionData(This,section_number,raw_packet_length,section)
586#define ISectionList_GetProgramIdentifier(This,pid) (This)->lpVtbl->GetProgramIdentifier(This,pid)
587#define ISectionList_GetTableIdentifier(This,tid) (This)->lpVtbl->GetTableIdentifier(This,tid)
588#else
589/*** IUnknown methods ***/
590static inline HRESULT ISectionList_QueryInterface(ISectionList* This,REFIID riid,void **ppvObject) {
591    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
592}
593static inline ULONG ISectionList_AddRef(ISectionList* This) {
594    return This->lpVtbl->AddRef(This);
595}
596static inline ULONG ISectionList_Release(ISectionList* This) {
597    return This->lpVtbl->Release(This);
598}
599/*** ISectionList methods ***/
600static inline HRESULT ISectionList_Initialize(ISectionList* This,MPEG_REQUEST_TYPE request_type,IMpeg2Data *mpeg2_data,PMPEG_CONTEXT context,PID pid,TID tid,PMPEG2_FILTER filter,DWORD timeout,HANDLE done_event) {
601    return This->lpVtbl->Initialize(This,request_type,mpeg2_data,context,pid,tid,filter,timeout,done_event);
602}
603static inline HRESULT ISectionList_InitializeWithRawSections(ISectionList* This,PMPEG_PACKET_LIST mpl_sections) {
604    return This->lpVtbl->InitializeWithRawSections(This,mpl_sections);
605}
606static inline HRESULT ISectionList_CancelPendingRequest(ISectionList* This) {
607    return This->lpVtbl->CancelPendingRequest(This);
608}
609static inline HRESULT ISectionList_GetNumberOfSections(ISectionList* This,WORD *count) {
610    return This->lpVtbl->GetNumberOfSections(This,count);
611}
612static inline HRESULT ISectionList_GetSectionData(ISectionList* This,WORD section_number,DWORD *raw_packet_length,PSECTION *section) {
613    return This->lpVtbl->GetSectionData(This,section_number,raw_packet_length,section);
614}
615static inline HRESULT ISectionList_GetProgramIdentifier(ISectionList* This,PID *pid) {
616    return This->lpVtbl->GetProgramIdentifier(This,pid);
617}
618static inline HRESULT ISectionList_GetTableIdentifier(ISectionList* This,TID *tid) {
619    return This->lpVtbl->GetTableIdentifier(This,tid);
620}
621#endif
622#endif
623
624#endif
625
626
627#endif  /* __ISectionList_INTERFACE_DEFINED__ */
628
629/*****************************************************************************
630 * IMpeg2Stream interface
631 */
632#ifndef __IMpeg2Stream_INTERFACE_DEFINED__
633#define __IMpeg2Stream_INTERFACE_DEFINED__
634
635DEFINE_GUID(IID_IMpeg2Stream, 0x400cc286, 0x32a0, 0x4ce4, 0x90,0x41, 0x39,0x57,0x11,0x25,0xa6,0x35);
636#if defined(__cplusplus) && !defined(CINTERFACE)
637MIDL_INTERFACE("400cc286-32a0-4ce4-9041-39571125a635")
638IMpeg2Stream : public IUnknown
639{
640    virtual HRESULT STDMETHODCALLTYPE Initialize(
641        MPEG_REQUEST_TYPE request_type,
642        IMpeg2Data *mpeg2_data,
643        PMPEG_CONTEXT context,
644        PID pid,
645        TID tid,
646        PMPEG2_FILTER filter,
647        HANDLE data_ready_event) = 0;
648
649    virtual HRESULT STDMETHODCALLTYPE SupplyDataBuffer(
650        PMPEG_STREAM_BUFFER stream_buffer) = 0;
651
652};
653#ifdef __CRT_UUID_DECL
654__CRT_UUID_DECL(IMpeg2Stream, 0x400cc286, 0x32a0, 0x4ce4, 0x90,0x41, 0x39,0x57,0x11,0x25,0xa6,0x35)
655#endif
656#else
657typedef struct IMpeg2StreamVtbl {
658    BEGIN_INTERFACE
659
660    /*** IUnknown methods ***/
661    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
662        IMpeg2Stream *This,
663        REFIID riid,
664        void **ppvObject);
665
666    ULONG (STDMETHODCALLTYPE *AddRef)(
667        IMpeg2Stream *This);
668
669    ULONG (STDMETHODCALLTYPE *Release)(
670        IMpeg2Stream *This);
671
672    /*** IMpeg2Stream methods ***/
673    HRESULT (STDMETHODCALLTYPE *Initialize)(
674        IMpeg2Stream *This,
675        MPEG_REQUEST_TYPE request_type,
676        IMpeg2Data *mpeg2_data,
677        PMPEG_CONTEXT context,
678        PID pid,
679        TID tid,
680        PMPEG2_FILTER filter,
681        HANDLE data_ready_event);
682
683    HRESULT (STDMETHODCALLTYPE *SupplyDataBuffer)(
684        IMpeg2Stream *This,
685        PMPEG_STREAM_BUFFER stream_buffer);
686
687    END_INTERFACE
688} IMpeg2StreamVtbl;
689
690interface IMpeg2Stream {
691    CONST_VTBL IMpeg2StreamVtbl* lpVtbl;
692};
693
694#ifdef COBJMACROS
695#ifndef WIDL_C_INLINE_WRAPPERS
696/*** IUnknown methods ***/
697#define IMpeg2Stream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
698#define IMpeg2Stream_AddRef(This) (This)->lpVtbl->AddRef(This)
699#define IMpeg2Stream_Release(This) (This)->lpVtbl->Release(This)
700/*** IMpeg2Stream methods ***/
701#define IMpeg2Stream_Initialize(This,request_type,mpeg2_data,context,pid,tid,filter,data_ready_event) (This)->lpVtbl->Initialize(This,request_type,mpeg2_data,context,pid,tid,filter,data_ready_event)
702#define IMpeg2Stream_SupplyDataBuffer(This,stream_buffer) (This)->lpVtbl->SupplyDataBuffer(This,stream_buffer)
703#else
704/*** IUnknown methods ***/
705static inline HRESULT IMpeg2Stream_QueryInterface(IMpeg2Stream* This,REFIID riid,void **ppvObject) {
706    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
707}
708static inline ULONG IMpeg2Stream_AddRef(IMpeg2Stream* This) {
709    return This->lpVtbl->AddRef(This);
710}
711static inline ULONG IMpeg2Stream_Release(IMpeg2Stream* This) {
712    return This->lpVtbl->Release(This);
713}
714/*** IMpeg2Stream methods ***/
715static inline HRESULT IMpeg2Stream_Initialize(IMpeg2Stream* This,MPEG_REQUEST_TYPE request_type,IMpeg2Data *mpeg2_data,PMPEG_CONTEXT context,PID pid,TID tid,PMPEG2_FILTER filter,HANDLE data_ready_event) {
716    return This->lpVtbl->Initialize(This,request_type,mpeg2_data,context,pid,tid,filter,data_ready_event);
717}
718static inline HRESULT IMpeg2Stream_SupplyDataBuffer(IMpeg2Stream* This,PMPEG_STREAM_BUFFER stream_buffer) {
719    return This->lpVtbl->SupplyDataBuffer(This,stream_buffer);
720}
721#endif
722#endif
723
724#endif
725
726
727#endif  /* __IMpeg2Stream_INTERFACE_DEFINED__ */
728
729/*****************************************************************************
730 * SectionList coclass
731 */
732
733DEFINE_GUID(CLSID_SectionList, 0x73da5d04, 0x4347, 0x45d3, 0xa9,0xdc, 0xfa,0xe9,0xdd,0xbe,0x55,0x8d);
734
735#ifdef __cplusplus
736class DECLSPEC_UUID("73da5d04-4347-45d3-a9dc-fae9ddbe558d") SectionList;
737#ifdef __CRT_UUID_DECL
738__CRT_UUID_DECL(SectionList, 0x73da5d04, 0x4347, 0x45d3, 0xa9,0xdc, 0xfa,0xe9,0xdd,0xbe,0x55,0x8d)
739#endif
740#endif
741
742/*****************************************************************************
743 * Mpeg2Stream coclass
744 */
745
746DEFINE_GUID(CLSID_Mpeg2Stream, 0xf91d96c7, 0x8509, 0x4d0b, 0xab,0x26, 0xa0,0xdd,0x10,0x90,0x4b,0xb7);
747
748#ifdef __cplusplus
749class DECLSPEC_UUID("f91d96c7-8509-4d0b-ab26-a0dd10904bb7") Mpeg2Stream;
750#ifdef __CRT_UUID_DECL
751__CRT_UUID_DECL(Mpeg2Stream, 0xf91d96c7, 0x8509, 0x4d0b, 0xab,0x26, 0xa0,0xdd,0x10,0x90,0x4b,0xb7)
752#endif
753#endif
754
755/*****************************************************************************
756 * Mpeg2Data coclass
757 */
758
759DEFINE_GUID(CLSID_Mpeg2Data, 0xc666e115, 0xbb62, 0x4027, 0xa1,0x13, 0x82,0xd6,0x43,0xfe,0x2d,0x99);
760
761#ifdef __cplusplus
762class DECLSPEC_UUID("c666e115-bb62-4027-a113-82d643fe2d99") Mpeg2Data;
763#ifdef __CRT_UUID_DECL
764__CRT_UUID_DECL(Mpeg2Data, 0xc666e115, 0xbb62, 0x4027, 0xa1,0x13, 0x82,0xd6,0x43,0xfe,0x2d,0x99)
765#endif
766#endif
767
768#endif /* __Mpeg2DataLib_LIBRARY_DEFINED__ */
769/* Begin additional prototypes for all interfaces */
770
771
772/* End additional prototypes */
773
774#ifdef __cplusplus
775}
776#endif
777
778#endif /* __mpeg2data_h__ */