//------------------------------------------------------------------------------ // File: BDAIface.idl // // Desc: This file defines the Ring 3 BDA interfaces that are common to // all BDA network and device types. // // The interfaces specific to a particular Network Type or filter // implementation are defined in a separate include file for that // Network Type or filter implementation. // // Copyright (c) 1999 - 2002, Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //--------------------------------------------------------------------- // IUnknown import idl //--------------------------------------------------------------------- #ifndef DO_NO_IMPORTS import "unknwn.idl"; import "strmif.idl"; import "BdaTypes.h"; #endif #include "bdaiface_enums.h" //--------------------------------------------------------------------- // // IBDA_NetworkProvider interface // // Implemented by a BDA Network Provider // // Used by a BDA device filter to register itself with // a Network Provider and query information about the // the current tuning request. // //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // // IBDA_EthernetFilter interface // // Implemented by a BDA Network Provider // // Used by an Ethernet Network Data Sink filter (eg. IPSink) to // request that the Network Provider make its best effort to tune // to the stream(s) on which a list of Ethernet multicast addresses // may be transmitted. // // Addresses in the address list are byte aligned in Network order. // UlcbAddresses will always be an integer multiple of the // size of an ethernet address. // //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // // IBDA_IPV4Filter interface // // Implemented by a BDA Network Provider // // Used by an IPv4 Network Data Sink filter to request // that the Network Provider make its best effort to tune // to the stream(s) on which a list of IPv4 multicast addresses // may be transmitted. // // Addresses in the address list are byte aligned in Network order. // UlcbAddresses will always be an integer multiple of the // size of an IPv4 address. // //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // // IBDA_IPV6Filter interface // // Implemented by a BDA Network Provider // // Used by an IPv6 Network Data Sink filter to request // that the Network Provider make its best effort to tune // to the stream(s) on which a list of IPv6 multicast addresses // may be transmitted. // // Addresses in the address list are byte aligned in Network order. // UlcbAddresses will always be an integer multiple of the // size of an IPv6 address. // //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // // IBDA_DeviceControl interface // // Implemented by a BDA Device Filter // // Used by the Network Provider to commit a series of changes // on a BDA device filter. The device filter validates and // accumulates all changes requested after StartChanges(). It // effects the accumulated list of changes when CommitChanges() is // called. // //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // // IBDA_PinControl interface // // Implemented by a BDA Device Filter's Pin // // Used by the Network Provider to determine the BDA PinID and // PinType on a BDA Filter's Pin // //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // // IBDA_SignalProperties interface // // Implemented by a BDA Device Filter // // BDA Signal Properties is used by a Network Provider to inform // a BDA Device Filter about the current tuning request. The // Network Provider will call the Put functions when the BDA // device is first registered with the Network Provider and whenever // the current tuning request is modified. // //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // // IBDA_SignalStatistics interface // // Implemented by a BDA Control Node // // A BDA Control Node may return these properties to describe // the condition of a signal that is being received. // // // // //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // // IBDA_Topology interface // // Implemented by a BDA Device Filter // // Used by the Network Provider to query a BDA Device Filter's // possible topologies (template topology) and to configure // the device with an appropriate topology for the current // tuning request. It is also used to get an IUnknown to // a control node which may be used to set specific tuning // information. // //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // IBDA_VoidTransform interface //--------------------------------------------------------------------- [ object, uuid(71985F46-1CA1-11d3-9CC8-00C04F7971E0), pointer_default(unique) ] interface IBDA_VoidTransform : IUnknown { HRESULT Start ( void ); HRESULT Stop ( void ); } //--------------------------------------------------------------------- // IBDA_NullTransform interface //--------------------------------------------------------------------- [ object, uuid(DDF15B0D-BD25-11d2-9CA0-00C04F7971E0), pointer_default(unique) ] interface IBDA_NullTransform : IUnknown { HRESULT Start ( void ); HRESULT Stop ( void ); } //--------------------------------------------------------------------- // IBDA_FrequencyFilter interface //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // IBDA_LNBInfo interface //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // IBDA_DiseqCommand interface //--------------------------------------------------------------------- [ 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[] ); } //--------------------------------------------------------------------- // IBDA_AutoDemodulate interface //--------------------------------------------------------------------- [ object, uuid(DDF15B12-BD25-11d2-9CA0-00C04F7971E0), pointer_default(unique) ] interface IBDA_AutoDemodulate : IUnknown { HRESULT put_AutoDemodulate ( void ); } //--------------------------------------------------------------------- // IBDA_AutoDemodulateEx interface //--------------------------------------------------------------------- [ 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 /* AMTunerModeType */ *pulAMTunerModeType, [out] ULONG /* AnalogVideoStandard */ *pulAnalogVideoStandard ); HRESULT get_AuxInputCount( [in, out] ULONG *pulCompositeCount, [in, out] ULONG *pulSvideoCount ); } //--------------------------------------------------------------------- // IBDA_DigitalDemodulator interface //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // IBDA_DigitalDemodulator2 interface //--------------------------------------------------------------------- [ 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 ); } //--------------------------------------------------------------------- // IBDA_DigitalDemodulator3 interface //--------------------------------------------------------------------- [ 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 ); } typedef enum { KSPROPERTY_IPSINK_MULTICASTLIST, KSPROPERTY_IPSINK_ADAPTER_DESCRIPTION, KSPROPERTY_IPSINK_ADAPTER_ADDRESS } KSPROPERTY_IPSINK; //--------------------------------------------------------------------- // ICCSubStreamFiltering interface // // Sets the filtering on the closed captioning (CC) pins // of the VBICodec filter. //--------------------------------------------------------------------- [ 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 ); }; //--------------------------------------------------------------------- // IBDA_IPSinkControl interface (mutlimedia\filters.ks\ipsink) // IBDA_IPSinkInfo interface // // IBDA_IPSinkControl is no longer being supported for Ring3 clients. // Use the BDA_IPSinkInfo interface instead. //--------------------------------------------------------------------- [ 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 ( // returns N 6-byte 802.3 IP addreses. [in, out] ULONG * pulcbAddresses, // 6*N [out, size_is(*pulcbAddresses)] BYTE **ppbAddressList // Allocated by caller, must deallocate in callee with CoTaskMemFree() ); HRESULT get_AdapterIPAddress ( [out] BSTR *pbstrBuffer ); HRESULT get_AdapterDescription ( [out] BSTR *pbstrBuffer ); } // // mpeg-2 demultiplexer-specific interfaces follow // //--------------------------------------------------------------------- // IEnumPIDMap interface //--------------------------------------------------------------------- #ifdef REMOVE_THESE typedef enum { MEDIA_TRANSPORT_PACKET, // complete TS packet e.g. pass-through mode MEDIA_ELEMENTARY_STREAM, // PES payloads; audio/video only MEDIA_MPEG2_PSI, // PAT, PMT, CAT, Private MEDIA_TRANSPORT_PAYLOAD // gathered TS packet payloads (PES packets, etc...) } MEDIA_SAMPLE_CONTENT ; typedef struct { ULONG ulPID ; MEDIA_SAMPLE_CONTENT MediaSampleContent ; } PID_MAP ; #endif // REMOVE_THESE [ 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 ) ; } ; //--------------------------------------------------------------------- // IMPEG2PIDMap interface //--------------------------------------------------------------------- [ 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 ) ; } ; //--------------------------------------------------------------------- // IFrequencyMap interface // Currently implemented on the TIF. The interface can be QIed on the NP //--------------------------------------------------------------------- [ object, uuid(06FB45C1-693C-4ea7-B79F-7A6A54D8DEF2), helpstring("IFrequencyMap Interface"), pointer_default(unique), hidden, restricted ] interface IFrequencyMap : IUnknown { [helpstring("method get_FrequencyMapping")] HRESULT get_FrequencyMapping( [out] ULONG* ulCount, [out, size_is(1, *ulCount)] ULONG** ppulList ); [helpstring("method put_FrequencyMapping")] HRESULT put_FrequencyMapping( [in] ULONG ulCount, [in, size_is(ulCount)] ULONG pList[] ); [helpstring("method get_CountryCode")] HRESULT get_CountryCode( [out] ULONG *pulCountryCode ); [helpstring("method put_CountryCode")] HRESULT put_CountryCode( [in] ULONG ulCountryCode ); [helpstring("method get_DefaultFrequencyMapping")] HRESULT get_DefaultFrequencyMapping( [in] ULONG ulCountryCode, [out] ULONG* pulCount, [out, size_is(1, *pulCount)] ULONG** ppulList ); [helpstring("method get_CountryCodeList")] HRESULT get_CountryCodeList( [out] ULONG* pulCount, [out, size_is(1, *pulCount)] ULONG** ppulList ); }; //--------------------------------------------------------------------- // IBDA_EasMessage interface // Currently implemented on the TIF and registered as a service by TIF. //--------------------------------------------------------------------- [ object, uuid(D806973D-3EBE-46de-8FBB-6358FE784208), helpstring("IBDA_EasMessage Interface"), pointer_default(unique), hidden, restricted ] interface IBDA_EasMessage : IUnknown { [helpstring("method get_EasMessage")] HRESULT get_EasMessage( [in] ULONG ulEventID, [in, out] IUnknown ** ppEASObject ); }; cpp_quote("#define SID_BDA_EasMessage __uuidof(IBDA_EasMessage)") //--------------------------------------------------------------------- // IBDA_TransportStreamInfo interface // Currently implemented on the TIF and registered as a service by TIF. //--------------------------------------------------------------------- [ object, uuid(8E882535-5F86-47AB-86CF-C281A72A0549), helpstring("IBDA_TransportStreamInfo Interface"), pointer_default(unique), hidden, restricted ] interface IBDA_TransportStreamInfo : IUnknown { [helpstring("method get_PatTableTickCount")] HRESULT get_PatTableTickCount( [out] ULONG * pPatTickCount ); }; cpp_quote("#define SID_BDA_TransportStreamInfo __uuidof(IBDA_TransportStreamInfo)") //--------------------------------------------------------------------- // IBDA_ConditionalAccess interface //--------------------------------------------------------------------- [ object, uuid(CD51F1E0-7BE9-4123-8482-A2A796C0A6B0), helpstring("IBDA_ConditionalAccess Interface"), pointer_default(unique) ] interface IBDA_ConditionalAccess : IUnknown { [helpstring("method get_SmartCardStatus")] HRESULT get_SmartCardStatus( [out] SmartCardStatusType* pCardStatus, [out] SmartCardAssociationType *pCardAssociation, [out] BSTR *pbstrCardError, [out] VARIANT_BOOL *pfOOBLocked ); [helpstring("method get_SmartCardInfo")] 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 ); [helpstring("method get_SmartCardApplications")] HRESULT get_SmartCardApplications( [in, out] ULONG * pulcApplications, [in] ULONG ulcApplicationsMax, [in, out, size_is (ulcApplicationsMax)] SmartCardApplication rgApplications[] ); [helpstring("method get_Entitlement")] HRESULT get_Entitlement( [in] USHORT usVirtualChannel, [out] EntitlementType *pEntitlement ); [helpstring("method TuneByChannel")] HRESULT TuneByChannel( [in] USHORT usVirtualChannel ); [helpstring("method SetProgram")] HRESULT SetProgram( [in] USHORT usProgramNumber ); [helpstring("method AddProgram")] HRESULT AddProgram( [in] USHORT usProgramNumber ); [helpstring("method RemoveProgram")] HRESULT RemoveProgram( [in] USHORT usProgramNumber ); [helpstring("method GetModuleUI")] HRESULT GetModuleUI( [in] BYTE byDialogNumber, [out] BSTR *pbstrURL ); [helpstring("method InformUIClosed")] HRESULT InformUIClosed( [in] BYTE byDialogNumber, [in] UICloseReasonType CloseReason ); } cpp_quote("#define SID_BDA_ConditionalAccess __uuidof(IBDA_ConditionalAccess)") //--------------------------------------------------------------------- // IBDA_DiagnosticProperties interface //--------------------------------------------------------------------- [ object, uuid(20e80cb5-c543-4c1b-8eb3-49e719eee7d4), helpstring("IBDA_DiagnosticProperties Interface"), pointer_default(unique), ] interface IBDA_DiagnosticProperties : IPropertyBag { }; cpp_quote("#define SID_BDA_DiagnosticProperties __uuidof(IBDA_DiagnosticProperties)") //--------------------------------------------------------------------- // IBDA_DRM interface //--------------------------------------------------------------------- [ object, uuid(F98D88B0-1992-4cd6-A6D9-B9AFAB99330D), helpstring("IBDA_DRM Interface"), pointer_default(unique), ] interface IBDA_DRM : IUnknown { // Get the DRM pairing status HRESULT GetDRMPairingStatus([out] DWORD* pdwStatus, // Bit array indicating the status of DRM pairing [out] HRESULT* phError); // Error code returned // Request a DRM pairing HRESULT PerformDRMPairing(BOOL fSync); }; cpp_quote("#define SID_BDA_DRM __uuidof(IBDA_DRM)") //--------------------------------------------------------------------- // IBDA_NameValueService interface //--------------------------------------------------------------------- [ object, uuid(7F0B3150-7B81-4ad4-98E3-7E9097094301), helpstring("IBDA_NameValueService Interface"), pointer_default(unique) ] interface IBDA_NameValueService : IUnknown { [helpstring("method GetNameByIndex")] HRESULT GetValueNameByIndex( [in] ULONG ulIndex, [out] BSTR *pbstrName ); [helpstring("method GetValue")] HRESULT GetValue( [in] BSTR bstrName, [in] BSTR bstrLanguage, [out] BSTR *pbstrValue ); [helpstring("method SetValue")] HRESULT SetValue( [in] ULONG ulDialogRequest, [in] BSTR bstrLanguage, [in] BSTR bstrName, [in] BSTR bstrValue, [in] ULONG ulReserved ); }; cpp_quote("#define SID_BDA_NameValueService __uuidof(IBDA_NameValueService)") //--------------------------------------------------------------------- // IBDA_ConditionalAccessEx interface //--------------------------------------------------------------------- [ object, uuid(497C3418-23CB-44ba-BB62-769F506FCEA7), helpstring("IBDA_ConditionalAccessEx Interface"), pointer_default(unique) ] interface IBDA_ConditionalAccessEx : IUnknown { [helpstring("method CheckEntitlementToken")] 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 ); [helpstring("method SetCaptureToken")] HRESULT SetCaptureToken( [in] ULONG ulcbCaptureTokenLen, [in, size_is(ulcbCaptureTokenLen)] BYTE *pbCaptureToken ); [helpstring("method OpenBroadcastMmi")] HRESULT OpenBroadcastMmi( [in] ULONG ulDialogRequest, [in] BSTR bstrLanguage, [in] ULONG EventId ); [helpstring("method CloseMmiDialog")] HRESULT CloseMmiDialog( [in] ULONG ulDialogRequest, [in] BSTR bstrLanguage, [in] ULONG ulDialogNumber, [in] BDA_CONDITIONALACCESS_MMICLOSEREASON ReasonCode, [out] ULONG *pulSessionResult ); [helpstring("method CreateDialogRequestNumber")] HRESULT CreateDialogRequestNumber( [out] ULONG *pulDialogRequestNumber ); }; cpp_quote("#define SID_BDA_ConditionalAccessEx __uuidof(IBDA_ConditionalAccessEx)") //--------------------------------------------------------------------- // IBDA_ISDBConditionalAccess interface //--------------------------------------------------------------------- [ object, uuid(5E68C627-16C2-4e6c-B1E2-D00170CDAA0F), helpstring("IBDA_ISDBConditionalAccess Interface"), pointer_default(unique) ] interface IBDA_ISDBConditionalAccess : IUnknown { [helpstring("method SetIsdbCasRequest")] HRESULT SetIsdbCasRequest( [in] ULONG ulRequestId, [in] ULONG ulcbRequestBufferLen, [in, size_is(ulcbRequestBufferLen)] BYTE *pbRequestBuffer ); }; cpp_quote("#define SID_BDA_ISDBConditionalAccess __uuidof(IBDA_ISDBConditionalAccess)") //--------------------------------------------------------------------- // IBDA_EventingService interface //--------------------------------------------------------------------- [ object, uuid(207C413F-00DC-4c61-BAD6-6FEE1FF07064), helpstring("IBDA_EventingService Interface"), pointer_default(unique) ] interface IBDA_EventingService : IUnknown { [helpstring("method CompleteEvent")] HRESULT CompleteEvent ( [in] ULONG ulEventID, [in] ULONG ulEventResult ); } cpp_quote("#define SID_BDA_EventingService __uuidof(IBDA_EventingService)") //--------------------------------------------------------------------- // IBDA_AUX interface //--------------------------------------------------------------------- [ object, uuid(7DEf4C09-6E66-4567-A819-F0E17F4A81AB), helpstring("IBDA_AUX Interface"), pointer_default(unique) ] interface IBDA_AUX : IUnknown { [helpstring("method QueryCapabilities")] HRESULT QueryCapabilities( [out] DWORD *pdwNumAuxInputsBSTR ); [helpstring("method EnumCapability")] HRESULT EnumCapability( [in] DWORD dwIndex, [out] DWORD *dwInputID, [out] GUID *pConnectorType, [out] DWORD *ConnTypeNum, [out] DWORD *NumVideoStds, [out] ULONGLONG *AnalogStds ); }; 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 SID_BDA_AUX __uuidof(IBDA_AUX)") cpp_quote("DEFINE_GUID(CLSID_PBDA_AUX_DATA_TYPE, /* fd456373-3323-4090-adca-8ed45f55cf10 */") cpp_quote("0xfd456373, 0x3323, 0x4090, 0xad, 0xca, 0x8e, 0xd4, 0x5f, 0x55, 0xcf, 0x10);") //--------------------------------------------------------------------- // IBDA_Encoder interface //--------------------------------------------------------------------- [ object, uuid(3a8bad59-59fe-4559-a0ba-396cfaa98ae3), helpstring("IBDA_ Encoder Interface"), pointer_default(unique) ] interface IBDA_Encoder : IUnknown { [helpstring("method QueryCapabilities")] HRESULT QueryCapabilities( [out] DWORD *NumAudioFmts, [out] DWORD *NumVideoFmts ); [helpstring("method EnumAudioCapability")] HRESULT EnumAudioCapability( [in] DWORD FmtIndex, [out] DWORD *MethodID, [out] DWORD *AlgorithmType, [out] DWORD *SamplingRate, [out] DWORD *BitDepth, [out] DWORD *NumChannels ); [helpstring("method EnumVideoCapability")] 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 ); [helpstring("method SetParameters")] HRESULT SetParameters( [in] DWORD AudioBitrateMode, [in] DWORD AudioBitrate, [in] DWORD AudioMethodID, [in] DWORD AudioProgram, [in] DWORD VideoBitrateMode, [in] DWORD VideoBitrate, [in] DWORD VideoMethodID ); [helpstring("method GetState")] 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); }; cpp_quote("#define SID_BDA_Encoder __uuidof(IBDA_Encoder)") cpp_quote("DEFINE_GUID(CLSID_PBDA_Encoder_DATA_TYPE, /* 728fd6bc-5546-4716-b103-f899f5a1fa68 */") cpp_quote("0x728fd6bc, 0x5546, 0x4716, 0xb1, 0x03, 0xf8, 0x99, 0xf5, 0xa1, 0xfa, 0x68);") cpp_quote("#define PBDA_Encoder_Audio_AlgorithmType_MPEG1LayerII 0x00000000") cpp_quote("#define PBDA_Encoder_Audio_AlgorithmType_AC3 0x00000001") cpp_quote("#define PBDA_Encoder_Video_MPEG2PartII 0x00000000") cpp_quote("#define PBDA_Encoder_Video_MPEG4Part10 0x00000001") cpp_quote("#define PBDA_Encoder_Video_AVC 0x00000001") cpp_quote("#define PBDA_Encoder_Video_H264 0x00000001") cpp_quote("#define PBDA_Encoder_BitrateMode_Constant 0x00000001") cpp_quote("#define PBDA_Encoder_BitrateMode_Variable 0x00000002") cpp_quote("#define PBDA_Encoder_BitrateMode_Average 0x00000003") //--------------------------------------------------------------------- // IBDA_FDC interface //--------------------------------------------------------------------- [ object, uuid(138adc7e-58ae-437f-b0b4-c9fe19d5b4ac), helpstring("IBDA_ FDC Interface"), pointer_default(unique) ] interface IBDA_FDC : IUnknown { [helpstring("method GetStatus")] HRESULT GetStatus( [out] DWORD *CurrentBitrate, [out] BOOL *CarrierLock, [out] DWORD *CurrentFrequency, [out] BOOL *CurrentSpectrumInversion, [out] BSTR *CurrentPIDList, [out] BSTR *CurrentTIDList, [out] BOOL *Overflow ); [helpstring("method RequestTables")] HRESULT RequestTables( [in] BSTR TableIDs ); [helpstring("method AddPid")] HRESULT AddPid( [in] BSTR PidsToAdd, [out] DWORD *RemainingFilterEntries ); [helpstring("method RemovePid")] HRESULT RemovePid( [in] BSTR PidsToRemove ); [helpstring("method AddTid")] HRESULT AddTid( [in] BSTR TidsToAdd, [out] BSTR *CurrentTidList ); [helpstring("method RemoveTid")] HRESULT RemoveTid( [in] BSTR TidsToRemove ); [helpstring("method GetTableSection")] HRESULT GetTableSection( [out] DWORD *Pid, [in] DWORD MaxBufferSize, [out] DWORD *ActualSize, [out] BYTE *SecBuffer ); cpp_quote("#define SID_BDA_FDC __uuidof(IBDA_FDC") cpp_quote("DEFINE_GUID(CLSID_PBDA_FDC_DATA_TYPE, /* E7DBF9A0-22AB-4047-8E67-EF9AD504E729 */") cpp_quote("0xe7dbf9a0, 0x22ab, 0x4047, 0x8e, 0x67, 0xef, 0x9a, 0xd5, 0x4, 0xe7, 0x29);") }; //--------------------------------------------------------------------- // IBDA_GuideDataDeliveryService interface //--------------------------------------------------------------------- [ object, uuid(C0AFCB73-23E7-4bc6-BAFA-FDC167B4719F), helpstring("IBDA_ GuideDataDeliveryService Interface"), pointer_default(unique) ] interface IBDA_GuideDataDeliveryService: IUnknown { [helpstring("method GetGuideDataType")] HRESULT GetGuideDataType( [out] GUID *pguidDataType ); [helpstring("method GetGuideData")] HRESULT GetGuideData( [in, out] ULONG *pulcbBufferLen, [out] BYTE *pbBuffer, [out] ULONG *pulGuideDataPercentageProgress ); [helpstring("method RequestGuideDataUpdate")] HRESULT RequestGuideDataUpdate (); [helpstring("method GetTuneXmlFromServiceIdx ")] HRESULT GetTuneXmlFromServiceIdx( [in] ULONG64 ul64ServiceIdx, [out] BSTR *pbstrTuneXml ); [helpstring("method GetServices")] HRESULT GetServices( [in, out] ULONG *pulcbBufferLen, [out] BYTE *pbBuffer ); [helpstring("method GetServiceInfoFromTuneXml")] HRESULT GetServiceInfoFromTuneXml( [in] BSTR bstrTuneXml, [out] BSTR *pbstrServiceDescription ); } cpp_quote("#define SID_BDA_GuideDataDeliveryService __uuidof(IBDA_GuideDataDeliveryService)") cpp_quote("DEFINE_GUID(CLSID_PBDA_GDDS_DATA_TYPE, /* C80C0DF3-6052-4c16-9F56-C44C21F73C45 */") cpp_quote("0xC80C0DF3, 0x6052, 0x4c16, 0x9F, 0x56, 0xC4, 0x4C, 0x21, 0xF7, 0x3C, 0x45);") //--------------------------------------------------------------------- // IBDA_DRMService interface //--------------------------------------------------------------------- [ object, uuid(BFF6B5BB-B0AE-484c-9DCA-73528FB0B46E), helpstring("IBDA_DRMService Interface"), pointer_default(unique) ] interface IBDA_DRMService: IUnknown { [helpstring("method SetDRM")] HRESULT SetDRM( [in] GUID *puuidNewDrm ); [helpstring("method GetDRMStatus")] HRESULT GetDRMStatus( [out] BSTR* pbstrDrmUuidList, [out] GUID* DrmUuid ); } cpp_quote("#define SID_BDA_DRMService __uuidof(IBDA_DRMService)") //--------------------------------------------------------------------- // IBDA_WMDRMSession interface //--------------------------------------------------------------------- [ object, uuid(4BE6FA3D-07CD-4139-8B80-8C18BA3AEC88), helpstring("IBDA_WMDRMSession Interface"), pointer_default(unique) ] interface IBDA_WMDRMSession: IUnknown { [helpstring("method GetStatus")] 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 ); [helpstring("method SetRevInfo ")] HRESULT SetRevInfo ( [in] ULONG ulRevInfoLen, [in, size_is(ulRevInfoLen)] BYTE* pbRevInfo ); [helpstring("method SetCrl ")] HRESULT SetCrl ( [in] ULONG ulCrlLen, [in, size_is(ulCrlLen)] BYTE* pbCrlLen ); [helpstring("method TransactMessage")] HRESULT TransactMessage ( [in] ULONG ulcbRequest, [in, size_is(ulcbRequest)] BYTE* pbRequest, [in, out] ULONG* pulcbResponse, [in, out] BYTE* pbResponse ); [helpstring("method GetLicense")] HRESULT GetLicense ( [in] GUID* uuidKey, [in, out] ULONG* pulPackageLen, [in, out] BYTE* pbPackage ); [helpstring("method ReissueLicense")] HRESULT ReissueLicense( [in] GUID* uuidKey ); [helpstring("method RenewLicense")] 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 ); [helpstring("method GetKeyInfo")] HRESULT GetKeyInfo( [in, out] ULONG* pulKeyInfoLen, [in, out] BYTE* pbKeyInfo ); } cpp_quote("#define SID_BDA_WMDRMSession __uuidof(IBDA_WMDRMSession)") //--------------------------------------------------------------------- // IBDA_WMDRMTuner interface //--------------------------------------------------------------------- [ object, uuid(86D979CF-A8A7-4f94-B5FB-14C0ACA68FE6), helpstring("IBDA_WMDRMTuner Interface"), pointer_default(unique) ] interface IBDA_WMDRMTuner: IUnknown { [helpstring("method PurchaseEntitlement ")] 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 ); [helpstring("method CancelCaptureToken ")] HRESULT CancelCaptureToken ( [in] ULONG ulCaptureTokenLen, [in, size_is(ulCaptureTokenLen)] BYTE* pbCaptureToken ); [helpstring("method SetPidProtection")] HRESULT SetPidProtection ( [in] ULONG ulPid, [in] GUID* uuidKey ); [helpstring("method GetPidProtection ")] HRESULT GetPidProtection ( [in] ULONG pulPid, [out] GUID* uuidKey ); [helpstring("method SetSyncValue ")] HRESULT SetSyncValue ( [in] ULONG ulSyncValue ); [helpstring("method GetStartCodeProfile ")] HRESULT GetStartCodeProfile ( [in, out] ULONG* pulStartCodeProfileLen, [in, out] BYTE* pbStartCodeProfile ); } cpp_quote("#define SID_BDA_WMDRMTuner __uuidof(IBDA_WMDRMTuner)") //--------------------------------------------------------------------- // IBDA_DRIDRMService interface //--------------------------------------------------------------------- [ object, uuid(1F9BC2A5-44A3-4c52-AAB1-0BBCE5A1381D), helpstring("IBDA_DRIDRMService Interface"), pointer_default(unique) ] interface IBDA_DRIDRMService: IUnknown { [helpstring("method SetDRM")] HRESULT SetDRM( [in] BSTR bstrNewDrm ); [helpstring("method GetDRMStatus")] HRESULT GetDRMStatus( [out] BSTR* pbstrDrmUuidList, [out] GUID* DrmUuid ); [helpstring("method GetPairingStatus")] HRESULT GetPairingStatus( [in, out] BDA_DrmPairingError* penumPairingStatus ); } cpp_quote("#define SID_BDA_DRIDRMService __uuidof(IBDA_DRIDRMService)") //--------------------------------------------------------------------- // IBDA_DRIWMDRMSession interface //--------------------------------------------------------------------- [ object, uuid(05C690F8-56DB-4bb2-B053-79C12098BB26), helpstring("IBDA_DRIWMDRMSession Interface"), pointer_default(unique) ] interface IBDA_DRIWMDRMSession: IUnknown { [helpstring("method AcknowledgeLicense")] HRESULT AcknowledgeLicense ( [in] HRESULT hrLicenseAck ); [helpstring("method ProcessLicenseChallenge")] HRESULT ProcessLicenseChallenge ( [in] DWORD dwcbLicenseMessage, [in, size_is(dwcbLicenseMessage)] BYTE* pbLicenseMessage, [in, out] DWORD* pdwcbLicenseResponse, [in, out, size_is(* pdwcbLicenseResponse)] BYTE** ppbLicenseResponse ); [helpstring("method ProcessRegistrationChallenge")] HRESULT ProcessRegistrationChallenge ( [in] DWORD dwcbRegistrationMessage, [in, size_is(dwcbRegistrationMessage)] BYTE* pbRegistrationMessage, [in, out] DWORD* pdwcbRegistrationResponse, [in, out] BYTE** ppbRegistrationResponse ); [helpstring("method SetRevInfo ")] HRESULT SetRevInfo ( [in] DWORD dwRevInfoLen, [in, size_is(dwRevInfoLen)] BYTE* pbRevInfo, [in, out] DWORD* pdwResponse ); [helpstring("method SetCrl ")] HRESULT SetCrl ( [in] DWORD dwCrlLen, [in, size_is(dwCrlLen)] BYTE* pbCrlLen, [in, out] DWORD* pdwResponse ); [helpstring("method GetHMSAssociationData ")] HRESULT GetHMSAssociationData ( ); [helpstring("method GetLastCardeaError ")] HRESULT GetLastCardeaError ( [in, out] DWORD* pdwError ); } cpp_quote("#define SID_BDA_DRIWMDRMSession __uuidof(IBDA_DRIWMDRMSession)") //--------------------------------------------------------------------- // IBDA_MUX interface //--------------------------------------------------------------------- [ object, uuid(942AAFEC-4C05-4c74-B8EB-8706C2A4943F), helpstring("IBDA_MUX Interface"), pointer_default(unique) ] interface IBDA_MUX: IUnknown { [helpstring("method SetPidList")] HRESULT SetPidList( [in] ULONG ulPidListCount, [in, size_is(ulPidListCount)] BDA_MUX_PIDLISTITEM* pbPidListBuffer ); [helpstring("method GetPidList")] HRESULT GetPidList( [in, out] ULONG* pulPidListCount, [in, out] BDA_MUX_PIDLISTITEM* pbPidListBuffer ); } cpp_quote("#define SID_BDA_MUX __uuidof(IBDA_MUX)") //--------------------------------------------------------------------- // IBDA_TransportStreamSelector interface //--------------------------------------------------------------------- [ object, uuid(1DCFAFE9-B45E-41b3-BB2A-561EB129AE98), helpstring("IBDA_TransportStreamSelector Interface"), pointer_default(unique) ] interface IBDA_TransportStreamSelector : IUnknown { [helpstring("method SetTSID")] HRESULT SetTSID ( [in] USHORT usTSID ); [helpstring("method GetTSInformation")] HRESULT GetTSInformation ( [in, out] ULONG* pulTSInformationBufferLen, [out, size_is(*pulTSInformationBufferLen)] BYTE* pbTSInformationBuffer // BDA_TS_SELECTORINFO ); } cpp_quote("#define SID_BDA_TransportStreamSelector __uuidof(IBDA_TransportStreamSelector)") //--------------------------------------------------------------------- // IBDA_UserActivityService interface //--------------------------------------------------------------------- [ object, uuid(53B14189-E478-4b7a-A1FF-506DB4B99DFE), helpstring("IBDA_UserActivityService Interface"), pointer_default(unique) ] interface IBDA_UserActivityService: IUnknown { [helpstring("method SetCurrentTunerUseReason")] HRESULT SetCurrentTunerUseReason( [in] DWORD dwUseReason ); [helpstring("method GetUserActivityInterval")] HRESULT GetUserActivityInterval( [out] DWORD* pdwActivityInterval ); [helpstring("method UserActivityDetected")] HRESULT UserActivityDetected( ); } cpp_quote("#define SID_BDA_UserActivityService __uuidof(IBDA_UserActivityService)")