zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

mpeg2data.h (25012B) - Raw


      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__
     23 typedef interface IMpeg2TableFilter IMpeg2TableFilter;
     24 #ifdef __cplusplus
     25 interface IMpeg2TableFilter;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __Mpeg2TableFilter_FWD_DEFINED__
     30 #define __Mpeg2TableFilter_FWD_DEFINED__
     31 #ifdef __cplusplus
     32 typedef class Mpeg2TableFilter Mpeg2TableFilter;
     33 #else
     34 typedef struct Mpeg2TableFilter Mpeg2TableFilter;
     35 #endif /* defined __cplusplus */
     36 #endif /* defined __Mpeg2TableFilter_FWD_DEFINED__ */
     37 
     38 #ifndef __IMpeg2Data_FWD_DEFINED__
     39 #define __IMpeg2Data_FWD_DEFINED__
     40 typedef interface IMpeg2Data IMpeg2Data;
     41 #ifdef __cplusplus
     42 interface IMpeg2Data;
     43 #endif /* __cplusplus */
     44 #endif
     45 
     46 #ifndef __ISectionList_FWD_DEFINED__
     47 #define __ISectionList_FWD_DEFINED__
     48 typedef interface ISectionList ISectionList;
     49 #ifdef __cplusplus
     50 interface ISectionList;
     51 #endif /* __cplusplus */
     52 #endif
     53 
     54 #ifndef __IMpeg2Stream_FWD_DEFINED__
     55 #define __IMpeg2Stream_FWD_DEFINED__
     56 typedef interface IMpeg2Stream IMpeg2Stream;
     57 #ifdef __cplusplus
     58 interface IMpeg2Stream;
     59 #endif /* __cplusplus */
     60 #endif
     61 
     62 #ifndef __SectionList_FWD_DEFINED__
     63 #define __SectionList_FWD_DEFINED__
     64 #ifdef __cplusplus
     65 typedef class SectionList SectionList;
     66 #else
     67 typedef 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
     74 typedef class Mpeg2Stream Mpeg2Stream;
     75 #else
     76 typedef 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
     83 typedef class Mpeg2Data Mpeg2Data;
     84 #else
     85 typedef 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
     97 extern "C" {
     98 #endif
     99 
    100 #ifndef __ISectionList_FWD_DEFINED__
    101 #define __ISectionList_FWD_DEFINED__
    102 typedef interface ISectionList ISectionList;
    103 #ifdef __cplusplus
    104 interface ISectionList;
    105 #endif /* __cplusplus */
    106 #endif
    107 
    108 #ifndef __IMpeg2Stream_FWD_DEFINED__
    109 #define __IMpeg2Stream_FWD_DEFINED__
    110 typedef interface IMpeg2Stream IMpeg2Stream;
    111 #ifdef __cplusplus
    112 interface 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 
    185 DEFINE_GUID(IID_IMpeg2TableFilter, 0xbdcdd913, 0x9ecd, 0x4fb2, 0x81,0xae, 0xad,0xf7,0x47,0xea,0x75,0xa5);
    186 #if defined(__cplusplus) && !defined(CINTERFACE)
    187 MIDL_INTERFACE("bdcdd913-9ecd-4fb2-81ae-adf747ea75a5")
    188 IMpeg2TableFilter : 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
    219 typedef 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 
    268 interface 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 ***/
    287 static inline HRESULT IMpeg2TableFilter_QueryInterface(IMpeg2TableFilter* This,REFIID riid,void **ppvObject) {
    288     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    289 }
    290 static inline ULONG IMpeg2TableFilter_AddRef(IMpeg2TableFilter* This) {
    291     return This->lpVtbl->AddRef(This);
    292 }
    293 static inline ULONG IMpeg2TableFilter_Release(IMpeg2TableFilter* This) {
    294     return This->lpVtbl->Release(This);
    295 }
    296 /*** IMpeg2TableFilter methods ***/
    297 static inline HRESULT IMpeg2TableFilter_AddPID(IMpeg2TableFilter* This,PID p) {
    298     return This->lpVtbl->AddPID(This,p);
    299 }
    300 static inline HRESULT IMpeg2TableFilter_AddTable(IMpeg2TableFilter* This,PID p,TID t) {
    301     return This->lpVtbl->AddTable(This,p,t);
    302 }
    303 static inline HRESULT IMpeg2TableFilter_AddExtension(IMpeg2TableFilter* This,PID p,TID t,TEID e) {
    304     return This->lpVtbl->AddExtension(This,p,t,e);
    305 }
    306 static inline HRESULT IMpeg2TableFilter_RemovePID(IMpeg2TableFilter* This,PID p) {
    307     return This->lpVtbl->RemovePID(This,p);
    308 }
    309 static inline HRESULT IMpeg2TableFilter_RemoveTable(IMpeg2TableFilter* This,PID p,TID t) {
    310     return This->lpVtbl->RemoveTable(This,p,t);
    311 }
    312 static 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 
    327 DEFINE_GUID(CLSID_Mpeg2TableFilter, 0x752845f1, 0x758f, 0x4c83, 0xa0,0x43, 0x42,0x70,0xc5,0x93,0x30,0x8e);
    328 
    329 #ifdef __cplusplus
    330 class 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 
    336 typedef 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 
    344 DEFINE_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 
    352 DEFINE_GUID(IID_IMpeg2Data, 0x9b396d40, 0xf380, 0x4e3c, 0xa5,0x14, 0x1a,0x82,0xbf,0x6e,0xbf,0xe6);
    353 #if defined(__cplusplus) && !defined(CINTERFACE)
    354 MIDL_INTERFACE("9b396d40-f380-4e3c-a514-1a82bf6ebfe6")
    355 IMpeg2Data : 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
    383 typedef 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 
    426 interface 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 ***/
    442 static inline HRESULT IMpeg2Data_QueryInterface(IMpeg2Data* This,REFIID riid,void **ppvObject) {
    443     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    444 }
    445 static inline ULONG IMpeg2Data_AddRef(IMpeg2Data* This) {
    446     return This->lpVtbl->AddRef(This);
    447 }
    448 static inline ULONG IMpeg2Data_Release(IMpeg2Data* This) {
    449     return This->lpVtbl->Release(This);
    450 }
    451 /*** IMpeg2Data methods ***/
    452 static 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 }
    455 static 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 }
    458 static 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 
    475 DEFINE_GUID(IID_ISectionList, 0xafec1eb5, 0x2a64, 0x46c6, 0xbf,0x4b, 0xae,0x3c,0xcb,0x6a,0xfd,0xb0);
    476 #if defined(__cplusplus) && !defined(CINTERFACE)
    477 MIDL_INTERFACE("afec1eb5-2a64-46c6-bf4b-ae3ccb6afdb0")
    478 ISectionList : 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
    515 typedef 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 
    570 interface 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 ***/
    590 static inline HRESULT ISectionList_QueryInterface(ISectionList* This,REFIID riid,void **ppvObject) {
    591     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    592 }
    593 static inline ULONG ISectionList_AddRef(ISectionList* This) {
    594     return This->lpVtbl->AddRef(This);
    595 }
    596 static inline ULONG ISectionList_Release(ISectionList* This) {
    597     return This->lpVtbl->Release(This);
    598 }
    599 /*** ISectionList methods ***/
    600 static 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 }
    603 static inline HRESULT ISectionList_InitializeWithRawSections(ISectionList* This,PMPEG_PACKET_LIST mpl_sections) {
    604     return This->lpVtbl->InitializeWithRawSections(This,mpl_sections);
    605 }
    606 static inline HRESULT ISectionList_CancelPendingRequest(ISectionList* This) {
    607     return This->lpVtbl->CancelPendingRequest(This);
    608 }
    609 static inline HRESULT ISectionList_GetNumberOfSections(ISectionList* This,WORD *count) {
    610     return This->lpVtbl->GetNumberOfSections(This,count);
    611 }
    612 static 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 }
    615 static inline HRESULT ISectionList_GetProgramIdentifier(ISectionList* This,PID *pid) {
    616     return This->lpVtbl->GetProgramIdentifier(This,pid);
    617 }
    618 static 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 
    635 DEFINE_GUID(IID_IMpeg2Stream, 0x400cc286, 0x32a0, 0x4ce4, 0x90,0x41, 0x39,0x57,0x11,0x25,0xa6,0x35);
    636 #if defined(__cplusplus) && !defined(CINTERFACE)
    637 MIDL_INTERFACE("400cc286-32a0-4ce4-9041-39571125a635")
    638 IMpeg2Stream : 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
    657 typedef 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 
    690 interface 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 ***/
    705 static inline HRESULT IMpeg2Stream_QueryInterface(IMpeg2Stream* This,REFIID riid,void **ppvObject) {
    706     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    707 }
    708 static inline ULONG IMpeg2Stream_AddRef(IMpeg2Stream* This) {
    709     return This->lpVtbl->AddRef(This);
    710 }
    711 static inline ULONG IMpeg2Stream_Release(IMpeg2Stream* This) {
    712     return This->lpVtbl->Release(This);
    713 }
    714 /*** IMpeg2Stream methods ***/
    715 static 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 }
    718 static 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 
    733 DEFINE_GUID(CLSID_SectionList, 0x73da5d04, 0x4347, 0x45d3, 0xa9,0xdc, 0xfa,0xe9,0xdd,0xbe,0x55,0x8d);
    734 
    735 #ifdef __cplusplus
    736 class 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 
    746 DEFINE_GUID(CLSID_Mpeg2Stream, 0xf91d96c7, 0x8509, 0x4d0b, 0xab,0x26, 0xa0,0xdd,0x10,0x90,0x4b,0xb7);
    747 
    748 #ifdef __cplusplus
    749 class 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 
    759 DEFINE_GUID(CLSID_Mpeg2Data, 0xc666e115, 0xbb62, 0x4027, 0xa1,0x13, 0x82,0xd6,0x43,0xfe,0x2d,0x99);
    760 
    761 #ifdef __cplusplus
    762 class 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__ */