uianimation.idl 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248
  1. /**
  2. * This file is part of the mingw-w64 runtime package.
  3. * No warranty is given; refer to the file DISCLAIMER within this package.
  4. */
  5. import "unknwn.idl";
  6. /* Interface forward declarations. */
  7. interface IUIAnimationManager;
  8. interface IUIAnimationVariable;
  9. interface IUIAnimationStoryboard;
  10. interface IUIAnimationTransition;
  11. interface IUIAnimationStoryboardEventHandler;
  12. interface IUIAnimationVariableChangeHandler;
  13. interface IUIAnimationVariableIntegerChangeHandler;
  14. interface IUIAnimationManagerEventHandler;
  15. interface IUIAnimationPriorityComparison;
  16. interface IUIAnimationManager2;
  17. interface IUIAnimationVariable2;
  18. interface IDCompositionAnimation;
  19. interface IUIAnimationStoryboard2;
  20. interface IUIAnimationTransition2;
  21. interface IUIAnimationLoopIterationChangeHandler2;
  22. interface IUIAnimationStoryboardEventHandler2;
  23. interface IUIAnimationVariableChangeHandler2;
  24. interface IUIAnimationVariableIntegerChangeHandler2;
  25. interface IUIAnimationVariableCurveChangeHandler2;
  26. interface IUIAnimationManagerEventHandler2;
  27. interface IUIAnimationPriorityComparison2;
  28. interface IUIAnimationTransitionLibrary;
  29. interface IUIAnimationTransitionLibrary2;
  30. interface IUIAnimationTransitionFactory;
  31. interface IUIAnimationInterpolator;
  32. interface IUIAnimationTransitionFactory2;
  33. interface IUIAnimationInterpolator2;
  34. interface IUIAnimationPrimitiveInterpolation;
  35. interface IUIAnimationTimer;
  36. interface IUIAnimationTimerUpdateHandler;
  37. interface IUIAnimationTimerClientEventHandler;
  38. interface IUIAnimationTimerEventHandler;
  39. /* Coclass record forward declarations. */
  40. coclass UIAnimationManager;
  41. coclass UIAnimationManager2;
  42. coclass UIAnimationTransitionLibrary;
  43. coclass UIAnimationTransitionLibrary2;
  44. coclass UIAnimationTransitionFactory;
  45. coclass UIAnimationTransitionFactory2;
  46. coclass UIAnimationTimer;
  47. typedef DOUBLE UI_ANIMATION_SECONDS;
  48. /* Enumeration declarations. */
  49. typedef [v1_enum] enum
  50. {
  51. UI_ANIMATION_SCHEDULING_UNEXPECTED_FAILURE = 0,
  52. UI_ANIMATION_SCHEDULING_INSUFFICIENT_PRIORITY = 1,
  53. UI_ANIMATION_SCHEDULING_ALREADY_SCHEDULED = 2,
  54. UI_ANIMATION_SCHEDULING_SUCCEEDED = 3,
  55. UI_ANIMATION_SCHEDULING_DEFERRED = 4
  56. } UI_ANIMATION_SCHEDULING_RESULT;
  57. typedef [v1_enum] enum
  58. {
  59. UI_ANIMATION_STORYBOARD_BUILDING = 0,
  60. UI_ANIMATION_STORYBOARD_SCHEDULED = 1,
  61. UI_ANIMATION_STORYBOARD_CANCELLED = 2,
  62. UI_ANIMATION_STORYBOARD_PLAYING = 3,
  63. UI_ANIMATION_STORYBOARD_TRUNCATED = 4,
  64. UI_ANIMATION_STORYBOARD_FINISHED = 5,
  65. UI_ANIMATION_STORYBOARD_READY = 6,
  66. UI_ANIMATION_STORYBOARD_INSUFFICIENT_PRIORITY = 7
  67. } UI_ANIMATION_STORYBOARD_STATUS;
  68. typedef [v1_enum] enum
  69. {
  70. UI_ANIMATION_ROUNDING_NEAREST = 0,
  71. UI_ANIMATION_ROUNDING_FLOOR = 1,
  72. UI_ANIMATION_ROUNDING_CEILING = 2
  73. } UI_ANIMATION_ROUNDING_MODE;
  74. typedef [v1_enum] enum
  75. {
  76. UI_ANIMATION_UPDATE_NO_CHANGE = 0,
  77. UI_ANIMATION_UPDATE_VARIABLES_CHANGED = 1
  78. } UI_ANIMATION_UPDATE_RESULT;
  79. typedef [v1_enum] enum
  80. {
  81. UI_ANIMATION_MANAGER_IDLE = 0,
  82. UI_ANIMATION_MANAGER_BUSY = 1
  83. } UI_ANIMATION_MANAGER_STATUS;
  84. typedef [v1_enum] enum
  85. {
  86. UI_ANIMATION_MODE_DISABLED = 0,
  87. UI_ANIMATION_MODE_SYSTEM_DEFAULT = 1,
  88. UI_ANIMATION_MODE_ENABLED = 2
  89. } UI_ANIMATION_MODE;
  90. typedef [v1_enum] enum
  91. {
  92. UI_ANIMATION_PRIORITY_EFFECT_FAILURE = 0,
  93. UI_ANIMATION_PRIORITY_EFFECT_DELAY = 1
  94. } UI_ANIMATION_PRIORITY_EFFECT;
  95. typedef [v1_enum] enum
  96. {
  97. UI_ANIMATION_REPEAT_MODE_NORMAL = 0,
  98. UI_ANIMATION_REPEAT_MODE_ALTERNATE = 1
  99. } UI_ANIMATION_REPEAT_MODE;
  100. typedef [v1_enum] enum
  101. {
  102. UI_ANIMATION_SLOPE_INCREASING = 0,
  103. UI_ANIMATION_SLOPE_DECREASING = 1
  104. } UI_ANIMATION_SLOPE;
  105. typedef [v1_enum] enum
  106. {
  107. UI_ANIMATION_DEPENDENCY_NONE = 0,
  108. UI_ANIMATION_DEPENDENCY_INTERMEDIATE_VALUES = 0x1,
  109. UI_ANIMATION_DEPENDENCY_FINAL_VALUE = 0x2,
  110. UI_ANIMATION_DEPENDENCY_FINAL_VELOCITY = 0x4,
  111. UI_ANIMATION_DEPENDENCY_DURATION = 0x8
  112. } UI_ANIMATION_DEPENDENCIES;
  113. typedef [v1_enum] enum
  114. {
  115. UI_ANIMATION_TIMER_CLIENT_IDLE = 0,
  116. UI_ANIMATION_TIMER_CLIENT_BUSY = 1
  117. } UI_ANIMATION_TIMER_CLIENT_STATUS;
  118. typedef [v1_enum] enum
  119. {
  120. UI_ANIMATION_IDLE_BEHAVIOR_CONTINUE = 0,
  121. UI_ANIMATION_IDLE_BEHAVIOR_DISABLE = 1
  122. } UI_ANIMATION_IDLE_BEHAVIOR;
  123. /* Structure/union declarations. */
  124. typedef struct
  125. {
  126. int _;
  127. } *UI_ANIMATION_KEYFRAME;
  128. const UI_ANIMATION_KEYFRAME UI_ANIMATION_KEYFRAME_STORYBOARD_START = (UI_ANIMATION_KEYFRAME)(-1);
  129. const INT32 UI_ANIMATION_REPEAT_INDEFINITELY = -1;
  130. const INT32 UI_ANIMATION_REPEAT_INDEFINITELY_CONCLUDE_AT_END = UI_ANIMATION_REPEAT_INDEFINITELY;
  131. const INT32 UI_ANIMATION_REPEAT_INDEFINITELY_CONCLUDE_AT_START = -2;
  132. [
  133. uuid(44CA24DB-1A92-4149-BAB5-FB14D64B401E),
  134. version(1.0),
  135. helpstring("UIAnimation 1.0 Type Library")
  136. ]
  137. library uianimation
  138. {
  139. importlib("stdole2.tlb");
  140. /* CoClass declarations. */
  141. [
  142. uuid(4C1FC63A-695C-47E8-A339-1A194BE3D0B8),
  143. helpstring("UIAnimationManager Class")
  144. ]
  145. coclass UIAnimationManager
  146. {
  147. [default] interface IUIAnimationManager;
  148. };
  149. [
  150. uuid(D25D8842-8884-4A4A-B321-091314379BDD),
  151. helpstring("UIAnimationManager2 Class")
  152. ]
  153. coclass UIAnimationManager2
  154. {
  155. [default] interface IUIAnimationManager2;
  156. };
  157. [
  158. uuid(1D6322AD-AA85-4EF5-A828-86D71067D145),
  159. helpstring("UIAnimationTransitionLibrary Class")
  160. ]
  161. coclass UIAnimationTransitionLibrary
  162. {
  163. [default] interface IUIAnimationTransitionLibrary;
  164. };
  165. [
  166. uuid(812F944A-C5C8-4CD9-B0A6-B3DA802F228D),
  167. helpstring("UIAnimationTransitionLibrary2 Class")
  168. ]
  169. coclass UIAnimationTransitionLibrary2
  170. {
  171. [default] interface IUIAnimationTransitionLibrary2;
  172. };
  173. [
  174. uuid(8A9B1CDD-FCD7-419C-8B44-42FD17DB1887),
  175. helpstring("UIAnimationTransitionFactory Class")
  176. ]
  177. coclass UIAnimationTransitionFactory
  178. {
  179. [default] interface IUIAnimationTransitionFactory;
  180. };
  181. [
  182. uuid(84302F97-7F7B-4040-B190-72AC9D18E420),
  183. helpstring("UIAnimationTransitionFactory2 Class")
  184. ]
  185. coclass UIAnimationTransitionFactory2
  186. {
  187. [default] interface IUIAnimationTransitionFactory2;
  188. };
  189. [
  190. uuid(BFCD4A0C-06B6-4384-B768-0DAA792C380E),
  191. helpstring("UIAnimationTimer Class")
  192. ]
  193. coclass UIAnimationTimer
  194. {
  195. [default] interface IUIAnimationTimer;
  196. };
  197. };
  198. /* Interface declarations. */
  199. [
  200. uuid(9169896C-AC8D-4E7D-94E5-67FA4DC2F2E8),
  201. helpstring("IUIAnimationManager Interface")
  202. ]
  203. interface IUIAnimationManager : IUnknown
  204. {
  205. HRESULT CreateAnimationVariable(
  206. [in] double initialValue,
  207. [out, retval] IUIAnimationVariable **variable
  208. );
  209. HRESULT ScheduleTransition(
  210. [in] IUIAnimationVariable *variable,
  211. [in] IUIAnimationTransition *transition,
  212. [in] double timeNow
  213. );
  214. HRESULT CreateStoryboard(
  215. [out, retval] IUIAnimationStoryboard **storyboard
  216. );
  217. HRESULT FinishAllStoryboards(
  218. [in] double completionDeadline
  219. );
  220. HRESULT AbandonAllStoryboards(void);
  221. HRESULT Update(
  222. [in] double timeNow,
  223. [out, defaultvalue(0)] UI_ANIMATION_UPDATE_RESULT *updateResult
  224. );
  225. HRESULT GetVariableFromTag(
  226. [in] IUnknown * object,
  227. [in] UINT32 id,
  228. [out, retval] IUIAnimationVariable **variable
  229. );
  230. HRESULT GetStoryboardFromTag(
  231. [in] IUnknown * object,
  232. [in] UINT32 id,
  233. [out, retval] IUIAnimationStoryboard **storyboard
  234. );
  235. HRESULT GetStatus(
  236. [out, retval] UI_ANIMATION_MANAGER_STATUS *status
  237. );
  238. HRESULT SetAnimationMode(
  239. [in] UI_ANIMATION_MODE mode
  240. );
  241. HRESULT Pause(void);
  242. HRESULT Resume(void);
  243. HRESULT SetManagerEventHandler(
  244. [in] IUIAnimationManagerEventHandler *handler
  245. );
  246. HRESULT SetCancelPriorityComparison(
  247. [in] IUIAnimationPriorityComparison *comparison
  248. );
  249. HRESULT SetTrimPriorityComparison(
  250. [in] IUIAnimationPriorityComparison *comparison
  251. );
  252. HRESULT SetCompressPriorityComparison(
  253. [in] IUIAnimationPriorityComparison *comparison
  254. );
  255. HRESULT SetConcludePriorityComparison(
  256. [in] IUIAnimationPriorityComparison *comparison
  257. );
  258. HRESULT SetDefaultLongestAcceptableDelay(
  259. [in] double delay
  260. );
  261. HRESULT Shutdown(void);
  262. };
  263. [
  264. uuid(8CEEB155-2849-4CE5-9448-91FF70E1E4D9),
  265. helpstring("IUIAnimationVariable Interface")
  266. ]
  267. interface IUIAnimationVariable : IUnknown
  268. {
  269. HRESULT GetValue(
  270. [out, retval] double *value
  271. );
  272. HRESULT GetFinalValue(
  273. [out, retval] double *finalValue
  274. );
  275. HRESULT GetPreviousValue(
  276. [out, retval] double *previousValue
  277. );
  278. HRESULT GetIntegerValue(
  279. [out, retval] int *value
  280. );
  281. HRESULT GetFinalIntegerValue(
  282. [out, retval] int *finalValue
  283. );
  284. HRESULT GetPreviousIntegerValue(
  285. [out, retval] int *previousValue
  286. );
  287. HRESULT GetCurrentStoryboard(
  288. [out, retval] IUIAnimationStoryboard **storyboard
  289. );
  290. HRESULT SetLowerBound(
  291. [in] double bound
  292. );
  293. HRESULT SetUpperBound(
  294. [in] double bound
  295. );
  296. HRESULT SetRoundingMode(
  297. [in] UI_ANIMATION_ROUNDING_MODE mode
  298. );
  299. HRESULT SetTag(
  300. [in] IUnknown * object,
  301. [in] unsigned int id
  302. );
  303. HRESULT GetTag(
  304. [out] IUnknown **object,
  305. [out] unsigned int *id
  306. );
  307. HRESULT SetVariableChangeHandler(
  308. [in] IUIAnimationVariableChangeHandler *handler
  309. );
  310. HRESULT SetVariableIntegerChangeHandler(
  311. [in] IUIAnimationVariableIntegerChangeHandler *handler
  312. );
  313. };
  314. [
  315. uuid(A8FF128F-9BF9-4AF1-9E67-E5E410DEFB84),
  316. helpstring("IUIAnimationStoryboard Interface")
  317. ]
  318. interface IUIAnimationStoryboard : IUnknown
  319. {
  320. HRESULT AddTransition(
  321. [in] IUIAnimationVariable *variable,
  322. [in] IUIAnimationTransition *transition
  323. );
  324. HRESULT AddKeyframeAtOffset(
  325. [in] UI_ANIMATION_KEYFRAME existingKeyframe,
  326. [in] double offset,
  327. [out, retval] UI_ANIMATION_KEYFRAME *keyframe
  328. );
  329. HRESULT AddKeyframeAfterTransition(
  330. [in] IUIAnimationTransition *transition,
  331. [out, retval] UI_ANIMATION_KEYFRAME *keyframe
  332. );
  333. HRESULT AddTransitionAtKeyframe(
  334. [in] IUIAnimationVariable *variable,
  335. [in] IUIAnimationTransition *transition,
  336. [in] UI_ANIMATION_KEYFRAME startKeyframe
  337. );
  338. HRESULT AddTransitionBetweenKeyframes(
  339. [in] IUIAnimationVariable *variable,
  340. [in] IUIAnimationTransition *transition,
  341. [in] UI_ANIMATION_KEYFRAME startKeyframe,
  342. [in] UI_ANIMATION_KEYFRAME endKeyframe
  343. );
  344. HRESULT RepeatBetweenKeyframes(
  345. [in] UI_ANIMATION_KEYFRAME startKeyframe,
  346. [in] UI_ANIMATION_KEYFRAME endKeyframe,
  347. [in] int repetitionCount
  348. );
  349. HRESULT HoldVariable(
  350. [in] IUIAnimationVariable *variable
  351. );
  352. HRESULT SetLongestAcceptableDelay(
  353. [in] double delay
  354. );
  355. HRESULT Schedule(
  356. [in] double timeNow,
  357. [out, defaultvalue(0)] UI_ANIMATION_SCHEDULING_RESULT *schedulingResult
  358. );
  359. HRESULT Conclude(void);
  360. HRESULT Finish(
  361. [in] double completionDeadline
  362. );
  363. HRESULT Abandon(void);
  364. HRESULT SetTag(
  365. [in] IUnknown * object,
  366. [in] unsigned int id
  367. );
  368. HRESULT GetTag(
  369. [out] IUnknown **object,
  370. [out] unsigned int *id
  371. );
  372. HRESULT GetStatus(
  373. [out, retval] UI_ANIMATION_STORYBOARD_STATUS *status
  374. );
  375. HRESULT GetElapsedTime(
  376. [out] double *elapsedTime
  377. );
  378. HRESULT SetStoryboardEventHandler(
  379. [in] IUIAnimationStoryboardEventHandler *handler
  380. );
  381. };
  382. [
  383. uuid(DC6CE252-F731-41CF-B610-614B6CA049AD),
  384. helpstring("IUIAnimationTransition Interface")
  385. ]
  386. interface IUIAnimationTransition : IUnknown
  387. {
  388. HRESULT SetInitialValue(
  389. [in] double value
  390. );
  391. HRESULT SetInitialVelocity(
  392. [in] double velocity
  393. );
  394. HRESULT IsDurationKnown(void);
  395. HRESULT GetDuration(
  396. [out, retval] double *duration
  397. );
  398. };
  399. [
  400. uuid(3D5C9008-EC7C-4364-9F8A-9AF3C58CBAE6),
  401. helpstring("IUIAnimationStoryboardEventHandler Interface")
  402. ]
  403. interface IUIAnimationStoryboardEventHandler : IUnknown
  404. {
  405. HRESULT OnStoryboardStatusChanged(
  406. [in] IUIAnimationStoryboard *storyboard,
  407. [in] UI_ANIMATION_STORYBOARD_STATUS newStatus,
  408. [in] UI_ANIMATION_STORYBOARD_STATUS previousStatus
  409. );
  410. HRESULT OnStoryboardUpdated(
  411. [in] IUIAnimationStoryboard *storyboard
  412. );
  413. };
  414. [
  415. uuid(6358B7BA-87D2-42D5-BF71-82E919DD5862),
  416. helpstring("IUIAnimationVariableChangeHandler Interface")
  417. ]
  418. interface IUIAnimationVariableChangeHandler : IUnknown
  419. {
  420. HRESULT OnValueChanged(
  421. [in] IUIAnimationStoryboard *storyboard,
  422. [in] IUIAnimationVariable *variable,
  423. [in] double newValue,
  424. [in] double previousValue
  425. );
  426. };
  427. [
  428. uuid(BB3E1550-356E-44B0-99DA-85AC6017865E),
  429. helpstring("IUIAnimationVariableIntegerChangeHandler Interface")
  430. ]
  431. interface IUIAnimationVariableIntegerChangeHandler : IUnknown
  432. {
  433. HRESULT OnIntegerValueChanged(
  434. [in] IUIAnimationStoryboard *storyboard,
  435. [in] IUIAnimationVariable *variable,
  436. [in] int newValue,
  437. [in] int previousValue
  438. );
  439. };
  440. [
  441. uuid(783321ED-78A3-4366-B574-6AF607A64788),
  442. helpstring("IUIAnimationManagerEventHandler Interface")
  443. ]
  444. interface IUIAnimationManagerEventHandler : IUnknown
  445. {
  446. HRESULT OnManagerStatusChanged(
  447. [in] UI_ANIMATION_MANAGER_STATUS newStatus,
  448. [in] UI_ANIMATION_MANAGER_STATUS previousStatus
  449. );
  450. };
  451. [
  452. uuid(83FA9B74-5F86-4618-BC6A-A2FAC19B3F44),
  453. helpstring("IUIAnimationPriorityComparison Interface")
  454. ]
  455. interface IUIAnimationPriorityComparison : IUnknown
  456. {
  457. HRESULT HasPriority(
  458. [in] IUIAnimationStoryboard *scheduledStoryboard,
  459. [in] IUIAnimationStoryboard *newStoryboard,
  460. [in] UI_ANIMATION_PRIORITY_EFFECT priorityEffect
  461. );
  462. };
  463. [
  464. uuid(D8B6F7D4-4109-4D3F-ACEE-879926968CB1),
  465. helpstring("IUIAnimationManager2 Interface")
  466. ]
  467. interface IUIAnimationManager2 : IUnknown
  468. {
  469. HRESULT CreateAnimationVectorVariable(
  470. [in] double *initialValue,
  471. [in] unsigned int cDimension,
  472. [out, retval] IUIAnimationVariable2 **variable
  473. );
  474. HRESULT CreateAnimationVariable(
  475. [in] double initialValue,
  476. [out, retval] IUIAnimationVariable2 **variable
  477. );
  478. HRESULT ScheduleTransition(
  479. [in] IUIAnimationVariable2 *variable,
  480. [in] IUIAnimationTransition2 *transition,
  481. [in] double timeNow
  482. );
  483. HRESULT CreateStoryboard(
  484. [out, retval] IUIAnimationStoryboard2 **storyboard
  485. );
  486. HRESULT FinishAllStoryboards(
  487. [in] double completionDeadline
  488. );
  489. HRESULT AbandonAllStoryboards(void);
  490. HRESULT Update(
  491. [in] double timeNow,
  492. [out, defaultvalue(0)] UI_ANIMATION_UPDATE_RESULT *updateResult
  493. );
  494. HRESULT GetVariableFromTag(
  495. [in] IUnknown * object,
  496. [in] UINT32 id,
  497. [out, retval] IUIAnimationVariable2 **variable
  498. );
  499. HRESULT GetStoryboardFromTag(
  500. [in] IUnknown * object,
  501. [in] unsigned int id,
  502. [out, retval] IUIAnimationStoryboard2 **storyboard
  503. );
  504. HRESULT EstimateNextEventTime(
  505. [out, retval] double *seconds
  506. );
  507. HRESULT GetStatus(
  508. [out, retval] UI_ANIMATION_MANAGER_STATUS *status
  509. );
  510. HRESULT SetAnimationMode(
  511. [in] UI_ANIMATION_MODE mode
  512. );
  513. HRESULT Pause(void);
  514. HRESULT Resume(void);
  515. HRESULT SetManagerEventHandler(
  516. [in] IUIAnimationManagerEventHandler2 *handler,
  517. [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent
  518. );
  519. HRESULT SetCancelPriorityComparison(
  520. [in] IUIAnimationPriorityComparison2 *comparison
  521. );
  522. HRESULT SetTrimPriorityComparison(
  523. [in] IUIAnimationPriorityComparison2 *comparison
  524. );
  525. HRESULT SetCompressPriorityComparison(
  526. [in] IUIAnimationPriorityComparison2 *comparison
  527. );
  528. HRESULT SetConcludePriorityComparison(
  529. [in] IUIAnimationPriorityComparison2 *comparison
  530. );
  531. HRESULT SetDefaultLongestAcceptableDelay(
  532. [in] double delay
  533. );
  534. HRESULT Shutdown(void);
  535. };
  536. [
  537. uuid(4914B304-96AB-44D9-9E77-D5109B7E7466),
  538. helpstring("IUIAnimationVariable2 Interface")
  539. ]
  540. interface IUIAnimationVariable2 : IUnknown
  541. {
  542. HRESULT GetDimension(
  543. [out, retval] unsigned int *dimension
  544. );
  545. HRESULT GetValue(
  546. [out, retval] double *value
  547. );
  548. HRESULT GetVectorValue(
  549. [out] double *value,
  550. [in] unsigned int cDimension
  551. );
  552. HRESULT GetCurve(
  553. [in] IDCompositionAnimation *animation
  554. );
  555. HRESULT GetVectorCurve(
  556. [in] IDCompositionAnimation **animation,
  557. [in] unsigned int cDimension
  558. );
  559. HRESULT GetFinalValue(
  560. [out, retval] double *finalValue
  561. );
  562. HRESULT GetFinalVectorValue(
  563. [out] double *finalValue,
  564. [in] unsigned int cDimension
  565. );
  566. HRESULT GetPreviousValue(
  567. [out, retval] double *previousValue
  568. );
  569. HRESULT GetPreviousVectorValue(
  570. [out] double *previousValue,
  571. [in] unsigned int cDimension
  572. );
  573. HRESULT GetIntegerValue(
  574. [out, retval] int *value
  575. );
  576. HRESULT GetIntegerVectorValue(
  577. [out] int *value,
  578. [in] unsigned int cDimension
  579. );
  580. HRESULT GetFinalIntegerValue(
  581. [out, retval] int *finalValue
  582. );
  583. HRESULT GetFinalIntegerVectorValue(
  584. [out] int *finalValue,
  585. [in] unsigned int cDimension
  586. );
  587. HRESULT GetPreviousIntegerValue(
  588. [out, retval] int *previousValue
  589. );
  590. HRESULT GetPreviousIntegerVectorValue(
  591. [out] int *previousValue,
  592. [in] unsigned int cDimension
  593. );
  594. HRESULT GetCurrentStoryboard(
  595. [out, retval] IUIAnimationStoryboard2 **storyboard
  596. );
  597. HRESULT SetLowerBound(
  598. [in] double bound
  599. );
  600. HRESULT SetLowerBoundVector(
  601. [out] double *bound,
  602. [in] unsigned int cDimension
  603. );
  604. HRESULT SetUpperBound(
  605. [in] double bound
  606. );
  607. HRESULT SetUpperBoundVector(
  608. [out] double *bound,
  609. [in] unsigned int cDimension
  610. );
  611. HRESULT SetRoundingMode(
  612. [in] UI_ANIMATION_ROUNDING_MODE mode
  613. );
  614. HRESULT SetTag(
  615. [in] IUnknown * object,
  616. [in] unsigned int id
  617. );
  618. HRESULT GetTag(
  619. [out] IUnknown **object,
  620. [out] unsigned int *id
  621. );
  622. HRESULT SetVariableChangeHandler(
  623. [in] IUIAnimationVariableChangeHandler2 *handler,
  624. [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent
  625. );
  626. HRESULT SetVariableIntegerChangeHandler(
  627. [in] IUIAnimationVariableIntegerChangeHandler2 *handler,
  628. [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent
  629. );
  630. HRESULT SetVariableCurveChangeHandler(
  631. [in] IUIAnimationVariableCurveChangeHandler2 *handler
  632. );
  633. };
  634. [
  635. uuid(CBFD91D9-51B2-45E4-B3DE-D19CCFB863C5),
  636. helpstring("IDCompositionAnimation Interface")
  637. ]
  638. interface IDCompositionAnimation : IUnknown
  639. {
  640. HRESULT Reset(void);
  641. HRESULT SetAbsoluteBeginTime(
  642. LARGE_INTEGER beginTime
  643. );
  644. HRESULT AddCubic(
  645. double beginOffset,
  646. float constantCoefficient,
  647. float linearCoefficient,
  648. float quadraticCoefficient,
  649. float cubicCoefficient
  650. );
  651. HRESULT AddSinusoidal(
  652. double beginOffset,
  653. float bias,
  654. float amplitude,
  655. float frequency,
  656. float phase
  657. );
  658. HRESULT AddRepeat(
  659. double beginOffset,
  660. double durationToRepeat
  661. );
  662. HRESULT End(
  663. double endOffset,
  664. float endValue
  665. );
  666. };
  667. [
  668. uuid(AE289CD2-12D4-4945-9419-9E41BE034DF2),
  669. helpstring("IUIAnimationStoryboard2 Interface")
  670. ]
  671. interface IUIAnimationStoryboard2 : IUnknown
  672. {
  673. HRESULT AddTransition(
  674. [in] IUIAnimationVariable2 *variable,
  675. [in] IUIAnimationTransition2 *transition
  676. );
  677. HRESULT AddKeyframeAtOffset(
  678. [in] UI_ANIMATION_KEYFRAME existingKeyframe,
  679. [in] double offset,
  680. [out, retval] UI_ANIMATION_KEYFRAME *keyframe
  681. );
  682. HRESULT AddKeyframeAfterTransition(
  683. [in] IUIAnimationTransition2 *transition,
  684. [out, retval] UI_ANIMATION_KEYFRAME *keyframe
  685. );
  686. HRESULT AddTransitionAtKeyframe(
  687. [in] IUIAnimationVariable2 *variable,
  688. [in] IUIAnimationTransition2 *transition,
  689. [in] UI_ANIMATION_KEYFRAME startKeyframe
  690. );
  691. HRESULT AddTransitionBetweenKeyframes(
  692. [in] IUIAnimationVariable2 *variable,
  693. [in] IUIAnimationTransition2 *transition,
  694. [in] UI_ANIMATION_KEYFRAME startKeyframe,
  695. [in] UI_ANIMATION_KEYFRAME endKeyframe
  696. );
  697. HRESULT RepeatBetweenKeyframes(
  698. [in] UI_ANIMATION_KEYFRAME startKeyframe,
  699. [in] UI_ANIMATION_KEYFRAME endKeyframe,
  700. [in] double cRepetition,
  701. [in] UI_ANIMATION_REPEAT_MODE repeatMode,
  702. [in, defaultvalue(0)] IUIAnimationLoopIterationChangeHandler2 *pIterationChangeHandler,
  703. [in, defaultvalue(0)] UINT_PTR id,
  704. [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent
  705. );
  706. HRESULT HoldVariable(
  707. [in] IUIAnimationVariable2 *variable
  708. );
  709. HRESULT SetLongestAcceptableDelay(
  710. [in] double delay
  711. );
  712. HRESULT SetSkipDuration(
  713. [in] double secondsDuration
  714. );
  715. HRESULT Schedule(
  716. [in] double timeNow,
  717. [out, defaultvalue(0)] UI_ANIMATION_SCHEDULING_RESULT *schedulingResult
  718. );
  719. HRESULT Conclude(void);
  720. HRESULT Finish(
  721. [in] double completionDeadline
  722. );
  723. HRESULT Abandon(void);
  724. HRESULT SetTag(
  725. [in] IUnknown * object,
  726. [in] unsigned int id
  727. );
  728. HRESULT GetTag(
  729. [out] IUnknown **object,
  730. [out] unsigned int *id
  731. );
  732. HRESULT GetStatus(
  733. [out, retval] UI_ANIMATION_STORYBOARD_STATUS *status
  734. );
  735. HRESULT GetElapsedTime(
  736. [out] double *elapsedTime
  737. );
  738. HRESULT SetStoryboardEventHandler(
  739. [in] IUIAnimationStoryboardEventHandler2 *handler,
  740. [in, defaultvalue(FALSE)] long fRegisterStatusChangeForNextAnimationEvent,
  741. [in, defaultvalue(FALSE)] long fRegisterUpdateForNextAnimationEvent
  742. );
  743. };
  744. [
  745. uuid(62FF9123-A85A-4E9B-A218-435A93E268FD),
  746. helpstring("IUIAnimationTransition2 Interface")
  747. ]
  748. interface IUIAnimationTransition2 : IUnknown
  749. {
  750. HRESULT GetDimension(
  751. [out, retval] unsigned int *dimension
  752. );
  753. HRESULT SetInitialValue(
  754. [in] double value
  755. );
  756. HRESULT SetInitialVectorValue(
  757. [in] double *value,
  758. [in] unsigned int cDimension
  759. );
  760. HRESULT SetInitialVelocity(
  761. [in] double velocity
  762. );
  763. HRESULT SetInitialVectorVelocity(
  764. [in] double *velocity,
  765. [in] unsigned int cDimension
  766. );
  767. HRESULT IsDurationKnown(void);
  768. HRESULT GetDuration(
  769. [out, retval] double *duration
  770. );
  771. };
  772. [
  773. uuid(2D3B15A4-4762-47AB-A030-B23221DF3AE0),
  774. helpstring("IUIAnimationLoopIterationChangeHandler2 Interface")
  775. ]
  776. interface IUIAnimationLoopIterationChangeHandler2 : IUnknown
  777. {
  778. HRESULT OnLoopIterationChanged(
  779. [in] IUIAnimationStoryboard2 *storyboard,
  780. [in] UINT_PTR id,
  781. [in] unsigned int newIterationCount,
  782. [in] unsigned int oldIterationCount
  783. );
  784. };
  785. [
  786. uuid(BAC5F55A-BA7C-414C-B599-FBF850F553C6),
  787. helpstring("IUIAnimationStoryboardEventHandler Interface")
  788. ]
  789. interface IUIAnimationStoryboardEventHandler2 : IUnknown
  790. {
  791. HRESULT OnStoryboardStatusChanged(
  792. [in] IUIAnimationStoryboard2 *storyboard,
  793. [in] UI_ANIMATION_STORYBOARD_STATUS newStatus,
  794. [in] UI_ANIMATION_STORYBOARD_STATUS previousStatus
  795. );
  796. HRESULT OnStoryboardUpdated(
  797. [in] IUIAnimationStoryboard2 *storyboard
  798. );
  799. };
  800. [
  801. uuid(63ACC8D2-6EAE-4BB0-B879-586DD8CFBE42),
  802. helpstring("IUIAnimationVariableChangeHandler2 Interface")
  803. ]
  804. interface IUIAnimationVariableChangeHandler2 : IUnknown
  805. {
  806. HRESULT OnValueChanged(
  807. [in] IUIAnimationStoryboard2 *storyboard,
  808. [in] IUIAnimationVariable2 *variable,
  809. [in] double *newValue,
  810. [in] double *previousValue,
  811. [in] unsigned int cDimension
  812. );
  813. };
  814. [
  815. uuid(829B6CF1-4F3A-4412-AE09-B243EB4C6B58),
  816. helpstring("IUIAnimationVariableIntegerChangeHandler2 Interface")
  817. ]
  818. interface IUIAnimationVariableIntegerChangeHandler2 : IUnknown
  819. {
  820. HRESULT OnIntegerValueChanged(
  821. [in] IUIAnimationStoryboard2 *storyboard,
  822. [in] IUIAnimationVariable2 *variable,
  823. [in] int *newValue,
  824. [in] int *previousValue,
  825. [in] unsigned int cDimension
  826. );
  827. };
  828. [
  829. uuid(72895E91-0145-4C21-9192-5AAB40EDDF80),
  830. helpstring("IUIAnimationVariableCurveChangeHandler2 Interface")
  831. ]
  832. interface IUIAnimationVariableCurveChangeHandler2 : IUnknown
  833. {
  834. HRESULT OnCurveChanged(
  835. [in] IUIAnimationVariable2 *variable
  836. );
  837. };
  838. [
  839. uuid(F6E022BA-BFF3-42EC-9033-E073F33E83C3),
  840. helpstring("IUIAnimationManagerEventHandler2 Interface")
  841. ]
  842. interface IUIAnimationManagerEventHandler2 : IUnknown
  843. {
  844. HRESULT OnManagerStatusChanged(
  845. [in] UI_ANIMATION_MANAGER_STATUS newStatus,
  846. [in] UI_ANIMATION_MANAGER_STATUS previousStatus
  847. );
  848. };
  849. [
  850. uuid(5B6D7A37-4621-467C-8B05-70131DE62DDB),
  851. helpstring("IUIAnimationPriorityComparison2 Interface")
  852. ]
  853. interface IUIAnimationPriorityComparison2 : IUnknown
  854. {
  855. HRESULT HasPriority(
  856. [in] IUIAnimationStoryboard2 *scheduledStoryboard,
  857. [in] IUIAnimationStoryboard2 *newStoryboard,
  858. [in] UI_ANIMATION_PRIORITY_EFFECT priorityEffect
  859. );
  860. };
  861. [
  862. uuid(CA5A14B1-D24F-48B8-8FE4-C78169BA954E),
  863. helpstring("IUIAnimationTransitionLibrary Interface")
  864. ]
  865. interface IUIAnimationTransitionLibrary : IUnknown
  866. {
  867. HRESULT CreateInstantaneousTransition(
  868. [in] double finalValue,
  869. [out, retval] IUIAnimationTransition **transition
  870. );
  871. HRESULT CreateConstantTransition(
  872. [in] double duration,
  873. [out, retval] IUIAnimationTransition **transition
  874. );
  875. HRESULT CreateDiscreteTransition(
  876. [in] double delay,
  877. [in] double finalValue,
  878. [in] double hold,
  879. [out, retval] IUIAnimationTransition **transition
  880. );
  881. HRESULT CreateLinearTransition(
  882. [in] double duration,
  883. [in] double finalValue,
  884. [out, retval] IUIAnimationTransition **transition
  885. );
  886. HRESULT CreateLinearTransitionFromSpeed(
  887. [in] double speed,
  888. [in] double finalValue,
  889. [out, retval] IUIAnimationTransition **transition
  890. );
  891. HRESULT CreateSinusoidalTransitionFromVelocity(
  892. [in] double duration,
  893. [in] double period,
  894. [out, retval] IUIAnimationTransition **transition
  895. );
  896. HRESULT CreateSinusoidalTransitionFromRange(
  897. [in] double duration,
  898. [in] double minimumValue,
  899. [in] double maximumValue,
  900. [in] double period,
  901. [in] UI_ANIMATION_SLOPE slope,
  902. [out, retval] IUIAnimationTransition **transition
  903. );
  904. HRESULT CreateAccelerateDecelerateTransition(
  905. [in] double duration,
  906. [in] double finalValue,
  907. [in] double accelerationRatio,
  908. [in] double decelerationRatio,
  909. [out, retval] IUIAnimationTransition **transition
  910. );
  911. HRESULT CreateReversalTransition(
  912. [in] double duration,
  913. [out, retval] IUIAnimationTransition **transition
  914. );
  915. HRESULT CreateCubicTransition(
  916. [in] double duration,
  917. [in] double finalValue,
  918. [in] double finalVelocity,
  919. [out, retval] IUIAnimationTransition **transition
  920. );
  921. HRESULT CreateSmoothStopTransition(
  922. [in] double maximumDuration,
  923. [in] double finalValue,
  924. [out, retval] IUIAnimationTransition **transition
  925. );
  926. HRESULT CreateParabolicTransitionFromAcceleration(
  927. [in] double finalValue,
  928. [in] double finalVelocity,
  929. [in] double acceleration,
  930. [out, retval] IUIAnimationTransition **transition
  931. );
  932. };
  933. [
  934. uuid(03CFAE53-9580-4EE3-B363-2ECE51B4AF6A),
  935. helpstring("IUIAnimationTransitionLibrary2 Interface")
  936. ]
  937. interface IUIAnimationTransitionLibrary2 : IUnknown
  938. {
  939. HRESULT CreateInstantaneousTransition(
  940. [in] double finalValue,
  941. [out, retval] IUIAnimationTransition2 **transition
  942. );
  943. HRESULT CreateInstantaneousVectorTransition(
  944. [in] double *finalValue,
  945. [in] unsigned int cDimension,
  946. [out, retval] IUIAnimationTransition2 **transition
  947. );
  948. HRESULT CreateConstantTransition(
  949. [in] double duration,
  950. [out, retval] IUIAnimationTransition2 **transition
  951. );
  952. HRESULT CreateDiscreteTransition(
  953. [in] double delay,
  954. [in] double finalValue,
  955. [in] double hold,
  956. [out, retval] IUIAnimationTransition2 **transition
  957. );
  958. HRESULT CreateDiscreteVectorTransition(
  959. [in] double delay,
  960. [in] double *finalValue,
  961. [in] unsigned int cDimension,
  962. [in] double hold,
  963. [out, retval] IUIAnimationTransition2 **transition
  964. );
  965. HRESULT CreateLinearTransition(
  966. [in] double duration,
  967. [in] double finalValue,
  968. [out, retval] IUIAnimationTransition2 **transition
  969. );
  970. HRESULT CreateLinearVectorTransition(
  971. [in] double duration,
  972. [in] double *finalValue,
  973. [in] unsigned int cDimension,
  974. [out, retval] IUIAnimationTransition2 **transition
  975. );
  976. HRESULT CreateLinearTransitionFromSpeed(
  977. [in] double speed,
  978. [in] double finalValue,
  979. [out, retval] IUIAnimationTransition2 **transition
  980. );
  981. HRESULT CreateLinearVectorTransitionFromSpeed(
  982. [in] double speed,
  983. [in] double *finalValue,
  984. [in] unsigned int cDimension,
  985. [out, retval] IUIAnimationTransition2 **transition
  986. );
  987. HRESULT CreateSinusoidalTransitionFromVelocity(
  988. [in] double duration,
  989. [in] double period,
  990. [out, retval] IUIAnimationTransition2 **transition
  991. );
  992. HRESULT CreateSinusoidalTransitionFromRange(
  993. [in] double duration,
  994. [in] double minimumValue,
  995. [in] double maximumValue,
  996. [in] double period,
  997. [in] UI_ANIMATION_SLOPE slope,
  998. [out, retval] IUIAnimationTransition2 **transition
  999. );
  1000. HRESULT CreateAccelerateDecelerateTransition(
  1001. [in] double duration,
  1002. [in] double finalValue,
  1003. [in] double accelerationRatio,
  1004. [in] double decelerationRatio,
  1005. [out, retval] IUIAnimationTransition2 **transition
  1006. );
  1007. HRESULT CreateReversalTransition(
  1008. [in] double duration,
  1009. [out, retval] IUIAnimationTransition2 **transition
  1010. );
  1011. HRESULT CreateCubicTransition(
  1012. [in] double duration,
  1013. [in] double finalValue,
  1014. [in] double finalVelocity,
  1015. [out, retval] IUIAnimationTransition2 **transition
  1016. );
  1017. HRESULT CreateCubicVectorTransition(
  1018. [in] double duration,
  1019. [in] double *finalValue,
  1020. [in] double *finalVelocity,
  1021. [in] unsigned int cDimension,
  1022. [out, retval] IUIAnimationTransition2 **transition
  1023. );
  1024. HRESULT CreateSmoothStopTransition(
  1025. [in] double maximumDuration,
  1026. [in] double finalValue,
  1027. [out, retval] IUIAnimationTransition2 **transition
  1028. );
  1029. HRESULT CreateParabolicTransitionFromAcceleration(
  1030. [in] double finalValue,
  1031. [in] double finalVelocity,
  1032. [in] double acceleration,
  1033. [out, retval] IUIAnimationTransition2 **transition
  1034. );
  1035. HRESULT CreateCubicBezierLinearTransition(
  1036. [in] double duration,
  1037. [in] double finalValue,
  1038. [in] double x1,
  1039. [in] double y1,
  1040. [in] double x2,
  1041. [in] double y2,
  1042. [out] IUIAnimationTransition2 **ppTransition
  1043. );
  1044. HRESULT CreateCubicBezierLinearVectorTransition(
  1045. [in] double duration,
  1046. [in] double *finalValue,
  1047. [in] unsigned int cDimension,
  1048. [in] double x1,
  1049. [in] double y1,
  1050. [in] double x2,
  1051. [in] double y2,
  1052. [out] IUIAnimationTransition2 **ppTransition
  1053. );
  1054. };
  1055. [
  1056. uuid(FCD91E03-3E3B-45AD-BBB1-6DFC8153743D),
  1057. helpstring("IUIAnimationTransitionFactory Interface")
  1058. ]
  1059. interface IUIAnimationTransitionFactory : IUnknown
  1060. {
  1061. HRESULT CreateTransition(
  1062. [in] IUIAnimationInterpolator *interpolator,
  1063. [out, retval] IUIAnimationTransition **transition
  1064. );
  1065. };
  1066. [
  1067. uuid(7815CBBA-DDF7-478C-A46C-7B6C738B7978),
  1068. helpstring("IUIAnimationInterpolator Interface")
  1069. ]
  1070. interface IUIAnimationInterpolator : IUnknown
  1071. {
  1072. HRESULT SetInitialValueAndVelocity(
  1073. [in] double initialValue,
  1074. [in] double initialVelocity
  1075. );
  1076. HRESULT SetDuration(
  1077. [in] double duration
  1078. );
  1079. HRESULT GetDuration(
  1080. [out, retval] double *duration
  1081. );
  1082. HRESULT GetFinalValue(
  1083. [out, retval] double *value
  1084. );
  1085. HRESULT InterpolateValue(
  1086. [in] double offset,
  1087. [out, retval] double *value
  1088. );
  1089. HRESULT InterpolateVelocity(
  1090. [in] double offset,
  1091. [out, retval] double *velocity
  1092. );
  1093. HRESULT GetDependencies(
  1094. [out] UI_ANIMATION_DEPENDENCIES *initialValueDependencies,
  1095. [out] UI_ANIMATION_DEPENDENCIES *initialVelocityDependencies,
  1096. [out] UI_ANIMATION_DEPENDENCIES *durationDependencies
  1097. );
  1098. };
  1099. [
  1100. uuid(937D4916-C1A6-42D5-88D8-30344D6EFE31),
  1101. helpstring("IUIAnimationTransitionFactory2 Interface")
  1102. ]
  1103. interface IUIAnimationTransitionFactory2 : IUnknown
  1104. {
  1105. HRESULT CreateTransition(
  1106. [in] IUIAnimationInterpolator2 *interpolator,
  1107. [out, retval] IUIAnimationTransition2 **transition
  1108. );
  1109. };
  1110. [
  1111. uuid(EA76AFF8-EA22-4A23-A0EF-A6A966703518),
  1112. helpstring("IUIAnimationInterpolator2 Interface")
  1113. ]
  1114. interface IUIAnimationInterpolator2 : IUnknown
  1115. {
  1116. HRESULT GetDimension(
  1117. [out, retval] unsigned int *dimension
  1118. );
  1119. HRESULT SetInitialValueAndVelocity(
  1120. [in] double *initialValue,
  1121. [in] double *initialVelocity,
  1122. [in] unsigned int cDimension
  1123. );
  1124. HRESULT SetDuration(
  1125. [in] double duration
  1126. );
  1127. HRESULT GetDuration(
  1128. [out, retval] double *duration
  1129. );
  1130. HRESULT GetFinalValue(
  1131. [out] double *value,
  1132. [in] unsigned int cDimension
  1133. );
  1134. HRESULT InterpolateValue(
  1135. [in] double offset,
  1136. [out] double *value,
  1137. [in] unsigned int cDimension
  1138. );
  1139. HRESULT InterpolateVelocity(
  1140. [in] double offset,
  1141. [out] double *velocity,
  1142. [in] unsigned int cDimension
  1143. );
  1144. HRESULT GetPrimitiveInterpolation(
  1145. [in] IUIAnimationPrimitiveInterpolation *interpolation,
  1146. [in] unsigned int cDimension
  1147. );
  1148. HRESULT GetDependencies(
  1149. [out] UI_ANIMATION_DEPENDENCIES *initialValueDependencies,
  1150. [out] UI_ANIMATION_DEPENDENCIES *initialVelocityDependencies,
  1151. [out] UI_ANIMATION_DEPENDENCIES *durationDependencies
  1152. );
  1153. };
  1154. [
  1155. uuid(BAB20D63-4361-45DA-A24F-AB8508846B5B),
  1156. helpstring("IUIAnimationPrimitiveInterpolation Interface")
  1157. ]
  1158. interface IUIAnimationPrimitiveInterpolation : IUnknown
  1159. {
  1160. HRESULT AddCubic(
  1161. [in] unsigned int dimension,
  1162. [in] double beginOffset,
  1163. [in] float constantCoefficient,
  1164. [in] float linearCoefficient,
  1165. [in] float quadraticCoefficient,
  1166. [in] float cubicCoefficient
  1167. );
  1168. HRESULT AddSinusoidal(
  1169. [in] unsigned int dimension,
  1170. [in] double beginOffset,
  1171. [in] float bias,
  1172. [in] float amplitude,
  1173. [in] float frequency,
  1174. [in] float phase
  1175. );
  1176. };
  1177. [
  1178. uuid(6B0EFAD1-A053-41D6-9085-33A689144665),
  1179. helpstring("IUIAnimationTimer Interface")
  1180. ]
  1181. interface IUIAnimationTimer : IUnknown
  1182. {
  1183. HRESULT SetTimerUpdateHandler(
  1184. [in] IUIAnimationTimerUpdateHandler *updateHandler,
  1185. [in] UI_ANIMATION_IDLE_BEHAVIOR idleBehavior
  1186. );
  1187. HRESULT SetTimerEventHandler(
  1188. [in] IUIAnimationTimerEventHandler *handler
  1189. );
  1190. HRESULT Enable(void);
  1191. HRESULT Disable(void);
  1192. HRESULT IsEnabled(void);
  1193. HRESULT GetTime(
  1194. [out] double *seconds
  1195. );
  1196. HRESULT SetFrameRateThreshold(
  1197. [in] unsigned int framesPerSecond
  1198. );
  1199. };
  1200. [
  1201. uuid(195509B7-5D5E-4E3E-B278-EE3759B367AD),
  1202. helpstring("IUIAnimationTimerUpdateHandler Interface")
  1203. ]
  1204. interface IUIAnimationTimerUpdateHandler : IUnknown
  1205. {
  1206. HRESULT OnUpdate(
  1207. [in] double timeNow,
  1208. [out, retval] UI_ANIMATION_UPDATE_RESULT *result
  1209. );
  1210. HRESULT SetTimerClientEventHandler(
  1211. [in] IUIAnimationTimerClientEventHandler *handler
  1212. );
  1213. HRESULT ClearTimerClientEventHandler(void);
  1214. };
  1215. [
  1216. uuid(BEDB4DB6-94FA-4BFB-A47F-EF2D9E408C25),
  1217. helpstring("IUIAnimationTimerClientEventHandler Interface")
  1218. ]
  1219. interface IUIAnimationTimerClientEventHandler : IUnknown
  1220. {
  1221. HRESULT OnTimerClientStatusChanged(
  1222. [in] UI_ANIMATION_TIMER_CLIENT_STATUS newStatus,
  1223. [in] UI_ANIMATION_TIMER_CLIENT_STATUS previousStatus
  1224. );
  1225. };
  1226. [
  1227. uuid(274A7DEA-D771-4095-ABBD-8DF7ABD23CE3),
  1228. helpstring("IUIAnimationTimerEventHandler Interface")
  1229. ]
  1230. interface IUIAnimationTimerEventHandler : IUnknown
  1231. {
  1232. HRESULT OnPreUpdate(void);
  1233. HRESULT OnPostUpdate(void);
  1234. HRESULT OnRenderingTooSlow(
  1235. [in] UINT32 framesPerSecond
  1236. );
  1237. };