summaryrefslogtreecommitdiff
path: root/src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs')
-rw-r--r--src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs536
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
3namespace 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}