|  | /** | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER within this package. | 
|  | */ | 
|  |  | 
|  | #ifndef DO_NO_IMPORTS | 
|  | import "unknwn.idl"; | 
|  | import "strmif.idl"; | 
|  | import "bdatypes.h"; | 
|  | #endif | 
|  |  | 
|  | cpp_quote("#include <winapifamily.h>") | 
|  | cpp_quote("") | 
|  | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") | 
|  |  | 
|  | #include "bdaiface_enums.h" | 
|  |  | 
|  | cpp_quote("") | 
|  | cpp_quote("#define PBDA_Encoder_Audio_AlgorithmType_MPEG1LayerII 0x0") | 
|  | cpp_quote("#define PBDA_Encoder_Audio_AlgorithmType_AC3 0x1") | 
|  | cpp_quote("") | 
|  | cpp_quote("#define PBDA_Encoder_Video_MPEG2PartII 0x0") | 
|  | cpp_quote("#define PBDA_Encoder_Video_MPEG4Part10 0x1") | 
|  | cpp_quote("") | 
|  | cpp_quote("#define PBDA_Encoder_Video_AVC 0x1") | 
|  | cpp_quote("#define PBDA_Encoder_Video_H264 0x1") | 
|  | cpp_quote("") | 
|  | cpp_quote("#define PBDA_Encoder_BitrateMode_Constant 1") | 
|  | cpp_quote("#define PBDA_Encoder_BitrateMode_Variable 2") | 
|  | cpp_quote("#define PBDA_Encoder_BitrateMode_Average 3") | 
|  |  | 
|  | typedef enum { | 
|  | KSPROPERTY_IPSINK_MULTICASTLIST, | 
|  | KSPROPERTY_IPSINK_ADAPTER_DESCRIPTION, | 
|  | KSPROPERTY_IPSINK_ADAPTER_ADDRESS | 
|  | } KSPROPERTY_IPSINK; | 
|  |  | 
|  | #if 0 | 
|  | typedef enum { | 
|  | MEDIA_TRANSPORT_PACKET, | 
|  | MEDIA_ELEMENTARY_STREAM, | 
|  | MEDIA_MPEG2_PSI, | 
|  | MEDIA_TRANSPORT_PAYLOAD | 
|  | } MEDIA_SAMPLE_CONTENT; | 
|  |  | 
|  | typedef struct { | 
|  | ULONG ulPID; | 
|  | MEDIA_SAMPLE_CONTENT MediaSampleContent; | 
|  | } PID_MAP; | 
|  | #endif | 
|  |  | 
|  | [object, uuid (fd501041-8ebe-11ce-8183-00aa00577da2), pointer_default (unique)] | 
|  | interface IBDA_NetworkProvider : IUnknown { | 
|  | HRESULT PutSignalSource ([in] ULONG ulSignalSource); | 
|  | HRESULT GetSignalSource ([in, out] ULONG *pulSignalSource); | 
|  | HRESULT GetNetworkType ([in, out] GUID *pguidNetworkType); | 
|  | HRESULT PutTuningSpace ([in] REFGUID guidTuningSpace); | 
|  | HRESULT GetTuningSpace ([in, out] GUID *pguidTuingSpace); | 
|  | HRESULT RegisterDeviceFilter ([in] IUnknown *pUnkFilterControl,[in, out] ULONG *ppvRegisitrationContext); | 
|  | HRESULT UnRegisterDeviceFilter ([in] ULONG pvRegistrationContext); | 
|  | } | 
|  |  | 
|  | [object, uuid (71985f43-1ca1-11d3-9cc8-00c04f7971e0), pointer_default (unique)] | 
|  | interface IBDA_EthernetFilter : IUnknown { | 
|  | HRESULT GetMulticastListSize ([in, out] ULONG *pulcbAddresses); | 
|  | HRESULT PutMulticastList ([in] ULONG ulcbAddresses,[in, size_is (ulcbAddresses)] BYTE pAddressList []); | 
|  | HRESULT GetMulticastList ([in, out] ULONG *pulcbAddresses,[in, out, size_is (*pulcbAddresses)] BYTE pAddressList []); | 
|  | HRESULT PutMulticastMode ([in] ULONG ulModeMask); | 
|  | HRESULT GetMulticastMode ([out] ULONG *pulModeMask); | 
|  | }; | 
|  |  | 
|  | [object, uuid (71985f44-1ca1-11d3-9cc8-00c04f7971e0), pointer_default (unique)] | 
|  | interface IBDA_IPV4Filter : IUnknown { | 
|  | HRESULT GetMulticastListSize ([in, out] ULONG *pulcbAddresses); | 
|  | HRESULT PutMulticastList ([in] ULONG ulcbAddresses,[in, size_is (ulcbAddresses)] BYTE pAddressList []); | 
|  | HRESULT GetMulticastList ([in, out] ULONG *pulcbAddresses,[out, size_is (*pulcbAddresses)] BYTE pAddressList []); | 
|  | HRESULT PutMulticastMode ([in] ULONG ulModeMask); | 
|  | HRESULT GetMulticastMode ([out] ULONG *pulModeMask); | 
|  | }; | 
|  |  | 
|  | [object, uuid (E1785A74-2a23-4fb3-9245-A8F88017EF33), pointer_default (unique)] | 
|  | interface IBDA_IPV6Filter : IUnknown { | 
|  | HRESULT GetMulticastListSize ([in, out] ULONG *pulcbAddresses); | 
|  | HRESULT PutMulticastList ([in] ULONG ulcbAddresses,[in, size_is (ulcbAddresses)] BYTE pAddressList []); | 
|  | HRESULT GetMulticastList ([in, out] ULONG *pulcbAddresses,[out, size_is (*pulcbAddresses)] BYTE pAddressList []); | 
|  | HRESULT PutMulticastMode ([in] ULONG ulModeMask); | 
|  | HRESULT GetMulticastMode ([out] ULONG *pulModeMask); | 
|  | }; | 
|  |  | 
|  | [object, uuid (FD0A5AF3-B41D-11d2-9c95-00c04f7971e0), pointer_default (unique)] | 
|  | interface IBDA_DeviceControl : IUnknown { | 
|  | HRESULT StartChanges (void); | 
|  | HRESULT CheckChanges (void); | 
|  | HRESULT CommitChanges (void); | 
|  | HRESULT GetChangeState ([in, out] ULONG *pState); | 
|  | }; | 
|  |  | 
|  | [object, uuid (0ded49d5-A8B7-4d5d-97a1-12b0c195874d), pointer_default (unique)] | 
|  | interface IBDA_PinControl : IUnknown { | 
|  | HRESULT GetPinID ([in, out] ULONG *pulPinID); | 
|  | HRESULT GetPinType ([in, out] ULONG *pulPinType); | 
|  | HRESULT RegistrationContext ([in, out] ULONG *pulRegistrationCtx); | 
|  | }; | 
|  |  | 
|  | [object, uuid (D2F1644B-B409-11d2-BC69-00a0c9ee9e16), pointer_default (unique)] | 
|  | interface IBDA_SignalProperties : IUnknown { | 
|  | HRESULT PutNetworkType ([in] REFGUID guidNetworkType); | 
|  | HRESULT GetNetworkType ([in, out] GUID *pguidNetworkType); | 
|  | HRESULT PutSignalSource ([in] ULONG ulSignalSource); | 
|  | HRESULT GetSignalSource ([in, out] ULONG *pulSignalSource); | 
|  | HRESULT PutTuningSpace ([in] REFGUID guidTuningSpace); | 
|  | HRESULT GetTuningSpace ([in, out] GUID *pguidTuingSpace); | 
|  | }; | 
|  |  | 
|  | [object, uuid (1347d106-CF3A-428a-A5CB-AC0D9A2A4338), pointer_default (unique)] | 
|  | interface IBDA_SignalStatistics : IUnknown { | 
|  | HRESULT put_SignalStrength ([in] LONG lDbStrength); | 
|  | HRESULT get_SignalStrength ([in, out] LONG *plDbStrength); | 
|  | HRESULT put_SignalQuality ([in] LONG lPercentQuality); | 
|  | HRESULT get_SignalQuality ([in, out] LONG *plPercentQuality); | 
|  | HRESULT put_SignalPresent ([in] BOOLEAN fPresent); | 
|  | HRESULT get_SignalPresent ([in, out] BOOLEAN *pfPresent); | 
|  | HRESULT put_SignalLocked ([in] BOOLEAN fLocked); | 
|  | HRESULT get_SignalLocked ([in, out] BOOLEAN *pfLocked); | 
|  | HRESULT put_SampleTime ([in] LONG lmsSampleTime); | 
|  | HRESULT get_SampleTime ([in, out] LONG *plmsSampleTime); | 
|  | }; | 
|  |  | 
|  | [object, uuid (79b56888-7fea-4690-B45D-38fd3c7849be), pointer_default (unique)] | 
|  | interface IBDA_Topology : IUnknown { | 
|  | HRESULT GetNodeTypes ([in, out] ULONG *pulcNodeTypes,[in] ULONG ulcNodeTypesMax,[in, out, size_is (ulcNodeTypesMax)] ULONG rgulNodeTypes[]); | 
|  | HRESULT GetNodeDescriptors ([in, out] ULONG *ulcNodeDescriptors,[in] ULONG ulcNodeDescriptorsMax,[in, out, size_is (ulcNodeDescriptorsMax)] BDANODE_DESCRIPTOR rgNodeDescriptors[]); | 
|  | HRESULT GetNodeInterfaces ([in] ULONG ulNodeType,[in, out] ULONG *pulcInterfaces,[in] ULONG ulcInterfacesMax,[in, out, size_is (ulcInterfacesMax)] GUID rgguidInterfaces[]); | 
|  | HRESULT GetPinTypes ([in, out] ULONG *pulcPinTypes,[in] ULONG ulcPinTypesMax,[in, out, size_is (ulcPinTypesMax)] ULONG rgulPinTypes[]); | 
|  | HRESULT GetTemplateConnections ([in, out] ULONG *pulcConnections,[in] ULONG ulcConnectionsMax,[in, out, size_is (ulcConnectionsMax)] BDA_TEMPLATE_CONNECTION rgConnections[]); | 
|  | HRESULT CreatePin ([in] ULONG ulPinType,[in, out] ULONG *pulPinId); | 
|  | HRESULT DeletePin ([in] ULONG ulPinId); | 
|  | HRESULT SetMediaType ([in] ULONG ulPinId,[in] AM_MEDIA_TYPE *pMediaType); | 
|  | HRESULT SetMedium ([in] ULONG ulPinId,[in] REGPINMEDIUM *pMedium); | 
|  | HRESULT CreateTopology ([in] ULONG ulInputPinId,[in] ULONG ulOutputPinId); | 
|  | HRESULT GetControlNode ([in] ULONG ulInputPinId,[in] ULONG ulOutputPinId,[in] ULONG ulNodeType,[in, out] IUnknown **ppControlNode); | 
|  | }; | 
|  |  | 
|  | [object, uuid (71985f46-1ca1-11d3-9cc8-00c04f7971e0), pointer_default (unique)] | 
|  | interface IBDA_VoidTransform : IUnknown { | 
|  | HRESULT Start (void); | 
|  | HRESULT Stop (void); | 
|  | }; | 
|  |  | 
|  | [object, uuid (DDF15B0D-BD25-11d2-9ca0-00c04f7971e0), pointer_default (unique)] | 
|  | interface IBDA_NullTransform : IUnknown { | 
|  | HRESULT Start (void); | 
|  | HRESULT Stop (void); | 
|  | }; | 
|  |  | 
|  | [object, uuid (71985f47-1ca1-11d3-9cc8-00c04f7971e0), pointer_default (unique)] | 
|  | interface IBDA_FrequencyFilter : IUnknown { | 
|  | HRESULT put_Autotune ([in] ULONG ulTransponder); | 
|  | HRESULT get_Autotune ([in, out] ULONG *pulTransponder); | 
|  | HRESULT put_Frequency ([in] ULONG ulFrequency); | 
|  | HRESULT get_Frequency ([in, out] ULONG *pulFrequency); | 
|  | HRESULT put_Polarity ([in] Polarisation Polarity); | 
|  | HRESULT get_Polarity ([in, out] Polarisation *pPolarity); | 
|  | HRESULT put_Range ([in] ULONG ulRange); | 
|  | HRESULT get_Range ([in, out] ULONG *pulRange); | 
|  | HRESULT put_Bandwidth ([in] ULONG ulBandwidth); | 
|  | HRESULT get_Bandwidth ([in, out] ULONG *pulBandwidth); | 
|  | HRESULT put_FrequencyMultiplier ([in] ULONG ulMultiplier); | 
|  | HRESULT get_FrequencyMultiplier ([in, out] ULONG *pulMultiplier); | 
|  | }; | 
|  |  | 
|  | [object, uuid (992cf102-49f9-4719-A664-C4F23E2408F4), pointer_default (unique)] | 
|  | interface IBDA_LNBInfo : IUnknown { | 
|  | HRESULT put_LocalOscilatorFrequencyLowBand ([in] ULONG ulLOFLow); | 
|  | HRESULT get_LocalOscilatorFrequencyLowBand ([in, out] ULONG *pulLOFLow); | 
|  | HRESULT put_LocalOscilatorFrequencyHighBand ([in] ULONG ulLOFHigh); | 
|  | HRESULT get_LocalOscilatorFrequencyHighBand ([in, out] ULONG *pulLOFHigh); | 
|  | HRESULT put_HighLowSwitchFrequency ([in] ULONG ulSwitchFrequency); | 
|  | HRESULT get_HighLowSwitchFrequency ([in, out] ULONG *pulSwitchFrequency); | 
|  | }; | 
|  |  | 
|  | [object, uuid (F84E2AB0-3c6b-45e3-A0FC-8669d4b81f11), pointer_default (unique)] | 
|  | interface IBDA_DiseqCommand : IUnknown { | 
|  | HRESULT put_EnableDiseqCommands ([in] BOOLEAN bEnable); | 
|  | HRESULT put_DiseqLNBSource ([in] ULONG ulLNBSource); | 
|  | HRESULT put_DiseqUseToneBurst ([in] BOOLEAN bUseToneBurst); | 
|  | HRESULT put_DiseqRepeats ([in] ULONG ulRepeats); | 
|  | HRESULT put_DiseqSendCommand ([in] ULONG ulRequestId,[in] ULONG ulcbCommandLen,[in, size_is (ulcbCommandLen)] BYTE *pbCommand); | 
|  | HRESULT get_DiseqResponse ([in] ULONG ulRequestId,[in, out] ULONG *pulcbResponseLen,[in, out, size_is (*pulcbResponseLen)] BYTE pbResponse[]); | 
|  | }; | 
|  |  | 
|  | [object, uuid (DDF15B12-BD25-11d2-9ca0-00c04f7971e0), pointer_default (unique)] | 
|  | interface IBDA_AutoDemodulate : IUnknown { | 
|  | HRESULT put_AutoDemodulate (void); | 
|  | }; | 
|  |  | 
|  | [object, uuid (34518d13-1182-48e6-B28F-B24987787326), pointer_default (unique)] | 
|  | interface IBDA_AutoDemodulateEx : IBDA_AutoDemodulate { | 
|  | HRESULT get_SupportedDeviceNodeTypes ([in] ULONG ulcDeviceNodeTypesMax,[out] ULONG *pulcDeviceNodeTypes,[in, out] GUID *pguidDeviceNodeTypes); | 
|  | HRESULT get_SupportedVideoFormats ([out] ULONG *pulAMTunerModeType,[out] ULONG *pulAnalogVideoStandard); | 
|  | HRESULT get_AuxInputCount ([in, out] ULONG *pulCompositeCount,[in, out] ULONG *pulSvideoCount); | 
|  | }; | 
|  |  | 
|  | [object, uuid (EF30F379-985b-4d10-B640-A79D5E04E1E0), pointer_default (unique)] | 
|  | interface IBDA_DigitalDemodulator : IUnknown { | 
|  | HRESULT put_ModulationType ([in] ModulationType *pModulationType); | 
|  | HRESULT get_ModulationType ([in, out] ModulationType *pModulationType); | 
|  | HRESULT put_InnerFECMethod ([in] FECMethod *pFECMethod); | 
|  | HRESULT get_InnerFECMethod ([in, out] FECMethod *pFECMethod); | 
|  | HRESULT put_InnerFECRate ([in] BinaryConvolutionCodeRate *pFECRate); | 
|  | HRESULT get_InnerFECRate ([in, out] BinaryConvolutionCodeRate *pFECRate); | 
|  | HRESULT put_OuterFECMethod ([in] FECMethod *pFECMethod); | 
|  | HRESULT get_OuterFECMethod ([in, out] FECMethod *pFECMethod); | 
|  | HRESULT put_OuterFECRate ([in] BinaryConvolutionCodeRate *pFECRate); | 
|  | HRESULT get_OuterFECRate ([in, out] BinaryConvolutionCodeRate *pFECRate); | 
|  | HRESULT put_SymbolRate ([in] ULONG *pSymbolRate); | 
|  | HRESULT get_SymbolRate ([in, out] ULONG *pSymbolRate); | 
|  | HRESULT put_SpectralInversion ([in] SpectralInversion *pSpectralInversion); | 
|  | HRESULT get_SpectralInversion ([in, out] SpectralInversion *pSpectralInversion); | 
|  | }; | 
|  |  | 
|  | [object, uuid (525ed3ee-5cf3-4e1e-9a06-5368a84f9a6e), pointer_default (unique)] | 
|  | interface IBDA_DigitalDemodulator2 : IBDA_DigitalDemodulator { | 
|  | HRESULT put_GuardInterval ([in] GuardInterval *pGuardInterval); | 
|  | HRESULT get_GuardInterval ([in, out] GuardInterval *pGuardInterval); | 
|  | HRESULT put_TransmissionMode ([in] TransmissionMode *pTransmissionMode); | 
|  | HRESULT get_TransmissionMode ([in, out] TransmissionMode *pTransmissionMode); | 
|  | HRESULT put_RollOff ([in] RollOff *pRollOff); | 
|  | HRESULT get_RollOff ([in, out] RollOff *pRollOff); | 
|  | HRESULT put_Pilot ([in] Pilot *pPilot); | 
|  | HRESULT get_Pilot ([in, out] Pilot *pPilot); | 
|  | }; | 
|  |  | 
|  | [object, uuid (13f19604-7d32-4359-93a2-A05205D90AC9), pointer_default (unique)] | 
|  | interface IBDA_DigitalDemodulator3 : IBDA_DigitalDemodulator2 { | 
|  | HRESULT put_SignalTimeouts ([in] BDA_SIGNAL_TIMEOUTS *pSignalTimeouts); | 
|  | HRESULT get_SignalTimeouts ([in, out] BDA_SIGNAL_TIMEOUTS *pSignalTimeouts); | 
|  | HRESULT put_PLPNumber ([in] ULONG *pPLPNumber); | 
|  | HRESULT get_PLPNumber ([in, out] ULONG *pPLPNumber); | 
|  | }; | 
|  |  | 
|  | [object, uuid (4b2bd7ea-8347-467b-8dbf-62f784929cc3), pointer_default (unique)] | 
|  | interface ICCSubStreamFiltering : IUnknown { | 
|  | [propget, helpstring ("property SubstreamTypes")] HRESULT SubstreamTypes ([out, retval] long *pTypes); | 
|  | [propput, helpstring ("property SubstreamTypes")] HRESULT SubstreamTypes ([in] long Types); | 
|  | }; | 
|  |  | 
|  | [object, uuid (3f4dc8e2-4050-11d3-8f4b-00c04f7971e2), pointer_default (unique)] | 
|  | interface IBDA_IPSinkControl : IUnknown { | 
|  | HRESULT GetMulticastList ([in, out] unsigned long *pulcbSize,[in, out] BYTE **pbBuffer); | 
|  | HRESULT GetAdapterIPAddress ([in, out] unsigned long *pulcbSize,[in, out] BYTE **pbBuffer); | 
|  | }; | 
|  |  | 
|  | [object, uuid (A750108F-492e-4d51-95f7-649b23ff7ad7), pointer_default (unique)] | 
|  | interface IBDA_IPSinkInfo : IUnknown { | 
|  | HRESULT get_MulticastList ([in, out] ULONG *pulcbAddresses,[out, size_is (*pulcbAddresses)] BYTE **ppbAddressList); | 
|  | HRESULT get_AdapterIPAddress ([out] BSTR *pbstrBuffer); | 
|  | HRESULT get_AdapterDescription ([out] BSTR *pbstrBuffer); | 
|  | }; | 
|  |  | 
|  | [object, uuid (afb6c2a2-2c41-11d3-8a60-0000f81e0e4a), pointer_default (unique)] | 
|  | interface IEnumPIDMap : IUnknown { | 
|  | HRESULT Next ([in] ULONG cRequest,[in, out, size_is (cRequest)] PID_MAP *pPIDMap,[out] ULONG *pcReceived); | 
|  | HRESULT Skip ([in] ULONG cRecords); | 
|  | HRESULT Reset (); | 
|  | HRESULT Clone ([out] IEnumPIDMap **ppIEnumPIDMap); | 
|  | }; | 
|  |  | 
|  | [object, uuid (afb6c2a1-2c41-11d3-8a60-0000f81e0e4a), pointer_default (unique)] | 
|  | interface IMPEG2PIDMap : IUnknown { | 
|  | HRESULT MapPID ([in] ULONG culPID,[in] ULONG *pulPID,[in] MEDIA_SAMPLE_CONTENT MediaSampleContent); | 
|  | HRESULT UnmapPID ([in] ULONG culPID,[in] ULONG *pulPID); | 
|  | HRESULT EnumPIDMap ([out] IEnumPIDMap **pIEnumPIDMap); | 
|  | }; | 
|  |  | 
|  | [object, uuid (06fb45c1-693c-4ea7-B79F-7a6a54d8def2), pointer_default (unique), hidden, restricted] | 
|  | interface IFrequencyMap : IUnknown { | 
|  | HRESULT get_FrequencyMapping ([out] ULONG *ulCount,[out, size_is (1,*ulCount)] ULONG **ppulList); | 
|  | HRESULT put_FrequencyMapping ([in] ULONG ulCount,[in, size_is (ulCount)] ULONG pList[]); | 
|  | HRESULT get_CountryCode ([out] ULONG *pulCountryCode); | 
|  | HRESULT put_CountryCode ([in] ULONG ulCountryCode); | 
|  | HRESULT get_DefaultFrequencyMapping ([in] ULONG ulCountryCode,[out] ULONG *pulCount,[out, size_is (1,*pulCount)] ULONG **ppulList); | 
|  | HRESULT get_CountryCodeList ([out] ULONG *pulCount,[out, size_is (1,*pulCount)] ULONG **ppulList); | 
|  | }; | 
|  |  | 
|  | [object, uuid (D806973D-3ebe-46de-8fbb-6358fe784208), pointer_default (unique), hidden, restricted] | 
|  | interface IBDA_EasMessage : IUnknown { | 
|  | HRESULT get_EasMessage ([in] ULONG ulEventID,[in, out] IUnknown **ppEASObject); | 
|  | }; | 
|  |  | 
|  | [object, uuid (8e882535-5f86-47ab-86cf-C281A72A0549), pointer_default (unique), hidden, restricted] | 
|  | interface IBDA_TransportStreamInfo : IUnknown { | 
|  | HRESULT get_PatTableTickCount ([out] ULONG *pPatTickCount); | 
|  | }; | 
|  |  | 
|  | [object, uuid (CD51F1E0-7be9-4123-8482-A2A796C0A6B0), pointer_default (unique)] | 
|  | interface IBDA_ConditionalAccess : IUnknown { | 
|  | HRESULT get_SmartCardStatus ([out] SmartCardStatusType *pCardStatus,[out] SmartCardAssociationType *pCardAssociation,[out] BSTR *pbstrCardError,[out] VARIANT_BOOL *pfOOBLocked); | 
|  | HRESULT get_SmartCardInfo ([out] BSTR *pbstrCardName,[out] BSTR *pbstrCardManufacturer,[out] VARIANT_BOOL *pfDaylightSavings,[out] BYTE *pbyRatingRegion,[out] LONG *plTimeZoneOffsetMinutes,[out] BSTR *pbstrLanguage,[out] EALocationCodeType *pEALocationCode); | 
|  | HRESULT get_SmartCardApplications ([in, out] ULONG *pulcApplications,[in] ULONG ulcApplicationsMax,[in, out, size_is (ulcApplicationsMax)] SmartCardApplication rgApplications[]); | 
|  | HRESULT get_Entitlement ([in] USHORT usVirtualChannel,[out] EntitlementType *pEntitlement); | 
|  | HRESULT TuneByChannel ([in] USHORT usVirtualChannel); | 
|  | HRESULT SetProgram ([in] USHORT usProgramNumber); | 
|  | HRESULT AddProgram ([in] USHORT usProgramNumber); | 
|  | HRESULT RemoveProgram ([in] USHORT usProgramNumber); | 
|  | HRESULT GetModuleUI ([in] BYTE byDialogNumber,[out] BSTR *pbstrURL); | 
|  | HRESULT InformUIClosed ([in] BYTE byDialogNumber,[in] UICloseReasonType CloseReason); | 
|  | }; | 
|  |  | 
|  | [object, uuid (20e80cb5-c543-4c1b-8eb3-49e719eee7d4), pointer_default (unique)] | 
|  | interface IBDA_DiagnosticProperties : IPropertyBag { | 
|  | }; | 
|  |  | 
|  | [object, uuid (F98D88B0-1992-4cd6-A6D9-B9AFAB99330D), pointer_default (unique)] | 
|  | interface IBDA_DRM : IUnknown { | 
|  | HRESULT GetDRMPairingStatus ([out] DWORD *pdwStatus,[out] HRESULT *phError); | 
|  | HRESULT PerformDRMPairing (WINBOOL fSync); | 
|  | }; | 
|  |  | 
|  | [object, uuid (7f0b3150-7b81-4ad4-98e3-7e9097094301), pointer_default (unique)] | 
|  | interface IBDA_NameValueService : IUnknown { | 
|  | HRESULT GetValueNameByIndex ([in] ULONG ulIndex,[out] BSTR *pbstrName); | 
|  | HRESULT GetValue ([in] BSTR bstrName,[in] BSTR bstrLanguage,[out] BSTR *pbstrValue); | 
|  | HRESULT SetValue ([in] ULONG ulDialogRequest,[in] BSTR bstrLanguage,[in] BSTR bstrName,[in] BSTR bstrValue,[in] ULONG ulReserved); | 
|  | }; | 
|  |  | 
|  | [object, uuid (497c3418-23cb-44ba-BB62-769f506fcea7), pointer_default (unique)] | 
|  | interface IBDA_ConditionalAccessEx : IUnknown { | 
|  | HRESULT CheckEntitlementToken ([in] ULONG ulDialogRequest,[in] BSTR bstrLanguage,[in] BDA_CONDITIONALACCESS_REQUESTTYPE RequestType,[in] ULONG ulcbEntitlementTokenLen,[in, size_is (ulcbEntitlementTokenLen)] BYTE *pbEntitlementToken,[out] ULONG *pulDescrambleStatus); | 
|  | HRESULT SetCaptureToken ([in] ULONG ulcbCaptureTokenLen,[in, size_is (ulcbCaptureTokenLen)] BYTE *pbCaptureToken); | 
|  | HRESULT OpenBroadcastMmi ([in] ULONG ulDialogRequest,[in] BSTR bstrLanguage,[in] ULONG EventId); | 
|  | HRESULT CloseMmiDialog ([in] ULONG ulDialogRequest,[in] BSTR bstrLanguage,[in] ULONG ulDialogNumber,[in] BDA_CONDITIONALACCESS_MMICLOSEREASON ReasonCode,[out] ULONG *pulSessionResult); | 
|  | HRESULT CreateDialogRequestNumber ([out] ULONG *pulDialogRequestNumber); | 
|  | }; | 
|  |  | 
|  | [object, uuid (5e68c627-16c2-4e6c-B1E2-D00170CDAA0F), pointer_default (unique)] | 
|  | interface IBDA_ISDBConditionalAccess : IUnknown { | 
|  | HRESULT SetIsdbCasRequest ([in] ULONG ulRequestId,[in] ULONG ulcbRequestBufferLen,[in, size_is (ulcbRequestBufferLen)] BYTE *pbRequestBuffer); | 
|  | }; | 
|  |  | 
|  | [object, uuid (207c413f-00dc-4c61-BAD6-6fee1ff07064), helpstring ("IBDA_EventingService Interface"), pointer_default (unique)] interface IBDA_EventingService : IUnknown { | 
|  | HRESULT CompleteEvent ([in] ULONG ulEventID,[in] ULONG ulEventResult); | 
|  | }; | 
|  |  | 
|  | [object, uuid (7def4c09-6e66-4567-A819-F0E17F4A81AB), helpstring ("IBDA_AUX Interface"), pointer_default (unique)] interface IBDA_AUX : IUnknown { | 
|  | HRESULT QueryCapabilities ([out] DWORD *pdwNumAuxInputsBSTR); | 
|  | HRESULT EnumCapability ([in] DWORD dwIndex,[out] DWORD *dwInputID,[out] GUID *pConnectorType,[out] DWORD *ConnTypeNum,[out] DWORD *NumVideoStds,[out] ULONGLONG *AnalogStds); | 
|  | }; | 
|  |  | 
|  | [object, uuid (3a8bad59-59fe-4559-a0ba-396cfaa98ae3), pointer_default (unique)] | 
|  | interface IBDA_Encoder : IUnknown { | 
|  | HRESULT QueryCapabilities ([out] DWORD *NumAudioFmts,[out] DWORD *NumVideoFmts); | 
|  | HRESULT EnumAudioCapability ([in] DWORD FmtIndex,[out] DWORD *MethodID,[out] DWORD *AlgorithmType,[out] DWORD *SamplingRate,[out] DWORD *BitDepth,[out] DWORD *NumChannels); | 
|  | HRESULT EnumVideoCapability ([in] DWORD FmtIndex,[out] DWORD *MethodID,[out] DWORD *AlgorithmType,[out] DWORD *VerticalSize,[out] DWORD *HorizontalSize,[out] DWORD *AspectRatio,[out] DWORD *FrameRateCode,[out] DWORD *ProgressiveSequence); | 
|  | HRESULT SetParameters ([in] DWORD AudioBitrateMode,[in] DWORD AudioBitrate,[in] DWORD AudioMethodID,[in] DWORD AudioProgram,[in] DWORD VideoBitrateMode,[in] DWORD VideoBitrate,[in] DWORD VideoMethodID); | 
|  | HRESULT GetState ([out] DWORD *AudioBitrateMax,[out] DWORD *AudioBitrateMin,[out] DWORD *AudioBitrateMode,[out] DWORD *AudioBitrateStepping,[out] DWORD *AudioBitrate,[out] DWORD *AudioMethodID,[out] DWORD *AvailableAudioPrograms,[out] DWORD *AudioProgram,[out] DWORD *VideoBitrateMax,[out] DWORD *VideoBitrateMin,[out] DWORD *VideoBitrateMode,[out] DWORD *VideoBitrate,[out] DWORD *VideoBitrateStepping,[out] DWORD *VideoMethodID,[out] DWORD *SignalSourceID,[out] ULONGLONG *SignalFormat,[out] WINBOOL *SignalLock,[out] LONG *SignalLevel,[out] DWORD *SignalToNoiseRatio); | 
|  | }; | 
|  |  | 
|  | [object, uuid (138adc7e-58ae-437f-b0b4-c9fe19d5b4ac), pointer_default (unique)] | 
|  | interface IBDA_FDC : IUnknown { | 
|  | HRESULT GetStatus ([out] DWORD *CurrentBitrate,[out] WINBOOL *CarrierLock,[out] DWORD *CurrentFrequency,[out] WINBOOL *CurrentSpectrumInversion,[out] BSTR *CurrentPIDList,[out] BSTR *CurrentTIDList,[out] WINBOOL *Overflow); | 
|  | HRESULT RequestTables ([in] BSTR TableIDs); | 
|  | HRESULT AddPid ([in] BSTR PidsToAdd,[out] DWORD *RemainingFilterEntries); | 
|  | HRESULT RemovePid ([in] BSTR PidsToRemove); | 
|  | HRESULT AddTid ([in] BSTR TidsToAdd,[out] BSTR *CurrentTidList); | 
|  | HRESULT RemoveTid ([in] BSTR TidsToRemove); | 
|  | HRESULT GetTableSection ([out] DWORD *Pid,[in] DWORD MaxBufferSize,[out] DWORD *ActualSize,[out] BYTE *SecBuffer); | 
|  | }; | 
|  |  | 
|  | [object, uuid (C0AFCB73-23e7-4bc6-BAFA-FDC167B4719F), pointer_default (unique)] | 
|  | interface IBDA_GuideDataDeliveryService: IUnknown { | 
|  | HRESULT GetGuideDataType ([out] GUID *pguidDataType); | 
|  | HRESULT GetGuideData ([in, out] ULONG *pulcbBufferLen,[out] BYTE *pbBuffer,[out] ULONG *pulGuideDataPercentageProgress); | 
|  | HRESULT RequestGuideDataUpdate (); | 
|  | HRESULT GetTuneXmlFromServiceIdx ([in] ULONG64 ul64ServiceIdx,[out] BSTR *pbstrTuneXml); | 
|  | HRESULT GetServices ([in, out] ULONG *pulcbBufferLen,[out] BYTE *pbBuffer); | 
|  | HRESULT GetServiceInfoFromTuneXml ([in] BSTR bstrTuneXml,[out] BSTR *pbstrServiceDescription); | 
|  | }; | 
|  |  | 
|  | [object, uuid (BFF6B5BB-B0AE-484c-9dca-73528fb0b46e), pointer_default (unique)] | 
|  | interface IBDA_DRMService: IUnknown { | 
|  | HRESULT SetDRM ([in] GUID *puuidNewDrm); | 
|  | HRESULT GetDRMStatus ([out] BSTR *pbstrDrmUuidList,[out] GUID *DrmUuid); | 
|  | }; | 
|  |  | 
|  | [object, uuid (4be6fa3d-07cd-4139-8b80-8c18ba3aec88), pointer_default (unique)] | 
|  | interface IBDA_WMDRMSession: IUnknown { | 
|  | HRESULT GetStatus ([out] ULONG *MaxCaptureToken,[out] ULONG *MaxStreamingPid,[out] ULONG *MaxLicense,[out] ULONG *MinSecurityLevel,[out] ULONG *RevInfoSequenceNumber,[out] ULONGLONG *RevInfoIssuedTime,[out] ULONG *RevInfoTTL,[out] ULONG *RevListVersion,[out] ULONG *ulState); | 
|  | HRESULT SetRevInfo ([in] ULONG ulRevInfoLen,[in, size_is (ulRevInfoLen)] BYTE *pbRevInfo); | 
|  | HRESULT SetCrl ([in] ULONG ulCrlLen,[in, size_is (ulCrlLen)] BYTE *pbCrlLen); | 
|  | HRESULT TransactMessage ([in] ULONG ulcbRequest,[in, size_is (ulcbRequest)] BYTE *pbRequest,[in, out] ULONG *pulcbResponse,[in, out] BYTE *pbResponse); | 
|  | HRESULT GetLicense ([in] GUID *uuidKey,[in, out] ULONG *pulPackageLen,[in, out] BYTE *pbPackage); | 
|  | HRESULT ReissueLicense ([in] GUID *uuidKey); | 
|  | HRESULT RenewLicense ([in] ULONG ulInXmrLicenseLen,[in, size_is (ulInXmrLicenseLen)] BYTE *pbInXmrLicense,[in] ULONG ulEntitlementTokenLen,[in, size_is (ulEntitlementTokenLen)] BYTE *pbEntitlementToken,[out] ULONG *pulDescrambleStatus,[in, out] ULONG *pulOutXmrLicenseLen,[in, out] BYTE *pbOutXmrLicense); | 
|  | HRESULT GetKeyInfo ([in, out] ULONG *pulKeyInfoLen,[in, out] BYTE *pbKeyInfo); | 
|  | }; | 
|  |  | 
|  | [object, uuid (86d979cf-A8A7-4f94-B5FB-14c0aca68fe6), pointer_default (unique)] | 
|  | interface IBDA_WMDRMTuner: IUnknown { | 
|  | HRESULT PurchaseEntitlement ([in] ULONG ulDialogRequest,[in] BSTR bstrLanguage,[in] ULONG ulPurchaseTokenLen,[in, size_is (ulPurchaseTokenLen)] BYTE *pbPurchaseToken,[out] ULONG *pulDescrambleStatus,[in, out] ULONG *pulCaptureTokenLen,[in, out] BYTE *pbCaptureToken); | 
|  | HRESULT CancelCaptureToken ([in] ULONG ulCaptureTokenLen,[in, size_is (ulCaptureTokenLen)] BYTE *pbCaptureToken); | 
|  | HRESULT SetPidProtection ([in] ULONG ulPid,[in] GUID *uuidKey); | 
|  | HRESULT GetPidProtection ([in] ULONG pulPid,[out] GUID *uuidKey); | 
|  | HRESULT SetSyncValue ([in] ULONG ulSyncValue); | 
|  | HRESULT GetStartCodeProfile ([in, out] ULONG *pulStartCodeProfileLen,[in, out] BYTE *pbStartCodeProfile); | 
|  | }; | 
|  |  | 
|  | [object, uuid (1f9bc2a5-44a3-4c52-AAB1-0bbce5a1381d), pointer_default (unique)] | 
|  | interface IBDA_DRIDRMService: IUnknown { | 
|  | HRESULT SetDRM ([in] BSTR bstrNewDrm); | 
|  | HRESULT GetDRMStatus ([out] BSTR *pbstrDrmUuidList,[out] GUID *DrmUuid); | 
|  | HRESULT GetPairingStatus ([in, out] BDA_DrmPairingError *penumPairingStatus); | 
|  | }; | 
|  |  | 
|  | [object, uuid (05c690f8-56db-4bb2-B053-79c12098bb26), pointer_default (unique)] | 
|  | interface IBDA_DRIWMDRMSession: IUnknown { | 
|  | HRESULT AcknowledgeLicense ([in] HRESULT hrLicenseAck); | 
|  | HRESULT ProcessLicenseChallenge ([in] DWORD dwcbLicenseMessage,[in, size_is (dwcbLicenseMessage)] BYTE *pbLicenseMessage,[in, out] DWORD *pdwcbLicenseResponse,[in, out, size_is (*pdwcbLicenseResponse)] BYTE **ppbLicenseResponse); | 
|  | HRESULT ProcessRegistrationChallenge ([in] DWORD dwcbRegistrationMessage,[in, size_is (dwcbRegistrationMessage)] BYTE *pbRegistrationMessage,[in, out] DWORD *pdwcbRegistrationResponse,[in, out] BYTE **ppbRegistrationResponse); | 
|  | HRESULT SetRevInfo ([in] DWORD dwRevInfoLen,[in, size_is (dwRevInfoLen)] BYTE *pbRevInfo,[in, out] DWORD *pdwResponse); | 
|  | HRESULT SetCrl ([in] DWORD dwCrlLen,[in, size_is (dwCrlLen)] BYTE *pbCrlLen,[in, out] DWORD *pdwResponse); | 
|  | HRESULT GetHMSAssociationData (); | 
|  | HRESULT GetLastCardeaError ([in, out] DWORD *pdwError); | 
|  | }; | 
|  |  | 
|  | [object, uuid (942aafec-4c05-4c74-B8EB-8706c2a4943f), pointer_default (unique)] | 
|  | interface IBDA_MUX: IUnknown { | 
|  | HRESULT SetPidList ([in] ULONG ulPidListCount,[in, size_is (ulPidListCount)] BDA_MUX_PIDLISTITEM *pbPidListBuffer); | 
|  | HRESULT GetPidList ([in, out] ULONG *pulPidListCount,[in, out] BDA_MUX_PIDLISTITEM *pbPidListBuffer); | 
|  | }; | 
|  |  | 
|  | [object, uuid (1dcfafe9-B45E-41b3-BB2A-561eb129ae98), pointer_default (unique)] | 
|  | interface IBDA_TransportStreamSelector : IUnknown { | 
|  | HRESULT SetTSID ([in] USHORT usTSID); | 
|  | HRESULT GetTSInformation ([in, out] ULONG *pulTSInformationBufferLen,[out, size_is (*pulTSInformationBufferLen)] BYTE *pbTSInformationBuffer); | 
|  | }; | 
|  |  | 
|  | [object, uuid (53b14189-E478-4b7a-A1FF-506db4b99dfe), pointer_default (unique)] | 
|  | interface IBDA_UserActivityService: IUnknown { | 
|  | HRESULT SetCurrentTunerUseReason ([in] DWORD dwUseReason); | 
|  | HRESULT GetUserActivityInterval ([out] DWORD *pdwActivityInterval); | 
|  | HRESULT UserActivityDetected (); | 
|  | }; | 
|  |  | 
|  | cpp_quote("#define SID_BDA_EasMessage __uuidof (IBDA_EasMessage)") | 
|  | cpp_quote("#define SID_BDA_TransportStreamInfo __uuidof (IBDA_TransportStreamInfo)") | 
|  | cpp_quote("#define SID_BDA_ConditionalAccess __uuidof (IBDA_ConditionalAccess)") | 
|  | cpp_quote("#define SID_BDA_DiagnosticProperties __uuidof (IBDA_DiagnosticProperties)") | 
|  | cpp_quote("#define SID_BDA_DRM __uuidof (IBDA_DRM)") | 
|  | cpp_quote("#define SID_BDA_NameValueService __uuidof (IBDA_NameValueService)") | 
|  | cpp_quote("#define SID_BDA_ConditionalAccessEx __uuidof (IBDA_ConditionalAccessEx)") | 
|  | cpp_quote("#define SID_BDA_ISDBConditionalAccess __uuidof (IBDA_ISDBConditionalAccess)") | 
|  | cpp_quote("#define SID_BDA_EventingService __uuidof (IBDA_EventingService)") | 
|  | cpp_quote("#define SID_BDA_AUX __uuidof (IBDA_AUX)") | 
|  | cpp_quote("#define SID_BDA_Encoder __uuidof (IBDA_Encoder)") | 
|  | cpp_quote("#define SID_BDA_FDC __uuidof (IBDA_FDC") | 
|  | cpp_quote("#define SID_BDA_GuideDataDeliveryService  __uuidof (IBDA_GuideDataDeliveryService)") | 
|  | cpp_quote("#define SID_BDA_DRMService __uuidof (IBDA_DRMService)") | 
|  | cpp_quote("#define SID_BDA_WMDRMSession __uuidof (IBDA_WMDRMSession)") | 
|  | cpp_quote("#define SID_BDA_WMDRMTuner __uuidof (IBDA_WMDRMTuner)") | 
|  | cpp_quote("#define SID_BDA_DRIDRMService __uuidof (IBDA_DRIDRMService)") | 
|  | cpp_quote("#define SID_BDA_DRIWMDRMSession __uuidof (IBDA_DRIWMDRMSession)") | 
|  | cpp_quote("#define SID_BDA_MUX __uuidof (IBDA_MUX)") | 
|  | cpp_quote("#define SID_BDA_TransportStreamSelector __uuidof (IBDA_TransportStreamSelector)") | 
|  | cpp_quote("#define SID_BDA_UserActivityService __uuidof (IBDA_UserActivityService)") | 
|  | cpp_quote("") | 
|  |  | 
|  | cpp_quote("DEFINE_GUID(CLSID_PBDA_Encoder_DATA_TYPE, 0x728fd6bc, 0x5546, 0x4716, 0xb1, 0x03, 0xf8, 0x99, 0xf5, 0xa1, 0xfa, 0x68);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_PBDA_FDC_DATA_TYPE, 0xe7dbf9a0, 0x22ab, 0x4047, 0x8e, 0x67, 0xef, 0x9a, 0xd5, 0x4, 0xe7, 0x29);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_PBDA_GDDS_DATA_TYPE, 0xC80C0DF3, 0x6052, 0x4c16, 0x9F, 0x56, 0xC4, 0x4C, 0x21, 0xF7, 0x3C, 0x45);") | 
|  | cpp_quote("DEFINE_GUID(PBDA_AUX_CONNECTOR_TYPE_SVideo, 0xa0e905f4,0x24c9,0x4a54, 0xb7, 0x61, 0x21, 0x33, 0x55, 0xef, 0xc1, 0x3A);") | 
|  | cpp_quote("DEFINE_GUID(PBDA_AUX_CONNECTOR_TYPE_Composite, 0xf6298b4c,0xc725,0x4d42, 0x84, 0x9b, 0x41, 0x0b, 0xbb, 0x14, 0xea, 0x62);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_PBDA_AUX_DATA_TYPE, 0xfd456373, 0x3323, 0x4090, 0xad, 0xca, 0x8e, 0xd4, 0x5f, 0x55, 0xcf, 0x10);") | 
|  |  | 
|  | cpp_quote("#endif") |