[PSDK] Add CLSID_ISFBand, IShellFolderBand and IFolderBandPriv
[reactos.git] / sdk / include / psdk / inseng.idl
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
24 cpp_quote("#if 0")
25 import "unknwn.idl";
26 cpp_quote("#endif")
27
28 interface IStream;
29
30 cpp_quote("#define MAX_ID_LENGTH 48")
31 cpp_quote("#define MAX_DISPLAYNAME_LENGTH 128")
32
33 cpp_quote("#define URLF_DEFAULT 0x0")
34 cpp_quote("#define URLF_EXTRACT 0x1")
35 cpp_quote("#define URLF_RELATIVEURL 0x2")
36 cpp_quote("#define URLF_DELETE_AFTER_EXTRACT 0x4")
37
38 cpp_quote("#define ENGINESTATUS_NOTREADY 0x0")
39 cpp_quote("#define ENGINESTATUS_LOADING 0x1")
40 cpp_quote("#define ENGINESTATUS_INSTALLING 0x2")
41 cpp_quote("#define ENGINESTATUS_READY 0x3")
42
43 cpp_quote("#define SETACTION_NONE 0x0")
44 cpp_quote("#define SETACTION_INSTALL 0x1")
45
46 cpp_quote("#define INSTALLOPTIONS_NOCACHE 0x01")
47 cpp_quote("#define INSTALLOPTIONS_DOWNLOAD 0x02")
48 cpp_quote("#define INSTALLOPTIONS_INSTALL 0x04")
49 cpp_quote("#define INSTALLOPTIONS_DONTALLOWXPLATFORM 0x08")
50 cpp_quote("#define INSTALLOPTIONS_FORCEDEPENDENCIES 0x10")
51
52 cpp_quote("#define EXECUTEJOB_SILENT 0x01")
53 cpp_quote("#define EXECUTEJOB_DELETE_JOB 0x02")
54 cpp_quote("#define EXECUTEJOB_VERIFYFILES 0x08")
55 cpp_quote("#define EXECUTEJOB_IGNORETRUST 0x10")
56 cpp_quote("#define EXECUTEJOB_IGNOREDOWNLOADERROR 0x20")
57 cpp_quote("#define EXECUTEJOB_DONTALLOWCANCEL 0x40")
58
59 cpp_quote("#define ENGINEPROBLEM_DOWNLOADFAIL 0x1")
60
61 cpp_quote("#define PLATFORM_WIN95 0x01")
62 cpp_quote("#define PLATFORM_WIN98 0x02")
63 cpp_quote("#define PLATFORM_NT4 0x04")
64 cpp_quote("#define PLATFORM_NT5 0x08")
65 cpp_quote("#define PLATFORM_NT4ALPHA 0x10")
66 cpp_quote("#define PLATFORM_NT5ALPHA 0x20")
67 cpp_quote("#define PLATFORM_MILLEN 0x40")
68 cpp_quote("#define PLATFORM_ALL (PLATFORM_WIN95 | PLATFORM_WIN98 | PLATFORM_NT4 | PLATFORM_NT5 | PLATFORM_NT4ALPHA | PLATFORM_NT5ALPHA | PLATFORM_MILLEN)")
69
70 enum 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
84 enum ComponentAction
85 {
86 ActionNone,
87 ActionInstall,
88 ActionUninstall,
89 };
90
91 [
92 object,
93 local,
94 pointer_default(unique)
95 ]
96 interface 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 ]
142 interface 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 ]
173 interface IEnumCifComponents : IUnknown
174 {
175 HRESULT Next(ICifComponent **);
176 HRESULT Reset();
177 };
178
179 [
180 object,
181 local,
182 pointer_default(unique)
183 ]
184 interface 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 ]
199 interface 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 ]
211 interface IEnumCifGroups : IUnknown
212 {
213 HRESULT Next(ICifGroup **);
214 HRESULT Reset();
215 };
216
217 [
218 object,
219 local,
220 pointer_default(unique)
221 ]
222 interface 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 ]
236 interface 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 ]
247 interface IEnumCifModes : IUnknown
248 {
249 HRESULT Next(ICifMode **);
250 HRESULT Reset();
251 };
252
253 typedef 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
269 typedef 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 ]
282 interface 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 ]
299 interface 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 ]
315 interface 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 ]
331 interface 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 ]
361 interface 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 ]
371 interface 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 ]
382 coclass InstallEngine { }
383
384 [
385 helpstring("Download Site Manager"),
386 threading(apartment),
387 uuid(bfc880f1-7484-11d0-8309-00aa00b6015c)
388 ]
389 coclass DownloadSiteMgr { }
390
391 cpp_quote("HRESULT WINAPI GetICifFileFromFile(ICifFile **, const char *);")
392 cpp_quote("HRESULT WINAPI GetICifRWFileFromFile(ICifRWFile **, const char *);")