bdaiface.idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:18k
- //------------------------------------------------------------------------------
- // 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 - 2000, Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------------------------
- //---------------------------------------------------------------------
- // IUnknown import idl
- //---------------------------------------------------------------------
- #ifndef DO_NO_IMPORTS
- import "unknwn.idl";
- import "strmif.idl";
- import "BdaTypes.h";
- #endif
- //---------------------------------------------------------------------
- //
- // 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,
- [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
- );
- }
- //---------------------------------------------------------------------
- //
- // 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_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(A14EE835-0A23-11d3-9CC7-00C04F7971E0),
- pointer_default(unique)
- ]
- interface IBDA_Topology : IUnknown
- {
- HRESULT
- GetNodeTypes (
- [in, out] ULONG * pulcNodeTypes,
- [in] ULONG ulcNodeTypesMax,
- [in, out, size_is (ulcNodeTypesMax)] ULONG rgulNodeTypes[]
- );
- 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 * pulTransponder
- );
- HRESULT
- put_Frequency (
- [in] ULONG * pulFrequency
- );
- HRESULT
- get_Frequency (
- [in, out] ULONG * pulFrequency
- );
- HRESULT
- put_Polarity (
- [in] ULONG * pulPolarity
- );
- HRESULT
- get_Polarity (
- [in, out] ULONG * pulPolarity
- );
- HRESULT
- put_Range (
- [in] ULONG * pulRange
- );
- HRESULT
- get_Range (
- [in, out] ULONG * pulRange
- );
- }
- //---------------------------------------------------------------------
- // IBDA_AutoDemodulate interface
- //---------------------------------------------------------------------
- [
- object,
- uuid(DDF15B12-BD25-11d2-9CA0-00C04F7971E0),
- pointer_default(unique)
- ]
- interface IBDA_AutoDemodulate : IUnknown
- {
- HRESULT
- put_AutoDemodulate (
- void
- );
- }
- //---------------------------------------------------------------------
- // 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
- );
- }
- typedef enum
- {
- KSPROPERTY_IPSINK_MULTICASTLIST,
- KSPROPERTY_IPSINK_ADAPTER_DESCRIPTION,
- KSPROPERTY_IPSINK_ADAPTER_ADDRESS
- } KSPROPERTY_IPSINK;
- //---------------------------------------------------------------------
- // IBDA_IPSinkControl interface
- //---------------------------------------------------------------------
- [
- 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
- );
- }
- //
- // 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
- ) ;
- } ;