windows-nt/Source/XPSP1/NT/net/tapi/skywalker/ipconf/msp/qcinner.h
2020-09-26 16:20:57 +08:00

137 lines
3.3 KiB
C

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
qcinner.h
Abstract:
Declaration of interfaces
IInnerCallQualityControl and IInnerStreamQualityControl
Author:
Qianbo Huai (qhuai) 03/10/2000
--*/
#ifndef __QCINNER_H_
#define __QCINNER_H_
interface IInnerCallQualityControl;
interface IInnerStreamQualityControl;
// properties set on streams by a call or app
typedef enum tagInnerStreamQualityProperty
{
InnerStreamQuality_StreamState,
InnerStreamQuality_MaxBitrate, // read only
InnerStreamQuality_CurrBitrate, // read only
InnerStreamQuality_PrefMaxBitrate, // by app
InnerStreamQuality_AdjMaxBitrate, // by call qc
InnerStreamQuality_MinFrameInterval, // read only
InnerStreamQuality_AvgFrameInterval, // read only
InnerStreamQuality_PrefMinFrameInterval, // by app
InnerStreamQuality_AdjMinFrameInterval // by call qc
} InnerStreamQualityProperty;
// events initiated from streams
typedef enum tagQCEvent
{
QCEVENT_STREAM_STATE,
} QCEvent;
// stream states
typedef enum tagQCStreamState
{
QCSTREAM_ACTIVE = 0x00000001,
QCSTREAM_INACTIVE = 0x00000002,
QCSTREAM_SILENT = 0x00000004,
QCSTREAM_NOT_SILENT = 0x00000008
} QCStreamState;
/*//////////////////////////////////////////////////////////////////////////////
Description:
interface designed for stream quality control to coordinate with call
quality control
////*/
interface DECLSPEC_UUID("D405A342-38C0-11d3-A230-00105AA20660") DECLSPEC_NOVTABLE
IInnerCallQualityControl : public IUnknown
{
STDMETHOD_(ULONG, InnerCallAddRef) (VOID) PURE;
STDMETHOD_(ULONG, InnerCallRelease) (VOID) PURE;
STDMETHOD (RegisterInnerStreamQC) (
IN IInnerStreamQualityControl *pIInnerStreamQC
) PURE;
STDMETHOD (DeRegisterInnerStreamQC) (
IN IInnerStreamQualityControl *pIInnerStreamQC
) PURE;
STDMETHOD (ProcessQCEvent) (
IN QCEvent event,
IN DWORD dwParam
) PURE;
};
#define IID_IInnerCallQualityControl (__uuidof(IInnerCallQualityControl))
/*//////////////////////////////////////////////////////////////////////////////
Description:
interface designed for call quality control to coordinate with stream
quality control
////*/
interface DECLSPEC_UUID("c3f699ce-3bb1-11d3-a230-00105aa20660") DECLSPEC_NOVTABLE
IInnerStreamQualityControl : public IUnknown
{
STDMETHOD (LinkInnerCallQC) (
IN IInnerCallQualityControl *pIInnerCallQC
) PURE;
STDMETHOD (UnlinkInnerCallQC) (
IN BOOL fByStream
) PURE;
STDMETHOD (GetRange) (
IN InnerStreamQualityProperty property,
OUT LONG *plMin,
OUT LONG *plMax,
OUT LONG *plSteppingDelta,
OUT LONG *plDefault,
OUT TAPIControlFlags *plFlags
) PURE;
STDMETHOD (Set) (
IN InnerStreamQualityProperty property,
IN LONG lValue,
IN TAPIControlFlags lFlags
) PURE;
STDMETHOD (Get) (
IN InnerStreamQualityProperty property,
OUT LONG *lValue,
OUT TAPIControlFlags *plFlags
) PURE;
STDMETHOD (TryLockStream)() PURE;
STDMETHOD (UnlockStream)() PURE;
STDMETHOD (IsAccessingQC)() PURE;
};
#define IID_IInnerStreamQualityControl (__uuidof(IInnerStreamQualityControl))
#endif // __QCINNER_H_