diff options
Diffstat (limited to 'src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs')
-rw-r--r-- | src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs | 536 |
1 files changed, 536 insertions, 0 deletions
diff --git a/src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs b/src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs new file mode 100644 index 00000000..4e19bf0f --- /dev/null +++ b/src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs | |||
@@ -0,0 +1,536 @@ | |||
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
2 | |||
3 | namespace WixToolset.Mba.Core | ||
4 | { | ||
5 | using System; | ||
6 | using System.CodeDom.Compiler; | ||
7 | using System.Runtime.InteropServices; | ||
8 | using System.Text; | ||
9 | |||
10 | /// <summary> | ||
11 | /// Allows calls into the bootstrapper engine. | ||
12 | /// </summary> | ||
13 | [ComImport] | ||
14 | [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] | ||
15 | [Guid("6480D616-27A0-44D7-905B-81512C29C2FB")] | ||
16 | [GeneratedCodeAttribute("WixToolset.Bootstrapper.InteropCodeGenerator", "1.0.0.0")] | ||
17 | public interface IBootstrapperEngine | ||
18 | { | ||
19 | /// <summary> | ||
20 | /// See <see cref="IEngine.PackageCount"/>. | ||
21 | /// </summary> | ||
22 | /// <param name="pcPackages"></param> | ||
23 | void GetPackageCount( | ||
24 | [MarshalAs(UnmanagedType.U4)] out int pcPackages | ||
25 | ); | ||
26 | |||
27 | /// <summary> | ||
28 | /// See <see cref="IEngine.GetVariableNumeric(string)"/>. | ||
29 | /// </summary> | ||
30 | /// <param name="wzVariable"></param> | ||
31 | /// <param name="pllValue"></param> | ||
32 | /// <returns></returns> | ||
33 | [PreserveSig] | ||
34 | int GetVariableNumeric( | ||
35 | [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, | ||
36 | out long pllValue | ||
37 | ); | ||
38 | |||
39 | /// <summary> | ||
40 | /// See <see cref="IEngine.GetVariableString(string)"/>. | ||
41 | /// </summary> | ||
42 | [PreserveSig] | ||
43 | int GetVariableString( | ||
44 | [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, | ||
45 | IntPtr wzValue, | ||
46 | ref IntPtr pcchValue | ||
47 | ); | ||
48 | |||
49 | /// <summary> | ||
50 | /// See <see cref="IEngine.GetVariableVersion(string)"/>. | ||
51 | /// </summary> | ||
52 | [PreserveSig] | ||
53 | int GetVariableVersion( | ||
54 | [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, | ||
55 | IntPtr wzValue, | ||
56 | ref IntPtr pcchValue | ||
57 | ); | ||
58 | |||
59 | /// <summary> | ||
60 | /// See <see cref="IEngine.FormatString(string)"/>. | ||
61 | /// </summary> | ||
62 | [PreserveSig] | ||
63 | int FormatString( | ||
64 | [MarshalAs(UnmanagedType.LPWStr)] string wzIn, | ||
65 | [MarshalAs(UnmanagedType.LPWStr), Out] StringBuilder wzOut, | ||
66 | ref IntPtr pcchOut | ||
67 | ); | ||
68 | |||
69 | /// <summary> | ||
70 | /// See <see cref="IEngine.EscapeString(string)"/>. | ||
71 | /// </summary> | ||
72 | [PreserveSig] | ||
73 | int EscapeString( | ||
74 | [MarshalAs(UnmanagedType.LPWStr)] string wzIn, | ||
75 | [MarshalAs(UnmanagedType.LPWStr), Out] StringBuilder wzOut, | ||
76 | ref IntPtr pcchOut | ||
77 | ); | ||
78 | |||
79 | /// <summary> | ||
80 | /// See <see cref="IEngine.EvaluateCondition(string)"/>. | ||
81 | /// </summary> | ||
82 | /// <param name="wzCondition"></param> | ||
83 | /// <param name="pf"></param> | ||
84 | void EvaluateCondition( | ||
85 | [MarshalAs(UnmanagedType.LPWStr)] string wzCondition, | ||
86 | [MarshalAs(UnmanagedType.Bool)] out bool pf | ||
87 | ); | ||
88 | |||
89 | /// <summary> | ||
90 | /// See <see cref="IEngine.Log(LogLevel, string)"/>. | ||
91 | /// </summary> | ||
92 | /// <param name="level"></param> | ||
93 | /// <param name="wzMessage"></param> | ||
94 | void Log( | ||
95 | [MarshalAs(UnmanagedType.U4)] LogLevel level, | ||
96 | [MarshalAs(UnmanagedType.LPWStr)] string wzMessage | ||
97 | ); | ||
98 | |||
99 | /// <summary> | ||
100 | /// See <see cref="IEngine.SendEmbeddedError(int, string, int)"/>. | ||
101 | /// </summary> | ||
102 | /// <param name="dwErrorCode"></param> | ||
103 | /// <param name="wzMessage"></param> | ||
104 | /// <param name="dwUIHint"></param> | ||
105 | /// <param name="pnResult"></param> | ||
106 | void SendEmbeddedError( | ||
107 | [MarshalAs(UnmanagedType.U4)] int dwErrorCode, | ||
108 | [MarshalAs(UnmanagedType.LPWStr)] string wzMessage, | ||
109 | [MarshalAs(UnmanagedType.U4)] int dwUIHint, | ||
110 | [MarshalAs(UnmanagedType.I4)] out int pnResult | ||
111 | ); | ||
112 | |||
113 | /// <summary> | ||
114 | /// See <see cref="IEngine.SendEmbeddedProgress(int, int)"/>. | ||
115 | /// </summary> | ||
116 | /// <param name="dwProgressPercentage"></param> | ||
117 | /// <param name="dwOverallProgressPercentage"></param> | ||
118 | /// <param name="pnResult"></param> | ||
119 | void SendEmbeddedProgress( | ||
120 | [MarshalAs(UnmanagedType.U4)] int dwProgressPercentage, | ||
121 | [MarshalAs(UnmanagedType.U4)] int dwOverallProgressPercentage, | ||
122 | [MarshalAs(UnmanagedType.I4)] out int pnResult | ||
123 | ); | ||
124 | |||
125 | /// <summary> | ||
126 | /// See <see cref="IEngine.SetUpdate(string, string, long, UpdateHashType, byte[])"/>. | ||
127 | /// </summary> | ||
128 | /// <param name="wzLocalSource"></param> | ||
129 | /// <param name="wzDownloadSource"></param> | ||
130 | /// <param name="qwValue"></param> | ||
131 | /// <param name="hashType"></param> | ||
132 | /// <param name="rgbHash"></param> | ||
133 | /// <param name="cbHash"></param> | ||
134 | void SetUpdate( | ||
135 | [MarshalAs(UnmanagedType.LPWStr)] string wzLocalSource, | ||
136 | [MarshalAs(UnmanagedType.LPWStr)] string wzDownloadSource, | ||
137 | [MarshalAs(UnmanagedType.U8)] long qwValue, | ||
138 | [MarshalAs(UnmanagedType.U4)] UpdateHashType hashType, | ||
139 | [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=4)] byte[] rgbHash, | ||
140 | [MarshalAs(UnmanagedType.U4)] int cbHash | ||
141 | ); | ||
142 | |||
143 | /// <summary> | ||
144 | /// See <see cref="IEngine.SetLocalSource(string, string, string)"/>. | ||
145 | /// </summary> | ||
146 | /// <param name="wzPackageOrContainerId"></param> | ||
147 | /// <param name="wzPayloadId"></param> | ||
148 | /// <param name="wzPath"></param> | ||
149 | void SetLocalSource( | ||
150 | [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId, | ||
151 | [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId, | ||
152 | [MarshalAs(UnmanagedType.LPWStr)] string wzPath | ||
153 | ); | ||
154 | |||
155 | /// <summary> | ||
156 | /// See <see cref="IEngine.SetDownloadSource(string, string, string, string, string)"/>. | ||
157 | /// </summary> | ||
158 | /// <param name="wzPackageOrContainerId"></param> | ||
159 | /// <param name="wzPayloadId"></param> | ||
160 | /// <param name="wzUrl"></param> | ||
161 | /// <param name="wzUser"></param> | ||
162 | /// <param name="wzPassword"></param> | ||
163 | void SetDownloadSource( | ||
164 | [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId, | ||
165 | [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId, | ||
166 | [MarshalAs(UnmanagedType.LPWStr)] string wzUrl, | ||
167 | [MarshalAs(UnmanagedType.LPWStr)] string wzUser, | ||
168 | [MarshalAs(UnmanagedType.LPWStr)] string wzPassword | ||
169 | ); | ||
170 | |||
171 | /// <summary> | ||
172 | /// See <see cref="IEngine.SetVariableNumeric(string, long)"/>. | ||
173 | /// </summary> | ||
174 | /// <param name="wzVariable"></param> | ||
175 | /// <param name="llValue"></param> | ||
176 | void SetVariableNumeric( | ||
177 | [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, | ||
178 | long llValue | ||
179 | ); | ||
180 | |||
181 | /// <summary> | ||
182 | /// See <see cref="IEngine.SetVariableString(string, string, bool)"/>. | ||
183 | /// </summary> | ||
184 | /// <param name="wzVariable"></param> | ||
185 | /// <param name="wzValue"></param> | ||
186 | /// <param name="fFormatted"></param> | ||
187 | void SetVariableString( | ||
188 | [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, | ||
189 | IntPtr wzValue, | ||
190 | [MarshalAs(UnmanagedType.Bool)] bool fFormatted | ||
191 | ); | ||
192 | |||
193 | /// <summary> | ||
194 | /// See <see cref="IEngine.SetVariableVersion(string, string)"/>. | ||
195 | /// </summary> | ||
196 | /// <param name="wzVariable"></param> | ||
197 | /// <param name="wzValue"></param> | ||
198 | void SetVariableVersion( | ||
199 | [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, | ||
200 | IntPtr wzValue | ||
201 | ); | ||
202 | |||
203 | /// <summary> | ||
204 | /// See <see cref="IEngine.CloseSplashScreen"/>. | ||
205 | /// </summary> | ||
206 | void CloseSplashScreen(); | ||
207 | |||
208 | /// <summary> | ||
209 | /// See <see cref="IEngine.Detect(IntPtr)"/>. | ||
210 | /// </summary> | ||
211 | /// <param name="hwndParent"></param> | ||
212 | void Detect( | ||
213 | IntPtr hwndParent | ||
214 | ); | ||
215 | |||
216 | /// <summary> | ||
217 | /// See <see cref="IEngine.Plan(LaunchAction)"/>. | ||
218 | /// </summary> | ||
219 | /// <param name="action"></param> | ||
220 | void Plan( | ||
221 | [MarshalAs(UnmanagedType.U4)] LaunchAction action | ||
222 | ); | ||
223 | |||
224 | /// <summary> | ||
225 | /// See <see cref="IEngine.Elevate(IntPtr)"/>. | ||
226 | /// </summary> | ||
227 | /// <param name="hwndParent"></param> | ||
228 | /// <returns></returns> | ||
229 | [PreserveSig] | ||
230 | int Elevate( | ||
231 | IntPtr hwndParent | ||
232 | ); | ||
233 | |||
234 | /// <summary> | ||
235 | /// See <see cref="IEngine.Apply(IntPtr)"/>. | ||
236 | /// </summary> | ||
237 | /// <param name="hwndParent"></param> | ||
238 | void Apply( | ||
239 | IntPtr hwndParent | ||
240 | ); | ||
241 | |||
242 | /// <summary> | ||
243 | /// See <see cref="IEngine.Quit(int)"/>. | ||
244 | /// </summary> | ||
245 | /// <param name="dwExitCode"></param> | ||
246 | void Quit( | ||
247 | [MarshalAs(UnmanagedType.U4)] int dwExitCode | ||
248 | ); | ||
249 | |||
250 | /// <summary> | ||
251 | /// See <see cref="IEngine.LaunchApprovedExe(IntPtr, string, string, int)"/>. | ||
252 | /// </summary> | ||
253 | /// <param name="hwndParent"></param> | ||
254 | /// <param name="wzApprovedExeForElevationId"></param> | ||
255 | /// <param name="wzArguments"></param> | ||
256 | /// <param name="dwWaitForInputIdleTimeout"></param> | ||
257 | void LaunchApprovedExe( | ||
258 | IntPtr hwndParent, | ||
259 | [MarshalAs(UnmanagedType.LPWStr)] string wzApprovedExeForElevationId, | ||
260 | [MarshalAs(UnmanagedType.LPWStr)] string wzArguments, | ||
261 | [MarshalAs(UnmanagedType.U4)] int dwWaitForInputIdleTimeout | ||
262 | ); | ||
263 | |||
264 | /// <summary> | ||
265 | /// Sets the URL to the update feed. | ||
266 | /// </summary> | ||
267 | /// <param name="url">URL of the update feed.</param> | ||
268 | void SetUpdateSource( | ||
269 | [MarshalAs(UnmanagedType.LPWStr)] string url | ||
270 | ); | ||
271 | |||
272 | /// <summary> | ||
273 | /// See <see cref="IEngine.CompareVersions(string, string)"/>. | ||
274 | /// </summary> | ||
275 | /// <param name="wzVersion1"></param> | ||
276 | /// <param name="wzVersion2"></param> | ||
277 | /// <param name="pnResult"></param> | ||
278 | void CompareVersions( | ||
279 | [MarshalAs(UnmanagedType.LPWStr)] string wzVersion1, | ||
280 | [MarshalAs(UnmanagedType.LPWStr)] string wzVersion2, | ||
281 | [MarshalAs(UnmanagedType.I4)] out int pnResult | ||
282 | ); | ||
283 | } | ||
284 | |||
285 | /// <summary> | ||
286 | /// The installation action for the bundle or current package. | ||
287 | /// </summary> | ||
288 | public enum ActionState | ||
289 | { | ||
290 | /// <summary> | ||
291 | /// | ||
292 | /// </summary> | ||
293 | None, | ||
294 | |||
295 | /// <summary> | ||
296 | /// | ||
297 | /// </summary> | ||
298 | Uninstall, | ||
299 | |||
300 | /// <summary> | ||
301 | /// | ||
302 | /// </summary> | ||
303 | Install, | ||
304 | |||
305 | /// <summary> | ||
306 | /// | ||
307 | /// </summary> | ||
308 | Modify, | ||
309 | |||
310 | /// <summary> | ||
311 | /// | ||
312 | /// </summary> | ||
313 | Mend, | ||
314 | |||
315 | /// <summary> | ||
316 | /// | ||
317 | /// </summary> | ||
318 | Repair, | ||
319 | |||
320 | /// <summary> | ||
321 | /// | ||
322 | /// </summary> | ||
323 | MinorUpgrade, | ||
324 | } | ||
325 | |||
326 | /// <summary> | ||
327 | /// The action for the BA to perform. | ||
328 | /// </summary> | ||
329 | public enum LaunchAction | ||
330 | { | ||
331 | /// <summary> | ||
332 | /// | ||
333 | /// </summary> | ||
334 | Unknown, | ||
335 | |||
336 | /// <summary> | ||
337 | /// | ||
338 | /// </summary> | ||
339 | Help, | ||
340 | |||
341 | /// <summary> | ||
342 | /// | ||
343 | /// </summary> | ||
344 | Layout, | ||
345 | |||
346 | /// <summary> | ||
347 | /// | ||
348 | /// </summary> | ||
349 | Uninstall, | ||
350 | |||
351 | /// <summary> | ||
352 | /// | ||
353 | /// </summary> | ||
354 | Cache, | ||
355 | |||
356 | /// <summary> | ||
357 | /// | ||
358 | /// </summary> | ||
359 | Install, | ||
360 | |||
361 | /// <summary> | ||
362 | /// | ||
363 | /// </summary> | ||
364 | Modify, | ||
365 | |||
366 | /// <summary> | ||
367 | /// | ||
368 | /// </summary> | ||
369 | Repair, | ||
370 | |||
371 | /// <summary> | ||
372 | /// | ||
373 | /// </summary> | ||
374 | UpdateReplace, | ||
375 | |||
376 | /// <summary> | ||
377 | /// | ||
378 | /// </summary> | ||
379 | UpdateReplaceEmbedded, | ||
380 | } | ||
381 | |||
382 | /// <summary> | ||
383 | /// The message log level. | ||
384 | /// </summary> | ||
385 | public enum LogLevel | ||
386 | { | ||
387 | /// <summary> | ||
388 | /// No logging level (generic). | ||
389 | /// </summary> | ||
390 | None, | ||
391 | |||
392 | /// <summary> | ||
393 | /// User messages. | ||
394 | /// </summary> | ||
395 | Standard, | ||
396 | |||
397 | /// <summary> | ||
398 | /// Verbose messages. | ||
399 | /// </summary> | ||
400 | Verbose, | ||
401 | |||
402 | /// <summary> | ||
403 | /// Messages for debugging. | ||
404 | /// </summary> | ||
405 | Debug, | ||
406 | |||
407 | /// <summary> | ||
408 | /// Error messages. | ||
409 | /// </summary> | ||
410 | Error, | ||
411 | } | ||
412 | |||
413 | /// <summary> | ||
414 | /// Type of hash used for update bundle. | ||
415 | /// </summary> | ||
416 | public enum UpdateHashType | ||
417 | { | ||
418 | /// <summary> | ||
419 | /// No hash provided. | ||
420 | /// </summary> | ||
421 | None, | ||
422 | |||
423 | /// <summary> | ||
424 | /// SHA-1 based hash provided. | ||
425 | /// </summary> | ||
426 | Sha1, | ||
427 | } | ||
428 | |||
429 | /// <summary> | ||
430 | /// Describes the state of an installation package. | ||
431 | /// </summary> | ||
432 | public enum PackageState | ||
433 | { | ||
434 | /// <summary> | ||
435 | /// | ||
436 | /// </summary> | ||
437 | Unknown, | ||
438 | |||
439 | /// <summary> | ||
440 | /// | ||
441 | /// </summary> | ||
442 | Obsolete, | ||
443 | |||
444 | /// <summary> | ||
445 | /// | ||
446 | /// </summary> | ||
447 | Absent, | ||
448 | |||
449 | /// <summary> | ||
450 | /// | ||
451 | /// </summary> | ||
452 | Cached, | ||
453 | |||
454 | /// <summary> | ||
455 | /// | ||
456 | /// </summary> | ||
457 | Present, | ||
458 | |||
459 | /// <summary> | ||
460 | /// | ||
461 | /// </summary> | ||
462 | Superseded, | ||
463 | } | ||
464 | |||
465 | /// <summary> | ||
466 | /// Indicates the state desired for an installation package. | ||
467 | /// </summary> | ||
468 | public enum RequestState | ||
469 | { | ||
470 | /// <summary> | ||
471 | /// | ||
472 | /// </summary> | ||
473 | None, | ||
474 | |||
475 | /// <summary> | ||
476 | /// / | ||
477 | /// </summary> | ||
478 | ForceAbsent, | ||
479 | |||
480 | /// <summary> | ||
481 | /// | ||
482 | /// </summary> | ||
483 | Absent, | ||
484 | |||
485 | /// <summary> | ||
486 | /// | ||
487 | /// </summary> | ||
488 | Cache, | ||
489 | |||
490 | /// <summary> | ||
491 | /// | ||
492 | /// </summary> | ||
493 | Present, | ||
494 | |||
495 | /// <summary> | ||
496 | /// | ||
497 | /// </summary> | ||
498 | Mend, | ||
499 | |||
500 | /// <summary> | ||
501 | /// | ||
502 | /// </summary> | ||
503 | Repair, | ||
504 | } | ||
505 | |||
506 | /// <summary> | ||
507 | /// Indicates the state of a feature. | ||
508 | /// </summary> | ||
509 | public enum FeatureState | ||
510 | { | ||
511 | /// <summary> | ||
512 | /// | ||
513 | /// </summary> | ||
514 | Unknown, | ||
515 | |||
516 | /// <summary> | ||
517 | /// | ||
518 | /// </summary> | ||
519 | Absent, | ||
520 | |||
521 | /// <summary> | ||
522 | /// | ||
523 | /// </summary> | ||
524 | Advertised, | ||
525 | |||
526 | /// <summary> | ||
527 | /// | ||
528 | /// </summary> | ||
529 | Local, | ||
530 | |||
531 | /// <summary> | ||
532 | /// | ||
533 | /// </summary> | ||
534 | Source, | ||
535 | } | ||
536 | } | ||