?? bdaiface.idl
字號:
//------------------------------------------------------------------------------
// 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 + -