shell32: System shellfolders don't support GetDefaultSearchGUID() in recent versions.
[wine.git] / include / uianimation.idl
blob1c17d440a9de713c2653c13a28f411b23c41cae4
1 /*
2 * Copyright 2017 Alistair Leslie-Hughes
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 import "wtypes.idl";
19 import "unknwn.idl";
21 interface IUIAnimationStoryboard;
22 interface IUIAnimationVariable;
24 typedef DOUBLE UI_ANIMATION_SECONDS;
25 typedef struct { int _; } *UI_ANIMATION_KEYFRAME;
27 typedef enum
29 UI_ANIMATION_MANAGER_IDLE,
30 UI_ANIMATION_MANAGER_BUSY
31 } UI_ANIMATION_MANAGER_STATUS;
33 typedef enum
35 UI_ANIMATION_ROUNDING_NEAREST,
36 UI_ANIMATION_ROUNDING_FLOOR,
37 UI_ANIMATION_ROUNDING_CEILING
38 } UI_ANIMATION_ROUNDING_MODE;
40 typedef enum
42 UI_ANIMATION_SCHEDULING_UNEXPECTED_FAILURE,
43 UI_ANIMATION_SCHEDULING_INSUFFICIENT_PRIORITY,
44 UI_ANIMATION_SCHEDULING_ALREADY_SCHEDULED,
45 UI_ANIMATION_SCHEDULING_SUCCEEDED,
46 UI_ANIMATION_SCHEDULING_DEFERRED
47 } UI_ANIMATION_SCHEDULING_RESULT;
49 typedef enum
51 UI_ANIMATION_STORYBOARD_BUILDING,
52 UI_ANIMATION_STORYBOARD_SCHEDULED,
53 UI_ANIMATION_STORYBOARD_CANCELLED,
54 UI_ANIMATION_STORYBOARD_PLAYING,
55 UI_ANIMATION_STORYBOARD_TRUNCATED,
56 UI_ANIMATION_STORYBOARD_FINISHED,
57 UI_ANIMATION_STORYBOARD_READY,
58 UI_ANIMATION_STORYBOARD_INSUFFICIENT_PRIORITY
59 } UI_ANIMATION_STORYBOARD_STATUS;
62 local,
63 object,
64 uuid(783321ed-78a3-4366-b574-6af607a64788),
65 pointer_default(unique)
67 interface IUIAnimationManagerEventHandler : IUnknown
69 HRESULT OnManagerStatusChanged (
70 [in] UI_ANIMATION_MANAGER_STATUS status,
71 [in] UI_ANIMATION_MANAGER_STATUS prev_status);
75 local,
76 object,
77 uuid(6358b7ba-87d2-42d5-bf71-82e919dd5862),
78 pointer_default(unique)
80 interface IUIAnimationVariableChangeHandler : IUnknown
82 HRESULT OnValueChanged (
83 [in] IUIAnimationStoryboard *storyboard,
84 [in] IUIAnimationVariable *variable,
85 [in] DOUBLE value,
86 [in] DOUBLE prev_value);
90 local,
91 object,
92 uuid(bb3e1550-356e-44b0-99da-85ac6017865e),
93 pointer_default(unique)
95 interface IUIAnimationVariableIntegerChangeHandler : IUnknown
97 HRESULT OnIntegerValueChanged (
98 [in] IUIAnimationStoryboard *storyboard,
99 [in] IUIAnimationVariable *variable,
100 [in] INT32 value,
101 [in] INT32 prev_value);
105 local,
106 object,
107 uuid(3d5c9008-ec7c-4364-9f8a-9af3c58cbae6),
108 pointer_default(unique)
110 interface IUIAnimationStoryboardEventHandler : IUnknown
112 HRESULT OnStoryboardStatusChanged (
113 [in] IUIAnimationStoryboard *storyboard,
114 [in] UI_ANIMATION_STORYBOARD_STATUS status,
115 [in] UI_ANIMATION_STORYBOARD_STATUS prev_status);
117 HRESULT OnStoryboardUpdated ([in] IUIAnimationStoryboard *storyboard);
121 local,
122 object,
123 uuid(dc6ce252-f731-41cf-b610-614b6ca049ad),
124 pointer_default(unique)
126 interface IUIAnimationTransition : IUnknown
128 HRESULT SetInitialValue ([in] DOUBLE value);
130 HRESULT SetInitialVelocity ([in] DOUBLE velocity);
132 HRESULT IsDurationKnown ();
134 HRESULT GetDuration ([out, retval] UI_ANIMATION_SECONDS *duration);
138 local,
139 object,
140 uuid(8ceeb155-2849-4ce5-9448-91ff70e1e4d9),
141 pointer_default(unique)
143 interface IUIAnimationVariable : IUnknown
145 HRESULT GetValue ([out, retval] DOUBLE *value);
147 HRESULT GetFinalValue ([out, retval] DOUBLE *value);
149 HRESULT GetPreviousValue ([out, retval] DOUBLE *value);
151 HRESULT GetIntegerValue ([out, retval] INT32 *value);
153 HRESULT GetFinalIntegerValue ([out, retval] INT32 *value);
155 HRESULT GetPreviousIntegerValue ([out, retval] INT32 *value);
157 HRESULT GetCurrentStoryboard ([out, retval] IUIAnimationStoryboard **storyboard);
159 HRESULT SetLowerBound ([in] DOUBLE bound);
161 HRESULT SetUpperBound ([in] DOUBLE bound);
163 HRESULT SetRoundingMode ([in] UI_ANIMATION_ROUNDING_MODE mode);
165 HRESULT SetTag (
166 [in] IUnknown *object,
167 [in] UINT32 id);
169 HRESULT GetTag (
170 [out] IUnknown **object,
171 [out] UINT32 *id);
173 HRESULT SetVariableChangeHandler ([in, unique] IUIAnimationVariableChangeHandler *handler);
175 HRESULT SetVariableIntegerChangeHandler ([in, unique] IUIAnimationVariableIntegerChangeHandler *handler);
179 local,
180 object,
181 uuid(a8ff128f-9bf9-4af1-9e67-e5e410defb84),
182 pointer_default(unique)
184 interface IUIAnimationStoryboard : IUnknown
186 HRESULT AddTransition (
187 [in] IUIAnimationVariable *variable,
188 [in] IUIAnimationTransition *transition);
190 HRESULT AddKeyframeAtOffset (
191 [in] UI_ANIMATION_KEYFRAME existingframe,
192 [in] UI_ANIMATION_SECONDS offset,
193 [out, retval] UI_ANIMATION_KEYFRAME *keyframe);
195 HRESULT AddKeyframeAfterTransition (
196 [in] IUIAnimationTransition *transition,
197 [out, retval] UI_ANIMATION_KEYFRAME *keyframe);
199 HRESULT AddTransitionAtKeyframe (
200 [in] IUIAnimationVariable *variable,
201 [in] IUIAnimationTransition *transition,
202 [in] UI_ANIMATION_KEYFRAME start_key);
204 HRESULT AddTransitionBetweenKeyframes (
205 [in] IUIAnimationVariable *variable,
206 [in] IUIAnimationTransition *transition,
207 [in] UI_ANIMATION_KEYFRAME start_key,
208 [in] UI_ANIMATION_KEYFRAME end_key);
210 HRESULT RepeatBetweenKeyframes (
211 [in] UI_ANIMATION_KEYFRAME start_key,
212 [in] UI_ANIMATION_KEYFRAME end_key,
213 [in] INT32 count);
215 HRESULT HoldVariable ([in] IUIAnimationVariable *variable);
217 HRESULT SetLongestAcceptableDelay ([in] UI_ANIMATION_SECONDS delay);
219 HRESULT Schedule (
220 [in] UI_ANIMATION_SECONDS now,
221 [out, defaultvalue(0)] UI_ANIMATION_SCHEDULING_RESULT *result);
223 HRESULT Conclude ();
225 HRESULT Finish ([in] UI_ANIMATION_SECONDS deadline);
227 HRESULT Abandon ();
229 HRESULT SetTag(
230 [in, unique] IUnknown *object,
231 [in] UINT32 id);
233 HRESULT GetTag (
234 [out] IUnknown **object,
235 [out] UINT32 *id);
237 HRESULT GetStatus ([out, retval] UI_ANIMATION_STORYBOARD_STATUS *status);
239 HRESULT GetElapsedTime ([out] UI_ANIMATION_SECONDS *elapsed);
241 HRESULT SetStoryboardEventHandler ([in, unique] IUIAnimationStoryboardEventHandler *handler);