[NTIFS]
[reactos.git] / include / psdk / wuapi.idl
1 /*
2 * Copyright 2008 Hans Leidekker for CodeWeavers
3 *
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.
8 *
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.
13 *
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
17 */
18
19 cpp_quote("DEFINE_GUID(CLSID_AutomaticUpdates, 0xbfe18e9c,0x6d87,0x4450,0xb3,0x7c,0xe0,0x2f,0x0b,0x37,0x38,0x03);")
20 cpp_quote("DEFINE_GUID(CLSID_UpdateSession, 0x4cb43d7f,0x7eee,0x4906,0x86,0x98,0x60,0xda,0x1c,0x38,0xf2,0xfe);")
21
22 import "oaidl.idl";
23
24 interface IAutomaticUpdates;
25 interface IAutomaticUpdatesSettings;
26 interface IDownloadJob;
27 interface IDownloadResult;
28 interface IInstallationJob;
29 interface IInstallationResult;
30 interface ISearchJob;
31 interface ISearchResult;
32 interface IUpdateCollection;
33 interface IUpdateDownloader;
34 interface IUpdateHistoryEntryCollection;
35 interface IUpdateInstaller;
36 interface IUpdateSearcher;
37 interface IUpdateSession;
38 interface IWebProxy;
39
40 typedef [public] enum tagDownloadPriority
41 {
42 dpLow = 1,
43 dpNormal = 2,
44 dpHigh = 3,
45 } DownloadPriority;
46
47 typedef [public] enum tagServerSelection
48 {
49 ssDefault = 0,
50 ssManagedServer = 1,
51 ssWindowsUpdate = 2,
52 ssOthers = 3,
53 } ServerSelection;
54
55 [
56 object,
57 uuid(673425bf-c082-4c7c-bdfd-569464b8e0ce),
58 oleautomation,
59 dual,
60 nonextensible,
61 pointer_default(unique),
62 hidden
63 ]
64 interface IAutomaticUpdates : IDispatch
65 {
66 HRESULT DetectNow();
67 HRESULT Pause();
68 HRESULT Resume();
69 HRESULT ShowSettingsDialog();
70
71 [propget]
72 HRESULT Settings(
73 [out, retval] IAutomaticUpdatesSettings **retval);
74
75 [propget]
76 HRESULT ServiceEnabled(
77 [out, retval] VARIANT_BOOL *retval);
78
79 HRESULT EnableService();
80 }
81
82 [
83 object,
84 uuid(816858a4-260d-4260-933a-2585f1abc76b),
85 oleautomation,
86 dual,
87 nonextensible,
88 pointer_default(unique),
89 ]
90 interface IUpdateSession : IDispatch
91 {
92 [propget]
93 HRESULT ClientApplicationID(
94 [out, retval] BSTR *retval);
95
96 [propput]
97 HRESULT ClientApplicationID(
98 [in] BSTR value);
99
100 [propget]
101 HRESULT ReadOnly(
102 [out, retval] VARIANT_BOOL *retval);
103
104 [propget]
105 HRESULT WebProxy(
106 [out, retval] IWebProxy **retval);
107
108 [propput]
109 HRESULT WebProxy(
110 [in, unique] IWebProxy *value);
111
112 HRESULT CreateUpdateSearcher(
113 [out, retval] IUpdateSearcher **retval);
114
115 HRESULT CreateUpdateDownloader(
116 [out, retval] IUpdateDownloader **retval);
117
118 HRESULT CreateUpdateInstaller(
119 [out, retval] IUpdateInstaller **retval);
120 }
121
122 [
123 object,
124 uuid(8f45abf1-f9ae-4b95-a933-f0f66e5056ea),
125 oleautomation,
126 dual,
127 nonextensible,
128 pointer_default(unique),
129 ]
130 interface IUpdateSearcher : IDispatch
131 {
132 [propget]
133 HRESULT CanAutomaticallyUpgradeService(
134 [out, retval] VARIANT_BOOL *retval);
135
136 [propput]
137 HRESULT CanAutomaticallyUpgradeService(
138 [in] VARIANT_BOOL value);
139
140 [propget]
141 HRESULT ClientApplicationID(
142 [out, retval] BSTR *retval);
143
144 [propput]
145 HRESULT ClientApplicationID(
146 [in] BSTR value);
147
148 [propget]
149 HRESULT IncludePotentiallySupersededUpdates(
150 [out, retval] VARIANT_BOOL *retval);
151
152 [propput]
153 HRESULT IncludePotentiallySupersededUpdates(
154 [in] VARIANT_BOOL value);
155
156 [propget]
157 HRESULT ServerSelection(
158 [out, retval] ServerSelection *retval);
159
160 [propput]
161 HRESULT ServerSelection(
162 [in] ServerSelection value);
163
164 HRESULT BeginSearch(
165 [in] BSTR criteria,
166 [in] IUnknown *onCompleted,
167 [in] VARIANT state,
168 [out, retval] ISearchJob **retval);
169
170 HRESULT EndSearch(
171 [in] ISearchJob *searchJob,
172 [out, retval] ISearchResult **retval);
173
174 HRESULT EscapeString(
175 [in] BSTR unescaped,
176 [out, retval] BSTR *retval);
177
178 HRESULT QueryHistory(
179 [in] LONG startIndex,
180 [in] LONG count,
181 [out, retval] IUpdateHistoryEntryCollection **retval);
182
183 HRESULT Search(
184 [in] BSTR criteria,
185 [out, retval] ISearchResult **retval);
186
187 [propget]
188 HRESULT Online(
189 [out, retval] VARIANT_BOOL *retval);
190
191 [propput]
192 HRESULT Online(
193 [in] VARIANT_BOOL value);
194
195 HRESULT GetTotalHistoryCount(
196 [out, retval] LONG *retval);
197
198 [propget]
199 HRESULT ServiceID(
200 [out, retval] BSTR *retval);
201
202 [propput]
203 HRESULT ServiceID(
204 [in] BSTR value);
205 }
206
207 [
208 object,
209 uuid(68f1c6f9-7ecc-4666-a464-247fe12496c3),
210 oleautomation,
211 dual,
212 nonextensible,
213 pointer_default(unique),
214 hidden
215 ]
216 interface IUpdateDownloader : IDispatch
217 {
218 [propget]
219 HRESULT ClientApplicationID(
220 [out, retval] BSTR *retval);
221
222 [propput]
223 HRESULT ClientApplicationID(
224 [in] BSTR value);
225
226 [propget]
227 HRESULT IsForced(
228 [out, retval] VARIANT_BOOL *retval);
229
230 [propput]
231 HRESULT IsForced(
232 [in] VARIANT_BOOL value);
233
234 [propget]
235 HRESULT Priority(
236 [out, retval] DownloadPriority *retval);
237
238 [propput]
239 HRESULT Priority(
240 [in] DownloadPriority value);
241
242 [propget]
243 HRESULT Updates(
244 [out, retval] IUpdateCollection **retval);
245
246 [propput]
247 HRESULT Updates(
248 [in] IUpdateCollection *value);
249
250 HRESULT BeginDownload(
251 [in] IUnknown *onProgressChanged,
252 [in] IUnknown *onCompleted,
253 [in] VARIANT state,
254 [out, retval] IDownloadJob **retval);
255
256 HRESULT Download(
257 [out, retval] IDownloadResult **retval);
258
259 HRESULT EndDownload(
260 [in] IDownloadJob *value,
261 [out, retval] IDownloadResult **retval);
262 }
263
264 [
265 object,
266 uuid(7b929c68-ccdc-4226-96b1-8724600b54c2),
267 oleautomation,
268 dual,
269 nonextensible,
270 pointer_default(unique),
271 ]
272 interface IUpdateInstaller : IDispatch
273 {
274 [propget]
275 HRESULT ClientApplicationID(
276 [out, retval] BSTR *retval);
277
278 [propput]
279 HRESULT ClientApplicationID(
280 [in] BSTR value);
281
282 [propget]
283 HRESULT IsForced(
284 [out, retval] VARIANT_BOOL *retval);
285
286 [propput]
287 HRESULT IsForced(
288 [in] VARIANT_BOOL value);
289
290 [propget, restricted]
291 HRESULT ParentHwnd(
292 [out, retval] HWND *retval);
293
294 [propput, restricted]
295 HRESULT ParentHwnd(
296 [in, unique] HWND value);
297
298 [propput]
299 HRESULT ParentWindow(
300 [in, unique] IUnknown *value);
301
302 [propget]
303 HRESULT ParentWindow(
304 [out, retval] IUnknown **retval);
305
306 [propget]
307 HRESULT Updates(
308 [out, retval] IUpdateCollection **retval);
309
310 [propput]
311 HRESULT Updates(
312 [in] IUpdateCollection *value);
313
314 HRESULT BeginInstall(
315 [in] IUnknown *onProgressChanged,
316 [in] IUnknown *onCompleted,
317 [in] VARIANT state,
318 [out, retval] IInstallationJob **retval);
319
320 HRESULT BeginUninstall(
321 [in] IUnknown *onProgressChanged,
322 [in] IUnknown *onCompleted,
323 [in] VARIANT state,
324 [out, retval] IInstallationJob **retval);
325
326 HRESULT EndInstall(
327 [in] IInstallationJob *value,
328 [out, retval] IInstallationResult **retval);
329
330 HRESULT EndUninstall(
331 [in] IInstallationJob *value,
332 [out, retval] IInstallationResult **retval);
333
334 HRESULT Install(
335 [out, retval] IInstallationResult **retval);
336
337 HRESULT RunWizard(
338 [in, defaultvalue("")] BSTR dialogTitle,
339 [out, retval] IInstallationResult **retval);
340
341 [propget]
342 HRESULT IsBusy(
343 [out, retval] VARIANT_BOOL *retval);
344
345 HRESULT Uninstall(
346 [out, retval] IInstallationResult **retval);
347
348 [propget]
349 HRESULT AllowSourcePrompts(
350 [out, retval] VARIANT_BOOL *retval);
351
352 [propput]
353 HRESULT AllowSourcePrompts(
354 [in] VARIANT_BOOL value);
355
356 [propget]
357 HRESULT RebootRequiredBeforeInstallation(
358 [out, retval] VARIANT_BOOL *retval);
359 }