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.

1290 lines
70 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows Media Technologies
  4. // Copyright (C) Microsoft Corporation. All rights reserved.
  5. //
  6. // File: wmsServer.idl
  7. //
  8. // Contents: Interface definitions for Admin Interfaces
  9. //
  10. //--------------------------------------------------------------------------
  11. cpp_quote("//+-------------------------------------------------------------------------")
  12. cpp_quote("//")
  13. cpp_quote("// Microsoft Windows Media Technologies")
  14. cpp_quote("// Copyright (C) Microsoft Corporation. All rights reserved.")
  15. cpp_quote("//")
  16. cpp_quote("// Automatically generated by Midl from WMSServer.idl ")
  17. cpp_quote("//")
  18. cpp_quote("// DO NOT EDIT THIS FILE.")
  19. cpp_quote("//")
  20. cpp_quote("//--------------------------------------------------------------------------")
  21. import "oaidl.idl";
  22. import "xmldom.idl";
  23. import "WMSNamedValues.idl";
  24. import "WMSPlugin.idl";
  25. import "wmsXMLDOMExtensions.idl";
  26. import "streamcache.idl";
  27. #include "colldispid.h"
  28. cpp_quote( "#ifndef __wmsserver_iid" )
  29. cpp_quote( "#define __wmsserver_iid" )
  30. // Manually generated CLSID. Do not need a library block to create just this.
  31. cpp_quote( "EXTERN_GUID( CLSID_WMSServerMainImpl, 0x1E62CD49,0x3961,0x11D2,0x9E,0xFC,0x00,0x60,0x97,0xD2,0xD7,0xCF );" )
  32. cpp_quote( "#include <WMSDefs.h>" )
  33. [
  34. object,
  35. uuid(DFC750A9-F846-48be-87AE-79F851C9CD92),
  36. dual,
  37. nonextensible,
  38. helpstring("Contains a collection of root directory paths for enabled data source plug-ins."),
  39. pointer_default(unique)
  40. ]
  41. interface IWMSRootDirectories : IDispatch
  42. {
  43. COLLECTION_METHODS( BSTR, "Retrieves a specific root directory path from the collection." )
  44. };
  45. //////////////////////////////////////////////////////////////////////////////
  46. [
  47. object,
  48. uuid(5AC19D62-6057-4431-BE7E-2153FDF91397),
  49. dual,
  50. nonextensible,
  51. helpstring("Contains properties that describe a specific error or warning event for the server or a plug-in."),
  52. pointer_default(unique)
  53. ]
  54. interface IWMSDiagnosticEvent : IDispatch
  55. {
  56. typedef [public, uuid(5AC19D63-6057-4431-BE7E-2153FDF91397)] enum WMS_DIAGNOSTIC_EVENT
  57. {
  58. WMS_DIAGNOSTIC_EVENT_LIMIT_HIT = 0,
  59. WMS_DIAGNOSTIC_EVENT_PLUGIN_EVENT_LOG_ERROR = 1,
  60. WMS_DIAGNOSTIC_EVENT_PLUGIN_EVENT_LOG_WARNING = 2,
  61. WMS_DIAGNOSTIC_EVENT_SERVER_EVENT_LOG_ERROR = 3,
  62. WMS_DIAGNOSTIC_EVENT_SERVER_EVENT_LOG_WARNING = 4
  63. } WMS_DIAGNOSTIC_EVENT;
  64. [propget, id(DISPID_VALUE), helpstring("Retrieves the name of the limit or plug-in associated with the event.")] HRESULT
  65. Name([out, retval] BSTR *pVal);
  66. [propget, id(1), helpstring("Retrieves an enumeration value indicating the event type.")] HRESULT
  67. Type([out, retval] WMS_DIAGNOSTIC_EVENT * pVal);
  68. [propget, id(4), helpstring("Retrieves the name of the publishing point that raised the event.")] HRESULT
  69. PublishingPointName([out, retval] BSTR *pVal);
  70. [propget, id(3), helpstring("Retrieves the date and time of the event.")] HRESULT
  71. Time([out, retval] DATE *pVal);
  72. [propget, id(5), helpstring("Retrieves the number of times the event has occurred.")] HRESULT
  73. NumberOfOccurrences([out, retval] long *pVal);
  74. [propget, id(2), helpstring("Retrieves the text message associated with the event.")] HRESULT
  75. AdditionalInfo([out, retval] BSTR *pVal);
  76. [propget, id(6), helpstring("Retrieves the HRESULT return code associated with the event.")] HRESULT
  77. ErrorCode([out, retval] long *pVal);
  78. };
  79. //////////////////////////////////////////////////////////////////////////////
  80. [
  81. object,
  82. uuid(5AC19D61-6057-4431-BE7E-2153FDF91397),
  83. dual,
  84. nonextensible,
  85. helpstring("Contains a collection of IWMSDiagnosticEvent objects."),
  86. pointer_default(unique)
  87. ]
  88. interface IWMSDiagnosticEvents : IDispatch
  89. {
  90. // Standard collection Methods & Properties: Item, Count & _NewEnum
  91. COLLECTION_METHODS( IWMSDiagnosticEvent*, "Retrieves an IWMSDiagnosticEvent object from the collection." )
  92. [id(4), helpstring("Removes all IWMSDiagnosticEvent objects from the collection.")] HRESULT
  93. RemoveAll( );
  94. };
  95. //////////////////////////////////////////////////////////////////////////////
  96. [
  97. object,
  98. uuid(4124B8B3-BCE4-41c8-B49A-DA98C1401D3B),
  99. dual,
  100. nonextensible,
  101. helpstring("Contains properties that describe a directory or multimedia file."),
  102. pointer_default(unique)
  103. ]
  104. interface IWMSFileDescription : IDispatch
  105. {
  106. typedef [public, uuid(4124B8B4-BCE4-41c8-B49A-DA98C1401D3B)] enum WMS_FILE_TYPE
  107. {
  108. WMS_FILE_UNSPECIFIED = 0,
  109. WMS_FILE_DIRECTORY = 1,
  110. WMS_FILE_MEDIA = 2,
  111. WMS_FILE_PLAYLIST = 3,
  112. WMS_FILE_STREAM_FORMAT = 4,
  113. WMS_FILE_REMOTE_FILE = 5
  114. } WMS_FILE_TYPE;
  115. [propget, id(DISPID_VALUE), helpstring("Retrieves the name of the directory or multimedia file.")] HRESULT
  116. Name([out, retval] BSTR *pVal);
  117. [propget, id(1), helpstring("Retrieves an enumeration value that specifies the type of the multimedia file or directory.")] HRESULT
  118. Type([out, retval] WMS_FILE_TYPE* pVal);
  119. };
  120. //////////////////////////////////////////////////////////////////////////////
  121. [
  122. object,
  123. uuid(4124B8B2-BCE4-41c8-B49A-DA98C1401D3B),
  124. dual,
  125. nonextensible,
  126. helpstring("Contains a collection of IWMSFileDescription objects."),
  127. pointer_default(unique)
  128. ]
  129. interface IWMSFileDescriptions : IDispatch
  130. {
  131. // Standard collection Methods & Properties: Item, Count & _NewEnum
  132. COLLECTION_METHODS( IWMSFileDescription*, "Retrieves an IWMSFileDescription object from the collection." )
  133. [id(1), helpstring("Removes an IWMSFileDescription object from the collection.") ] HRESULT
  134. Delete ([in] const VARIANT varIndex);
  135. [id(2), helpstring("Creates a new directory.") ] HRESULT
  136. CreateDataSourceDirectory ([in] BSTR bstrName );
  137. };
  138. //////////////////////////////////////////////////////////////////////////////
  139. [
  140. object,
  141. uuid(3FC1A813-759F-4441-BA48-21889EC8AC20),
  142. dual,
  143. nonextensible,
  144. helpstring("Contains a collection of IP addresses that are available for use by a control protocol plug-in."),
  145. pointer_default(unique)
  146. ]
  147. interface IWMSAvailableIPAddresses : IDispatch
  148. {
  149. // Standard collection Methods & Properties: Item, Count, length & _NewEnum
  150. COLLECTION_METHODS( BSTR, "Retrieves a specific IP address, by index, from the collection." )
  151. };
  152. /////////////////////////////////////////////////////////////////////////////
  153. [
  154. object,
  155. uuid(517758ec-603c-4b98-82c1-4b2fa7787166),
  156. dual,
  157. nonextensible,
  158. helpstring("Contains a collection of plug-ins."),
  159. pointer_default(unique)
  160. ]
  161. interface IWMSPlugins : IDispatch
  162. {
  163. // Standard collection Methods & Properties: Item, Count & _NewEnum
  164. COLLECTION_METHODS( IWMSPlugin*, "Retrieves a plug-in from the collection." )
  165. [id(4), helpstring("Removes a plug-in from the collection.")] HRESULT
  166. Remove([in] VARIANT varIndex);
  167. [id(5), helpstring("Updates the list of plug-ins in the collection to reflect the plug-ins that are registered for use by the server.")] HRESULT
  168. Refresh();
  169. [id(6), helpstring("Creates a duplicate instance of a specific plug-in.")] HRESULT
  170. Clone( [in] BSTR bstrDestName, [in] IWMSPlugin *pSrcPlugin, [out,retval] IWMSPlugin **pDestPlugin );
  171. [propget, id(7), helpstring("Retrieves the category name for the plug-in collection.")] HRESULT
  172. Category([out, retval] BSTR *pVal);
  173. };
  174. //////////////////////////////////////////////////////////////////////////////
  175. [
  176. object,
  177. uuid(517758e8-603c-4b98-82c1-4b2fa7787166),
  178. dual,
  179. nonextensible,
  180. helpstring("Contains properties that describe content that has been cached by a cache plug-in."),
  181. pointer_default(unique)
  182. ]
  183. interface IWMSCacheItem : IDispatch
  184. {
  185. [propget, id(0), helpstring("Retrieves the absolute URL for the cached content.")] HRESULT
  186. OriginUrl( [out,retval] BSTR *pOriginUrl);
  187. [propget, id(2), helpstring("Retrieves the size of the content in bytes.")] HRESULT
  188. ContentSize( [out,retval] VARIANT *pContentSize );
  189. };
  190. //////////////////////////////////////////////////////////////////////////////
  191. [
  192. object,
  193. uuid(517758e9-603c-4b98-82c1-4b2fa7787166),
  194. dual,
  195. nonextensible,
  196. helpstring("Contains a collection of IWMSCacheItem objects."),
  197. pointer_default(unique)
  198. ]
  199. interface IWMSCacheItems : IDispatch
  200. {
  201. // Standard collection Methods & Properties: Item, Count & _NewEnum
  202. COLLECTION_METHODS( IWMSCacheItem*, "Retrieves an IWMSCacheItem object from the collection." )
  203. [id(3), helpstring("Removes an IWMSCacheItem object from the collection.")] HRESULT
  204. Delete([in] VARIANT varIndex);
  205. [id(4), helpstring("Removes all IWMSCacheItem objects from the collection.")] HRESULT
  206. DeleteAll( );
  207. };
  208. //////////////////////////////////////////////////////////////////////////////
  209. [
  210. object,
  211. uuid(517758eb-603c-4b98-82c1-4b2fa7787166),
  212. dual,
  213. nonextensible,
  214. helpstring("Contains properties and methods to manage a cache or proxy plug-in."),
  215. pointer_default(unique)
  216. ]
  217. interface IWMSCacheProxyPlugin : IWMSPlugin
  218. {
  219. [id(20), helpstring("Fills the cache with content.")] HRESULT
  220. PreStuff( [in] BSTR OriginURL,
  221. [in,defaultvalue("")] BSTR SourcePath,
  222. [in,defaultvalue(-1)] long lExpiration,
  223. [in,defaultvalue(0)] long lBandwidth,
  224. [in,defaultvalue(0)] long lRemoteEventFlags
  225. );
  226. [propget, id(21), helpstring("Retrieves a collection of IWMSCacheItem objects.")] HRESULT
  227. CacheItems( [out,retval] IWMSCacheItems* *ppVal );
  228. };
  229. /////////////////////////////////////////////////////////////////////////////
  230. typedef [public, uuid(60f2ee55-dcaa-4cb6-a6d2-12bc23ac9df0)] enum WMS_CLIENT_STATUS
  231. {
  232. WMS_CLIENT_DISCONNECTED = 0x0000,
  233. WMS_CLIENT_IDLE = 0x0001,
  234. WMS_CLIENT_OPEN = 0x0002,
  235. WMS_CLIENT_STREAMING = 0x0003,
  236. } WMS_CLIENT_STATUS;
  237. //////////////////////////////////////////////////////////////////////////////
  238. [
  239. object,
  240. uuid(60f2ee54-dcaa-4cb6-a6d2-12bc23ac9df0),
  241. dual,
  242. nonextensible,
  243. helpstring("Contains properties that describe an outgoing distribution connection client."),
  244. pointer_default(unique)
  245. ]
  246. interface IWMSOutgoingDistributionConnection : IDispatch
  247. {
  248. [propget, id(0), helpstring("Retrieves a unique value identifying the client.")] HRESULT
  249. ID([out, retval] long *pVal);
  250. [propget, id(2), helpstring("Retrieves the network address of the client.")] HRESULT
  251. NetworkAddress([out, retval] BSTR *pVal);
  252. [propget, id(3), helpstring("Retrieves the client's requested playlist object.")] HRESULT
  253. RequestedPlaylist([out, retval] IWMSPlaylist **pVal);
  254. [propget, id(4), helpstring("Retrieves the URL that the client used to request its distribution connection.")] HRESULT
  255. RequestedURL([out, retval] BSTR *pVal);
  256. [propget, id(5), helpstring("Retrieves the physical URL of the content being streamed to the client.")] HRESULT
  257. ResolvedURL([out, retval] BSTR *pVal);
  258. [propget, id(6), helpstring("Retrieves the status of the client.")] HRESULT
  259. Status([out, retval] WMS_CLIENT_STATUS *pVal);
  260. [propget, id(7), helpstring("Retrieves the authenticated name of the client.")] HRESULT
  261. UserName([out, retval] BSTR *pVal);
  262. [propget, id(8), helpstring("Retrieves the client's wrapper playlist object.")] HRESULT
  263. WrapperPlaylist([out, retval] IWMSPlaylist **pVal);
  264. [propget, id(9), helpstring("Retrieves the port number of the client.")] HRESULT
  265. Port([out, retval] long *pVal);
  266. };
  267. //////////////////////////////////////////////////////////////////////////////
  268. [
  269. object,
  270. uuid(60f2ee53-dcaa-4cb6-a6d2-12bc23ac9df0),
  271. dual,
  272. nonextensible,
  273. helpstring("Contains a collection of IWMSOutgoingDistributionConnection objects."),
  274. pointer_default(unique)
  275. ]
  276. interface IWMSOutgoingDistributionConnections : IDispatch
  277. {
  278. // Standard collection Methods & Properties: Item, Count & _NewEnum
  279. COLLECTION_METHODS( IWMSOutgoingDistributionConnection*, "Retrieves an IWMSOutgoingDistributionConnection object from the collection." )
  280. [id(2), helpstring("Updates the list of IWMSOutgoingDistributionConnection objects in the collection.")] HRESULT
  281. Refresh();
  282. [id(3), helpstring("Disconnects a specific outgoing distribution connection client from the server and removes it from the collection.")] HRESULT
  283. Remove([in] VARIANT varIndex);
  284. [id(4), helpstring("Disconnects all outgoing distribution connection clients from the server and removes them from the collection.")] HRESULT
  285. RemoveAll();
  286. };
  287. /////////////////////////////////////////////////////////////////////////////
  288. [
  289. object,
  290. uuid(18812736-4BEC-11D2-BF25-00805FBE84A6),
  291. dual,
  292. nonextensible,
  293. helpstring("Contains properties that describe a connected player."),
  294. pointer_default(unique)
  295. ]
  296. interface IWMSPlayer : IDispatch
  297. {
  298. [propget, id(0), helpstring("Retrieves a unique value identifying the player.")] HRESULT
  299. ID([out, retval] long *pVal);
  300. [propget, id(2), helpstring("Retrieves the network address of the player.")] HRESULT
  301. NetworkAddress([out, retval] BSTR *pVal);
  302. [propget, id(3), helpstring("Retrieves the player's requested playlist object.")] HRESULT
  303. RequestedPlaylist([out, retval] IWMSPlaylist **pVal);
  304. [propget, id(4), helpstring("Retrieves the URL that the player used to request its connection.")] HRESULT
  305. RequestedURL([out, retval] BSTR *pVal);
  306. [propget, id(5), helpstring("Retrieves the URL of the content being streamed to the player.")] HRESULT
  307. ResolvedURL([out, retval] BSTR *pVal);
  308. [propget, id(6), helpstring("Retrieves the status of the player.")] HRESULT
  309. Status([out, retval] WMS_CLIENT_STATUS *pVal);
  310. [propget, id(7), helpstring("Retrieves the authenticated name of the player.")] HRESULT
  311. UserName([out, retval] BSTR *pVal);
  312. [propget, id(8), helpstring("Retrieves the player's wrapper playlist object.")] HRESULT
  313. WrapperPlaylist([out, retval] IWMSPlaylist **pVal);
  314. [propget, id(9), helpstring("Retrieves the port number of the player.")] HRESULT
  315. Port([out, retval] long *pVal);
  316. };
  317. /////////////////////////////////////////////////////////////////////////////
  318. [
  319. object,
  320. uuid(18812738-4BEC-11D2-BF25-00805FBE84A6),
  321. dual,
  322. nonextensible,
  323. helpstring("Contains a collection of IWMSPlayer objects."),
  324. pointer_default(unique)
  325. ]
  326. interface IWMSPlayers : IDispatch
  327. {
  328. // Standard collection Methods & Properties: Item, Count & _NewEnum
  329. COLLECTION_METHODS( IWMSPlayer*, "Retrieves a specific IWMSPlayer object from the collection." )
  330. [id(2), helpstring("Updates the list of IWMSPlayer objects in the collection.")] HRESULT
  331. Refresh();
  332. [id(3), helpstring("Disconnects a specific player from the server and removes it from the collection.")] HRESULT
  333. Remove([in] VARIANT varIndex);
  334. [id(4), helpstring("Disconnects all players from the server and removes them from the collection.")] HRESULT
  335. RemoveAll();
  336. };
  337. /////////////////////////////////////////////////////////////////////////////
  338. [
  339. object,
  340. uuid(638DFA30-1054-48bd-B030-C3DA1FC18154),
  341. dual,
  342. nonextensible,
  343. helpstring("Contains properties that provide real-time counter values for a publishing point."),
  344. pointer_default(unique)
  345. ]
  346. interface IWMSPublishingPointCurrentCounters : IDispatch
  347. {
  348. [propget, id(0), helpstring("Retrieves the number of players connected to the publishing point.")] HRESULT
  349. ConnectedPlayers([out, retval] long *pVal);
  350. [propget, id(2), helpstring("Retrieves the number of players being streamed content using the HTTP protocol.")] HRESULT
  351. StreamingHTTPPlayers([out, retval] long *pVal);
  352. [propget, id(3), helpstring("Retrieves the number of players being streamed content using the MMS protocol.")] HRESULT
  353. StreamingMMSPlayers([out, retval] long *pVal);
  354. [propget, id(5), helpstring("Retrieves the bandwidth, in Kbps, allocated for outgoing distribution connection clients.")] HRESULT
  355. OutgoingDistributionAllocatedBandwidth([out, retval] long *pVal);
  356. [propget, id(6), helpstring("Retrieves the number of outgoing distribution connection clients connected to the publishing point.")] HRESULT
  357. OutgoingDistributionConnections([out, retval] long *pVal);
  358. [propget, id(7), helpstring("Retrieves the bandwidth, in Kbps, allocated for player connections.")] HRESULT
  359. PlayerAllocatedBandwidth([out, retval] long *pVal);
  360. [propget, id(8), helpstring("Retrieves the number of players being streamed content using the RTSP protocol.")] HRESULT
  361. StreamingRTSPPlayers([out, retval] long *pVal);
  362. [propget, id(9), helpstring("Retrieves the number of players being streamed content.")] HRESULT
  363. StreamingPlayers([out, retval] long *pVal);
  364. [propget, id(30), helpstring("Retrieves an array that contains all of the current counters.")] HRESULT
  365. AllCounters([out,retval] SAFEARRAY(VARIANT) *ppsaCounters);
  366. };
  367. /////////////////////////////////////////////////////////////////////////////
  368. [
  369. object,
  370. uuid(43B20CC5-CA36-4e7b-ADAF-C9C60D00BB0E),
  371. dual,
  372. nonextensible,
  373. helpstring("Contains properties that provide peak counter values for a publishing point."),
  374. pointer_default(unique)
  375. ]
  376. interface IWMSPublishingPointPeakCounters : IDispatch
  377. {
  378. [propget, id(0), helpstring("Retrieves the peak number of players that have been connected.")] HRESULT
  379. ConnectedPlayers([out, retval] long *pVal);
  380. [propget, id(2), helpstring("Retrieves the peak number of outgoing distribution connection clients that have been connected.")] HRESULT
  381. OutgoingDistributionConnections([out, retval] long *pVal);
  382. [propget, id(3), helpstring("Retrieves the peak bandwidth, in Kbps, that has been allocated for outgoing distribution connection clients.")] HRESULT
  383. OutgoingDistributionAllocatedBandwidth([out, retval] long *pVal);
  384. [propget, id(4), helpstring("Retrieves the peak bandwidth, in Kbps, that has been allocated for player connections.")] HRESULT
  385. PlayerAllocatedBandwidth([out, retval] long *pVal);
  386. [propget, id(5), helpstring("Retrieves the date and time at which the publishing point started monitoring the peak counters.")] HRESULT
  387. CountersStartTime([out, retval] DATE *pVal );
  388. [propget, id(6), helpstring("Retrieves the peak number of players that have been streamed content.")] HRESULT
  389. StreamingPlayers([out, retval] long *pVal);
  390. [id(8), helpstring("Resets all of the peak counters to the current values.")] HRESULT
  391. Reset();
  392. [propget, id(30), helpstring("Retrieves an array that contains all of the peak counters.")] HRESULT
  393. AllCounters([out,retval] SAFEARRAY(VARIANT) *ppsaCounters);
  394. };
  395. /////////////////////////////////////////////////////////////////////////////
  396. [
  397. object,
  398. uuid(6CD5BC19-35FD-4501-A953-FEB57AAE9C13),
  399. dual,
  400. nonextensible,
  401. helpstring("Contains properties to retrieve and manage publishing point limits."),
  402. pointer_default(unique)
  403. ]
  404. interface IWMSPublishingPointLimits : IDispatch
  405. {
  406. [propget, id(0), helpstring("Specifies or retrieves the maximum number of players that can be connected.")] HRESULT
  407. ConnectedPlayers([out, retval] long *pVal);
  408. [propput, id(0), helpstring("Specifies or retrieves the maximum number of players that can be connected.")] HRESULT
  409. ConnectedPlayers([in] long Val);
  410. [propget, id(3), helpstring("Specifies or retrieves the maximum aggregate allocated bandwidth, in Kbps, permitted for all outgoing distribution connection clients.")] HRESULT
  411. OutgoingDistributionBandwidth([out, retval] long *pVal);
  412. [propput, id(3), helpstring("Specifies or retrieves the maximum aggregate allocated bandwidth, in Kbps, permitted for all outgoing distribution connection clients.")] HRESULT
  413. OutgoingDistributionBandwidth([in] long Val);
  414. [propget, id(4), helpstring("Specifies or retrieves the maximum number of outgoing distribution connection clients that can be connected.")] HRESULT
  415. OutgoingDistributionConnections([out, retval] long *pVal);
  416. [propput, id(4), helpstring("Specifies or retrieves the maximum number of outgoing distribution connection clients that can be connected.")] HRESULT
  417. OutgoingDistributionConnections([in] long Val);
  418. [propget, id(5), helpstring("Specifies or retrieves the maximum allocated bandwidth, in Kbps, permitted for an outgoing distribution connection client.")] HRESULT
  419. PerOutgoingDistributionConnectionBandwidth([out, retval] long *pVal);
  420. [propput, id(5), helpstring("Specifies or retrieves the maximum allocated bandwidth, in Kbps, permitted for an outgoing distribution connection client.")] HRESULT
  421. PerOutgoingDistributionConnectionBandwidth([in] long Val);
  422. [propget, id(6), helpstring("Specifies or retrieves the maximum aggregate allocated bandwidth, in Kbps, permitted for all player connections.")] HRESULT
  423. PlayerBandwidth([out, retval] long *pVal);
  424. [propput, id(6), helpstring("Specifies or retrieves the maximum aggregate allocated bandwidth, in Kbps, permitted for all player connections.")] HRESULT
  425. PlayerBandwidth([in] long Val);
  426. [propget, id(7), helpstring("Specifies or retrieves the maximum allocated bandwidth, in Kbps, permitted for a player connection.")] HRESULT
  427. PerPlayerConnectionBandwidth([out, retval] long *pVal);
  428. [propput, id(7), helpstring("Specifies or retrieves the maximum allocated bandwidth, in Kbps, permitted for a player connection.")] HRESULT
  429. PerPlayerConnectionBandwidth([in] long Val);
  430. [propget, id(8), helpstring("Specifies or retrieves the maximum content delivery rate that a player can request that content be delivered to its cache.")] HRESULT
  431. PlayerCacheDeliveryRate([out, retval] long *pVal);
  432. [propput, id(8), helpstring("Specifies or retrieves the maximum content delivery rate that a player can request that content be delivered to its cache.")] HRESULT
  433. PlayerCacheDeliveryRate([in] long Val);
  434. [propget, id(9), helpstring("Specifies or retrieves the maximum number of data packets that can be buffered before error correction is applied.")] HRESULT
  435. FECPacketSpan([out, retval] long *pVal);
  436. [propput, id(9), helpstring("Specifies or retrieves the maximum number of data packets that can be buffered before error correction is applied.")] HRESULT
  437. FECPacketSpan([in] long Val);
  438. [propget, id(10), helpstring("Specifies or retrieves the maxiumum amount of bandwidth, in Kbps, that a player can use for accelerated initial buffering of multimedia content.")] HRESULT
  439. PerPlayerRapidStartBandwidth([out, retval] long *pVal);
  440. [propput, id(10), helpstring("Specifies or retrieves the maxiumum amount of bandwidth, in Kbps, that a player can use for accelerated initial buffering of multimedia content.")] HRESULT
  441. PerPlayerRapidStartBandwidth([in] long Val);
  442. };
  443. /////////////////////////////////////////////////////////////////////////////
  444. [
  445. object,
  446. uuid(240D0C87-309A-4126-BF14-B52A622E95A9),
  447. dual,
  448. nonextensible,
  449. helpstring("Contains properties that provide total counter values for a publishing point."),
  450. pointer_default(unique)
  451. ]
  452. interface IWMSPublishingPointTotalCounters : IDispatch
  453. {
  454. [propget, id(0), helpstring("Retrieves the total number of players that have been connected.")] HRESULT
  455. ConnectedPlayers([out, retval] long *pVal);
  456. [propget, id(2), helpstring("Retrieves the total number of outgoing distribution connection clients that have been connected.")] HRESULT
  457. OutgoingDistributionConnections([out, retval] long *pVal);
  458. [propget, id(3), helpstring("Retrieves the total number of late read operations.")] HRESULT
  459. LateReads([out, retval] long *pVal);
  460. [propget, id(5), helpstring("Retrieves the total number of bytes that have been sent to outgoing distribution connection clients.")] HRESULT
  461. OutgoingDistributionBytesSent([out, retval] VARIANT *pVal);
  462. [propget, id(6), helpstring("Retrieves the total number of bytes that have been sent to players.")] HRESULT
  463. PlayerBytesSent([out, retval] VARIANT *pVal);
  464. [propget, id(7), helpstring("Retrieves the date and time that the publishing point started monitoring the total counters.")] HRESULT
  465. CountersStartTime([out, retval] DATE *pVal);
  466. [propget, id(8), helpstring("Retrieves the total number of connections that have been denied.")] HRESULT
  467. StreamDenials([out, retval] long *pVal);
  468. [propget, id(9), helpstring("Retrieves the total number of errors per seconds due to packets being dropped.")] HRESULT
  469. StreamErrors([out, retval] long *pVal);
  470. [propget, id(10), helpstring("Retrieves the total number of players that have been streamed data.")] HRESULT
  471. StreamingPlayers([out, retval] long *pVal);
  472. [propget, id(11), helpstring("Retrieves the total number of connections that have been terminated.")] HRESULT
  473. StreamTerminations([out, retval] long *pVal);
  474. [propget, id(12), helpstring("Retrieves the total number of bytes that have been read from the publishing point.")] HRESULT
  475. FileBytesRead([out, retval] VARIANT *pVal);
  476. [propget, id(13), helpstring("Retrieves the total number of advertisements that have been streamed from playlists.")] HRESULT
  477. Advertisements([out, retval] long *pVal);
  478. [id(25), helpstring("Resets all of the total counters to the current values.")] HRESULT
  479. Reset();
  480. [propget, id(30), helpstring("Retrieves an array that contains all of the total counters.")] HRESULT
  481. AllCounters([out,retval] SAFEARRAY(VARIANT) *ppsaCounters);
  482. };
  483. /////////////////////////////////////////////////////////////////////////////
  484. [
  485. object,
  486. uuid(DAA2A1BB-BC91-438d-BF33-BDE11D2348D5),
  487. dual,
  488. nonextensible,
  489. helpstring("Contains properties that provide total counter values for the server."),
  490. pointer_default(unique)
  491. ]
  492. interface IWMSServerTotalCounters : IDispatch
  493. {
  494. [propget, id(0), helpstring("Retrieves the total number of players that have been connected.")] HRESULT
  495. ConnectedPlayers([out, retval] long *pVal);
  496. [propget, id(2), helpstring("Retrieves the total number of outgoing distribution connection clients that have been connected.")] HRESULT
  497. OutgoingDistributionConnections([out, retval] long *pVal);
  498. [propget, id(3), helpstring("Retrieves the total number of late read operations.")] HRESULT
  499. LateReads([out, retval] long *pVal);
  500. [propget, id(5), helpstring("Retrieves the total number of bytes that have been sent to outgoing distribution connection clients.")] HRESULT
  501. OutgoingDistributionBytesSent([out, retval] VARIANT *pVal);
  502. [propget, id(6), helpstring("Retrieves the total number of bytes that have been sent to players.")] HRESULT
  503. PlayerBytesSent([out, retval] VARIANT *pVal);
  504. [propget, id(7), helpstring("Retrieves the date and time that the server started monitoring the total counters.")] HRESULT
  505. CountersStartTime([out, retval] DATE *pVal);
  506. [propget, id(8), helpstring("Retrieves the total number of connections that have been denied.")] HRESULT
  507. StreamDenials([out, retval] long *pVal);
  508. [propget, id(9), helpstring("Retrieves the total number of errors per seconds due to packets being dropped.")] HRESULT
  509. StreamErrors([out, retval] long *pVal);
  510. [propget, id(10), helpstring("Retrieves the total number of players that have been streamed data.")] HRESULT
  511. StreamingPlayers([out, retval] long *pVal);
  512. [propget, id(11), helpstring("Retrieves the total number of connections that have been terminated.")] HRESULT
  513. StreamTerminations([out, retval] long *pVal);
  514. [propget, id(12), helpstring("Retrieves the total number of UDP resend requests received.")] HRESULT
  515. UDPResendRequests([out, retval] long *pVal);
  516. [propget, id(13), helpstring("Retrieves the total number of UDP resend requests processed.")] HRESULT
  517. UDPResendsSent([out, retval] long *pVal);
  518. [propget, id(14), helpstring("Retrieves the total number of late send operations.")] HRESULT
  519. LateSends([out, retval] long *pVal);
  520. [propget, id(15), helpstring("Retrieves the total number of advertisements that have been streamed from playlists.")] HRESULT
  521. Advertisements([out, retval] long *pVal);
  522. [id(25), helpstring("Resets all of the total counters to the current values.")] HRESULT
  523. Reset();
  524. [propget, id(30), helpstring("Retrieves an array that contains all of the total counters.")] HRESULT
  525. AllCounters([out,retval] SAFEARRAY(VARIANT) *ppsaCounters);
  526. };
  527. /////////////////////////////////////////////////////////////////////////////
  528. [
  529. object,
  530. uuid(1881273F-4BEC-11D2-BF25-00805FBE84A6),
  531. dual,
  532. nonextensible,
  533. helpstring("Contains properties and methods to manage a publishing point."),
  534. pointer_default(unique)
  535. ]
  536. interface IWMSPublishingPoint : IDispatch
  537. {
  538. typedef [public, uuid(3E52E0EC-72A7-11D2-BF2F-00805FBE84A6)] enum WMS_PUBLISHING_POINT_TYPE
  539. {
  540. WMS_PUBLISHING_POINT_TYPE_ON_DEMAND = 1,
  541. WMS_PUBLISHING_POINT_TYPE_BROADCAST = 2,
  542. WMS_PUBLISHING_POINT_TYPE_CACHE_PROXY_ON_DEMAND = 3,
  543. WMS_PUBLISHING_POINT_TYPE_CACHE_PROXY_BROADCAST = 4
  544. } WMS_PUBLISHING_POINT_TYPE;
  545. typedef [public, uuid(3E52E0EF-72A7-11D2-BF2F-00805FBE84A6)] enum WMS_PUBLISHING_POINT_STATUS
  546. {
  547. WMS_PUBLISHING_POINT_RUNNING = 0x0,
  548. WMS_PUBLISHING_POINT_ERROR = 0x1,
  549. WMS_PUBLISHING_POINT_ERROR_CRITICAL = 0x2
  550. } WMS_PUBLISHING_POINT_STATUS;
  551. [propget, id(1), helpstring("Specifies or retrieves a Boolean value that indicates whether the publishing point can receive client connections.")] HRESULT
  552. AllowClientsToConnect([out, retval] VARIANT_BOOL *pVal);
  553. [propput, id(1), helpstring("Specifies or retrieves a Boolean value that indicates whether the publishing point can receive client connections.")] HRESULT
  554. AllowClientsToConnect([in] VARIANT_BOOL newVal);
  555. [propget, id(2), helpstring("Retrieves a collection of current counters for the publishing point.")] HRESULT
  556. CurrentCounters([out, retval] IWMSPublishingPointCurrentCounters * *pVal);
  557. [propget, id(3), helpstring("Retrieves a collection of event authorization and notification plug-ins for the publishing point.")] HRESULT
  558. EventHandlers([out, retval] IWMSPlugins** pVal);
  559. [propget, id(4), helpstring("Retrieves the unique GUID for the publishing point.")] HRESULT
  560. ID([out, retval] BSTR *pVal);
  561. [propget, id(5), helpstring("Retrieves a collection of limits for the publishing point.")] HRESULT
  562. Limits([out, retval] IWMSPublishingPointLimits ** pVal);
  563. [propget, id(6), helpstring("Retrieves a collection of IWMSFileDescription objects that describes files and directories relative to the publishing point path.")] HRESULT
  564. FileDescriptions( [in, defaultvalue("")] BSTR RelativePath, [out, retval] IWMSFileDescriptions** pVal);
  565. [propget, id(7), helpstring("Retrieves the moniker display name for the publishing point.")] HRESULT
  566. MonikerName( [out,retval] BSTR* pbstrVal );
  567. [propget, id(DISPID_VALUE), helpstring("Specifies or retrieves the name of the publishing point.")] HRESULT
  568. Name([out, retval] BSTR *pVal);
  569. [propput, id(DISPID_VALUE), helpstring("Specifies or retrieves the name of the publishing point.")] HRESULT
  570. Name([in] BSTR newVal);
  571. [propget, id(8), helpstring("Retrieves a collection containing information about outgoing distribution connection clients for the publishing point.")] HRESULT
  572. OutgoingDistributionConnections([out, retval] IWMSOutgoingDistributionConnections* *pVal);
  573. [propget, id(9), helpstring("Specifies or retrieves the path to the publishing point content.")] HRESULT
  574. Path([out, retval] BSTR *pVal);
  575. [propput, id(9), helpstring("Specifies or retrieves the path to the publishing point content.")] HRESULT
  576. Path([in] BSTR newVal);
  577. [propget, id(10), helpstring("Retrieves a collection of peak counters for the publishing point")] HRESULT
  578. PeakCounters([out, retval] IWMSPublishingPointPeakCounters ** pVal);
  579. [propget, id(11), helpstring("Retrieves a collection that contains information about players connected to the publishing point.")] HRESULT
  580. Players( [out, retval] IWMSPlayers* *pVal );
  581. [propget, id(12), helpstring("Retrieves a collection of name-value pairs for the publishing point.")] HRESULT
  582. Properties([out, retval] IWMSNamedValues* *pVal);
  583. [propget, id(13), helpstring("Retrieves a collection of total counters for the publishing point.")] HRESULT
  584. TotalCounters([out, retval] IWMSPublishingPointTotalCounters* *pVal);
  585. [propget, id(14), helpstring("Retrieves an enumeration value that indicates the publishing point type.")] HRESULT
  586. Type([out, retval] WMS_PUBLISHING_POINT_TYPE *pVal);
  587. [propget, id(15), helpstring("Specifies or retrieves the path to the wrapper playlist file for the publishing point.")] HRESULT
  588. WrapperPath([out, retval] BSTR *pVal);
  589. [propput, id(15), helpstring("Specifies or retrieves the path to the wrapper playlist file for the publishing point.")] HRESULT
  590. WrapperPath([in] BSTR newVal);
  591. [propget, id(16), helpstring("Retrieves a collection of authentication plug-ins for the publishing point.")] HRESULT
  592. Authenticators([out, retval] IWMSPlugins** pVal);
  593. [propget, id(17), helpstring("Retrieves the publishing point status.")] HRESULT
  594. Status([out, retval] WMS_PUBLISHING_POINT_STATUS *pVal);
  595. [propget, id(18), helpstring("Specifies or retrieves a Boolean value indicating whether a wrapper playlist is enabled for the publishing point.")] HRESULT
  596. EnableWrapperPath([out, retval] VARIANT_BOOL *pVal);
  597. [propput, id(18), helpstring("Specifies or retrieves a Boolean value indicating whether a wrapper playlist is enabled for the publishing point.")] HRESULT
  598. EnableWrapperPath([in] VARIANT_BOOL newVal);
  599. [propget, id(19), helpstring("Retrieves a collection of stream filter plug-ins for the publishing point.")] HRESULT
  600. StreamFilters([out, retval] IWMSPlugins** pVal);
  601. [propget, id(22), helpstring("Specifies or retrieves the user name that is returned in response to an authentication challenge during server-to-server distribution.")] HRESULT
  602. DistributionUserName([out, retval] BSTR *pVal);
  603. [id(23), helpstring("Specifies or retrieves the user name/password that is returned in response to an authentication challenge during server-to-server distribution.")] HRESULT
  604. SetDistributionUserNamePassword([in, string] wchar_t* newUserName, [in, string] wchar_t* newUserPassword );
  605. [propget, id(24), helpstring("Specifies or retrieves the expiration value, in seconds, for cached content.")] HRESULT
  606. CacheProxyExpiration([out, retval] long *pVal);
  607. [propput, id(24), helpstring("Specifies or retrieves the expiration value, in seconds, for cached content.")] HRESULT
  608. CacheProxyExpiration([in] long newVal);
  609. [propget, id(25), helpstring("Retrieves a Boolean value that indicates whether the password used for authentication during server-to-server distribution is set.")] HRESULT
  610. IsDistributionPasswordSet ( [out, retval] VARIANT_BOOL *pVal);
  611. [propget, id(26), helpstring("Specifies or retrieves a Boolean value that indicates whether the publishing point allows clients to cache content locally.")] HRESULT
  612. AllowPlayerSideDiskCaching([out, retval] VARIANT_BOOL *pVal);
  613. [propput, id(26), helpstring("Specifies or retrieves a Boolean value that indicates whether the publishing point allows clients to cache content locally.")] HRESULT
  614. AllowPlayerSideDiskCaching([in] VARIANT_BOOL newVal);
  615. [propget, id(27), helpstring("Specifies or retrieves a Boolean value that indicates whether forward error correction is enabled for the publishing point.")] HRESULT
  616. EnableFEC([out, retval] VARIANT_BOOL *pVal);
  617. [propput, id(27), helpstring("Specifies or retrieves a Boolean value that indicates whether forward error correction is enabled for the publishing point.")] HRESULT
  618. EnableFEC([in] VARIANT_BOOL newVal);
  619. };
  620. /////////////////////////////////////////////////////////////////////////////
  621. [
  622. object,
  623. uuid(6ca388b3-eaee-492f-a8d6-8758efc72d76),
  624. dual,
  625. nonextensible,
  626. helpstring("Contains methods to manage an on-demand publishing point."),
  627. pointer_default(unique)
  628. ]
  629. interface IWMSOnDemandPublishingPoint : IWMSPublishingPoint
  630. {
  631. [propget, id(30), helpstring("Specifies or retrieves a Boolean value that indicates whether content from the publishing point can be cached by cache servers.")] HRESULT
  632. AllowContentCaching([out, retval] VARIANT_BOOL *pVal);
  633. [propput, id(30), helpstring("Specifies or retrieves a Boolean value that indicates whether content from the publishing point can be cached by cache servers.")] HRESULT
  634. AllowContentCaching([in] VARIANT_BOOL newVal);
  635. [id(31), helpstring("Exports the configuration data for the publishing point.")] HRESULT
  636. ExportXML( [in] BSTR bstrXMLFileName );
  637. [propget, id(32), helpstring("Specifies or retrieves a Boolean value that indicates whether clients can use wildcard characters to access content from the publishing point.")] HRESULT
  638. EnableClientWildcardDirectoryAccess( [out, retval] VARIANT_BOOL *pVal);
  639. [propput, id(32), helpstring("Specifies or retrieves a Boolean value that indicates whether clients can use wildcard characters to access content from the publishing point.")] HRESULT
  640. EnableClientWildcardDirectoryAccess( [in] VARIANT_BOOL newVal);
  641. [propget, id(33), helpstring("Reserved for future use.")] HRESULT
  642. EnableDownload( [out, retval] VARIANT_BOOL *pVal);
  643. [propput, id(33), helpstring("Reserved for future use.")] HRESULT
  644. EnableDownload( [in] VARIANT_BOOL newVal);
  645. [propget, id(34), helpstring("Reserved for future use.")] HRESULT
  646. DownloadBandwidth( [out, retval] long *pVal);
  647. [propput, id(34), helpstring("Reserved for future use.")] HRESULT
  648. DownloadBandwidth( [in] long newVal);
  649. };
  650. /////////////////////////////////////////////////////////////////////////////
  651. [
  652. object,
  653. uuid(55DDB8E9-05A3-4666-9E20-550F94581B06),
  654. dual,
  655. nonextensible,
  656. helpstring("Contains a collection of paths for media files that are used to announce a multicast broadcast."),
  657. pointer_default(unique)
  658. ]
  659. interface IWMSAnnouncementStreamFormats : IDispatch
  660. {
  661. // Standard collection Methods & Properties: Item, Count & _NewEnum
  662. COLLECTION_METHODS( BSTR, "Retrieves the path for a file from the collection." )
  663. [id(4), helpstring("Adds a file path or IStream header to the collection.")] HRESULT
  664. Add( [in] VARIANT varStreamFormat );
  665. [id(5), helpstring("Removes a file path from the collection.")] HRESULT
  666. Remove( [in] VARIANT varIndex );
  667. [id(6), helpstring("Removes all file paths from the collection.")] HRESULT
  668. RemoveAll();
  669. };
  670. /////////////////////////////////////////////////////////////////////////////
  671. [
  672. object,
  673. uuid(6ca388b4-eaee-492f-a8d6-8758efc72d76),
  674. dual,
  675. nonextensible,
  676. helpstring("Contains properties and methods to manage a broadcast publishing point."),
  677. pointer_default(unique)
  678. ]
  679. interface IWMSBroadcastPublishingPoint : IWMSPublishingPoint
  680. {
  681. typedef [public, uuid(3E52E0ED-72A7-11D2-BF2F-00805FBE84A6)] enum WMS_BROADCAST_PUBLISHING_POINT_STATUS
  682. {
  683. WMS_BROADCAST_PUBLISHING_POINT_STOPPED = 0x0,
  684. WMS_BROADCAST_PUBLISHING_POINT_STARTED_WITHOUT_DATA = 0x1,
  685. WMS_BROADCAST_PUBLISHING_POINT_STARTED = 0x2,
  686. WMS_BROADCAST_PUBLISHING_POINT_ARCHIVING = 0x4,
  687. WMS_BROADCAST_PUBLISHING_POINT_CHANGE_IN_PROGRESS = 0x8
  688. } WMS_BROADCAST_PUBLISHING_POINT_STATUS;
  689. typedef [public, uuid(62D6D99D-EB48-4e9e-97DB-C2C09EAADAD4)] enum WMS_BUFFER_SETTING
  690. {
  691. WMS_BUFFER_SETTING_UNSPECIFIED = 0x0,
  692. WMS_BUFFER_SETTING_MINIMIZE_STARTUP_LATENCY = 0x1,
  693. WMS_BUFFER_SETTING_MINIMIZE_PROPAGATION_LATENCY = 0x2,
  694. [hidden] WMS_NUM_BUFFER_SETTING = 0x3
  695. } WMS_BUFFER_SETTING;
  696. [propget, id(30), helpstring("Specifies or retrieves a Boolean value that indicates whether streams from the publishing point can be split.")] HRESULT
  697. AllowStreamSplitting([out, retval] VARIANT_BOOL *pVal);
  698. [propput, id(30), helpstring("Specifies or retrieves a Boolean value that indicates whether streams from the publishing point can be split.")] HRESULT
  699. AllowStreamSplitting([in] VARIANT_BOOL newVal);
  700. [propget, id(31), helpstring("Specifies or retrieves a Boolean value that indicates whether a stopped publishing point is automatically started when the first client connects and then stopped when the last client disconnects.")] HRESULT
  701. AllowClientToStartAndStop([out, retval] VARIANT_BOOL *pVal);
  702. [propput, id(31), helpstring("Specifies or retrieves a Boolean value that indicates whether a stopped publishing point is automatically started when the first client connects and then stopped when the last client disconnects.")] HRESULT
  703. AllowClientToStartAndStop([in] VARIANT_BOOL newVal);
  704. [propget, id(32), helpstring("Retrieves a collection of broadcast data sink plug-ins.")] HRESULT
  705. BroadcastDataSinks([out, retval] IWMSPlugins* *pVal);
  706. [propget, id(33), helpstring("Retrieves the shared playlist object for the broadcast publishing point.")] HRESULT
  707. SharedPlaylist([out, retval] IWMSPlaylist ** pVal);
  708. [id(34), helpstring("Initializes the publishing point and sends multicast beacons that enable clients to connect to a multicast when no content is being streamed.")] HRESULT
  709. StartWithoutData();
  710. [id(35), helpstring("Starts the broadcast publishing point.")] HRESULT
  711. Start();
  712. [id(36), helpstring("Starts archiving content from the publishing point.")] HRESULT
  713. StartArchive();
  714. [propget, id(37), helpstring("Retrieves an enumeration value indicating the status of the broadcast publishing point.")] HRESULT
  715. BroadcastStatus([out, retval] WMS_BROADCAST_PUBLISHING_POINT_STATUS *pVal);
  716. [id(38), helpstring("Stops the broadcast publishing point.")] HRESULT
  717. Stop();
  718. [id(39), helpstring("Stops archiving content from the publishing point.")] HRESULT
  719. StopArchive();
  720. [id(40), helpstring("Exports the configuration data for the publishing point.")] HRESULT
  721. ExportXML( [in] BSTR bstrXMLFileName );
  722. [propget, id(41), helpstring("Retrieves the elapsed time, in seconds, that the publishing point has been running.")] HRESULT
  723. UpTime( [out,retval] long *pVal );
  724. [propget, id(43), helpstring("Retrieves a collection of paths for media files that are used to announce a multicast broadcast.")] HRESULT
  725. AnnouncementStreamFormats( [out, retval] IWMSAnnouncementStreamFormats **ppFileNames );
  726. [id(44), helpstring("Saves the information needed to create a multicast information (.nsc) file to the server's configuration data.")] HRESULT
  727. Announce();
  728. [id(45), helpstring("Creates a multicast information (.nsc) file.")] HRESULT
  729. AnnounceToNSCFile( [in] BSTR bstrDestinationFileName, [in, defaultvalue(FALSE)] VARIANT_BOOL fOverwriteFlag );
  730. [restricted, id(46), helpstring("Outputs a multicast information (.nsc) file using the IStream interface.")] HRESULT
  731. AnnounceToNSCStream( [out, retval] IUnknown **ppNSCAnnounceStream );
  732. [propget, id(47), helpstring("Specifies or retrieves an enumeration value indicating the amount of buffering that is done on a broadcast sink.")] HRESULT
  733. BufferSetting([out, retval] WMS_BUFFER_SETTING *pVal);
  734. [propput, id(47), helpstring("Specifies or retrieves an enumeration value indicating the amount of buffering that is done on a broadcast sink.")] HRESULT
  735. BufferSetting([in] WMS_BUFFER_SETTING newVal);
  736. };
  737. /////////////////////////////////////////////////////////////////////////////
  738. [
  739. object,
  740. uuid(1881274D-4BEC-11D2-BF25-00805FBE84A6),
  741. dual,
  742. nonextensible,
  743. helpstring("Contains a collection of publishing points."),
  744. pointer_default(unique)
  745. ]
  746. interface IWMSPublishingPoints : IDispatch
  747. {
  748. typedef [public, uuid(6ca388b5-eaee-492f-a8d6-8758efc72d76)] enum WMS_PUBLISHING_POINT_CATEGORY
  749. {
  750. WMS_PUBLISHING_POINT_ON_DEMAND = 1,
  751. WMS_PUBLISHING_POINT_BROADCAST = 2,
  752. } WMS_PUBLISHING_POINT_CATEGORY;
  753. // Standard collection Methods & Properties: Item, Count & _NewEnum
  754. COLLECTION_METHODS( IWMSPublishingPoint*, "Retrieves a specific publishing point from the collection." )
  755. [id(4), helpstring("Adds a new publishing point to the collection.")] HRESULT
  756. Add([in] BSTR Name, [in] WMS_PUBLISHING_POINT_CATEGORY Category, [in] BSTR Path, [out,retval] IWMSPublishingPoint** ppNewPubPt);
  757. [id(5), helpstring("Removes a publishing point from the collection.")] HRESULT
  758. Remove([in] VARIANT varIndex);
  759. [id(6), helpstring("Creates a duplicate instance of a publishing point.")] HRESULT
  760. Clone([in] BSTR DestName, [in] IWMSPublishingPoint* pSrcPubPt, [out,retval] IWMSPublishingPoint** ppDestPubPt);
  761. [id(7), helpstring("Creates a new publishing point from a publishing point configuration file.")] HRESULT
  762. ImportXML( [in] BSTR bstrNewPubPtName, [in] BSTR bstrXMLFileName, [out,retval] IWMSPublishingPoint** ppNewPubPt );
  763. };
  764. /////////////////////////////////////////////////////////////////////////////
  765. [
  766. object,
  767. uuid(18FA53CD-8EB9-4b5f-B750-659D9B96DB9F),
  768. dual,
  769. nonextensible,
  770. helpstring("Contains properties that provide real-time counter values for the server."),
  771. pointer_default(unique)
  772. ]
  773. interface IWMSServerCurrentCounters : IDispatch
  774. {
  775. [propget, id(0), helpstring("Retrieves the number of players connected to the server.")] HRESULT
  776. ConnectedPlayers([out, retval] long *pVal);
  777. [propget, id(2), helpstring("Retrieves the current number of players in the queue to connect to the server.")] HRESULT
  778. ConnectionQueue([out, retval] long *pVal);
  779. [propget, id(3), helpstring("Retrieves the number of players connecting per second.")] HRESULT
  780. ConnectionRate([out, retval] long *pVal);
  781. [propget, id(4), helpstring("Retrieves the current bandwidth, in Kbps, consumed by file read operations.")] HRESULT
  782. FileReadRate([out, retval] long *pVal);
  783. [propget, id(5), helpstring("Retrieves the total number of players being streamed content using the HTTP protocol.")] HRESULT
  784. StreamingHTTPPlayers([out, retval] long *pVal);
  785. [propget, id(6), helpstring("Retrieves the number of late read operations per second.")] HRESULT
  786. LateReadRate([out, retval] long *pVal);
  787. [propget, id(7), helpstring("Retrieves the number of players being streamed content using the MMS protocol.")] HRESULT
  788. StreamingMMSPlayers([out, retval] long *pVal);
  789. [propget, id(9), helpstring("Retrieves the bandwidth, in Kbps, that has been allocated for outgoing distribution connection clients.")] HRESULT
  790. OutgoingDistributionAllocatedBandwidth([out, retval] long *pVal);
  791. [propget, id(10), helpstring("Retrieves the number of outgoing distribution connection clients connected to the server.")] HRESULT
  792. OutgoingDistributionConnections([out, retval] long *pVal);
  793. [propget, id(11), helpstring("Retrieves the rate, in Kbps, at which content is being sent to outgoing distribution connection clients.")] HRESULT
  794. OutgoingDistributionSendRate([out, retval] long *pVal);
  795. [propget, id(12), helpstring("Retrieves the bandwidth, in Kbps, allocated for player connections.")] HRESULT
  796. PlayerAllocatedBandwidth([out, retval] long *pVal);
  797. [propget, id(13), helpstring("Retrieves the rate, in Kbps, at which content is being sent to players.")] HRESULT
  798. PlayerSendRate([out, retval] long *pVal);
  799. [propget, id(14), helpstring("Retrieves the number of players being streamed content using the RTSP protocol.")] HRESULT
  800. StreamingRTSPPlayers([out, retval] long *pVal);
  801. [propget, id(15), helpstring("Retrieves the number of errors per second due to packets being dropped.")] HRESULT
  802. StreamErrorRate([out, retval] long *pVal);
  803. [propget, id(16), helpstring("Retrieves the number of players being streamed content.")] HRESULT
  804. StreamingPlayers([out, retval] long *pVal);
  805. [propget, id(18), helpstring("Retrieves the number of multimedia streams being sent to a cache.")] HRESULT
  806. CacheDownloads([out, retval] long *pVal);
  807. [propget, id(19), helpstring("Retrieves the number of late send operations per second.")] HRESULT
  808. LateSendRate([out, retval] long *pVal);
  809. [propget, id(20), helpstring("Retrieves the number of UDP resend requests per second received by the server.")] HRESULT
  810. UDPResendRequestsRate([out, retval] long *pVal);
  811. [propget, id(21), helpstring("Retrieves the number of UDP resend requests per second processed by the server.")] HRESULT
  812. UDPResendsSentRate([out, retval] long *pVal);
  813. [propget, id(22), helpstring("Retrieves the bandwidth, in Kbps, that has been allocated for incoming connection servers.")] HRESULT
  814. IncomingBandwidth([out, retval] long *pVal);
  815. [propget, id(30), helpstring("Retrieves an array that contains all of the current counters.")] HRESULT
  816. AllCounters([out,retval] SAFEARRAY(VARIANT) *ppsaCounters);
  817. };
  818. /////////////////////////////////////////////////////////////////////////////
  819. [
  820. object,
  821. uuid(66F2D385-7081-40b9-863C-AFA4E5612CD3),
  822. dual,
  823. nonextensible,
  824. helpstring("Contains properties that provide peak counter values for the server."),
  825. pointer_default(unique)
  826. ]
  827. interface IWMSServerPeakCounters : IDispatch
  828. {
  829. [propget, id(0), helpstring("Retrieves the peak number of players that have been connected.")] HRESULT
  830. ConnectedPlayers([out, retval] long *pVal);
  831. [propget, id(2), helpstring("Retrieves the peak number of outgoing distribution connection clients that have been connected.")] HRESULT
  832. OutgoingDistributionConnections([out, retval] long *pVal);
  833. [propget, id(3), helpstring("Retrieves the peak bandwidth, in Kbps, that has been allocated for outgoing distribution connection clients.")] HRESULT
  834. OutgoingDistributionAllocatedBandwidth([out, retval] long *pVal);
  835. [propget, id(4), helpstring("Retrieves the peak number of bytes per second sent to players.")] HRESULT
  836. PlayerSendRate([out, retval] long *pVal);
  837. [propget, id(5), helpstring("Retrieves the peak bandwidth, in Kbps, that has been allocated for player connections.")] HRESULT
  838. PlayerAllocatedBandwidth([out, retval] long *pVal);
  839. [propget, id(6), helpstring("Retrieves the peak number of bytes per second sent to outgoing distribution connection clients.")] HRESULT
  840. OutgoingDistributionSendRate([out, retval] long *pVal);
  841. [propget, id(7), helpstring("Retrieves the date and time at which the server started monitoring the peak counters.")] HRESULT
  842. CountersStartTime([out, retval] DATE *pVal );
  843. [propget, id(8), helpstring("Retrieves the peak number of players that have been streamed content.")] HRESULT
  844. StreamingPlayers([out, retval] long *pVal);
  845. [id(10), helpstring("Resets all of the peak counters to the current values.")] HRESULT
  846. Reset();
  847. [propget, id(30), helpstring("Retrieves an array that contains all of the peak counters.")] HRESULT
  848. AllCounters([out,retval] SAFEARRAY(VARIANT) *ppsaCounters);
  849. };
  850. /////////////////////////////////////////////////////////////////////////////
  851. [
  852. object,
  853. uuid(D06CCFBB-994D-45f8-886E-81E9B7FAEDF1),
  854. dual,
  855. nonextensible,
  856. helpstring("Contains properties to retrieve and manage server limits."),
  857. pointer_default(unique)
  858. ]
  859. interface IWMSServerLimits : IDispatch
  860. {
  861. [propget, id(0), helpstring("Specifies or retrieves the maximum number of players that can be connected.")] HRESULT
  862. ConnectedPlayers([out, retval] long *pVal);
  863. [propput, id(0), helpstring("Specifies or retrieves the maximum number of players that can be connected.")] HRESULT
  864. ConnectedPlayers([in] long Val);
  865. [propget, id(3), helpstring("Specifies or retrieves the maximum number of clients per second that the server is permitted to connect.")] HRESULT
  866. ConnectionRate([out, retval] long *pVal);
  867. [propput, id(3), helpstring("Specifies or retrieves the maximum number of clients per second that the server is permitted to connect.")] HRESULT
  868. ConnectionRate([in] long Val);
  869. [propget, id(5), helpstring("Specifies or retrieves the maximum aggregate allocated bandwidth, in Kbps, permitted for all outgoing distribution connection clients.")] HRESULT
  870. OutgoingDistributionBandwidth([out, retval] long *pVal);
  871. [propput, id(5), helpstring("Specifies or retrieves the maximum aggregate allocated bandwidth, in Kbps, permitted for all outgoing distribution connection clients.")] HRESULT
  872. OutgoingDistributionBandwidth([in] long Val);
  873. [propget, id(6), helpstring("Specifies or retrieves the maximum number of outgoing distribution connection clients that can be connected.")] HRESULT
  874. OutgoingDistributionConnections([out, retval] long *pVal);
  875. [propput, id(6), helpstring("Specifies or retrieves the maximum number of outgoing distribution connection clients that can be connected.")] HRESULT
  876. OutgoingDistributionConnections([in] long Val);
  877. [propget, id(7), helpstring("Specifies or retrieves the maximum allocated bandwidth, in Kbps, permitted for an outgoing distribution connection client.")] HRESULT
  878. PerOutgoingDistributionConnectionBandwidth([out, retval] long *pVal);
  879. [propput, id(7), helpstring("Specifies or retrieves the maximum allocated bandwidth, in Kbps, permitted for an outgoing distribution connection client.")] HRESULT
  880. PerOutgoingDistributionConnectionBandwidth([in] long Val);
  881. [propget, id(8), helpstring("Specifies or retrieves the maximum aggregate allocated bandwidth, in Kbps, permitted for all player connections.")] HRESULT
  882. PlayerBandwidth([out, retval] long *pVal);
  883. [propput, id(8), helpstring("Specifies or retrieves the maximum aggregate allocated bandwidth, in Kbps, permitted for all player connections.")] HRESULT
  884. PlayerBandwidth([in] long Val);
  885. [propget, id(9), helpstring("Specifies or retrieves the maximum length of time, in seconds, that a player is permitted to remain connected without receiving streamed content.")] HRESULT
  886. PlayerInactivityTimeout([out, retval] long *pVal);
  887. [propput, id(9), helpstring("Specifies or retrieves the maximum length of time, in seconds, that a player is permitted to remain connected without receiving streamed content.")] HRESULT
  888. PlayerInactivityTimeout([in] long Val);
  889. [propget, id(10), helpstring("Specifies or retrieves the maximum allocated bandwidth, in Kbps, permitted for a player connection.")] HRESULT
  890. PerPlayerConnectionBandwidth([out, retval] long *pVal);
  891. [propput, id(10), helpstring("Specifies or retrieves the maximum allocated bandwidth, in Kbps, permitted for a player connection.")] HRESULT
  892. PerPlayerConnectionBandwidth([in] long Val);
  893. [propget, id(11), helpstring("Specifies or retrieves the maximum length of time, in seconds, that a player is permitted to remain connected, if the server has not received a message from the player to maintain the connection.")] HRESULT
  894. PlayerAcknowledgementTimeout([out, retval] long *pVal);
  895. [propput, id(11), helpstring("Specifies or retrieves the maximum length of time, in seconds, that a player is permitted to remain connected, if the server has not received a message from the player to maintain the connection.")] HRESULT
  896. PlayerAcknowledgementTimeout([in] long Val);
  897. [propget, id(13), helpstring("Specifies or retrieves the maximum CPU utilization permitted when a client connects to the server.")] HRESULT
  898. CPUUtilizationDuringConnection([out, retval] long *pVal);
  899. [propput, id(13), helpstring("Specifies or retrieves the maximum CPU utilization permitted when a client connects to the server.")] HRESULT
  900. CPUUtilizationDuringConnection([in] long Val);
  901. [propget, id(14), helpstring("Specifies or retrieves the maximum number of IWMSDiagnosticEvent objects that the IWMSDiagnosticEvents collection can contain.")] HRESULT
  902. DiagnosticEvents([out, retval] long *pVal);
  903. [propput, id(14), helpstring("Specifies or retrieves the maximum number of IWMSDiagnosticEvent objects that the IWMSDiagnosticEvents collection can contain.")] HRESULT
  904. DiagnosticEvents([in] long Val);
  905. [propget, id(15), helpstring("Specifies or retrieves the maximum aggregate allocated bandwidth, in Kbps, permitted for all incoming connection servers.")] HRESULT
  906. IncomingBandwidth([out, retval] long *pVal);
  907. [propput, id(15), helpstring("Specifies or retrieves the maximum aggregate allocated bandwidth, in Kbps, permitted for all incoming connection servers.")] HRESULT
  908. IncomingBandwidth([in] long Val);
  909. };
  910. /////////////////////////////////////////////////////////////////////////////
  911. [
  912. object,
  913. uuid(845FB958-4279-11D2-BF23-00805FBE84A6),
  914. dual,
  915. nonextensible,
  916. helpstring("Contains properties and methods to manage the server."),
  917. pointer_default(unique)
  918. ]
  919. interface IWMSServer : IDispatch
  920. {
  921. typedef [public, uuid(3E52E0EE-72A7-11D2-BF2F-00805FBE84A6)] enum WMS_SERVER_STATUS
  922. {
  923. WMS_SERVER_RUNNING = 0x0,
  924. WMS_SERVER_ERROR = 0x1,
  925. WMS_SERVER_ERROR_CRITICAL = 0x2
  926. } WMS_SERVER_STATUS;
  927. typedef [public, uuid(49A0F530-F475-45a6-99C5-E52382685BA8)] enum WMS_OS_PRODUCT_TYPE
  928. {
  929. WMS_OS_PRODUCT_SERVER = 0x00000001,
  930. WMS_OS_PRODUCT_ADVANCED = 0x00000002,
  931. } WMS_OS_PRODUCT_TYPE;
  932. [propget, id(1), helpstring("Specifies or retrieves a Boolean value that indicates whether the server can receive client connections.")] HRESULT
  933. AllowClientsToConnect([out, retval] VARIANT_BOOL *pVal);
  934. [propput, id(1), helpstring("Specifies or retrieves a Boolean value that indicates whether the server can receive client connections.")] HRESULT
  935. AllowClientsToConnect([in] VARIANT_BOOL val);
  936. [propget, id(2), helpstring("Retrieves a collection of authentication plug-ins for the server.")] HRESULT
  937. Authenticators([out, retval] IWMSPlugins** pVal);
  938. [propget, id(3), helpstring("Retrieves a collection of cache and proxy plug-ins for the server.")] HRESULT
  939. CacheProxy([out, retval] IWMSPlugins **pVal);
  940. [propget, id(4), helpstring("Retrieves a collection of control protocol plug-ins for the server.")] HRESULT
  941. ControlProtocols([out, retval] IWMSPlugins* *pVal);
  942. [propget, id(5), helpstring("Retrieves a collection of current counters for the server.")] HRESULT
  943. CurrentCounters([out, retval] IWMSServerCurrentCounters * *pVal);
  944. [propget, id(6), helpstring("Retrieves a collection of data source plug-ins for the server.")] HRESULT
  945. DataSources([out, retval] IWMSPlugins* *pVal);
  946. [propget, id(7), helpstring("Retrieves a collection of event notification and authorization plug-ins for the server.")] HRESULT
  947. EventHandlers([out, retval] IWMSPlugins** pVal);
  948. [propget, id(8), helpstring("Retrieves a collection of limits for the server.")] HRESULT
  949. Limits([out, retval] IWMSServerLimits ** pVal);
  950. [propget, id(9), helpstring("Retrieves a collection of IWMSFileDescription objects that describe files and directories for the server.")] HRESULT
  951. FileDescriptions([in] BSTR Path, [in, defaultvalue(0)] WMS_FILE_TYPE Type, [out, retval] IWMSFileDescriptions** pVal);
  952. [propget, id(10), helpstring("Retrieves a collection of media parser plug-ins for the server.")] HRESULT
  953. MediaParsers([out, retval] IWMSPlugins* *pVal);
  954. [propget, id(11), helpstring("Retrieves the moniker display name for the server.")] HRESULT
  955. MonikerName( [out,retval] BSTR* pbstrVal );
  956. [propget, id(DISPID_VALUE), helpstring("Retrieves the server name.")] HRESULT
  957. Name([out, retval] BSTR *pVal);
  958. [propget, id(13), helpstring("Retrieves a collection of peak counters for the server.")] HRESULT
  959. PeakCounters([out, retval] IWMSServerPeakCounters ** pVal);
  960. [propget, id(14), helpstring("Retrieves a collection of playlist parser plug-ins for the server.")] HRESULT
  961. PlaylistParsers([out, retval] IWMSPlugins* *pVal);
  962. [propget, id(16), helpstring("Retrieves a collection of name-value pairs for the server.")] HRESULT
  963. Properties([out, retval] IWMSNamedValues* *pVal);
  964. [propget, id(17), helpstring("Retrieves a collection of publishing points.")] HRESULT
  965. PublishingPoints([out, retval] IWMSPublishingPoints* *pVal);
  966. [propget, id(19), helpstring("Retrieves a collection of total counters for the server.")] HRESULT
  967. TotalCounters([out, retval] IWMSServerTotalCounters* *pVal);
  968. [propget, id(20), helpstring("Retrieves a collection of unicast data sink plug-ins.")] HRESULT
  969. UnicastDataSinks([out, retval] IWMSPlugins* *pVal);
  970. [propget, id(21), helpstring("Retrieves a collection that contains information about players connected to the server.")] HRESULT
  971. Players( [out, retval] IWMSPlayers* *pVal );
  972. [propget, id(25), helpstring("Retrieves an enumeration value indicating the current status of the server.")] HRESULT
  973. Status([out, retval] WMS_SERVER_STATUS *pVal);
  974. [id(26), helpstring("Creates an XML DOM document object for creating and editing playlists.")] HRESULT
  975. CreatePlaylist ([out, retval] IXMLDOMDocument **ppPlaylist);
  976. [propget, id(27), helpstring("Retrieves the date and time at which the server was started.")] HRESULT
  977. StartTime([out, retval] DATE *pVal);
  978. [propget, id(28), helpstring("Retrieves a collection containing information about outgoing distribution connection clients connected to the server.")] HRESULT
  979. OutgoingDistributionConnections([out, retval] IWMSOutgoingDistributionConnections* *pVal);
  980. [propget, id(30), helpstring("Retrieves the CPU Utilization of the computer on which the server is running.")] HRESULT
  981. CPUUtilization([out, retval] long *pVal);
  982. [id(31), helpstring("Exports the configuration data for the server.")] HRESULT
  983. ExportXML( [in] BSTR bstrXMLFileName );
  984. [propget, id(32), helpstring("Retrieves a collection of stream filter plug-ins for the server.")] HRESULT
  985. StreamFilters([out, retval] IWMSPlugins** pVal);
  986. [propget, id(33), helpstring("Retrieves the version number of the server.")] HRESULT
  987. Version([out, retval] BSTR* pbstrVal);
  988. [propget, id(34), helpstring("Specifies or retrieves an enumeration value that indicates whether the server loads event notification and authorization plug-ins as in-process or out-of-process objects, if the plug-in doesn't specify how it should be loaded.")] HRESULT
  989. DefaultPluginLoadType([out, retval] WMS_PLUGIN_LOAD_TYPE *pVal);
  990. [propput, id(34), helpstring("Specifies or retrieves an enumeration value that indicates whether the server loads event notification and authorization plug-ins as in-process or out-of-process objects, if the plug-in doesn't specify how it should be loaded.")] HRESULT
  991. DefaultPluginLoadType([in] WMS_PLUGIN_LOAD_TYPE val);
  992. [propget, id(35), helpstring("Retrieves a collection of IP addresses that are available for use by a control protocol plug-in.")] HRESULT
  993. AvailableIPAddresses([out, retval] IWMSAvailableIPAddresses ** ppIPAddrList);
  994. [propget, id(36), helpstring("Retrieves a collection of server root directories.")] HRESULT
  995. RootDirectories([out, retval] IWMSRootDirectories **ppRootDirectories);
  996. [propget, id(37), helpstring("Retrieves an IWMSDiagnosticEvents object that can be used to retrieve information about critical errors and warnings.")] HRESULT
  997. DiagnosticEvents([out, retval] IWMSDiagnosticEvents **ppDiagEvents);
  998. [propget, id(38), helpstring("Specifies or retrieves a Boolean value indicating whether the server sends all requests for content to cache and proxy plug-ins.")] HRESULT
  999. EnableReverseProxyMode([out, retval] VARIANT_BOOL *pVal);
  1000. [propput, id(38), helpstring("Specifies or retrieves a Boolean value indicating whether the server sends all requests for content to cache and proxy plug-ins.")] HRESULT
  1001. EnableReverseProxyMode([in] VARIANT_BOOL val);
  1002. [propget, id(40), helpstring("Retrieves an enumeration value that indicates the file type.")] HRESULT
  1003. FileType([in]BSTR path, [out, retval] WMS_FILE_TYPE *pVal);
  1004. [propget, id(41), helpstring("Specifies or retrieves the default path for the server.")] HRESULT
  1005. DefaultPath([out, retval] BSTR* pVal);
  1006. [propput, id(41), helpstring("Specifies or retrieves the default path for the server.")] HRESULT
  1007. DefaultPath([in] BSTR newVal);
  1008. [id(42), helpstring("Downloads multimedia content.")] HRESULT
  1009. DownloadContent([in] BSTR SourceUrl, [in] BSTR DestinationUrl, [in, defaultvalue(-1)] long lContentSizeLow, [in, defaultvalue(-1)] long lContentSizeHigh, [in, defaultvalue(0)] long lBitRate );
  1010. [propget, id(43), helpstring("Retrieves the operating system product type that Windows Media Services is running on.")] HRESULT
  1011. OSProductType( [out,retval] WMS_OS_PRODUCT_TYPE *pVal );
  1012. };
  1013. cpp_quote( "#endif" )