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.

1130 lines
38 KiB

  1. // -*- Mode: C++ -*-
  2. /*++
  3. Copyright (c) 1999 Microsoft Corporation
  4. Abstract:
  5. Interface definitions for TIME components
  6. --*/
  7. #include "mstimeid.h"
  8. import "servprov.idl";
  9. cpp_quote("#include <olectl.h>")
  10. cpp_quote("#include <mstimeid.h>")
  11. interface ITIMEElementCollection;
  12. interface ITIMEState;
  13. interface ITIMEPlayList;
  14. [
  15. uuid(87C96271-ADDB-4745-B2E8-DF88A8472FD1),
  16. lcid(0x0000),
  17. version(1.0)
  18. ]
  19. library MSTIME
  20. {
  21. typedef enum _TimeState
  22. {
  23. TS_Inactive = 0,
  24. TS_Active = 1,
  25. TS_Cueing = 2,
  26. TS_Seeking = 3,
  27. TS_Holding = 4,
  28. } TimeState;
  29. importlib("STDOLE2.TLB");
  30. #include <olectl.h>
  31. [
  32. object,
  33. uuid(403E2540-4520-11D3-93AB-00A0C967A438),
  34. dual,
  35. pointer_default(unique)
  36. ]
  37. interface ITIMEActiveElementCollection : IDispatch
  38. {
  39. [id(DISPID_ACTIVEELMENTS_LENGTH), propget]
  40. HRESULT length([out, retval] long* p);
  41. [id(DISPID_ACTIVEELMENTS_NEWENUM), propget, restricted, hidden]
  42. HRESULT _newEnum([out, retval] IUnknown** p);
  43. [id(DISPID_ACTIVEELMENTS_ITEM)]
  44. HRESULT item( [defaultvalue("0"), in] VARIANT varIndex, [out, retval] VARIANT* pvarResult);
  45. }
  46. [
  47. object,
  48. uuid(1C2EF64E-F07D-4338-9771-9154491CD8B9),
  49. dual,
  50. pointer_default(unique)
  51. ]
  52. interface ITIMEElement : IDispatch
  53. {
  54. // XML Attributes
  55. [propget, id(DISPID_TIMEELEMENT_ACCELERATE)]
  56. HRESULT accelerate([out, retval] VARIANT *);
  57. [propput, id(DISPID_TIMEELEMENT_ACCELERATE)]
  58. HRESULT accelerate([in] VARIANT);
  59. [propget, id(DISPID_TIMEELEMENT_AUTOREVERSE)]
  60. HRESULT autoReverse([out, retval] VARIANT *);
  61. [propput, id(DISPID_TIMEELEMENT_AUTOREVERSE)]
  62. HRESULT autoReverse([in] VARIANT );
  63. [propget, id(DISPID_TIMEELEMENT_BEGIN)]
  64. HRESULT begin([out, retval] VARIANT * time);
  65. [propput, id(DISPID_TIMEELEMENT_BEGIN)]
  66. HRESULT begin([in] VARIANT time);
  67. [propget, id(DISPID_TIMEELEMENT_DECELERATE)]
  68. HRESULT decelerate([out, retval] VARIANT * );
  69. [propput, id(DISPID_TIMEELEMENT_DECELERATE)]
  70. HRESULT decelerate([in] VARIANT);
  71. [propget, id(DISPID_TIMEELEMENT_DUR)]
  72. HRESULT dur([out, retval] VARIANT * time);
  73. [propput, id(DISPID_TIMEELEMENT_DUR)]
  74. HRESULT dur([in] VARIANT time);
  75. [propget, id(DISPID_TIMEELEMENT_END)]
  76. HRESULT end([out, retval] VARIANT * time);
  77. [propput, id(DISPID_TIMEELEMENT_END)]
  78. HRESULT end([in] VARIANT time);
  79. [propget, id(DISPID_TIMEELEMENT_FILL)]
  80. HRESULT fill([out, retval] BSTR * f);
  81. [propput, id(DISPID_TIMEELEMENT_FILL)]
  82. HRESULT fill([in] BSTR f);
  83. [propget, id(DISPID_TIMEELEMENT_MUTE)]
  84. HRESULT mute([out, retval] VARIANT * b);
  85. [propput, id(DISPID_TIMEELEMENT_MUTE)]
  86. HRESULT mute([in] VARIANT b);
  87. [propget, id(DISPID_TIMEELEMENT_REPEATCOUNT)]
  88. HRESULT repeatCount([out, retval] VARIANT * c);
  89. [propput, id(DISPID_TIMEELEMENT_REPEATCOUNT)]
  90. HRESULT repeatCount([in] VARIANT c);
  91. [propget, id(DISPID_TIMEELEMENT_REPEATDUR)]
  92. HRESULT repeatDur([out, retval] VARIANT * time);
  93. [propput, id(DISPID_TIMEELEMENT_REPEATDUR)]
  94. HRESULT repeatDur([in] VARIANT time);
  95. [propget, id(DISPID_TIMEELEMENT_RESTART)]
  96. HRESULT restart([out, retval] BSTR *);
  97. [propput, id(DISPID_TIMEELEMENT_RESTART)]
  98. HRESULT restart([in] BSTR );
  99. [propget, id(DISPID_TIMEELEMENT_SPEED)]
  100. HRESULT speed([out, retval] VARIANT * speed);
  101. [propput, id(DISPID_TIMEELEMENT_SPEED)]
  102. HRESULT speed([in] VARIANT speed);
  103. [propget, id(DISPID_TIMEELEMENT_SYNCBEHAVIOR)]
  104. HRESULT syncBehavior([out, retval] BSTR * sync);
  105. [propput, id(DISPID_TIMEELEMENT_SYNCBEHAVIOR)]
  106. HRESULT syncBehavior([in] BSTR sync);
  107. [propget, id(DISPID_TIMEELEMENT_SYNCTOLERANCE)]
  108. HRESULT syncTolerance([out, retval] VARIANT * tol);
  109. [propput, id(DISPID_TIMEELEMENT_SYNCTOLERANCE)]
  110. HRESULT syncTolerance([in] VARIANT tol);
  111. [propget, id(DISPID_TIMEELEMENT_SYNCMASTER)]
  112. HRESULT syncMaster([out, retval] VARIANT * b);
  113. [propput, id(DISPID_TIMEELEMENT_SYNCMASTER)]
  114. HRESULT syncMaster([in] VARIANT b);
  115. [propget, id(DISPID_TIMEELEMENT_TIMEACTION)]
  116. HRESULT timeAction([out, retval] BSTR * time);
  117. [propput, id(DISPID_TIMEELEMENT_TIMEACTION)]
  118. HRESULT timeAction([in] BSTR time);
  119. [propget, id(DISPID_TIMEELEMENT_TIMECONTAINER)]
  120. HRESULT timeContainer([out, retval] BSTR *);
  121. [propget, id(DISPID_TIMEELEMENT_VOLUME)]
  122. HRESULT volume([out, retval] VARIANT * val);
  123. [propput, id(DISPID_TIMEELEMENT_VOLUME)]
  124. HRESULT volume([in] VARIANT val);
  125. // Properties
  126. [propget, id(DISPID_TIMEELEMENT_CURRTIMESTATE)]
  127. HRESULT currTimeState([out, retval] ITIMEState ** TimeState);
  128. [propget, id(DISPID_TIMEELEMENT_TIMEALL)]
  129. HRESULT timeAll([out, retval] ITIMEElementCollection **allColl);
  130. [propget, id(DISPID_TIMEELEMENT_TIMECHILDREN)]
  131. HRESULT timeChildren([out, retval] ITIMEElementCollection **childColl);
  132. [propget, id(DISPID_TIMEELEMENT_TIMEPARENT)]
  133. HRESULT timeParent([out, retval] ITIMEElement ** parent);
  134. [propget, id(DISPID_TIMEELEMENT_ISPAUSED)]
  135. HRESULT isPaused([out, retval] VARIANT_BOOL * b);
  136. // Methods
  137. [id (DISPID_TIMEELEMENT_BEGINELEMENT)]
  138. HRESULT beginElement();
  139. [id (DISPID_TIMEELEMENT_BEGINELEMENTAT)]
  140. HRESULT beginElementAt([in] double parentTime);
  141. [id (DISPID_TIMEELEMENT_ENDELEMENT)]
  142. HRESULT endElement();
  143. [id (DISPID_TIMEELEMENT_ENDELEMENTAT)]
  144. HRESULT endElementAt([in] double parentTime);
  145. [id (DISPID_TIMEELEMENT_PAUSEELEMENT)]
  146. HRESULT pauseElement();
  147. [id (DISPID_TIMEELEMENT_RESET)]
  148. HRESULT resetElement();
  149. [id (DISPID_TIMEELEMENT_RESUMEELEMENT)]
  150. HRESULT resumeElement();
  151. [id (DISPID_TIMEELEMENT_SEEKACTIVETIME)]
  152. HRESULT seekActiveTime([in] double activeTime);
  153. [id (DISPID_TIMEELEMENT_SEEKSEGMENTTIME)]
  154. HRESULT seekSegmentTime([in] double segmentTime);
  155. [id (DISPID_TIMEELEMENT_SEEKTO)]
  156. HRESULT seekTo([in] LONG repeatCount, [in] double segmentTime);
  157. [id (DISPID_TIMEELEMENT_DOCUMENTTIMETOPARENTTIME)]
  158. HRESULT documentTimeToParentTime([in] double documentTime,
  159. [out, retval] double * parentTime);
  160. [id (DISPID_TIMEELEMENT_PARENTTIMETODOCUMENTTIME)]
  161. HRESULT parentTimeToDocumentTime([in] double parentTime,
  162. [out, retval] double * documentTime);
  163. [id (DISPID_TIMEELEMENT_PARENTTIMETOACTIVETIME)]
  164. HRESULT parentTimeToActiveTime([in] double parentTime,
  165. [out, retval] double * activeTime);
  166. [id (DISPID_TIMEELEMENT_ACTIVETIMETOPARENTTIME)]
  167. HRESULT activeTimeToParentTime([in] double activeTime,
  168. [out, retval] double * parentTime);
  169. [id (DISPID_TIMEELEMENT_ACTIVETIMETOSEGMENTTIME)]
  170. HRESULT activeTimeToSegmentTime([in] double activeTime,
  171. [out, retval] double * segmentTime);
  172. [id (DISPID_TIMEELEMENT_SEGMENTTIMETOACTIVETIME)]
  173. HRESULT segmentTimeToActiveTime([in] double segmentTime,
  174. [out, retval] double * activeTime);
  175. [id (DISPID_TIMEELEMENT_SEGMENTTIMETOSIMPLETIME)]
  176. HRESULT segmentTimeToSimpleTime([in] double segmentTime,
  177. [out, retval] double * simpleTime);
  178. [id (DISPID_TIMEELEMENT_SIMPLETIMETOSEGMENTTIME)]
  179. HRESULT simpleTimeToSegmentTime([in] double simpleTime,
  180. [out, retval] double * segmentTime);
  181. // Container attributes
  182. [propget, id(DISPID_TIMEELEMENT_ENDSYNC)]
  183. HRESULT endSync([out, retval] BSTR * es);
  184. [propput, id(DISPID_TIMEELEMENT_ENDSYNC)]
  185. HRESULT endSync([in] BSTR es);
  186. // Container Properties
  187. [propget, id(DISPID_TIMEELEMENT_ACTIVEELEMENTS)]
  188. HRESULT activeElements([out, retval] ITIMEActiveElementCollection **activeColl);
  189. [propget, id(DISPID_TIMEELEMENT_HASMEDIA)]
  190. HRESULT hasMedia([retval, out] VARIANT_BOOL * flag);
  191. // Container Methods
  192. [id (DISPID_TIMEELEMENT_NEXTELEMENT)]
  193. HRESULT nextElement();
  194. [id (DISPID_TIMEELEMENT_PREVELEMENT)]
  195. HRESULT prevElement();
  196. [propget, id(DISPID_TIMEELEMENT_UPDATEMODE)]
  197. HRESULT updateMode([out,retval] BSTR* updateMode);
  198. [propput, id(DISPID_TIMEELEMENT_UPDATEMODE)]
  199. HRESULT updateMode([in] BSTR updateMode);
  200. };
  201. //
  202. // ITIMEBodyElement
  203. //
  204. [
  205. object,
  206. uuid(8c90e348-ec0a-4229-90b0-e57d2ca45ccb),
  207. dual,
  208. pointer_default(unique)
  209. ]
  210. interface ITIMEBodyElement : ITIMEElement
  211. {
  212. };
  213. [
  214. object,
  215. uuid(47a6972f-ae65-4a6b-ae63-d0c1d5307b58),
  216. dual,
  217. pointer_default(unique)
  218. ]
  219. interface ITIMEMediaElement : ITIMEElement
  220. {
  221. // XML Attributes
  222. [propget, id(DISPID_TIMEMEDIAELEMENT_CLIPBEGIN)]
  223. HRESULT clipBegin([out, retval] VARIANT * time);
  224. [propput, id(DISPID_TIMEMEDIAELEMENT_CLIPBEGIN)]
  225. HRESULT clipBegin([in] VARIANT time);
  226. [propget, id(DISPID_TIMEMEDIAELEMENT_CLIPEND)]
  227. HRESULT clipEnd([out, retval] VARIANT * time);
  228. [propput, id(DISPID_TIMEMEDIAELEMENT_CLIPEND)]
  229. HRESULT clipEnd([in] VARIANT time);
  230. [propget, id(DISPID_TIMEMEDIAELEMENT_PLAYER)]
  231. HRESULT player([out, retval] VARIANT * id);
  232. [propput, id(DISPID_TIMEMEDIAELEMENT_PLAYER)]
  233. HRESULT player([in] VARIANT id);
  234. [propget, id(DISPID_TIMEMEDIAELEMENT_SRC)]
  235. HRESULT src([out, retval] VARIANT * url);
  236. [propput, id(DISPID_TIMEMEDIAELEMENT_SRC)]
  237. HRESULT src([in] VARIANT url);
  238. [propget, id(DISPID_TIMEMEDIAELEMENT_TYPE)]
  239. HRESULT type([out, retval] VARIANT * mimetype);
  240. [propput, id(DISPID_TIMEMEDIAELEMENT_TYPE)]
  241. HRESULT type([in] VARIANT mimetype);
  242. // Properties
  243. [propget, id(DISPID_TIMEMEDIAELEMENT_ABSTRACT)]
  244. HRESULT abstract([out, retval] BSTR *abs);
  245. [propget, id(DISPID_TIMEMEDIAELEMENT_AUTHOR)]
  246. HRESULT author([out, retval] BSTR *auth);
  247. [propget, id(DISPID_TIMEMEDIAELEMENT_COPYRIGHT)]
  248. HRESULT copyright([out, retval] BSTR *cpyrght);
  249. [propget, id(DISPID_TIMEMEDIAELEMENT_HASAUDIO)]
  250. HRESULT hasAudio([retval, out] VARIANT_BOOL * b);
  251. [propget, id(DISPID_TIMEMEDIAELEMENT_HASVISUAL)]
  252. HRESULT hasVisual([retval, out] VARIANT_BOOL * b);
  253. [propget, id(DISPID_TIMEMEDIAELEMENT_MEDIADUR)]
  254. HRESULT mediaDur([out, retval] double *dur);
  255. [propget, id(DISPID_TIMEMEDIAELEMENT_MEDIAHEIGHT)]
  256. HRESULT mediaHeight([out, retval] long *height);
  257. [propget, id(DISPID_TIMEMEDIAELEMENT_MEDIAWIDTH)]
  258. HRESULT mediaWidth([out, retval] long *width);
  259. [propget, id(DISPID_TIMEMEDIAELEMENT_PLAYEROBJECT)]
  260. HRESULT playerObject([out, retval] IDispatch **ppDisp);
  261. [propget, id(DISPID_TIMEMEDIAELEMENT_PLAYLIST)]
  262. HRESULT playList([out, retval] ITIMEPlayList** pPlayList);
  263. [propget, id(DISPID_TIMEMEDIAELEMENT_RATING)]
  264. HRESULT rating([out, retval] BSTR *rate);
  265. [propget, id(DISPID_TIMEMEDIAELEMENT_TITLE)]
  266. HRESULT title([out, retval] BSTR *name);
  267. [propget, id(DISPID_TIMEMEDIAELEMENT_HASPLAYLIST)]
  268. HRESULT hasPlayList([out, retval] VARIANT_BOOL * b);
  269. // Media Capabilities
  270. [propget, id(DISPID_TIMEMEDIAELEMENT_CANPAUSE)]
  271. HRESULT canPause([retval, out] VARIANT_BOOL * b);
  272. [propget, id(DISPID_TIMEMEDIAELEMENT_CANSEEK)]
  273. HRESULT canSeek([retval, out] VARIANT_BOOL * b);
  274. };
  275. [
  276. object,
  277. uuid(9EE29400-7EE6-453a-85B3-4EC28E0305B4),
  278. dual,
  279. pointer_default(unique)
  280. ]
  281. interface ITIMEMediaElement2 : ITIMEMediaElement
  282. {
  283. [propget, id(DISPID_TIMEMEDIAELEMENT2_EARLIESTTIME)]
  284. HRESULT earliestMediaTime([out,retval] VARIANT * earliestMediaTime);
  285. [propget, id(DISPID_TIMEMEDIAELEMENT2_LATESTTTIME)]
  286. HRESULT latestMediaTime([out,retval] VARIANT * latestMediaTime);
  287. [propget, id(DISPID_TIMEMEDIAELEMENT2_MINBUFF)]
  288. HRESULT minBufferedMediaDur([out, retval] VARIANT * minBufferedMediaDur);
  289. [propput, id(DISPID_TIMEMEDIAELEMENT2_MINBUFF)]
  290. HRESULT minBufferedMediaDur([in] VARIANT minBufferedMediaDur);
  291. [propget, id(DISPID_TIMEMEDIAELEMENT2_DLTOTAL)]
  292. HRESULT downloadTotal([out,retval] VARIANT * downloadTotal);
  293. [propget, id(DISPID_TIMEMEDIAELEMENT2_DLCURRENT)]
  294. HRESULT downloadCurrent([out,retval] VARIANT * downloadCurrent);
  295. [propget, id(DISPID_TIMEMEDIAELEMENT2_ISSTREAMED)]
  296. HRESULT isStreamed([out,retval] VARIANT_BOOL * b);
  297. [propget, id(DISPID_TIMEMEDIAELEMENT2_BUFPROG)]
  298. HRESULT bufferingProgress([out,retval] VARIANT * bufferingProgress);
  299. [propget, id(DISPID_TIMEMEDIAELEMENT2_HASDLPROGRESS)]
  300. HRESULT hasDownloadProgress([out,retval] VARIANT_BOOL * b);
  301. [propget, id(DISPID_TIMEMEDIAELEMENT2_DLPROG)]
  302. HRESULT downloadProgress([out,retval] VARIANT * downloadProgress);
  303. [propget, id(DISPID_TIMEMEDIAELEMENT2_MIMETYPE)]
  304. HRESULT mimeType([out, retval] BSTR *mimeType);
  305. [id (DISPID_TIMEMEDIAELEMENT2_SEEKTOFRAME)]
  306. HRESULT seekToFrame([in] long frameNr);
  307. [id (DISPID_TIMEMEDIAELEMENT2_DECODEMIMETYPE)]
  308. HRESULT decodeMimeType([in] TCHAR * header, [in] long headerSize, [out] BSTR * mimeType);
  309. [propget, id(DISPID_TIMEMEDIAELEMENT_CURRFRAME)]
  310. HRESULT currentFrame([out, retval] long *currFrame);
  311. };
  312. [
  313. object,
  314. uuid(f383d66f-5e68-4fc2-b641-03672b543a49),
  315. dual,
  316. pointer_default(unique)
  317. ]
  318. interface ITIMETransitionElement : IDispatch
  319. {
  320. [propget, id(DISPID_TIMETRANSITIONELEMENT_TYPE)]
  321. HRESULT type([out, retval] VARIANT * type);
  322. [propput, id(DISPID_TIMETRANSITIONELEMENT_TYPE)]
  323. HRESULT type([in] VARIANT type);
  324. [propget, id(DISPID_TIMETRANSITIONELEMENT_SUBTYPE)]
  325. HRESULT subType([out, retval] VARIANT * subtype);
  326. [propput, id(DISPID_TIMETRANSITIONELEMENT_SUBTYPE)]
  327. HRESULT subType([in] VARIANT subtype);
  328. [propget, id(DISPID_TIMETRANSITIONELEMENT_DUR)]
  329. HRESULT dur([out, retval] VARIANT * dur);
  330. [propput, id(DISPID_TIMETRANSITIONELEMENT_DUR)]
  331. HRESULT dur([in] VARIANT dur);
  332. [propget, id(DISPID_TIMETRANSITIONELEMENT_STARTPROGRESS)]
  333. HRESULT startProgress([out, retval] VARIANT * startProgress);
  334. [propput, id(DISPID_TIMETRANSITIONELEMENT_STARTPROGRESS)]
  335. HRESULT startProgress([in] VARIANT startProgress);
  336. [propget, id(DISPID_TIMETRANSITIONELEMENT_ENDPROGRESS)]
  337. HRESULT endProgress([out, retval] VARIANT * endProgress);
  338. [propput, id(DISPID_TIMETRANSITIONELEMENT_ENDPROGRESS)]
  339. HRESULT endProgress([in] VARIANT endProgress);
  340. [propget, id(DISPID_TIMETRANSITIONELEMENT_DIRECTION)]
  341. HRESULT direction([out, retval] VARIANT * direction);
  342. [propput, id(DISPID_TIMETRANSITIONELEMENT_DIRECTION)]
  343. HRESULT direction([in] VARIANT direction);
  344. [propget, id(DISPID_TIMETRANSITIONELEMENT_REPEATCOUNT)]
  345. HRESULT repeatCount([out, retval] VARIANT * repeatCount);
  346. [propput, id(DISPID_TIMETRANSITIONELEMENT_REPEATCOUNT)]
  347. HRESULT repeatCount([in] VARIANT repeatCount);
  348. [propget, id(DISPID_TIMETRANSITIONELEMENT_BEGIN)]
  349. HRESULT begin([out, retval] VARIANT * begin);
  350. [propput, id(DISPID_TIMETRANSITIONELEMENT_BEGIN)]
  351. HRESULT begin([in] VARIANT begin);
  352. [propget, id(DISPID_TIMETRANSITIONELEMENT_END)]
  353. HRESULT end([out, retval] VARIANT * end);
  354. [propput, id(DISPID_TIMETRANSITIONELEMENT_END)]
  355. HRESULT end([in] VARIANT end);
  356. };
  357. [
  358. object,
  359. uuid(a74f14b1-b6a2-430a-a5e8-1f4e53f710fe),
  360. dual,
  361. pointer_default(unique)
  362. ]
  363. interface ITIMEAnimationElement : ITIMEElement
  364. {
  365. [propget, id(DISPID_TIMEANIMATIONELEMENT_ATTRIBUTENAME)]
  366. HRESULT attributeName([out, retval] BSTR * attrib);
  367. [propput, id(DISPID_TIMEANIMATIONELEMENT_ATTRIBUTENAME)]
  368. HRESULT attributeName([in] BSTR attrib);
  369. [propget, id(DISPID_TIMEANIMATIONELEMENT_BY)]
  370. HRESULT by([out, retval] VARIANT * val);
  371. [propput, id(DISPID_TIMEANIMATIONELEMENT_BY)]
  372. HRESULT by([in] VARIANT val);
  373. [propget, id(DISPID_TIMEANIMATIONELEMENT_CALCMODE)]
  374. HRESULT calcMode([out, retval] BSTR * calcmode);
  375. [propput, id(DISPID_TIMEANIMATIONELEMENT_CALCMODE)]
  376. HRESULT calcMode([in] BSTR calcmode);
  377. [propget, id(DISPID_TIMEANIMATIONELEMENT_FROM)]
  378. HRESULT from([out, retval] VARIANT * val);
  379. [propput, id(DISPID_TIMEANIMATIONELEMENT_FROM)]
  380. HRESULT from([in] VARIANT val);
  381. [propget, id(DISPID_TIMEANIMATIONELEMENT_KEYSPLINES)]
  382. HRESULT keySplines([out, retval] BSTR * val);
  383. [propput, id(DISPID_TIMEANIMATIONELEMENT_KEYSPLINES)]
  384. HRESULT keySplines([in] BSTR val);
  385. [propget, id(DISPID_TIMEANIMATIONELEMENT_KEYTIMES)]
  386. HRESULT keyTimes([out, retval] BSTR * val);
  387. [propput, id(DISPID_TIMEANIMATIONELEMENT_KEYTIMES)]
  388. HRESULT keyTimes([in] BSTR val);
  389. [propget, id(DISPID_TIMEANIMATIONELEMENT_TARGETELEMENT)]
  390. HRESULT targetElement([out, retval] BSTR * target);
  391. [propput, id(DISPID_TIMEANIMATIONELEMENT_TARGETELEMENT)]
  392. HRESULT targetElement([in] BSTR target);
  393. [propget, id(DISPID_TIMEANIMATIONELEMENT_TO)]
  394. HRESULT to([out, retval] VARIANT * val);
  395. [propput, id(DISPID_TIMEANIMATIONELEMENT_TO)]
  396. HRESULT to([in] VARIANT val);
  397. [propget, id(DISPID_TIMEANIMATIONELEMENT_VALUES)]
  398. HRESULT values([out, retval] VARIANT * val);
  399. [propput, id(DISPID_TIMEANIMATIONELEMENT_VALUES)]
  400. HRESULT values([in] VARIANT val);
  401. [propget, id(DISPID_TIMEANIMATIONELEMENT_ORIGIN)]
  402. HRESULT origin([out, retval] BSTR * val);
  403. [propput, id(DISPID_TIMEANIMATIONELEMENT_ORIGIN)]
  404. HRESULT origin([in] BSTR val);
  405. [propget, id(DISPID_TIMEANIMATIONELEMENT_PATH)]
  406. HRESULT path([out, retval] VARIANT * val);
  407. [propput, id(DISPID_TIMEANIMATIONELEMENT_PATH)]
  408. HRESULT path([in] VARIANT val);
  409. [propget, id(DISPID_TIMEANIMATIONELEMENT_ADDITIVE)]
  410. HRESULT additive([out, retval] BSTR * val);
  411. [propput, id(DISPID_TIMEANIMATIONELEMENT_ADDITIVE)]
  412. HRESULT additive([in] BSTR val);
  413. [propget, id(DISPID_TIMEANIMATIONELEMENT_ACCUMULATE)]
  414. HRESULT accumulate([out, retval] BSTR * val);
  415. [propput, id(DISPID_TIMEANIMATIONELEMENT_ACCUMULATE)]
  416. HRESULT accumulate([in] BSTR val);
  417. };
  418. [
  419. object,
  420. uuid(29CE8661-BD43-421a-B616-E9B31F33A572),
  421. dual,
  422. pointer_default(unique)
  423. ]
  424. interface ITIMEAnimationElement2 : ITIMEAnimationElement
  425. {
  426. [propget, id(DISPID_TIMEANIMATIONELEMENT_TYPE)]
  427. HRESULT type([out, retval] BSTR * val);
  428. [propput, id(DISPID_TIMEANIMATIONELEMENT_TYPE)]
  429. HRESULT type([in] BSTR val);
  430. [propget, id(DISPID_TIMEANIMATIONELEMENT_SUBTYPE)]
  431. HRESULT subType([out, retval] BSTR * val);
  432. [propput, id(DISPID_TIMEANIMATIONELEMENT_SUBTYPE)]
  433. HRESULT subType([in] BSTR val);
  434. [propget, id(DISPID_TIMEANIMATIONELEMENT_MODE)]
  435. HRESULT mode([out, retval] BSTR * val);
  436. [propput, id(DISPID_TIMEANIMATIONELEMENT_MODE)]
  437. HRESULT mode([in] BSTR val);
  438. [propget, id(DISPID_TIMEANIMATIONELEMENT_FADECOLOR)]
  439. HRESULT fadeColor([out, retval] BSTR * val);
  440. [propput, id(DISPID_TIMEANIMATIONELEMENT_FADECOLOR)]
  441. HRESULT fadeColor([in] BSTR val);
  442. }
  443. [
  444. object,
  445. uuid(5459C83D-322B-44b3-8DAA-24C947E7B275),
  446. pointer_default(unique)
  447. ]
  448. interface IAnimationComposer : IUnknown
  449. {
  450. [propget] HRESULT attribute ([out, retval] BSTR *attributeName);
  451. HRESULT ComposerInit (IDispatch * composerSite, BSTR attributeName);
  452. HRESULT ComposerDetach (void);
  453. HRESULT UpdateFragments (void);
  454. HRESULT AddFragment (IDispatch *newAnimationFragment);
  455. HRESULT InsertFragment (IDispatch *newAnimationFragment, VARIANT index);
  456. HRESULT RemoveFragment (IDispatch *oldAnimationFragment);
  457. HRESULT EnumerateFragments (IEnumVARIANT **fragments);
  458. HRESULT GetNumFragments (long *fragmentCount);
  459. }
  460. [
  461. object,
  462. uuid(1A4F0E79-09CD-47f3-AFF1-483BF3A222DC),
  463. pointer_default(unique)
  464. ]
  465. interface IAnimationComposer2 : IAnimationComposer
  466. {
  467. HRESULT ComposerInitFromFragment (IDispatch * composerSite, BSTR attributeName, IDispatch *oneFragment);
  468. }
  469. [
  470. object,
  471. uuid(488FCB56-8FD6-4cda-A06A-5BB232930ECA),
  472. dual,
  473. pointer_default(unique)
  474. ]
  475. interface IAnimationComposerSite : IDispatch
  476. {
  477. [id(DISPID_SMILANIMATIONCOMPSITE_ADDFRAGMENT)] HRESULT AddFragment (BSTR attributeName, IDispatch *fragment);
  478. [id(DISPID_SMILANIMATIONCOMPSITE_REMOVEFRAGMENT)] HRESULT RemoveFragment (BSTR attributeName, IDispatch *fragment);
  479. [id(DISPID_SMILANIMATIONCOMPSITE_INSERTFRAGMENT)] HRESULT InsertFragment (BSTR attributeName, IDispatch *fragment, VARIANT index);
  480. [id(DISPID_SMILANIMATIONCOMPSITE_ENUMERATEFRAGMENTS)] HRESULT EnumerateFragments (BSTR attributeName, IEnumVARIANT **fragments);
  481. [id(DISPID_SMILANIMATIONCOMPSITE_REGISTERFACTORY)] HRESULT RegisterComposerFactory (VARIANT *factory);
  482. [id(DISPID_SMILANIMATIONCOMPSITE_UNREGISTER_FACTORY)] HRESULT UnregisterComposerFactory (VARIANT *factory);
  483. };
  484. [
  485. object,
  486. uuid(8EF76C64-71CD-480f-96FC-BA2696E659BE),
  487. pointer_default(unique)
  488. ]
  489. interface IAnimationComposerSiteSink : IUnknown
  490. {
  491. void UpdateAnimations (void);
  492. void ComposerSiteDetach (void);
  493. };
  494. [
  495. object,
  496. uuid(29DF6387-30B4-4a62-891B-A9C5BE37BE88),
  497. pointer_default(unique)
  498. ]
  499. interface IAnimationRoot : IUnknown
  500. {
  501. HRESULT RegisterComposerSite (IUnknown *composerSite);
  502. HRESULT UnregisterComposerSite (IUnknown *composerSite);
  503. };
  504. [
  505. object,
  506. uuid(319DFD88-0AC6-4ab1-A19F-90223BA2DA16),
  507. dual,
  508. pointer_default(unique)
  509. ]
  510. interface IAnimationFragment : IDispatch
  511. {
  512. [propget, id(DISPID_SMILANIMATIONFRAGMENT_ELEMENT)]
  513. HRESULT element([out, retval] IDispatch **htmlElement);
  514. [id(DISPID_SMILANIMATIONFRAGMENT_VALUE)]
  515. HRESULT get_value([in] BSTR attributeName, [in] VARIANT origvalue, [in] VARIANT currentvalue, [out, retval] VARIANT *newvalue);
  516. [id(DISPID_SMILANIMATIONFRAGMENT_DETACHFROMCOMPOSER)]
  517. HRESULT DetachFromComposer (void);
  518. };
  519. [
  520. object,
  521. uuid(02E29300-C758-49b4-9E11-C58BFE90558B),
  522. pointer_default(unique)
  523. ]
  524. interface IFilterAnimationInfo : IUnknown
  525. {
  526. HRESULT GetParameters (VARIANT *params);
  527. };
  528. [
  529. odl,
  530. oleautomation,
  531. dual,
  532. uuid(50abc224-6d53-4f83-9135-2440a41b7bc8),
  533. ]
  534. interface ITIMEElementCollection : IDispatch
  535. {
  536. [propput, id(DISPID_TIMEELEMENTCOLLECTION_LENGTH)]
  537. HRESULT length([in] long v);
  538. [propget, id(DISPID_TIMEELEMENTCOLLECTION_LENGTH)]
  539. HRESULT length([retval, out] long * p);
  540. [propget, id(DISPID_TIMEELEMENTCOLLECTION__NEWENUM), restricted, hidden]
  541. HRESULT _newEnum([retval, out] IUnknown** ppIUnknown);
  542. [id(DISPID_TIMEELEMENTCOLLECTION_ITEM)]
  543. HRESULT item([optional, in] VARIANT varName,
  544. [optional, in] VARIANT varIndex,
  545. [retval, out] IDispatch** ppDisp);
  546. [id(DISPID_TIMEELEMENTCOLLECTION_TAGS)]
  547. HRESULT tags([in] VARIANT varName, [retval, out] IDispatch** ppDisp);
  548. };
  549. //
  550. // ITIMEState (implemented by currTimeState object)
  551. //
  552. [
  553. object,
  554. oleautomation,
  555. dual,
  556. pointer_default(unique),
  557. uuid(DD5EC62A-9D77-4573-80A8-758594E69CEA)
  558. ]
  559. interface ITIMEState : IDispatch
  560. {
  561. [propget, id(DISPID_TIMESTATE_ACTIVEDUR)]
  562. HRESULT activeDur([retval, out] double * dur);
  563. [propget, id(DISPID_TIMESTATE_ACTIVETIME)]
  564. HRESULT activeTime([retval, out] double * time);
  565. [propget, id(DISPID_TIMESTATE_ISACTIVE)]
  566. HRESULT isActive([retval, out] VARIANT_BOOL * active);
  567. [propget, id(DISPID_TIMESTATE_ISON)]
  568. HRESULT isOn([retval, out] VARIANT_BOOL * on);
  569. [propget, id(DISPID_TIMESTATE_ISPAUSED)]
  570. HRESULT isPaused([retval, out] VARIANT_BOOL * paused);
  571. [propget, id(DISPID_TIMESTATE_ISMUTED)]
  572. HRESULT isMuted([retval, out] VARIANT_BOOL * muted);
  573. [propget, id(DISPID_TIMESTATE_PARENTTIMEBEGIN)]
  574. HRESULT parentTimeBegin([retval, out] double * time);
  575. [propget, id(DISPID_TIMESTATE_PARENTTIMEEND)]
  576. HRESULT parentTimeEnd([retval, out] double * time);
  577. [propget, id(DISPID_TIMESTATE_PROGRESS)]
  578. HRESULT progress([retval, out] double * progress);
  579. [propget, id(DISPID_TIMESTATE_REPEATCOUNT)]
  580. HRESULT repeatCount([retval, out] LONG * count);
  581. [propget, id(DISPID_TIMESTATE_SEGMENTDUR)]
  582. HRESULT segmentDur([retval, out] double * dur);
  583. [propget, id(DISPID_TIMESTATE_SEGMENTTIME)]
  584. HRESULT segmentTime([retval, out] double * time);
  585. [propget, id(DISPID_TIMESTATE_SIMPLEDUR)]
  586. HRESULT simpleDur([retval, out] double * dur);
  587. [propget, id(DISPID_TIMESTATE_SIMPLETIME)]
  588. HRESULT simpleTime([retval, out] double * time);
  589. [propget, id(DISPID_TIMESTATE_SPEED)]
  590. HRESULT speed([retval, out] float * speed);
  591. [propget, id(DISPID_TIMESTATE_STATE)]
  592. HRESULT state([retval, out] TimeState * timeState);
  593. [propget, id(DISPID_TIMESTATE_STATESTRING)]
  594. HRESULT stateString([retval, out] BSTR * state);
  595. [propget, id(DISPID_TIMESTATE_VOLUME)]
  596. HRESULT volume([retval, out] float * vol);
  597. }; // ITIMEState
  598. [
  599. object,
  600. uuid(2A6096D9-2CE0-47DC-A813-9099A2466309),
  601. dual,
  602. pointer_default(unique)
  603. ]
  604. interface ITIMEPlayItem : IDispatch
  605. {
  606. [propget, id(DISPID_TIMEPLAYITEM_ABSTRACT)]
  607. HRESULT abstract([out, retval] BSTR *abs);
  608. [propget, id(DISPID_TIMEPLAYITEM_AUTHOR)]
  609. HRESULT author([out, retval] BSTR *auth);
  610. [propget, id(DISPID_TIMEPLAYITEM_COPYRIGHT)]
  611. HRESULT copyright([out, retval] BSTR *cpyrght);
  612. [propget, id(DISPID_TIMEPLAYITEM_DUR)]
  613. HRESULT dur([out, retval] double *dur);
  614. [propget, id(DISPID_TIMEPLAYITEM_INDEX)]
  615. HRESULT index([out, retval] long *index);
  616. [propget, id(DISPID_TIMEPLAYITEM_RATING)]
  617. HRESULT rating([out, retval] BSTR *rate);
  618. [propget, id(DISPID_TIMEPLAYITEM_SRC)]
  619. HRESULT src([out, retval] BSTR *src);
  620. [propget, id(DISPID_TIMEPLAYITEM_TITLE)]
  621. HRESULT title([out, retval] BSTR *title);
  622. // Methods
  623. [id(DISPID_TIMEPLAYITEM_SETACTIVE)]
  624. HRESULT setActive();
  625. };
  626. [
  627. object,
  628. uuid(4262CD38-6BDC-40A4-BC50-4CC50366E702),
  629. dual,
  630. pointer_default(unique)
  631. ]
  632. interface ITIMEPlayItem2 : ITIMEPlayItem
  633. {
  634. [propget, id(DISPID_TIMEPLAYITEM_BANNER)]
  635. HRESULT banner([out, retval] BSTR *banner);
  636. [propget, id(DISPID_TIMEPLAYITEM_BANNERABSTRACT)]
  637. HRESULT bannerAbstract([out, retval] BSTR *abstract);
  638. [propget, id(DISPID_TIMEPLAYITEM_BANNERMOREINFO)]
  639. HRESULT bannerMoreInfo([out, retval] BSTR *moreInfo);
  640. };
  641. [
  642. object,
  643. uuid(E9B75B62-DD97-4B19-8FD9-9646292952E0),
  644. dual,
  645. pointer_default(unique),
  646. ]
  647. interface ITIMEPlayList : IDispatch
  648. {
  649. [id(DISPID_TIMEPLAYLIST_ACTIVETRACK), propput]
  650. HRESULT activeTrack([in] VARIANT vTrack);
  651. [id(DISPID_TIMEPLAYLIST_ACTIVETRACK), propget]
  652. HRESULT activeTrack([out, retval] ITIMEPlayItem **pPlayItem);
  653. [id(DISPID_TIMEPLAYLIST_DUR), propget]
  654. HRESULT dur(double *dur); //returns the duration of the entire playlist if it is known or -1 if it is not.
  655. [id(DISPID_TIMEPLAYLIST_ITEM)]
  656. HRESULT item([defaultvalue("0"), in] VARIANT varIndex,
  657. [out, retval] ITIMEPlayItem **pPlayItem);
  658. [id(DISPID_TIMEPLAYLIST_LENGTH), propget]
  659. HRESULT length([out, retval] long* p);
  660. [id(DISPID_TIMEPLAYLIST_NEWENUM), propget, restricted, hidden]
  661. HRESULT _newEnum([out, retval] IUnknown** p);
  662. [id(DISPID_TIMEPLAYLIST_NEXTTRACK)]
  663. HRESULT nextTrack();
  664. [id(DISPID_TIMEPLAYLIST_PREVTRACK)]
  665. HRESULT prevTrack();
  666. };
  667. [
  668. object,
  669. uuid(3AF7AB68-4F29-462C-AA6E-5872448899E3),
  670. dual,
  671. pointer_default(unique),
  672. ]
  673. interface ITIMEDVDPlayerObject : IDispatch
  674. {
  675. [id(DISPID_ITIMEDVDPLAYEROBJECT_UPPERBUTTONSEL)] HRESULT upperButtonSelect();
  676. [id(DISPID_ITIMEDVDPLAYEROBJECT_LOWERBUTTONSEL)] HRESULT lowerButtonSelect();
  677. [id(DISPID_ITIMEDVDPLAYEROBJECT_LEFTBUTTONSEL)] HRESULT leftButtonSelect();
  678. [id(DISPID_ITIMEDVDPLAYEROBJECT_RIGHTBUTTONSEL)] HRESULT rightButtonSelect();
  679. [id(DISPID_ITIMEDVDPLAYEROBJECT_BUTTONACTIVATE)] HRESULT buttonActivate();
  680. [id(DISPID_ITIMEDVDPLAYEROBJECT_GOTOMENU)] HRESULT gotoMenu();
  681. };
  682. [
  683. object,
  684. uuid(407954F5-2BAB-4CFA-954D-249F9FCE43A1),
  685. dual,
  686. pointer_default(unique),
  687. ]
  688. interface ITIMEDMusicPlayerObject : IDispatch
  689. {
  690. [propget, id(DISPID_ITIMEDMPLAYEROBJECT_HASDM)]
  691. HRESULT isDirectMusicInstalled([retval, out] VARIANT_BOOL * hasDM);
  692. };
  693. [
  694. object,
  695. uuid(cd51e446-3006-434f-90e2-e37e8fb8ca8f),
  696. hidden,
  697. pointer_default(unique)
  698. ]
  699. interface ITIMEFactory : IUnknown
  700. {
  701. }
  702. [
  703. uuid(17237A20-3ADB-48ec-B182-35291F115790)
  704. ]
  705. coclass TIMEFactory
  706. {
  707. [default] interface ITIMEFactory;
  708. };
  709. [
  710. uuid(e32ef57b-7fde-4765-9bc5-a1ba9705c44e)
  711. ]
  712. coclass TIME
  713. {
  714. [default] interface ITIMEElement;
  715. };
  716. [
  717. uuid(f99d135a-c07c-449e-965c-7dbb7c554a51)
  718. ]
  719. coclass TIMEAnimation
  720. {
  721. [default] interface IAnimationFragment;
  722. };
  723. [
  724. uuid(ba91ce53-baeb-4f05-861c-0a2a0934f82e)
  725. ]
  726. coclass TIMESetAnimation
  727. {
  728. [default] interface IAnimationFragment;
  729. };
  730. [
  731. uuid(0019a09d-1a81-41c5-89ec-d9e737811303)
  732. ]
  733. coclass TIMEMotionAnimation
  734. {
  735. [default] interface IAnimationFragment;
  736. };
  737. [
  738. uuid(62f75052-f3ec-4a64-84fb-ab18e0746ed8)
  739. ]
  740. coclass TIMEColorAnimation
  741. {
  742. [default] interface IAnimationFragment;
  743. };
  744. [
  745. uuid(C54515D0-F2E5-4BDD-AA86-1E4F23E480E7)
  746. ]
  747. coclass TIMEFilterAnimation
  748. {
  749. [default] interface IAnimationFragment;
  750. }
  751. [
  752. object,
  753. uuid(BEEB3233-F71F-4683-8B05-9A5314C97DBC),
  754. pointer_default(unique)
  755. ]
  756. interface IAnimationComposerFactory : IUnknown
  757. {
  758. HRESULT FindComposer([in] IDispatch *targetElement, [in] BSTR attributeName, [out, retval] IAnimationComposer **animationComposer);
  759. }
  760. [
  761. uuid(332B2A56-F86C-47e7-8602-FC42AC8B9920)
  762. ]
  763. coclass AnimationComposerFactory
  764. {
  765. [default] interface IAnimationComposerFactory;
  766. };
  767. [
  768. object,
  769. uuid(B4EA5681-ED72-4efe-BBD7-7C47D1325696),
  770. dual,
  771. hidden,
  772. pointer_default(unique)
  773. ]
  774. interface IAnimationComposerSiteFactory : IDispatch
  775. {
  776. }
  777. [
  778. uuid(16911A65-D41D-4431-87F7-E757F4D03BD8)
  779. ]
  780. coclass AnimationComposerSiteFactory
  781. {
  782. [default] interface IAnimationComposerSiteFactory;
  783. };
  784. [
  785. object,
  786. uuid(bf0571ed-344f-4f58-82c7-7431ed0fd834),
  787. pointer_default(unique)
  788. ]
  789. interface ITIMEMediaPlayerSite : IUnknown
  790. {
  791. [propget, id(DISPID_TIMEMEDIAPLAYERSITE_TIMEELEMENT)]
  792. HRESULT timeElement([out, retval] ITIMEElement ** pElm);
  793. [propget, id(DISPID_TIMEMEDIAPLAYERSITE_TIMESTATE)]
  794. HRESULT timeState([out, retval] ITIMEState ** pState);
  795. [id(DISPID_TIMEMEDIAPLAYERSITE_REPORTERROR)]
  796. HRESULT reportError([in] HRESULT hr,
  797. [in] BSTR errorString);
  798. }
  799. [
  800. object,
  801. uuid(ea4a95be-acc9-4bf0-85a4-1bf3c51e431c),
  802. pointer_default(unique)
  803. ]
  804. interface ITIMEMediaPlayer : IUnknown
  805. {
  806. [id(DISPID_TIMEMEDIAPLAYER_INIT)]
  807. HRESULT Init(ITIMEMediaPlayerSite * mpsite);
  808. [id(DISPID_TIMEMEDIAPLAYER_DETACH)]
  809. HRESULT Detach();
  810. [id(DISPID_TIMEMEDIAPLAYER_BEGIN)]
  811. HRESULT begin();
  812. [id(DISPID_TIMEMEDIAPLAYER_END)]
  813. HRESULT end();
  814. [id(DISPID_TIMEMEDIAPLAYER_RESUME)]
  815. HRESULT resume();
  816. [id(DISPID_TIMEMEDIAPLAYER_PAUSE)]
  817. HRESULT pause();
  818. [id(DISPID_TIMEMEDIAPLAYER_REPEAT)]
  819. HRESULT repeat();
  820. [id(DISPID_TIMEMEDIAPLAYER_RESET)]
  821. HRESULT reset();
  822. [id(DISPID_TIMEMEDIAPLAYER_SEEK)]
  823. HRESULT seek([in] double time);
  824. // Properties - w
  825. [propput, id(DISPID_TIMEMEDIAPLAYER_SRC)]
  826. HRESULT src([in] BSTR url);
  827. [propput, id(DISPID_TIMEMEDIAPLAYER_CLIPBEGIN)]
  828. HRESULT clipBegin([in] VARIANT b);
  829. [propput, id(DISPID_TIMEMEDIAPLAYER_CLIPEND)]
  830. HRESULT clipEnd([in] VARIANT e);
  831. // Properties - r/o
  832. [propget, id(DISPID_TIMEMEDIAPLAYER_ABSTRACT)]
  833. HRESULT abstract([out, retval] BSTR *abs);
  834. [propget, id(DISPID_TIMEMEDIAPLAYER_AUTHOR)]
  835. HRESULT author([out, retval] BSTR *auth);
  836. [propget, id(DISPID_TIMEMEDIAPLAYER_CANPAUSE)]
  837. HRESULT canPause([retval, out] VARIANT_BOOL * b);
  838. [propget, id(DISPID_TIMEMEDIAPLAYER_CANSEEK)]
  839. HRESULT canSeek([retval, out] VARIANT_BOOL * b);
  840. [propget, id(DISPID_TIMEMEDIAPLAYER_CLIPDUR)]
  841. HRESULT clipDur([out, retval] double * dur);
  842. [propget, id(DISPID_TIMEMEDIAPLAYER_COPYRIGHT)]
  843. HRESULT copyright([out, retval] BSTR *cpyrght);
  844. [propget, id(DISPID_TIMEMEDIAPLAYER_CURRTIME)]
  845. HRESULT currTime([out, retval] double * time);
  846. [propget, id(DISPID_TIMEMEDIAPLAYER_CUSTOM_OBJECT)]
  847. HRESULT customObject([out, retval] IDispatch ** disp);
  848. [propget, id(DISPID_TIMEMEDIAPLAYER_HASAUDIO)]
  849. HRESULT hasAudio([retval, out] VARIANT_BOOL * b);
  850. [propget, id(DISPID_TIMEMEDIAPLAYER_HASVISUAL)]
  851. HRESULT hasVisual([retval, out] VARIANT_BOOL * b);
  852. [propget, id(DISPID_TIMEMEDIAPLAYER_MEDIADUR)]
  853. HRESULT mediaDur([out, retval] double *dur);
  854. [propget, id(DISPID_TIMEMEDIAPLAYER_MEDIAHEIGHT)]
  855. HRESULT mediaHeight([out, retval] long *height);
  856. [propget, id(DISPID_TIMEMEDIAPLAYER_MEDIAWIDTH)]
  857. HRESULT mediaWidth([out, retval] long *width);
  858. [propget, id(DISPID_TIMEMEDIAPLAYER_PLAYLIST)]
  859. HRESULT playList([out, retval] ITIMEPlayList** pPlayList);
  860. [propget, id(DISPID_TIMEMEDIAPLAYER_RATING)]
  861. HRESULT rating([out, retval] BSTR *rate);
  862. [propget, id(DISPID_TIMEMEDIAPLAYER_STATE)]
  863. HRESULT state([out, retval] TimeState * ts);
  864. [propget, id(DISPID_TIMEMEDIAPLAYER_TITLE)]
  865. HRESULT title([out, retval] BSTR *name);
  866. };
  867. [
  868. object,
  869. uuid(ffaacfda-b374-4f22-ac9a-c5bb9437cb56),
  870. pointer_default(unique)
  871. ]
  872. interface ITIMEMediaPlayerAudio : IUnknown
  873. {
  874. // Properties - w
  875. [propput, id(DISPID_TIMEMEDIAPLAYERAUDIO_VOLUME)]
  876. HRESULT volume([in] float f);
  877. [propput, id(DISPID_TIMEMEDIAPLAYERAUDIO_MUTE)]
  878. HRESULT mute([in] VARIANT_BOOL m);
  879. };
  880. [
  881. object,
  882. uuid(b9987fca-7fbb-4015-bd3d-7418605514da),
  883. pointer_default(unique)
  884. ]
  885. interface ITIMEMediaPlayerNetwork : IUnknown
  886. {
  887. // Properties - r
  888. [propget, id(DISPID_TIMEMEDIAPLAYERNETWORK_HASDOWNLOADPROGRESS)]
  889. HRESULT hasDownloadProgress([retval, out] VARIANT_BOOL * b);
  890. [propget, id(DISPID_TIMEMEDIAPLAYERNETWORK_DOWNLOADPROGRESS)]
  891. HRESULT downloadProgress([out, retval] long * l);
  892. [propget, id(DISPID_TIMEMEDIAPLAYERNETWORK_ISBUFFERED)]
  893. HRESULT isBuffered([retval, out] VARIANT_BOOL * b);
  894. [propget, id(DISPID_TIMEMEDIAPLAYERNETWORK_BUFFERINGPROGRESS)]
  895. HRESULT bufferingProgress([out, retval] long * l);
  896. };
  897. [
  898. object,
  899. uuid(897a99e7-f386-45c8-b51b-3a25bbcbba69),
  900. pointer_default(unique)
  901. ]
  902. interface ITIMEMediaPlayerControl : IUnknown
  903. {
  904. [id(DISPID_TIMEMEDIAPLAYERCONTROL_GETCONTROL)]
  905. HRESULT getControl(IUnknown ** control);
  906. }
  907. }