ipmsp.idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:9k
源码类别:

模拟服务器

开发平台:

C/C++

  1. ///////////////////////////////////////////////////////////////////////////
  2. // ipmsp.idl : IDL source for IP specific msp interfaces
  3. /////////////////////////////////////////////////////////////////////////////
  4. #ifndef __IPMSP_IDL__
  5. #define __IPMSP_IDL__
  6. import "tapi3if.idl";
  7. import "strmif.idl";
  8. // The maximum length of the info string is 256 bytes inluding EOS.
  9. const unsigned long MAX_PARTICIPANT_TYPED_INFO_LENGTH = 256; 
  10. const unsigned long MAX_QOS_ID_LEN = 128; 
  11. typedef enum PARTICIPANT_TYPED_INFO
  12. {
  13.     PTI_CANONICALNAME,
  14.     PTI_NAME,
  15.     PTI_EMAILADDRESS,
  16.     PTI_PHONENUMBER,
  17.     PTI_LOCATION,
  18.     PTI_TOOL,
  19.     PTI_NOTES,
  20.     PTI_PRIVATE
  21. } PARTICIPANT_TYPED_INFO;
  22. typedef enum PARTICIPANT_EVENT
  23. {
  24.     PE_NEW_PARTICIPANT,
  25.     PE_INFO_CHANGE,
  26.     PE_PARTICIPANT_LEAVE,
  27.     PE_NEW_SUBSTREAM,
  28.     PE_SUBSTREAM_REMOVED,
  29.     PE_SUBSTREAM_MAPPED,
  30.     PE_SUBSTREAM_UNMAPPED,
  31.     PE_PARTICIPANT_TIMEOUT,
  32.     PE_PARTICIPANT_RECOVERED,
  33.     PE_PARTICIPANT_ACTIVE,
  34.     PE_PARTICIPANT_INACTIVE,
  35.     PE_LOCAL_TALKING,
  36.     PE_LOCAL_SILENT
  37. } PARTICIPANT_EVENT;
  38. [
  39.     uuid(5899b820-5a34-11d2-95a0-00a0244d2298),
  40.     helpstring("ITParticipant Interface"),
  41.     pointer_default(unique),
  42.     dual
  43. ]
  44. interface ITParticipant : IDispatch
  45. {
  46.     [propget, id(1), helpstring("propertry ParticipantTypedInfo")]
  47.     HRESULT ParticipantTypedInfo(
  48.         [in] PARTICIPANT_TYPED_INFO InfoType,
  49.         [out, retval] BSTR * ppInfo
  50.         );
  51.     [propget, id(2), helpstring("the media types of the participant")]
  52.     HRESULT MediaTypes(
  53.         [out, retval] long * plMediaType
  54.         );
  55.     [propput, id(3), helpstring("enable or disable a participant")]
  56.     HRESULT Status(
  57.         [in] ITStream * pITStream,
  58.         [in] VARIANT_BOOL   fEnable
  59.         );
  60.     [propget, id(3), helpstring("the status of the participant")]
  61.     HRESULT Status(
  62.         [in] ITStream * pITStream,
  63.         [out, retval] VARIANT_BOOL * pStatus
  64.         );
  65.     [propget, id(4), helpstring("an ITCollection of streams that have the participant")]
  66.     HRESULT Streams(
  67.         [out, retval] VARIANT * pVariant
  68.         );
  69.     [id(6), hidden]
  70.     HRESULT EnumerateStreams(
  71.         [out, retval] IEnumStream ** ppEnumStream
  72.         );
  73. }
  74. cpp_quote("#ifndef STREAM_INTERFACES_DEFINED")
  75. cpp_quote("#define STREAM_INTERFACES_DEFINED")
  76. const DWORD MAX_DESCRIPTION_LEN = 256;
  77. typedef struct _TAPI_AUDIO_STREAM_CONFIG_CAPS
  78. {
  79. WCHAR Description[MAX_DESCRIPTION_LEN];
  80. ULONG MinimumChannels;
  81. ULONG MaximumChannels;
  82. ULONG ChannelsGranularity;
  83. ULONG MinimumBitsPerSample;
  84. ULONG MaximumBitsPerSample;
  85. ULONG BitsPerSampleGranularity;
  86. ULONG MinimumSampleFrequency;
  87. ULONG MaximumSampleFrequency;
  88. ULONG SampleFrequencyGranularity;
  89.     ULONG MinimumAvgBytesPerSec;
  90.     ULONG MaximumAvgBytesPerSec;
  91.     ULONG AvgBytesPerSecGranularity;
  92. } TAPI_AUDIO_STREAM_CONFIG_CAPS, *PTAPI_AUDIO_STREAM_CONFIG_CAPS;
  93. typedef struct _TAPI_VIDEO_STREAM_CONFIG_CAPS
  94. {
  95. WCHAR Description[MAX_DESCRIPTION_LEN];
  96. ULONG VideoStandard;
  97. SIZE InputSize;
  98. SIZE MinCroppingSize;
  99. SIZE MaxCroppingSize;
  100. int CropGranularityX;
  101. int CropGranularityY;
  102. int CropAlignX;
  103. int CropAlignY;
  104. SIZE MinOutputSize;
  105. SIZE MaxOutputSize;
  106. int OutputGranularityX;
  107. int OutputGranularityY;
  108. int StretchTapsX;
  109. int StretchTapsY;
  110. int ShrinkTapsX;
  111. int ShrinkTapsY;
  112. LONGLONG MinFrameInterval;
  113. LONGLONG MaxFrameInterval;
  114. LONG MinBitsPerSecond;
  115. LONG MaxBitsPerSecond;
  116. } TAPI_VIDEO_STREAM_CONFIG_CAPS, *PTAPI_VIDEO_STREAM_CONFIG_CAPS;
  117. typedef enum tagStreamConfigCapsType
  118. {
  119. AudioStreamConfigCaps,
  120. VideoStreamConfigCaps
  121. } StreamConfigCapsType;
  122. typedef struct tagTAPI_STREAM_CONFIG_CAPS
  123. {
  124. StreamConfigCapsType CapsType;
  125. union
  126. {
  127. TAPI_VIDEO_STREAM_CONFIG_CAPS VideoCap;
  128. TAPI_AUDIO_STREAM_CONFIG_CAPS AudioCap;
  129. };
  130. } TAPI_STREAM_CONFIG_CAPS, *PTAPI_STREAM_CONFIG_CAPS;
  131. typedef enum tagTAPIControlFlags
  132. {
  133.     TAPIControl_Flags_None   = 0x0000,
  134.     TAPIControl_Flags_Auto   = 0x0001,
  135.     TAPIControl_Flags_Manual = 0x0002
  136. } TAPIControlFlags;
  137. [
  138.     object,
  139.     local,
  140.     uuid(6c0ab6c1-21e3-11d3-a577-00c04f8ef6e3),
  141.     pointer_default(unique),
  142.     hidden
  143. ]
  144. interface ITFormatControl : IUnknown
  145. {
  146.     HRESULT GetCurrentFormat(
  147.         [out] AM_MEDIA_TYPE **ppMediaType
  148.         );
  149.     HRESULT ReleaseFormat (
  150.         [in] AM_MEDIA_TYPE *pMediaType
  151.         );
  152.     HRESULT GetNumberOfCapabilities(
  153.         [out] DWORD *pdwCount
  154.         );
  155.     HRESULT GetStreamCaps(
  156.         [in] DWORD dwIndex, 
  157.         [out] AM_MEDIA_TYPE **ppMediaType, 
  158.         [out] TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps, 
  159.         [out] BOOL *pfEnabled
  160.         );
  161.     HRESULT ReOrderCapabilities(
  162.         [in] DWORD *pdwIndices, 
  163.         [in] BOOL *pfEnabled, 
  164.         [in] BOOL *pfPublicize, 
  165.         [in] DWORD dwNumIndices
  166.         );
  167. }
  168. typedef enum tagStreamQualityProperty
  169. {
  170.     StreamQuality_MaxBitrate,
  171.     StreamQuality_CurrBitrate,         // Read-Only
  172.     StreamQuality_MinFrameInterval,
  173.     StreamQuality_AvgFrameInterval, // Read-Only
  174. } StreamQualityProperty;
  175. [
  176.     object,
  177.     local,
  178.     uuid(6c0ab6c2-21e3-11d3-a577-00c04f8ef6e3),
  179.     pointer_default(unique),
  180.     hidden
  181. ]
  182. interface ITStreamQualityControl : IUnknown
  183. {
  184.     HRESULT GetRange(
  185.         [in] StreamQualityProperty Property, 
  186.         [out] long *plMin, 
  187.         [out] long *plMax, 
  188.         [out] long *plSteppingDelta, 
  189.         [out] long *plDefault, 
  190.         [out] TAPIControlFlags *plFlags
  191.         );
  192.     HRESULT Get(
  193.         [in] StreamQualityProperty Property, 
  194.         [out] long *plValue, 
  195.         [out] TAPIControlFlags *plFlags
  196.         );
  197.     HRESULT Set(
  198.         [in] StreamQualityProperty Property, 
  199.         [in] long lValue, 
  200.         [in] TAPIControlFlags lFlags
  201.         );
  202. }
  203. typedef enum tagCallQualityProperty
  204. {
  205.     CallQuality_ControlInterval,
  206.     CallQuality_ConfBitrate,            // confmsp and read-only
  207.     CallQuality_MaxInputBitrate,        // read only
  208.     CallQuality_CurrInputBitrate,       // Read-Only
  209.     CallQuality_MaxOutputBitrate,
  210.     CallQuality_CurrOutputBitrate,      // Read-Only
  211.     CallQuality_MaxCPULoad,
  212.     CallQuality_CurrCPULoad             // Read-Only
  213. } CallQualityProperty;
  214. [
  215.     object,
  216.     local,
  217.     uuid(fe1d8ae0-edc4-49b5-8f8c-4de40f9cdfaf),
  218.     pointer_default(unique),
  219.     hidden
  220. ]
  221. interface ITCallQualityControl : IUnknown
  222. {
  223.     HRESULT GetRange(
  224.         [in] CallQualityProperty Property, 
  225.         [out] long *plMin, 
  226.         [out] long *plMax, 
  227.         [out] long *plSteppingDelta, 
  228.         [out] long *plDefault, 
  229.         [out] TAPIControlFlags *plFlags
  230.         );
  231.     HRESULT Get(
  232.         [in] CallQualityProperty Property, 
  233.         [out] long *plValue, 
  234.         [out] TAPIControlFlags *plFlags
  235.         );
  236.     HRESULT Set(
  237.         [in] CallQualityProperty Property, 
  238.         [in] long lValue, 
  239.         [in] TAPIControlFlags lFlags
  240.         );
  241. }
  242. typedef enum tagAudioDeviceProperty
  243. {
  244.     AudioDevice_DuplexMode,
  245.     AudioDevice_AutomaticGainControl,
  246.     AudioDevice_AcousticEchoCancellation
  247. } AudioDeviceProperty;
  248. [
  249.     object,
  250.     local,
  251.     uuid(6c0ab6c5-21e3-11d3-a577-00c04f8ef6e3),
  252.     pointer_default(unique),
  253.     hidden
  254. ]
  255. interface ITAudioDeviceControl : IUnknown
  256. {
  257.     HRESULT GetRange(
  258.         [in] AudioDeviceProperty Property, 
  259.         [out] long *plMin, 
  260.         [out] long *plMax, 
  261.         [out] long *plSteppingDelta, 
  262.         [out] long *plDefault, 
  263.         [out] TAPIControlFlags *plFlags
  264.         );
  265.     HRESULT Get(
  266.             [in] AudioDeviceProperty Property, 
  267.         [out] long *plValue, 
  268.         [out] TAPIControlFlags *plFlags
  269.         );
  270.     HRESULT Set(
  271.         [in] AudioDeviceProperty Property, 
  272.         [in] long lValue, 
  273.         [in] TAPIControlFlags lFlags
  274.         );
  275. }
  276. typedef enum tagAudioSettingsProperty
  277. {
  278.     AudioSettings_SignalLevel,    // Read-Only
  279.     AudioSettings_SilenceThreshold,
  280.     AudioSettings_Volume,
  281.     AudioSettings_Balance,
  282.     AudioSettings_Loudness,
  283.     AudioSettings_Treble,
  284.     AudioSettings_Bass,
  285.     AudioSettings_Mono
  286. } AudioSettingsProperty;
  287. [
  288.     object,
  289.     local,
  290.     uuid(6c0ab6c6-21e3-11d3-a577-00c04f8ef6e3),
  291.     pointer_default(unique),
  292.     hidden
  293. ]
  294. interface ITAudioSettings  : IUnknown
  295. {
  296.     HRESULT GetRange(
  297.         [in] AudioSettingsProperty Property, 
  298.         [out] long *plMin, 
  299.         [out] long *plMax, 
  300.         [out] long *plSteppingDelta, 
  301.         [out] long *plDefault, 
  302.         [out] TAPIControlFlags *plFlags
  303.         );
  304.     HRESULT Get(
  305.         [in] AudioSettingsProperty Property, 
  306.         [out] long *plValue, 
  307.         [out] TAPIControlFlags *plFlags
  308.         );
  309.     HRESULT Set(
  310.         [in] AudioSettingsProperty Property, 
  311.         [in] long lValue, 
  312.         [in] TAPIControlFlags lFlags
  313.         );
  314. }
  315. [
  316.     uuid(e8c89d27-a3bd-47d5-a6fc-d2ae40cdbc6e),
  317.     helpstring("ITQOSApplicationID interface"),
  318.     pointer_default(unique),
  319.     dual
  320. ]
  321. interface ITQOSApplicationID : IDispatch
  322. {
  323.     HRESULT SetQOSApplicationID(
  324.         [in] BSTR pApplicationID,
  325.         [in] BSTR pApplicationGUID,
  326.         [in] BSTR pSubIDs
  327.         );
  328. }
  329. cpp_quote("#endif // STREAM_INTERFACES_DEFINED")
  330. cpp_quote("#ifndef RTP_MEDIATYPE_DEFINED")
  331. cpp_quote("#define RTP_MEDIATYPE_DEFINED")
  332. cpp_quote("struct DECLSPEC_UUID("14099BC0-787B-11d0-9CD3-00A0C9081C19") MEDIATYPE_RTP_Single_Stream;")
  333. cpp_quote("#endif //RTP_MEDIATYPE_DEFINED")
  334. #endif // __H323_PRIVATE_IDL__