Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
3.5 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. qcinner.h
  5. Abstract:
  6. Declaration of interfaces
  7. IInnerCallQualityControl and IInnerStreamQualityControl
  8. Author:
  9. Qianbo Huai (qhuai) 03/10/2000
  10. --*/
  11. #ifndef __QCINNER_H_
  12. #define __QCINNER_H_
  13. interface IInnerCallQualityControl;
  14. interface IInnerStreamQualityControl;
  15. // properties set on streams by a call or app
  16. typedef enum tagInnerStreamQualityProperty
  17. {
  18. InnerStreamQuality_StreamState,
  19. InnerStreamQuality_MaxBitrate, // read only
  20. InnerStreamQuality_CurrBitrate, // read only
  21. InnerStreamQuality_PrefMaxBitrate, // by app
  22. InnerStreamQuality_AdjMaxBitrate, // by call qc
  23. InnerStreamQuality_MinFrameInterval, // read only
  24. InnerStreamQuality_AvgFrameInterval, // read only
  25. InnerStreamQuality_PrefMinFrameInterval, // by app
  26. InnerStreamQuality_AdjMinFrameInterval // by call qc
  27. } InnerStreamQualityProperty;
  28. // events initiated from streams
  29. typedef enum tagQCEvent
  30. {
  31. QCEVENT_STREAM_STATE,
  32. } QCEvent;
  33. // stream states
  34. typedef enum tagQCStreamState
  35. {
  36. QCSTREAM_ACTIVE = 0x00000001,
  37. QCSTREAM_INACTIVE = 0x00000002,
  38. QCSTREAM_SILENT = 0x00000004,
  39. QCSTREAM_NOT_SILENT = 0x00000008
  40. } QCStreamState;
  41. /*//////////////////////////////////////////////////////////////////////////////
  42. Description:
  43. interface designed for stream quality control to coordinate with call
  44. quality control
  45. ////*/
  46. interface DECLSPEC_UUID("D405A342-38C0-11d3-A230-00105AA20660") DECLSPEC_NOVTABLE
  47. IInnerCallQualityControl : public IUnknown
  48. {
  49. STDMETHOD_(ULONG, InnerCallAddRef) (VOID) PURE;
  50. STDMETHOD_(ULONG, InnerCallRelease) (VOID) PURE;
  51. STDMETHOD (RegisterInnerStreamQC) (
  52. IN IInnerStreamQualityControl *pIInnerStreamQC
  53. ) PURE;
  54. STDMETHOD (DeRegisterInnerStreamQC) (
  55. IN IInnerStreamQualityControl *pIInnerStreamQC
  56. ) PURE;
  57. STDMETHOD (ProcessQCEvent) (
  58. IN QCEvent event,
  59. IN DWORD dwParam
  60. ) PURE;
  61. };
  62. #define IID_IInnerCallQualityControl (__uuidof(IInnerCallQualityControl))
  63. /*//////////////////////////////////////////////////////////////////////////////
  64. Description:
  65. interface designed for call quality control to coordinate with stream
  66. quality control
  67. ////*/
  68. interface DECLSPEC_UUID("c3f699ce-3bb1-11d3-a230-00105aa20660") DECLSPEC_NOVTABLE
  69. IInnerStreamQualityControl : public IUnknown
  70. {
  71. STDMETHOD (LinkInnerCallQC) (
  72. IN IInnerCallQualityControl *pIInnerCallQC
  73. ) PURE;
  74. STDMETHOD (UnlinkInnerCallQC) (
  75. IN BOOL fByStream
  76. ) PURE;
  77. STDMETHOD (GetRange) (
  78. IN InnerStreamQualityProperty property,
  79. OUT LONG *plMin,
  80. OUT LONG *plMax,
  81. OUT LONG *plSteppingDelta,
  82. OUT LONG *plDefault,
  83. OUT TAPIControlFlags *plFlags
  84. ) PURE;
  85. STDMETHOD (Set) (
  86. IN InnerStreamQualityProperty property,
  87. IN LONG lValue,
  88. IN TAPIControlFlags lFlags
  89. ) PURE;
  90. STDMETHOD (Get) (
  91. IN InnerStreamQualityProperty property,
  92. OUT LONG *lValue,
  93. OUT TAPIControlFlags *plFlags
  94. ) PURE;
  95. STDMETHOD (TryLockStream)() PURE;
  96. STDMETHOD (UnlockStream)() PURE;
  97. STDMETHOD (IsAccessingQC)() PURE;
  98. };
  99. #define IID_IInnerStreamQualityControl (__uuidof(IInnerStreamQualityControl))
  100. #endif // __QCINNER_H_