⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bdaiface.idl

📁 vc6.0完整版
💻 IDL
📖 第 1 页 / 共 2 页
字号:
//------------------------------------------------------------------------------
// 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

//---------------------------------------------------------------------
//
//  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
        );

    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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -