/* * Copyright 2013 André Hentschel * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef DO_NO_IMPORTS import "unknwn.idl"; import "strmif.idl"; import "bdatypes.h"; #endif #include "bdaiface_enums.h" [ 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), helpstring("ICCSubStreamFiltering Interface"), 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), helpstring("Not supported - Use IBDA_IPSinkInfo instead") ] 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(void); 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), helpstring("IFrequencyMap Interface"), 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), helpstring("IBDA_EasMessage Interface"), 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), helpstring("IBDA_TransportStreamInfo Interface"), pointer_default(unique), hidden, restricted ] interface IBDA_TransportStreamInfo : IUnknown { HRESULT get_PatTableTickCount([out] ULONG *pPatTickCount); } [ object, uuid(CD51F1E0-7BE9-4123-8482-A2A796C0A6B0), helpstring("IBDA_ConditionalAccess Interface"), 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), helpstring("IBDA_DiagnosticProperties Interface"), pointer_default(unique), ] interface IBDA_DiagnosticProperties : IPropertyBag { } [ object, uuid(F98D88B0-1992-4cd6-A6D9-B9AFAB99330D), helpstring("IBDA_DRM Interface"), pointer_default(unique), ] interface IBDA_DRM : IUnknown { HRESULT GetDRMPairingStatus([out] DWORD *pdwStatus, [out] HRESULT *phError); HRESULT PerformDRMPairing(BOOL fSync); } [ object, uuid(7F0B3150-7B81-4ad4-98E3-7E9097094301), helpstring("IBDA_NameValueService Interface"), 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), helpstring("IBDA_ConditionalAccessEx Interface"), 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), helpstring("IBDA_ISDBConditionalAccess Interface"), 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), helpstring("IBDA_ Encoder Interface"), 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] BOOL *SignalLock, [out] LONG *SignalLevel, [out] DWORD *SignalToNoiseRatio); } [ object, uuid(138adc7e-58ae-437f-b0b4-c9fe19d5b4ac), helpstring("IBDA_ FDC Interface"), pointer_default(unique) ] interface IBDA_FDC : IUnknown { HRESULT GetStatus([out] DWORD *CurrentBitrate, [out] BOOL *CarrierLock, [out] DWORD *CurrentFrequency, [out] BOOL *CurrentSpectrumInversion, [out] BSTR *CurrentPIDList, [out] BSTR *CurrentTIDList, [out] BOOL *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), helpstring("IBDA_ GuideDataDeliveryService Interface"), 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(void); 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), helpstring("IBDA_DRMService Interface"), 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), helpstring("IBDA_WMDRMSession Interface"), 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), helpstring("IBDA_WMDRMTuner Interface"), 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), helpstring("IBDA_DRIDRMService Interface"), 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), helpstring("IBDA_DRIWMDRMSession Interface"), 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(void); HRESULT GetLastCardeaError([in, out] DWORD *pdwError); } [ object, uuid(942AAFEC-4C05-4c74-B8EB-8706C2A4943F), helpstring("IBDA_MUX Interface"), 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), helpstring("IBDA_TransportStreamSelector Interface"), 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), helpstring("IBDA_UserActivityService Interface"), pointer_default(unique) ] interface IBDA_UserActivityService: IUnknown { HRESULT SetCurrentTunerUseReason([in] DWORD dwUseReason); HRESULT GetUserActivityInterval([out] DWORD *pdwActivityInterval); HRESULT UserActivityDetected(void); }