ReactOS 0.4.16-dev-91-g764881a
inseng.idl
Go to the documentation of this file.
1/*
2 * Copyright 2015 Jacek Caban for CodeWeavers
3 * Copyright 2016 Michael Müller
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 */
19
20#ifndef __WIDL__
21#define threading(model)
22#endif
23
24cpp_quote("#if 0")
25import "unknwn.idl";
26cpp_quote("#endif")
27
28interface IStream;
29
30cpp_quote("#define MAX_ID_LENGTH 48")
31cpp_quote("#define MAX_DISPLAYNAME_LENGTH 128")
32
33cpp_quote("#define URLF_DEFAULT 0x0")
34cpp_quote("#define URLF_EXTRACT 0x1")
35cpp_quote("#define URLF_RELATIVEURL 0x2")
36cpp_quote("#define URLF_DELETE_AFTER_EXTRACT 0x4")
37
38cpp_quote("#define ENGINESTATUS_NOTREADY 0x0")
39cpp_quote("#define ENGINESTATUS_LOADING 0x1")
40cpp_quote("#define ENGINESTATUS_INSTALLING 0x2")
41cpp_quote("#define ENGINESTATUS_READY 0x3")
42
43cpp_quote("#define SETACTION_NONE 0x0")
44cpp_quote("#define SETACTION_INSTALL 0x1")
45
46cpp_quote("#define INSTALLOPTIONS_NOCACHE 0x01")
47cpp_quote("#define INSTALLOPTIONS_DOWNLOAD 0x02")
48cpp_quote("#define INSTALLOPTIONS_INSTALL 0x04")
49cpp_quote("#define INSTALLOPTIONS_DONTALLOWXPLATFORM 0x08")
50cpp_quote("#define INSTALLOPTIONS_FORCEDEPENDENCIES 0x10")
51
52cpp_quote("#define EXECUTEJOB_SILENT 0x01")
53cpp_quote("#define EXECUTEJOB_DELETE_JOB 0x02")
54cpp_quote("#define EXECUTEJOB_VERIFYFILES 0x08")
55cpp_quote("#define EXECUTEJOB_IGNORETRUST 0x10")
56cpp_quote("#define EXECUTEJOB_IGNOREDOWNLOADERROR 0x20")
57cpp_quote("#define EXECUTEJOB_DONTALLOWCANCEL 0x40")
58
59cpp_quote("#define ENGINEPROBLEM_DOWNLOADFAIL 0x1")
60
61cpp_quote("#define PLATFORM_WIN95 0x01")
62cpp_quote("#define PLATFORM_WIN98 0x02")
63cpp_quote("#define PLATFORM_NT4 0x04")
64cpp_quote("#define PLATFORM_NT5 0x08")
65cpp_quote("#define PLATFORM_NT4ALPHA 0x10")
66cpp_quote("#define PLATFORM_NT5ALPHA 0x20")
67cpp_quote("#define PLATFORM_MILLEN 0x40")
68cpp_quote("#define PLATFORM_ALL (PLATFORM_WIN95 | PLATFORM_WIN98 | PLATFORM_NT4 | PLATFORM_NT5 | PLATFORM_NT4ALPHA | PLATFORM_NT5ALPHA | PLATFORM_MILLEN)")
69
70enum InstallStatus
71{
72 INSTALLSTATUS_INITIALIZING,
73 INSTALLSTATUS_DEPENDENCY,
74 INSTALLSTATUS_DOWNLOADING,
75 INSTALLSTATUS_COPYING,
76 INSTALLSTATUS_RETRYING,
77 INSTALLSTATUS_CHECKINGTRUST,
78 INSTALLSTATUS_EXTRACTING,
79 INSTALLSTATUS_RUNNING,
80 INSTALLSTATUS_FINISHED,
81 INSTALLSTATUS_DOWNLOADFINISHED,
82};
83
84enum ComponentAction
85{
86 ActionNone,
87 ActionInstall,
88 ActionUninstall,
89};
90
91[
92 object,
93 local,
94 pointer_default(unique)
95]
96interface ICifComponent
97{
98 HRESULT GetID(char *id, DWORD size);
99 HRESULT GetGUID(char *guid, DWORD size);
100 HRESULT GetDescription(char *desc, DWORD size);
101 HRESULT GetDetails(char *details, DWORD size);
102 HRESULT GetUrl(UINT index, char *url, DWORD size, DWORD *flags);
103 HRESULT GetFileExtractList(UINT index, char *extract, DWORD size);
104 HRESULT GetUrlCheckRange(UINT index, DWORD *min, DWORD *max);
105 HRESULT GetCommand(UINT index, char *cmd, DWORD cmd_size, char *switches, DWORD switch_size, DWORD *type);
106 HRESULT GetVersion(DWORD *version, DWORD *build);
107 HRESULT GetLocale(char *pszLocale, DWORD size);
108 HRESULT GetUninstallKey(char *key, DWORD size);
109 HRESULT GetInstalledSize(DWORD *win, DWORD *app);
110 DWORD GetDownloadSize();
111 DWORD GetExtractSize();
112 HRESULT GetSuccessKey(char *key, DWORD size);
113 HRESULT GetProgressKeys(char *progress, DWORD progress_size, char *cancel, DWORD cancel_size);
114 HRESULT IsActiveSetupAware();
115 HRESULT IsRebootRequired();
116 HRESULT RequiresAdminRights();
117 DWORD GetPriority();
118 HRESULT GetDependency(UINT index, char *id, DWORD buf, char *type, DWORD *ver, DWORD *build);
119 DWORD GetPlatform();
120 HRESULT GetMode(UINT index, char *mode, DWORD size);
121 HRESULT GetGroup(char *id, DWORD size);
122 HRESULT IsUIVisible();
123 HRESULT GetPatchID(char *id, DWORD size);
124 HRESULT GetDetVersion(char *dll, DWORD dll_size, char *entry, DWORD entry_size);
125 HRESULT GetTreatAsOneComponents(UINT index, char *id, DWORD buf);
126 HRESULT GetCustomData(char *key, char *data, DWORD size);
127 DWORD IsComponentInstalled();
128 HRESULT IsComponentDownloaded();
129 DWORD IsThisVersionInstalled(DWORD version, DWORD build, DWORD *ret_version, DWORD *ret_build);
130 DWORD GetInstallQueueState();
131 HRESULT SetInstallQueueState(DWORD state);
132 DWORD GetActualDownloadSize();
133 DWORD GetCurrentPriority();
134 HRESULT SetCurrentPriority(DWORD priority);
135};
136
137[
138 object,
139 local,
140 pointer_default(unique)
141]
142interface ICifRWComponent : ICifComponent
143{
144 HRESULT SetGUID(const char *guid);
145 HRESULT SetDescription(const char *desc);
146 HRESULT SetUrl(UINT index, const char *url, DWORD url_flags);
147 HRESULT SetCommand(UINT index, const char *cmd, const char *switches, DWORD type);
148 HRESULT SetVersion(const char *version);
149 HRESULT SetUninstallKey(const char *key);
150 HRESULT SetInstalledSize(DWORD win, DWORD app);
151 HRESULT SetDownloadSize(DWORD size);
152 HRESULT SetExtractSize(DWORD size);
153 HRESULT DeleteDependency(const char *id, char type);
154 HRESULT AddDependency(const char *id, char type);
155 HRESULT SetUIVisible(BOOL visible);
156 HRESULT SetGroup(const char *id);
157 HRESULT SetPlatform(DWORD platform);
158 HRESULT SetPriority(DWORD priority);
159 HRESULT SetReboot(BOOL reboot);
160 HRESULT DeleteFromModes(const char *mode);
161 HRESULT AddToMode(const char *mode);
162 HRESULT SetModes(const char *mode);
163 HRESULT CopyComponent(const char *ciffile);
164 HRESULT AddToTreatAsOne(const char *compid);
165 HRESULT SetDetails(const char *desc);
166};
167
168[
169 object,
170 local,
171 pointer_default(unique)
172]
173interface IEnumCifComponents : IUnknown
174{
175 HRESULT Next(ICifComponent **);
176 HRESULT Reset();
177};
178
179[
180 object,
181 local,
182 pointer_default(unique)
183]
184interface ICifGroup
185{
186 HRESULT GetID(char *id, DWORD size);
187 HRESULT GetDescription(char *desc, DWORD size);
188 DWORD GetPriority();
189
190 HRESULT EnumComponents(IEnumCifComponents **, DWORD filter, void *pv);
191 DWORD GetCurrentPriority();
192};
193
194[
195 object,
196 local,
197 pointer_default(unique)
198]
199interface ICifRWGroup : ICifGroup
200{
201 HRESULT SetDescription(const char *desc);
202 HRESULT SetPriority(DWORD priority);
203 HRESULT SetDetails(const char *details);
204};
205
206[
207 object,
208 local,
209 pointer_default(unique)
210]
211interface IEnumCifGroups : IUnknown
212{
213 HRESULT Next(ICifGroup **);
214 HRESULT Reset();
215};
216
217[
218 object,
219 local,
220 pointer_default(unique)
221]
222interface ICifMode
223{
224 HRESULT GetID(char *id, DWORD size);
225 HRESULT GetDescription(char *desc, DWORD size);
226 HRESULT GetDetails(char *details, DWORD size);
227
228 HRESULT EnumComponents(IEnumCifComponents **, DWORD filter, void *pv);
229};
230
231[
232 object,
233 local,
234 pointer_default(unique)
235]
236interface ICifRWMode : ICifMode
237{
238 HRESULT SetDescription(const char *desc);
239 HRESULT SetDetails(const char *details);
240};
241
242[
243 object,
244 local,
245 pointer_default(unique)
246]
247interface IEnumCifModes : IUnknown
248{
249 HRESULT Next(ICifMode **);
250 HRESULT Reset();
251};
252
253typedef struct
254{
255 DWORD cbSize;
256 DWORD dwInstallSize;
257 DWORD dwWinDriveSize;
258 DWORD dwDownloadSize;
259 DWORD dwDependancySize;
260 DWORD dwInstallDriveReq;
261 DWORD dwWinDriveReq;
262 DWORD dwDownloadDriveReq;
263 char chWinDrive;
264 char chInstallDrive;
265 char chDownloadDrive;
266 DWORD dwTotalDownloadSize;
267} COMPONENT_SIZES;
268
269typedef struct
270{
271 DWORD cbSize;
272 DWORD dwDownloadKBRemaining;
273 DWORD dwInstallKBRemaining;
274 DWORD dwDownloadSecsRemaining;
275 DWORD dwInstallSecsRemaining;
276} INSTALLPROGRESS;
277
278[
279 uuid(6e449688-c509-11cf-aafa-00aa00b6015c),
280 local
281]
282interface ICifFile : IUnknown
283{
284 HRESULT EnumComponents(IEnumCifComponents **enum_components, DWORD filter, void *pv);
285 HRESULT FindComponent(const char *id, ICifComponent **p);
286 HRESULT EnumGroups(IEnumCifGroups **enum_groups, DWORD filter, void *pv);
287 HRESULT FindGroup(const char *id, ICifGroup **p);
288 HRESULT EnumModes(IEnumCifModes **cuf_modes, DWORD filter, void *pv);
289 HRESULT FindMode(const char *id, ICifMode **p);
290 HRESULT GetDescription(char *desc, DWORD size);
291 HRESULT GetDetDlls(char *dlls, DWORD size);
292}
293
294[
295 object,
296 local,
297 pointer_default(unique)
298]
299interface ICifRWFile : ICifFile
300{
301 HRESULT SetDescription(const char *desc);
302 HRESULT CreateComponent(const char *id, ICifRWComponent **p);
303 HRESULT CreateGroup(const char *id, ICifRWGroup **p);
304 HRESULT CreateMode(const char *id, ICifRWMode **p);
305 HRESULT DeleteComponent(const char *id);
306 HRESULT DeleteGroup(const char *id);
307 HRESULT DeleteMode(const char *id);
308 HRESULT Flush();
309}
310
311[
312 uuid(6e449685-c509-11cf-aafa-00aa00b6015c),
313 local
314]
315interface IInstallEngineCallback : IUnknown
316{
317 HRESULT OnEngineStatusChange(DWORD status, DWORD substatus);
318 HRESULT OnStartInstall(DWORD dl_size, DWORD install_size);
319 HRESULT OnStartComponent(const char *id, DWORD dl_size, DWORD install_size, const char *string);
320 HRESULT OnComponentProgress(const char *id, DWORD phrase, const char *string,
321 const char *msg_string, ULONG progress, ULONG max);
322 HRESULT OnStopComponent(const char *id, HRESULT error, DWORD phrase, const char *string, DWORD status);
323 HRESULT OnStopInstall(HRESULT error, const char *error_string, DWORD status);
324 HRESULT OnEngineProblem(DWORD problem, DWORD *action);
325}
326
327[
328 uuid(6e449684-c509-11cf-aafa-00aa00b6015c),
329 local
330]
331interface IInstallEngine : IUnknown
332{
333 HRESULT GetEngineStatus(DWORD *status);
334 HRESULT SetCifFile(const char *cab_name, const char *cif_name);
335 HRESULT DownloadComponents(DWORD flags);
336 HRESULT InstallComponents(DWORD flags);
337 HRESULT EnumInstallIDs(UINT index, char **id);
338 HRESULT EnumDownloadIDs(UINT index, char **id);
339 HRESULT IsComponentInstalled(const char *id, DWORD *status);
340 HRESULT RegisterInstallEngineCallback(IInstallEngineCallback *callback);
341 HRESULT UnregisterInstallEngineCallback();
342 HRESULT SetAction(const char *id, DWORD action, DWORD priority);
343 HRESULT GetSizes(const char *id, COMPONENT_SIZES *sizes);
344 HRESULT LaunchExtraCommand(const char *inf_name, const char *section);
345 HRESULT GetDisplayName(const char *id, const char *name);
346 HRESULT SetBaseUrl(const char *base_name);
347 HRESULT SetDownloadDir(const char *download_dir);
348 HRESULT SetInstallDrive(char drive);
349 HRESULT SetInstallOptions(DWORD flags);
350 HRESULT SetHWND(HWND hwnd);
351 HRESULT SetIStream(IStream *stream);
352 HRESULT Abort(DWORD flags);
353 HRESULT Suspend();
354 HRESULT Resume();
355}
356
357[
358 uuid(6e449689-c509-11cf-aafa-00aa00b6015c),
359 local
360]
361interface IInstallEngine2 : IInstallEngine
362{
363 HRESULT SetLocalCif(const char *cif);
364 HRESULT GetICifFile(ICifFile **cif_file);
365}
366
367[
368 uuid(6e449687-c509-11cf-aafa-00aa00b6015c),
369 local
370]
371interface IInstallEngineTiming : IUnknown
372{
373 HRESULT GetRates(DWORD *download, DWORD *install);
374 HRESULT GetInstallProgress(INSTALLPROGRESS *progress);
375}
376
377[
378 helpstring("Microsoft Active Setup Engine"),
379 threading(apartment),
380 uuid(6e449686-c509-11cf-aafa-00aa00b6015c)
381]
382coclass InstallEngine { }
383
384[
385 helpstring("Download Site Manager"),
386 threading(apartment),
387 uuid(bfc880f1-7484-11d0-8309-00aa00b6015c)
388]
389coclass DownloadSiteMgr { }
390
391cpp_quote("HRESULT WINAPI GetICifFileFromFile(ICifFile **, const char *);")
392cpp_quote("HRESULT WINAPI GetICifRWFileFromFile(ICifRWFile **, const char *);")
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
Definition: d3d10.idl:491