1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef __INC_BDAIFACE__
7#define __INC_BDAIFACE__
8
9#include <objbase.h>
10#include <bdatypes.h>
11#include <dshow.h>
12
13#if (_WIN32_WINNT >= 0x0601)
14
15typedef enum ApplicationTypeType {
16  SCTE28_ConditionalAccess              = 0,
17  SCTE28_POD_Host_Binding_Information,
18  SCTE28_IPService,
19  SCTE28_NetworkInterface_SCTE55_2,
20  SCTE28_NetworkInterface_SCTE55_1,
21  SCTE28_CopyProtection,
22  SCTE28_Diagnostic,
23  SCTE28_Undesignated,
24  SCTE28_Reserved
25} ApplicationTypeType;
26
27typedef enum BDA_DrmPairingError {
28  BDA_DrmPairing_Succeeded            = 0,
29  BDA_DrmPairing_HardwareFailure,
30  BDA_DrmPairing_NeedRevocationData,
31  BDA_DrmPairing_NeedIndiv,
32  BDA_DrmPairing_Other,
33  BDA_DrmPairing_DrmInitFailed,
34  BDA_DrmPairing_DrmNotPaired,
35  BDA_DrmPairing_DrmRePairSoon
36} BDA_DrmPairingError;
37
38typedef enum SmartCardAssociationType {
39  NotAssociated        = 0,
40  Associated,
41  AssociationUnknown
42} SmartCardAssociationType;
43
44enum SmartCardStatusType {
45  CardInserted          = 0,
46  CardRemoved,
47  CardError,
48  CardDataChanged,
49  CardFirmwareUpgrade
50};
51
52enum UICloseReasonType {
53  NotReady       = 0,
54  UserClosed,
55  SystemClosed,
56  DeviceClosed,
57  ErrorClosed
58};
59
60/* Guessed from: https://acidframework.googlecode.com/svn-history/r215/trunk/Acid/Multimedia/DirectShow/BDA/BDAIface.cs */
61typedef enum _LocationCodeSchemeType {
62  SCTE_18 = 0
63} LocationCodeSchemeType;
64
65typedef struct _EALocationCodeType {
66  LocationCodeSchemeType LocationCodeScheme;
67  BYTE                   state_code;
68  BYTE                   county_subdivision;
69  WORD                   county_code;
70} EALocationCodeType;
71
72typedef struct _SmartCardApplication {
73  ApplicationTypeType ApplicationType;
74  USHORT              ApplicationVersion;
75  BSTR                pbstrApplicationName;
76  BSTR                pbstrApplicationURL;
77} SmartCardApplication;
78
79typedef struct _TransportSampleStatistics {
80  DWORD          dwWindowSize;
81  DWORD          dwNoOfRunningPackets;
82  DWORD          dwNoOfScrambledPackets;
83  DWORD          dwNoOfDiscontinuity;
84  DWORD          dwNoOfDroppedPackets;
85  REFERENCE_TIME rtCurrentStreamTime;
86  REFERENCE_TIME rtFirstPacketStreamTime;
87  REFERENCE_TIME rtLastPacketStreamTime;
88  REFERENCE_TIME rtLastDemuxInputSampleTime;
89} TRANSPORT_SAMPLE_STATISTICS;
90
91#define PBDA_Encoder_Video_MPEG2PartII 0x00000000
92#define PBDA_Encoder_Video_MPEG4Part10 0x00000001
93#define PBDA_Encoder_Video_MPEG4Part10 0x00000001
94#define PBDA_Encoder_Video_H264 0x00000001
95
96#define PBDA_Encoder_BitrateMode_Constant 0x00000001
97#define PBDA_Encoder_BitrateMode_Variable 0x00000002
98#define PBDA_Encoder_BitrateMode_Average 0x00000003
99
100#ifndef __IBDA_ConditionalAccessEx_FWD_DEFINED__
101#define __IBDA_ConditionalAccessEx_FWD_DEFINED__
102typedef struct IBDA_ConditionalAccessEx IBDA_ConditionalAccessEx;
103#endif
104
105#ifndef __IBDA_DRIDRMService_FWD_DEFINED__
106#define __IBDA_DRIDRMService_FWD_DEFINED__
107typedef struct IBDA_DRIDRMService IBDA_DRIDRMService;
108#endif
109
110#ifndef __IBDA_Encoder_FWD_DEFINED__
111#define __IBDA_Encoder_FWD_DEFINED__
112typedef struct IBDA_Encoder IBDA_Encoder;
113#endif
114
115#ifndef __IBDA_EventingService_FWD_DEFINED__
116#define __IBDA_EventingService_FWD_DEFINED__
117typedef struct IBDA_EventingService IBDA_EventingService;
118#endif
119
120#ifndef __IBDA_FDC_FWD_DEFINED__
121#define __IBDA_FDC_FWD_DEFINED__
122typedef struct IBDA_FDC IBDA_FDC;
123#endif
124
125#ifndef __IBDA_GuideDataDeliveryService_FWD_DEFINED__
126#define __IBDA_GuideDataDeliveryService_FWD_DEFINED__
127typedef struct IBDA_GuideDataDeliveryService IBDA_GuideDataDeliveryService;
128#endif
129
130#ifndef __IBDA_ISDBConditionalAccess_FWD_DEFINED__
131#define __IBDA_ISDBConditionalAccess_FWD_DEFINED__
132typedef struct IBDA_ISDBConditionalAccess IBDA_ISDBConditionalAccess;
133#endif
134
135#ifndef __IBDA_MUX_FWD_DEFINED__
136#define __IBDA_MUX_FWD_DEFINED__
137typedef struct IBDA_MUX IBDA_MUX;
138#endif
139
140#ifndef __IBDA_UserActivityService_FWD_DEFINED__
141#define __IBDA_UserActivityService_FWD_DEFINED__
142typedef struct IBDA_UserActivityService IBDA_UserActivityService;
143#endif
144
145#ifndef __IBDA_ISDBConditionalAccess_FWD_DEFINED__
146#define __IBDA_ISDBConditionalAccess_FWD_DEFINED__
147typedef struct IBDA_ISDBConditionalAccess IBDA_ISDBConditionalAccess;
148#endif
149
150#undef  INTERFACE
151#define INTERFACE IBDA_ConditionalAccessEx
152#ifdef __GNUC__
153#warning COM interfaces layout in this header has not been verified.
154#warning COM interfaces with incorrect layout may not work at all.
155__MINGW_BROKEN_INTERFACE(INTERFACE)
156#endif
157DECLARE_INTERFACE_(IBDA_ConditionalAccessEx,IUnknown)
158{
159    BEGIN_INTERFACE
160
161    /* IUnknown methods */
162    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
163    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
164    STDMETHOD_(ULONG, Release)(THIS) PURE;
165
166    /* IBDA_ConditionalAccessEx methods */
167    STDMETHOD_(HRESULT,CheckEntitlementToken)(THIS_ ULONG ulDialogRequest,BSTR bstrLanguage,BDA_CONDITIONALACCESS_REQUESTTYPE RequestType,ULONG ulcbEntitlementTokenLen,BYTE *pbEntitlementToken,ULONG *pulDescrambleStatus) PURE;
168    STDMETHOD_(HRESULT,CloseMmiDialog)(THIS_ ULONG ulDialogRequest,BSTR bstrLanguage,ULONG ulDialogNumber,BDA_CONDITIONALACCESS_MMICLOSEREASON ReasonCode,ULONG *pulSessionResult) PURE;
169    STDMETHOD_(HRESULT,CreateDialogRequestNumber)(THIS_ ULONG *pulDialogRequestNumber) PURE;
170    STDMETHOD_(HRESULT,OpenBroadcastMmi)(THIS_ ULONG ulDialogRequest,BSTR bstrLanguage,ULONG EventId) PURE;
171    STDMETHOD_(HRESULT,SetCaptureToken)(THIS_ ULONG ulcbCaptureTokenLen,BYTE *pbCaptureToken) PURE;
172
173    END_INTERFACE
174};
175#ifdef COBJMACROS
176#define IBDA_ConditionalAccessEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
177#define IBDA_ConditionalAccessEx_AddRef(This) (This)->lpVtbl->AddRef(This)
178#define IBDA_ConditionalAccessEx_Release(This) (This)->lpVtbl->Release(This)
179#define IBDA_ConditionalAccessEx_CheckEntitlementToken(This,ulDialogRequest,bstrLanguage,RequestType,ulcbEntitlementTokenLen,pbEntitlementToken,pulDescrambleStatus) (This)->lpVtbl->CheckEntitlementToken(This,ulDialogRequest,bstrLanguage,RequestType,ulcbEntitlementTokenLen,pbEntitlementToken,pulDescrambleStatus)
180#define IBDA_ConditionalAccessEx_CloseMmiDialog(This,ulDialogRequest,bstrLanguage,ulDialogNumber,ReasonCode,pulSessionResult) (This)->lpVtbl->CloseMmiDialog(This,ulDialogRequest,bstrLanguage,ulDialogNumber,ReasonCode,pulSessionResult)
181#define IBDA_ConditionalAccessEx_CreateDialogRequestNumber(This,pulDialogRequestNumber) (This)->lpVtbl->CreateDialogRequestNumber(This,pulDialogRequestNumber)
182#define IBDA_ConditionalAccessEx_OpenBroadcastMmi(This,ulDialogRequest,bstrLanguage,EventId) (This)->lpVtbl->OpenBroadcastMmi(This,ulDialogRequest,bstrLanguage,EventId)
183#define IBDA_ConditionalAccessEx_SetCaptureToken(This,ulcbCaptureTokenLen,pbCaptureToken) (This)->lpVtbl->SetCaptureToken(This,ulcbCaptureTokenLen,pbCaptureToken)
184#endif /*COBJMACROS*/
185
186#undef  INTERFACE
187#define INTERFACE IBDA_DRIDRMService
188#ifdef __GNUC__
189#warning COM interfaces layout in this header has not been verified.
190#warning COM interfaces with incorrect layout may not work at all.
191__MINGW_BROKEN_INTERFACE(INTERFACE)
192#endif
193DECLARE_INTERFACE_(IBDA_DRIDRMService,IUnknown)
194{
195    BEGIN_INTERFACE
196
197    /* IUnknown methods */
198    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
199    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
200    STDMETHOD_(ULONG, Release)(THIS) PURE;
201
202    /* IBDA_DRIDRMService methods */
203    STDMETHOD_(HRESULT,GetDRMStatus)(THIS_ BSTR *pbstrDrmUuidList,GUID *DrmUuid) PURE;
204    STDMETHOD_(HRESULT,GetPairingStatus)(THIS_ BDA_DrmPairingError *penumPairingStatus) PURE;
205    STDMETHOD_(HRESULT,SetDRM)(THIS_ GUID *puuidNewDrm) PURE;
206
207    END_INTERFACE
208};
209#ifdef COBJMACROS
210#define IBDA_DRIDRMService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
211#define IBDA_DRIDRMService_AddRef(This) (This)->lpVtbl->AddRef(This)
212#define IBDA_DRIDRMService_Release(This) (This)->lpVtbl->Release(This)
213#define IBDA_DRIDRMService_GetDRMStatus(This,pbstrDrmUuidList,DrmUuid) (This)->lpVtbl->GetDRMStatus(This,pbstrDrmUuidList,DrmUuid)
214#define IBDA_DRIDRMService_GetPairingStatus(This,penumPairingStatus) (This)->lpVtbl->GetPairingStatus(This,penumPairingStatus)
215#define IBDA_DRIDRMService_SetDRM(This,puuidNewDrm) (This)->lpVtbl->SetDRM(This,puuidNewDrm)
216#endif /*COBJMACROS*/
217
218#undef  INTERFACE
219#define INTERFACE IBDA_Encoder
220#ifdef __GNUC__
221#warning COM interfaces layout in this header has not been verified.
222#warning COM interfaces with incorrect layout may not work at all.
223__MINGW_BROKEN_INTERFACE(INTERFACE)
224#endif
225DECLARE_INTERFACE_(IBDA_Encoder,IUnknown)
226{
227    BEGIN_INTERFACE
228
229    /* IUnknown methods */
230    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
231    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
232    STDMETHOD_(ULONG, Release)(THIS) PURE;
233
234    /* IBDA_Encoder methods */
235    STDMETHOD_(HRESULT,EnumAudioCapability)(THIS_ DWORD FmtIndex,DWORD *MethodID,DWORD *AlgorithmType,DWORD *SamplingRate,DWORD *BitDepth,DWORD *NumChannels) PURE;
236    STDMETHOD_(HRESULT,EnumVideoCapability)(THIS_ DWORD FmtIndex,DWORD *MethodID,DWORD *AlgorithmType,DWORD *VerticalSize,DWORD *HorizontalSize,DWORD *AspectRatio,DWORD *FrameRateCode,DWORD *ProgressiveSequence) PURE;
237    STDMETHOD_(HRESULT,GetState)(THIS_ DWORD *AudioBitrateMax,DWORD *AudioBitrateMin,DWORD *AudioBitrateMode,DWORD *AudioBitrateStepping,DWORD *AudioBitrate,DWORD *AudioMethodID,DWORD *AvailableAudioPrograms,DWORD *AudioProgram,DWORD *VideoBitrateMax,DWORD *VideoBitrateMin,DWORD *VideoBitrateMode,DWORD *VideoBitrate,DWORD *VideoBitrateStepping,DWORD *VideoMethodID,DWORD *SignalSourceID,ULONGLONG *SignalFormat,WINBOOL *SignalLock,LONG *SignalLevel,DWORD *SignalToNoiseRatio) PURE;
238    STDMETHOD_(HRESULT,QueryCapabilities)(THIS_ DWORD *NumAudioFmts,DWORD *NumVideoFmts) PURE;
239    STDMETHOD_(HRESULT,SetParameters)(THIS_ DWORD AudioBitrateMode,DWORD AudioBitrate,DWORD AudioMethodID,DWORD AudioProgram,DWORD VideoBitrateMode,DWORD VideoBitrate,DWORD VideoMethodID) PURE;
240
241    END_INTERFACE
242};
243#ifdef COBJMACROS
244#define IBDA_Encoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
245#define IBDA_Encoder_AddRef(This) (This)->lpVtbl->AddRef(This)
246#define IBDA_Encoder_Release(This) (This)->lpVtbl->Release(This)
247#define IBDA_Encoder_EnumAudioCapability(This,FmtIndex,MethodID,AlgorithmType,SamplingRate,BitDepth,NumChannels) (This)->lpVtbl->EnumAudioCapability(This,FmtIndex,MethodID,AlgorithmType,SamplingRate,BitDepth,NumChannels)
248#define IBDA_Encoder_EnumVideoCapability(This,FmtIndex,MethodID,AlgorithmType,VerticalSize,HorizontalSize,AspectRatio,FrameRateCode,ProgressiveSequence) (This)->lpVtbl->EnumVideoCapability(This,FmtIndex,MethodID,AlgorithmType,VerticalSize,HorizontalSize,AspectRatio,FrameRateCode,ProgressiveSequence)
249#define IBDA_Encoder_GetState(This,AudioBitrateMax,AudioBitrateMin,AudioBitrateMode,AudioBitrateStepping,AudioBitrate,AudioMethodID,AvailableAudioPrograms,AudioProgram,VideoBitrateMax,VideoBitrateMin,VideoBitrateMode,VideoBitrate,VideoBitrateStepping,VideoMethodID,SignalSourceID,SignalFormat,SignalLock,SignalLevel,SignalToNoiseRatio) (This)->lpVtbl->GetState(This,AudioBitrateMax,AudioBitrateMin,AudioBitrateMode,AudioBitrateStepping,AudioBitrate,AudioMethodID,AvailableAudioPrograms,AudioProgram,VideoBitrateMax,VideoBitrateMin,VideoBitrateMode,VideoBitrate,VideoBitrateStepping,VideoMethodID,SignalSourceID,SignalFormat,SignalLock,SignalLevel,SignalToNoiseRatio)
250#define IBDA_Encoder_QueryCapabilities(This,NumAudioFmts,NumVideoFmts) (This)->lpVtbl->QueryCapabilities(This,NumAudioFmts,NumVideoFmts)
251#define IBDA_Encoder_SetParameters(This,AudioBitrateMode,AudioBitrate,AudioMethodID,AudioProgram,VideoBitrateMode,VideoBitrate,VideoMethodID) (This)->lpVtbl->SetParameters(This,AudioBitrateMode,AudioBitrate,AudioMethodID,AudioProgram,VideoBitrateMode,VideoBitrate,VideoMethodID)
252#endif /*COBJMACROS*/
253
254#undef  INTERFACE
255#define INTERFACE IBDA_EventingService
256DECLARE_INTERFACE_(IBDA_EventingService,IUnknown)
257{
258    BEGIN_INTERFACE
259
260    /* IUnknown methods */
261    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
262    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
263    STDMETHOD_(ULONG, Release)(THIS) PURE;
264
265    /* IBDA_EventingService methods */
266    STDMETHOD_(HRESULT,CompleteEvent)(THIS_ ULONG ulEventID,ULONG ulEventResult) PURE;
267
268    END_INTERFACE
269};
270#ifdef COBJMACROS
271#define IBDA_EventingService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
272#define IBDA_EventingService_AddRef(This) (This)->lpVtbl->AddRef(This)
273#define IBDA_EventingService_Release(This) (This)->lpVtbl->Release(This)
274#define IBDA_EventingService_CompleteEvent(This,ulEventID,ulEventResult) (This)->lpVtbl->CompleteEvent(This,ulEventID,ulEventResult)
275#endif /*COBJMACROS*/
276
277#undef  INTERFACE
278#define INTERFACE IBDA_FDC
279#ifdef __GNUC__
280#warning COM interfaces layout in this header has not been verified.
281#warning COM interfaces with incorrect layout may not work at all.
282__MINGW_BROKEN_INTERFACE(INTERFACE)
283#endif
284DECLARE_INTERFACE_(IBDA_FDC,IUnknown)
285{
286    BEGIN_INTERFACE
287
288    /* IUnknown methods */
289    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
290    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
291    STDMETHOD_(ULONG, Release)(THIS) PURE;
292
293    /* IBDA_FDC methods */
294    STDMETHOD_(HRESULT,AddPid)(THIS_ BSTR PidsToAdd,DWORD *RemainingFilterEntries) PURE;
295    STDMETHOD_(HRESULT,AddTid)(THIS_ BSTR TidsToAdd,BSTR *CurrentTidList) PURE;
296    STDMETHOD_(HRESULT,GetStatus)(THIS_ DWORD *CurrentBitrate,WINBOOL *CarrierLock,DWORD *CurrentFrequency,WINBOOL *CurrentSpectrumInversion,BSTR *CurrentPIDList,BSTR *CurrentTIDList,WINBOOL *Overflow) PURE;
297    STDMETHOD_(HRESULT,GetTableSection)(THIS_ DWORD *Pid,DWORD MaxBufferSize,DWORD *ActualSize,BYTE *SecBuffer) PURE;
298    STDMETHOD_(HRESULT,RemovePid)(THIS_ BSTR PidsToRemove) PURE;
299    STDMETHOD_(HRESULT,RemoveTid)(THIS_ BSTR TidsToRemove) PURE;
300    STDMETHOD_(HRESULT,RequestTables)(THIS_ BSTR TableIDs) PURE;
301
302    END_INTERFACE
303};
304#ifdef COBJMACROS
305#define IBDA_FDC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
306#define IBDA_FDC_AddRef(This) (This)->lpVtbl->AddRef(This)
307#define IBDA_FDC_Release(This) (This)->lpVtbl->Release(This)
308#define IBDA_FDC_AddPid(This,PidsToAdd,RemainingFilterEntries) (This)->lpVtbl->AddPid(This,PidsToAdd,RemainingFilterEntries)
309#define IBDA_FDC_AddTid(This,TidsToAdd,CurrentTidList) (This)->lpVtbl->AddTid(This,TidsToAdd,CurrentTidList)
310#define IBDA_FDC_GetStatus(This,CurrentBitrate,CarrierLock,CurrentFrequency,CurrentSpectrumInversion,CurrentPIDList,CurrentTIDList,Overflow) (This)->lpVtbl->GetStatus(This,CurrentBitrate,CarrierLock,CurrentFrequency,CurrentSpectrumInversion,CurrentPIDList,CurrentTIDList,Overflow)
311#define IBDA_FDC_GetTableSection(This,Pid,MaxBufferSize,ActualSize,SecBuffer) (This)->lpVtbl->GetTableSection(This,Pid,MaxBufferSize,ActualSize,SecBuffer)
312#define IBDA_FDC_RemovePid(This,PidsToRemove) (This)->lpVtbl->RemovePid(This,PidsToRemove)
313#define IBDA_FDC_RemoveTid(This,TidsToRemove) (This)->lpVtbl->RemoveTid(This,TidsToRemove)
314#define IBDA_FDC_RequestTables(This,TableIDs) (This)->lpVtbl->RequestTables(This,TableIDs)
315#endif /*COBJMACROS*/
316
317#undef  INTERFACE
318#define INTERFACE IBDA_GuideDataDeliveryService
319#ifdef __GNUC__
320#warning COM interfaces layout in this header has not been verified.
321#warning COM interfaces with incorrect layout may not work at all.
322__MINGW_BROKEN_INTERFACE(INTERFACE)
323#endif
324DECLARE_INTERFACE_(IBDA_GuideDataDeliveryService,IUnknown)
325{
326    BEGIN_INTERFACE
327
328    /* IUnknown methods */
329    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
330    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
331    STDMETHOD_(ULONG, Release)(THIS) PURE;
332
333    /* IBDA_GuideDataDeliveryService methods */
334    STDMETHOD(GetGuideData)(THIS_ ULONG *pulcbBufferLen,BYTE *pbBuffer,ULONG *pulGuideDataPercentageProgress) PURE;
335    STDMETHOD_(HRESULT,GetGuideDataType)(THIS_ GUID *pguidDataType) PURE;
336    STDMETHOD_(HRESULT,GetServiceInfoFromTuneXml)(THIS_ BSTR bstrTuneXml,BSTR *pbstrServiceDescription) PURE;
337    STDMETHOD_(HRESULT,GetServices)(THIS_ ULONG *pulcbBufferLen,BYTE *pbBuffer) PURE;
338    STDMETHOD_(HRESULT,GetTuneXmlFromServiceIdx)(THIS_ ULONG64 ul64ServiceIdx,BSTR *pbstrTuneXml) PURE;
339    STDMETHOD_(HRESULT,RequestGuideDataUpdate)(THIS) PURE;
340
341    END_INTERFACE
342};
343#ifdef COBJMACROS
344#define IBDA_GuideDataDeliveryService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
345#define IBDA_GuideDataDeliveryService_AddRef(This) (This)->lpVtbl->AddRef(This)
346#define IBDA_GuideDataDeliveryService_Release(This) (This)->lpVtbl->Release(This)
347#define IBDA_GuideDataDeliveryService_GetGuideData(This,pulcbBufferLen,pbBuffer,pulGuideDataPercentageProgress) (This)->lpVtbl->GetGuideData(This,pulcbBufferLen,pbBuffer,pulGuideDataPercentageProgress)
348#define IBDA_GuideDataDeliveryService_GetGuideDataType(This,pguidDataType) (This)->lpVtbl->GetGuideDataType(This,pguidDataType)
349#define IBDA_GuideDataDeliveryService_GetServiceInfoFromTuneXml(This,bstrTuneXml,pbstrServiceDescription) (This)->lpVtbl->GetServiceInfoFromTuneXml(This,bstrTuneXml,pbstrServiceDescription)
350#define IBDA_GuideDataDeliveryService_GetServices(This,pulcbBufferLen,pbBuffer) (This)->lpVtbl->GetServices(This,pulcbBufferLen,pbBuffer)
351#define IBDA_GuideDataDeliveryService_GetTuneXmlFromServiceIdx(This,ul64ServiceIdx,pbstrTuneXml) (This)->lpVtbl->GetTuneXmlFromServiceIdx(This,ul64ServiceIdx,pbstrTuneXml)
352#define IBDA_GuideDataDeliveryService_RequestGuideDataUpdate() (This)->lpVtbl->RequestGuideDataUpdate(This)
353#endif /*COBJMACROS*/
354
355#undef  INTERFACE
356#define INTERFACE IBDA_ISDBConditionalAccess
357DECLARE_INTERFACE_(IBDA_ISDBConditionalAccess,IUnknown)
358{
359    BEGIN_INTERFACE
360
361    /* IUnknown methods */
362    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
363    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
364    STDMETHOD_(ULONG, Release)(THIS) PURE;
365
366    /* IBDA_ISDBConditionalAccess methods */
367    STDMETHOD_(HRESULT,SetIsdbCasRequest)(THIS_ ULONG ulRequestId,ULONG ulcbRequestBufferLen,BYTE *pbRequestBuffer) PURE;
368
369    END_INTERFACE
370};
371#ifdef COBJMACROS
372#define IBDA_ISDBConditionalAccess_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
373#define IBDA_ISDBConditionalAccess_AddRef(This) (This)->lpVtbl->AddRef(This)
374#define IBDA_ISDBConditionalAccess_Release(This) (This)->lpVtbl->Release(This)
375#define IBDA_ISDBConditionalAccess_SetIsdbCasRequest(This,ulRequestId,ulcbRequestBufferLen,pbRequestBuffer) (This)->lpVtbl->SetIsdbCasRequest(This,ulRequestId,ulcbRequestBufferLen,pbRequestBuffer)
376#endif /*COBJMACROS*/
377
378#undef  INTERFACE
379#define INTERFACE IBDA_MUX
380#ifdef __GNUC__
381#warning COM interfaces layout in this header has not been verified.
382#warning COM interfaces with incorrect layout may not work at all.
383__MINGW_BROKEN_INTERFACE(INTERFACE)
384#endif
385DECLARE_INTERFACE_(IBDA_MUX,IUnknown)
386{
387    BEGIN_INTERFACE
388
389    /* IUnknown methods */
390    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
391    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
392    STDMETHOD_(ULONG, Release)(THIS) PURE;
393
394    /* IBDA_MUX methods */
395    STDMETHOD_(HRESULT,GetPidList)(THIS_ BDA_MUX_PIDLISTITEM *pbPidListBuffer) PURE;
396    STDMETHOD_(HRESULT,SetPidList)(THIS_ ULONG ulPidListCount,BDA_MUX_PIDLISTITEM *pbPidListBuffer) PURE;
397
398    END_INTERFACE
399};
400#ifdef COBJMACROS
401#define IBDA_MUX_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
402#define IBDA_MUX_AddRef(This) (This)->lpVtbl->AddRef(This)
403#define IBDA_MUX_Release(This) (This)->lpVtbl->Release(This)
404#define IBDA_MUX_GetPidList(This,pbPidListBuffer) (This)->lpVtbl->GetPidList(This,pbPidListBuffer)
405#define IBDA_MUX_SetPidList(This,ulPidListCount,pbPidListBuffer) (This)->lpVtbl->SetPidList(This,ulPidListCount,pbPidListBuffer)
406#endif /*COBJMACROS*/
407
408#undef  INTERFACE
409#define INTERFACE IBDA_UserActivityService
410#ifdef __GNUC__
411#warning COM interfaces layout in this header has not been verified.
412#warning COM interfaces with incorrect layout may not work at all.
413__MINGW_BROKEN_INTERFACE(INTERFACE)
414#endif
415DECLARE_INTERFACE_(IBDA_UserActivityService,IUnknown)
416{
417    BEGIN_INTERFACE
418
419    /* IUnknown methods */
420    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
421    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
422    STDMETHOD_(ULONG, Release)(THIS) PURE;
423
424    /* IBDA_UserActivityService methods */
425    STDMETHOD_(HRESULT,GetUserActivityInterval)(THIS_ DWORD *pdwActivityInterval) PURE;
426    STDMETHOD_(HRESULT,SetCurrentTunerUseReason)(THIS_ DWORD dwUseReason) PURE;
427    STDMETHOD_(HRESULT,UserActivityDetected)(THIS) PURE;
428
429    END_INTERFACE
430};
431#ifdef COBJMACROS
432#define IBDA_UserActivityService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
433#define IBDA_UserActivityService_AddRef(This) (This)->lpVtbl->AddRef(This)
434#define IBDA_UserActivityService_Release(This) (This)->lpVtbl->Release(This)
435#define IBDA_UserActivityService_GetUserActivityInterval(This,pdwActivityInterval) (This)->lpVtbl->GetUserActivityInterval(This,pdwActivityInterval)
436#define IBDA_UserActivityService_SetCurrentTunerUseReason(This,dwUseReason) (This)->lpVtbl->SetCurrentTunerUseReason(This,dwUseReason)
437#define IBDA_UserActivityService_UserActivityDetected() (This)->lpVtbl->UserActivityDetected(This)
438#endif /*COBJMACROS*/
439
440#endif /*(_WIN32_WINNT >= 0x0601)*/
441#endif /*__INC_BDAIFACE__*/
442