Home | History | Annotate | Download | only in include
      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 
     15 typedef 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 
     27 typedef 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 
     38 typedef enum SmartCardAssociationType {
     39   NotAssociated        = 0,
     40   Associated,
     41   AssociationUnknown
     42 } SmartCardAssociationType;
     43 
     44 enum SmartCardStatusType {
     45   CardInserted          = 0,
     46   CardRemoved,
     47   CardError,
     48   CardDataChanged,
     49   CardFirmwareUpgrade
     50 };
     51 
     52 enum 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 */
     61 typedef enum _LocationCodeSchemeType {
     62   SCTE_18 = 0
     63 } LocationCodeSchemeType;
     64 
     65 typedef struct _EALocationCodeType {
     66   LocationCodeSchemeType LocationCodeScheme;
     67   BYTE                   state_code;
     68   BYTE                   county_subdivision;
     69   WORD                   county_code;
     70 } EALocationCodeType;
     71 
     72 typedef struct _SmartCardApplication {
     73   ApplicationTypeType ApplicationType;
     74   USHORT              ApplicationVersion;
     75   BSTR                pbstrApplicationName;
     76   BSTR                pbstrApplicationURL;
     77 } SmartCardApplication;
     78 
     79 typedef 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__
    102 typedef struct IBDA_ConditionalAccessEx IBDA_ConditionalAccessEx;
    103 #endif
    104 
    105 #ifndef __IBDA_DRIDRMService_FWD_DEFINED__
    106 #define __IBDA_DRIDRMService_FWD_DEFINED__
    107 typedef struct IBDA_DRIDRMService IBDA_DRIDRMService;
    108 #endif
    109 
    110 #ifndef __IBDA_Encoder_FWD_DEFINED__
    111 #define __IBDA_Encoder_FWD_DEFINED__
    112 typedef struct IBDA_Encoder IBDA_Encoder;
    113 #endif
    114 
    115 #ifndef __IBDA_EventingService_FWD_DEFINED__
    116 #define __IBDA_EventingService_FWD_DEFINED__
    117 typedef struct IBDA_EventingService IBDA_EventingService;
    118 #endif
    119 
    120 #ifndef __IBDA_FDC_FWD_DEFINED__
    121 #define __IBDA_FDC_FWD_DEFINED__
    122 typedef struct IBDA_FDC IBDA_FDC;
    123 #endif
    124 
    125 #ifndef __IBDA_GuideDataDeliveryService_FWD_DEFINED__
    126 #define __IBDA_GuideDataDeliveryService_FWD_DEFINED__
    127 typedef struct IBDA_GuideDataDeliveryService IBDA_GuideDataDeliveryService;
    128 #endif
    129 
    130 #ifndef __IBDA_ISDBConditionalAccess_FWD_DEFINED__
    131 #define __IBDA_ISDBConditionalAccess_FWD_DEFINED__
    132 typedef struct IBDA_ISDBConditionalAccess IBDA_ISDBConditionalAccess;
    133 #endif
    134 
    135 #ifndef __IBDA_MUX_FWD_DEFINED__
    136 #define __IBDA_MUX_FWD_DEFINED__
    137 typedef struct IBDA_MUX IBDA_MUX;
    138 #endif
    139 
    140 #ifndef __IBDA_UserActivityService_FWD_DEFINED__
    141 #define __IBDA_UserActivityService_FWD_DEFINED__
    142 typedef struct IBDA_UserActivityService IBDA_UserActivityService;
    143 #endif
    144 
    145 #ifndef __IBDA_ISDBConditionalAccess_FWD_DEFINED__
    146 #define __IBDA_ISDBConditionalAccess_FWD_DEFINED__
    147 typedef 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
    157 DECLARE_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
    193 DECLARE_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
    225 DECLARE_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
    256 DECLARE_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
    284 DECLARE_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
    324 DECLARE_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
    357 DECLARE_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
    385 DECLARE_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
    415 DECLARE_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