server: Make the fd passing code slightly more portable.
[wine] / include / 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 }