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