--- /dev/null
+#ifndef DO_NO_IMPORTS\r
+import "unknwn.idl";\r
+import "strmif.idl";\r
+import "BdaTypes.h";\r
+#endif\r
+\r
+/************************************************************\r
+ * interface IBDA_NetworkProvider\r
+ */\r
+[\r
+ object,\r
+ uuid(fd501041-8ebe-11ce-8183-00aa00577da2),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_NetworkProvider : IUnknown\r
+{\r
+ HRESULT PutSignalSource(\r
+ [in] ULONG ulSignalSource);\r
+\r
+ HRESULT GetSignalSource(\r
+ [in, out] ULONG * pulSignalSource);\r
+\r
+ HRESULT GetNetworkType(\r
+ [in, out] GUID * pguidNetworkType);\r
+\r
+ HRESULT PutTuningSpace(\r
+ [in] REFGUID guidTuningSpace);\r
+\r
+ HRESULT GetTuningSpace(\r
+ [in, out] GUID * pguidTuingSpace);\r
+\r
+ HRESULT RegisterDeviceFilter(\r
+ [in] IUnknown * pUnkFilterControl,\r
+ [in, out] ULONG * ppvRegisitrationContext);\r
+\r
+ HRESULT UnRegisterDeviceFilter(\r
+ [in] ULONG pvRegistrationContext);\r
+}\r
+\r
+\r
+/************************************************************\r
+ * interface IBDA_EthernetFilter\r
+ */\r
+[\r
+ object,\r
+ uuid(71985F43-1CA1-11d3-9CC8-00C04F7971E0),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_EthernetFilter : IUnknown\r
+{\r
+ HRESULT GetMulticastListSize(\r
+ [in, out] ULONG * pulcbAddresses);\r
+\r
+ HRESULT PutMulticastList(\r
+ [in] ULONG ulcbAddresses,\r
+ [in] BYTE * pAddressList);\r
+\r
+ HRESULT GetMulticastList(\r
+ [in, out] ULONG * pulcbAddresses,\r
+ [out] BYTE * pAddressList);\r
+\r
+ HRESULT PutMulticastMode(\r
+ [in] ULONG ulModeMask);\r
+\r
+ HRESULT GetMulticastMode(\r
+ [out] ULONG * pulModeMask);\r
+\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_IPV4Filter\r
+ */\r
+[\r
+ object,\r
+ uuid(71985F44-1CA1-11d3-9CC8-00C04F7971E0),\r
+ pointer_default(unique)\r
+]\r
+\r
+interface IBDA_IPV4Filter : IUnknown\r
+{\r
+ HRESULT GetMulticastListSize(\r
+ [in, out] ULONG * pulcbAddresses);\r
+\r
+ HRESULT PutMulticastList(\r
+ [in] ULONG ulcbAddresses,\r
+ [in] BYTE * pAddressList);\r
+\r
+ HRESULT GetMulticastList(\r
+ [in, out] ULONG * pulcbAddresses,\r
+ [out] BYTE * pAddressList);\r
+\r
+ HRESULT PutMulticastMode(\r
+ [in] ULONG ulModeMask);\r
+\r
+ HRESULT GetMulticastMode(\r
+ [out] ULONG * pulModeMask);\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_IPV6Filter\r
+ */\r
+\r
+[\r
+ object,\r
+ uuid(E1785A74-2A23-4fb3-9245-A8F88017EF33),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_IPV6Filter : IUnknown\r
+{\r
+\r
+ HRESULT GetMulticastListSize(\r
+ [in, out] ULONG * pulcbAddresses);\r
+\r
+ HRESULT PutMulticastList(\r
+ [in] ULONG ulcbAddresses,\r
+ [in] BYTE * pAddressList);\r
+\r
+ HRESULT GetMulticastList(\r
+ [in, out] ULONG * pulcbAddresses,\r
+ [out] BYTE * pAddressList);\r
+\r
+ HRESULT PutMulticastMode(\r
+ [in] ULONG ulModeMask);\r
+\r
+ HRESULT GetMulticastMode(\r
+ [out] ULONG * pulModeMask);\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_DeviceControl\r
+ */\r
+\r
+[\r
+ object,\r
+ uuid(FD0A5AF3-B41D-11d2-9C95-00C04F7971E0),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_DeviceControl : IUnknown\r
+{\r
+ HRESULT StartChanges(void);\r
+ HRESULT CheckChanges(void);\r
+ HRESULT CommitChanges(void);\r
+ HRESULT GetChangeState(\r
+ [in, out] ULONG * pState);\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_PinControl\r
+ */\r
+[\r
+ object,\r
+ uuid(0DED49D5-A8B7-4d5d-97A1-12B0C195874D),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_PinControl : IUnknown\r
+{\r
+ HRESULT GetPinID(\r
+ [in, out] ULONG * pulPinID);\r
+\r
+ HRESULT GetPinType(\r
+ [in, out] ULONG * pulPinType);\r
+\r
+ HRESULT RegistrationContext(\r
+ [in, out] ULONG * pulRegistrationCtx);\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_SignalProperties\r
+ */\r
+[\r
+ object,\r
+ uuid(D2F1644B-B409-11d2-BC69-00A0C9EE9E16),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_SignalProperties : IUnknown\r
+{\r
+ HRESULT PutNetworkType(\r
+ [in] REFGUID guidNetworkType);\r
+\r
+ HRESULT GetNetworkType(\r
+ [in, out] GUID * pguidNetworkType);\r
+\r
+ HRESULT PutSignalSource(\r
+ [in] ULONG ulSignalSource);\r
+\r
+ HRESULT GetSignalSource(\r
+ [in, out] ULONG * pulSignalSource);\r
+\r
+ HRESULT PutTuningSpace(\r
+ [in] REFGUID guidTuningSpace);\r
+\r
+ HRESULT GetTuningSpace(\r
+ [in, out] GUID * pguidTuingSpace);\r
+}\r
+\r
+\r
+/************************************************************\r
+ * interface IBDA_SignalStatistics\r
+ */\r
+[\r
+ object,\r
+ uuid(1347D106-CF3A-428a-A5CB-AC0D9A2A4338),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_SignalStatistics : IUnknown\r
+{\r
+ HRESULT put_SignalStrength(\r
+ [in] LONG lDbStrength);\r
+\r
+ HRESULT get_SignalStrength(\r
+ [in, out] LONG * plDbStrength);\r
+\r
+ HRESULT put_SignalQuality(\r
+ [in] LONG lPercentQuality);\r
+\r
+ HRESULT get_SignalQuality(\r
+ [in, out] LONG * plPercentQuality);\r
+\r
+ HRESULT put_SignalPresent(\r
+ [in] BOOLEAN fPresent);\r
+\r
+ HRESULT get_SignalPresent(\r
+ [in, out] BOOLEAN * pfPresent);\r
+\r
+ HRESULT put_SignalLocked(\r
+ [in] BOOLEAN fLocked);\r
+\r
+ HRESULT get_SignalLocked(\r
+ [in, out] BOOLEAN * pfLocked);\r
+\r
+ HRESULT put_SampleTime(\r
+ [in] LONG lmsSampleTime);\r
+\r
+ HRESULT get_SampleTime(\r
+ [in, out] LONG * plmsSampleTime);\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_Topology\r
+ */\r
+[\r
+ object,\r
+ uuid(79B56888-7FEA-4690-B45D-38FD3C7849BE),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_Topology : IUnknown\r
+{\r
+ HRESULT GetNodeTypes(\r
+ [in, out] ULONG * pulcNodeTypes,\r
+ [in] ULONG ulcNodeTypesMax,\r
+ [in, out] ULONG * rgulNodeTypes);\r
+\r
+ HRESULT GetNodeDescriptors(\r
+ [in, out] ULONG * ulcNodeDescriptors,\r
+ [in] ULONG ulcNodeDescriptorsMax,\r
+ [in, out] BDANODE_DESCRIPTOR * rgNodeDescriptors);\r
+\r
+ HRESULT GetNodeInterfaces(\r
+ [in] ULONG ulNodeType,\r
+ [in, out] ULONG * pulcInterfaces,\r
+ [in] ULONG ulcInterfacesMax,\r
+ [in, out] GUID * rgguidInterfaces);\r
+\r
+ HRESULT GetPinTypes(\r
+ [in, out] ULONG * pulcPinTypes,\r
+ [in] ULONG ulcPinTypesMax,\r
+ [in, out] ULONG * rgulPinTypes);\r
+\r
+ HRESULT GetTemplateConnections(\r
+ [in, out] ULONG * pulcConnections,\r
+ [in] ULONG ulcConnectionsMax,\r
+ [in, out, ] BDA_TEMPLATE_CONNECTION * rgConnections);\r
+\r
+ HRESULT CreatePin(\r
+ [in] ULONG ulPinType,\r
+ [in, out] ULONG * pulPinId);\r
+\r
+ HRESULT DeletePin(\r
+ [in] ULONG ulPinId);\r
+\r
+ HRESULT SetMediaType(\r
+ [in] ULONG ulPinId,\r
+ [in] AM_MEDIA_TYPE * pMediaType);\r
+\r
+ HRESULT SetMedium(\r
+ [in] ULONG ulPinId,\r
+ [in] REGPINMEDIUM * pMedium);\r
+\r
+ HRESULT CreateTopology(\r
+ [in] ULONG ulInputPinId,\r
+ [in] ULONG ulOutputPinId);\r
+\r
+ HRESULT GetControlNode(\r
+ [in] ULONG ulInputPinId,\r
+ [in] ULONG ulOutputPinId,\r
+ [in] ULONG ulNodeType,\r
+ [in, out] IUnknown ** ppControlNode);\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_VoidTransform\r
+ */\r
+[\r
+ object,\r
+ uuid(71985F46-1CA1-11d3-9CC8-00C04F7971E0),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_VoidTransform : IUnknown\r
+{\r
+ HRESULT Start();\r
+\r
+ HRESULT Stop();\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_NullTransform\r
+ */\r
+\r
+[\r
+ object,\r
+ uuid(DDF15B0D-BD25-11d2-9CA0-00C04F7971E0),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_NullTransform : IUnknown\r
+{\r
+ HRESULT Start();\r
+\r
+ HRESULT Stop();\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_FrequencyFilter\r
+ */\r
+\r
+[\r
+ object,\r
+ uuid(71985F47-1CA1-11d3-9CC8-00C04F7971E0),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_FrequencyFilter : IUnknown\r
+{\r
+ HRESULT put_Autotune(\r
+ [in] ULONG ulTransponder);\r
+\r
+ HRESULT get_Autotune(\r
+ [in, out] ULONG * pulTransponder);\r
+\r
+ HRESULT put_Frequency(\r
+ [in] ULONG ulFrequency);\r
+\r
+ HRESULT get_Frequency(\r
+ [in, out] ULONG * pulFrequency);\r
+\r
+ HRESULT put_Polarity(\r
+ [in] Polarisation Polarity);\r
+\r
+ HRESULT get_Polarity(\r
+ [in, out] Polarisation * pPolarity);\r
+\r
+ HRESULT put_Range(\r
+ [in] ULONG ulRange);\r
+\r
+ HRESULT get_Range(\r
+ [in, out] ULONG * pulRange);\r
+\r
+ HRESULT put_Bandwidth(\r
+ [in] ULONG ulBandwidth);\r
+\r
+ HRESULT get_Bandwidth(\r
+ [in, out] ULONG * pulBandwidth);\r
+\r
+ HRESULT put_FrequencyMultiplier(\r
+ [in] ULONG ulMultiplier);\r
+\r
+ HRESULT get_FrequencyMultiplier(\r
+ [in, out] ULONG * pulMultiplier);\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_LNBInfo\r
+ */\r
+[\r
+ object,\r
+ uuid(992CF102-49F9-4719-A664-C4F23E2408F4),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_LNBInfo : IUnknown\r
+{\r
+ HRESULT put_LocalOscilatorFrequencyLowBand(\r
+ [in] ULONG ulLOFLow);\r
+\r
+ HRESULT get_LocalOscilatorFrequencyLowBand(\r
+ [in, out] ULONG * pulLOFLow);\r
+\r
+ HRESULT put_LocalOscilatorFrequencyHighBand(\r
+ [in] ULONG ulLOFHigh);\r
+\r
+ HRESULT get_LocalOscilatorFrequencyHighBand(\r
+ [in, out] ULONG * pulLOFHigh);\r
+\r
+ HRESULT put_HighLowSwitchFrequency(\r
+ [in] ULONG ulSwitchFrequency);\r
+\r
+ HRESULT get_HighLowSwitchFrequency(\r
+ [in, out] ULONG * pulSwitchFrequency);\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_AutoDemodulate\r
+ */\r
+\r
+[\r
+ object,\r
+ uuid(DDF15B12-BD25-11d2-9CA0-00C04F7971E0),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_AutoDemodulate : IUnknown\r
+{\r
+ HRESULT put_AutoDemodulate();\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_DigitalDemodulator\r
+ */\r
+\r
+[\r
+ object,\r
+ uuid(EF30F379-985B-4d10-B640-A79D5E04E1E0),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_DigitalDemodulator : IUnknown\r
+{\r
+ HRESULT put_ModulationType(\r
+ [in] ModulationType * pModulationType);\r
+\r
+ HRESULT get_ModulationType(\r
+ [in, out] ModulationType * pModulationType);\r
+\r
+ HRESULT put_InnerFECMethod(\r
+ [in] FECMethod * pFECMethod);\r
+\r
+ HRESULT get_InnerFECMethod(\r
+ [in, out] FECMethod * pFECMethod);\r
+\r
+ HRESULT put_InnerFECRate(\r
+ [in] BinaryConvolutionCodeRate * pFECRate);\r
+\r
+ HRESULT get_InnerFECRate(\r
+ [in, out] BinaryConvolutionCodeRate * pFECRate);\r
+\r
+ HRESULT put_OuterFECMethod(\r
+ [in] FECMethod * pFECMethod);\r
+\r
+ HRESULT get_OuterFECMethod(\r
+ [in, out] FECMethod * pFECMethod);\r
+\r
+ HRESULT put_OuterFECRate(\r
+ [in] BinaryConvolutionCodeRate * pFECRate);\r
+\r
+ HRESULT get_OuterFECRate(\r
+ [in, out] BinaryConvolutionCodeRate * pFECRate);\r
+\r
+ HRESULT put_SymbolRate(\r
+ [in] ULONG * pSymbolRate);\r
+\r
+ HRESULT get_SymbolRate(\r
+ [in, out] ULONG * pSymbolRate);\r
+\r
+ HRESULT put_SpectralInversion(\r
+ [in] SpectralInversion * pSpectralInversion);\r
+\r
+ HRESULT get_SpectralInversion(\r
+ [in, out] SpectralInversion * pSpectralInversion);\r
+}\r
+\r
+typedef enum\r
+{\r
+ KSPROPERTY_IPSINK_MULTICASTLIST,\r
+ KSPROPERTY_IPSINK_ADAPTER_DESCRIPTION,\r
+ KSPROPERTY_IPSINK_ADAPTER_ADDRESS\r
+}KSPROPERTY_IPSINK;\r
+\r
+/************************************************************\r
+ * interface IBDA_IPSinkControl\r
+ */\r
+\r
+[\r
+ object,\r
+ uuid(3F4DC8E2-4050-11d3-8F4B-00C04F7971E2),\r
+ pointer_default(unique),\r
+]\r
+interface IBDA_IPSinkControl : IUnknown\r
+{\r
+ HRESULT GetMulticastList(\r
+ [in, out] unsigned long *pulcbSize,\r
+ [in, out] BYTE **pbBuffer);\r
+\r
+ HRESULT GetAdapterIPAddress(\r
+ [in, out] unsigned long *pulcbSize,\r
+ [in, out] BYTE ** pbBuffer);\r
+\r
+}\r
+\r
+/************************************************************\r
+ * interface IBDA_IPSinkInfo\r
+ */\r
+[\r
+ object,\r
+ uuid(A750108F-492E-4d51-95F7-649B23FF7AD7),\r
+ pointer_default(unique)\r
+]\r
+interface IBDA_IPSinkInfo : IUnknown\r
+{\r
+ HRESULT get_MulticastList(\r
+ [in, out] ULONG * pulcbAddresses,\r
+ [out] BYTE **ppbAddressList);\r
+\r
+ HRESULT get_AdapterIPAddress(\r
+ [out] BSTR *pbstrBuffer);\r
+\r
+ HRESULT get_AdapterDescription(\r
+ [out] BSTR *pbstrBuffer);\r
+}\r
+\r
+/************************************************************\r
+ * interface IEnumPIDMap\r
+ */\r
+\r
+[\r
+ object,\r
+ uuid(afb6c2a2-2c41-11d3-8a60-0000f81e0e4a),\r
+ pointer_default(unique)\r
+]\r
+interface IEnumPIDMap : IUnknown\r
+{\r
+ HRESULT Next(\r
+ [in] ULONG cRequest,\r
+ [in, out] PID_MAP * pPIDMap,\r
+ [out] ULONG * pcReceived);\r
+\r
+ HRESULT Skip(\r
+ [in] ULONG cRecords);\r
+\r
+ HRESULT Reset();\r
+\r
+ HRESULT Clone(\r
+ [out] IEnumPIDMap ** ppIEnumPIDMap);\r
+} ;\r
+\r
+/************************************************************\r
+ * interface IMPEG2PIDMap\r
+ */\r
+\r
+[\r
+ object,\r
+ uuid(afb6c2a1-2c41-11d3-8a60-0000f81e0e4a),\r
+ pointer_default(unique)\r
+]\r
+interface IMPEG2PIDMap : IUnknown\r
+{\r
+ HRESULT MapPID(\r
+ [in] ULONG culPID,\r
+ [in] ULONG * pulPID,\r
+ [in] MEDIA_SAMPLE_CONTENT MediaSampleContent);\r
+\r
+ HRESULT UnmapPID(\r
+ [in] ULONG culPID,\r
+ [in] ULONG * pulPID);\r
+\r
+ HRESULT EnumPIDMap(\r
+ [out] IEnumPIDMap ** pIEnumPIDMap);\r
+} ;\r
+\r
+/************************************************************\r
+ * interface IFrequencyMap\r
+ */\r
+\r
+ [\r
+ object,\r
+ uuid(06FB45C1-693C-4ea7-B79F-7A6A54D8DEF2),\r
+ pointer_default(unique),\r
+ ]\r
+\r
+ interface IFrequencyMap : IUnknown\r
+ {\r
+ HRESULT get_FrequencyMapping(\r
+ [out] ULONG* ulCount,\r
+ [out] ULONG** ppulList);\r
+\r
+ HRESULT put_FrequencyMapping(\r
+ [in] ULONG ulCount,\r
+ [in] ULONG *pList);\r
+\r
+ HRESULT get_CountryCode([out] ULONG *pulCountryCode);\r
+\r
+ HRESULT put_CountryCode(\r
+ [in] ULONG ulCountryCode);\r
+\r
+ HRESULT get_DefaultFrequencyMapping(\r
+ [in] ULONG ulCountryCode,\r
+ [out] ULONG* pulCount,\r
+ [out] ULONG** ppulList);\r
+\r
+ HRESULT get_CountryCodeList(\r
+ [out] ULONG* pulCount,\r
+ [out] ULONG** ppulList);\r
+ };\r