Source code of Windows XP (NT5)
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.

393 lines
9.1 KiB

  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__