aboutsummaryrefslogtreecommitdiff
path: root/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs')
-rw-r--r--src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs1917
1 files changed, 1917 insertions, 0 deletions
diff --git a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs
new file mode 100644
index 00000000..530fb1a9
--- /dev/null
+++ b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs
@@ -0,0 +1,1917 @@
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.Runtime.InteropServices;
7
8 /// <summary>
9 /// Allows customization of the bootstrapper application.
10 /// </summary>
11 [ComImport]
12 [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
13 [Guid("53C31D56-49C0-426B-AB06-099D717C67FE")]
14 public interface IBootstrapperApplication
15 {
16 /// <summary>
17 /// Low level method that is called directly from the engine.
18 /// </summary>
19 [PreserveSig]
20 [return: MarshalAs(UnmanagedType.I4)]
21 int BAProc(
22 int message,
23 IntPtr pvArgs,
24 IntPtr pvResults,
25 IntPtr pvContext
26 );
27
28 /// <summary>
29 /// Low level method that is called directly from the engine.
30 /// </summary>
31 void BAProcFallback(
32 int message,
33 IntPtr pvArgs,
34 IntPtr pvResults,
35 ref int phr,
36 IntPtr pvContext
37 );
38
39 /// <summary>
40 /// See <see cref="IDefaultBootstrapperApplication.Startup"/>.
41 /// </summary>
42 [PreserveSig]
43 [return: MarshalAs(UnmanagedType.I4)]
44 int OnStartup();
45
46 /// <summary>
47 /// See <see cref="IDefaultBootstrapperApplication.Shutdown"/>.
48 /// </summary>
49 [PreserveSig]
50 [return: MarshalAs(UnmanagedType.I4)]
51 int OnShutdown(ref BOOTSTRAPPER_SHUTDOWN_ACTION action);
52
53 /// <summary>
54 /// See <see cref="IDefaultBootstrapperApplication.SystemShutdown"/>.
55 /// </summary>
56 /// <param name="dwEndSession"></param>
57 /// <param name="fCancel"></param>
58 /// <returns></returns>
59 [PreserveSig]
60 [return: MarshalAs(UnmanagedType.I4)]
61 int OnSystemShutdown(
62 [MarshalAs(UnmanagedType.U4)] EndSessionReasons dwEndSession,
63 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
64 );
65
66 /// <summary>
67 /// See <see cref="IDefaultBootstrapperApplication.DetectBegin"/>.
68 /// </summary>
69 [PreserveSig]
70 [return: MarshalAs(UnmanagedType.I4)]
71 int OnDetectBegin(
72 [MarshalAs(UnmanagedType.Bool)] bool fCached,
73 [MarshalAs(UnmanagedType.Bool)] bool fInstalled,
74 [MarshalAs(UnmanagedType.U4)] int cPackages,
75 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
76 );
77
78 /// <summary>
79 /// See <see cref="IDefaultBootstrapperApplication.DetectForwardCompatibleBundle"/>.
80 /// </summary>
81 /// <param name="wzBundleId"></param>
82 /// <param name="relationType"></param>
83 /// <param name="wzBundleTag"></param>
84 /// <param name="fPerMachine"></param>
85 /// <param name="wzVersion"></param>
86 /// <param name="fMissingFromCache"></param>
87 /// <param name="fCancel"></param>
88 /// <returns></returns>
89 [PreserveSig]
90 [return: MarshalAs(UnmanagedType.I4)]
91 int OnDetectForwardCompatibleBundle(
92 [MarshalAs(UnmanagedType.LPWStr)] string wzBundleId,
93 [MarshalAs(UnmanagedType.U4)] RelationType relationType,
94 [MarshalAs(UnmanagedType.LPWStr)] string wzBundleTag,
95 [MarshalAs(UnmanagedType.Bool)] bool fPerMachine,
96 [MarshalAs(UnmanagedType.LPWStr)] string wzVersion,
97 [MarshalAs(UnmanagedType.Bool)] bool fMissingFromCache,
98 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
99 );
100
101 /// <summary>
102 /// See <see cref="IDefaultBootstrapperApplication.DetectUpdateBegin"/>.
103 /// </summary>
104 /// <param name="wzUpdateLocation"></param>
105 /// <param name="fCancel"></param>
106 /// <param name="fSkip"></param>
107 /// <returns></returns>
108 [PreserveSig]
109 [return: MarshalAs(UnmanagedType.I4)]
110 int OnDetectUpdateBegin(
111 [MarshalAs(UnmanagedType.LPWStr)] string wzUpdateLocation,
112 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel,
113 [MarshalAs(UnmanagedType.Bool)] ref bool fSkip
114 );
115
116 /// <summary>
117 /// See <see cref="IDefaultBootstrapperApplication.DetectUpdate"/>.
118 /// </summary>
119 /// <param name="wzUpdateLocation"></param>
120 /// <param name="dw64Size"></param>
121 /// <param name="wzVersion"></param>
122 /// <param name="wzTitle"></param>
123 /// <param name="wzSummary"></param>
124 /// <param name="wzContentType"></param>
125 /// <param name="wzContent"></param>
126 /// <param name="fCancel"></param>
127 /// <param name="fStopProcessingUpdates"></param>
128 /// <returns></returns>
129 [PreserveSig]
130 [return: MarshalAs(UnmanagedType.I4)]
131 int OnDetectUpdate(
132 [MarshalAs(UnmanagedType.LPWStr)] string wzUpdateLocation,
133 [MarshalAs(UnmanagedType.U8)] long dw64Size,
134 [MarshalAs(UnmanagedType.LPWStr)] string wzVersion,
135 [MarshalAs(UnmanagedType.LPWStr)] string wzTitle,
136 [MarshalAs(UnmanagedType.LPWStr)] string wzSummary,
137 [MarshalAs(UnmanagedType.LPWStr)] string wzContentType,
138 [MarshalAs(UnmanagedType.LPWStr)] string wzContent,
139 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel,
140 [MarshalAs(UnmanagedType.Bool)] ref bool fStopProcessingUpdates
141 );
142
143 /// <summary>
144 /// See <see cref="IDefaultBootstrapperApplication.DetectUpdateComplete"/>.
145 /// </summary>
146 /// <param name="hrStatus"></param>
147 /// <param name="fIgnoreError"></param>
148 /// <returns></returns>
149 [PreserveSig]
150 [return: MarshalAs(UnmanagedType.I4)]
151 int OnDetectUpdateComplete(
152 int hrStatus,
153 [MarshalAs(UnmanagedType.Bool)] ref bool fIgnoreError
154 );
155
156 /// <summary>
157 /// See <see cref="IDefaultBootstrapperApplication.DetectRelatedBundle"/>.
158 /// </summary>
159 /// <param name="wzBundleId"></param>
160 /// <param name="relationType"></param>
161 /// <param name="wzBundleTag"></param>
162 /// <param name="fPerMachine"></param>
163 /// <param name="wzVersion"></param>
164 /// <param name="operation"></param>
165 /// <param name="fMissingFromCache"></param>
166 /// <param name="fCancel"></param>
167 /// <returns></returns>
168 [PreserveSig]
169 [return: MarshalAs(UnmanagedType.I4)]
170 int OnDetectRelatedBundle(
171 [MarshalAs(UnmanagedType.LPWStr)] string wzBundleId,
172 [MarshalAs(UnmanagedType.U4)] RelationType relationType,
173 [MarshalAs(UnmanagedType.LPWStr)] string wzBundleTag,
174 [MarshalAs(UnmanagedType.Bool)] bool fPerMachine,
175 [MarshalAs(UnmanagedType.LPWStr)] string wzVersion,
176 [MarshalAs(UnmanagedType.U4)] RelatedOperation operation,
177 [MarshalAs(UnmanagedType.Bool)] bool fMissingFromCache,
178 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
179 );
180
181 /// <summary>
182 /// See <see cref="IDefaultBootstrapperApplication.DetectPackageBegin"/>.
183 /// </summary>
184 /// <param name="wzPackageId"></param>
185 /// <param name="fCancel"></param>
186 /// <returns></returns>
187 [PreserveSig]
188 [return: MarshalAs(UnmanagedType.I4)]
189 int OnDetectPackageBegin(
190 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
191 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
192 );
193
194 /// <summary>
195 /// See <see cref="IDefaultBootstrapperApplication.DetectRelatedMsiPackage"/>.
196 /// </summary>
197 /// <param name="wzPackageId"></param>
198 /// <param name="wzUpgradeCode"></param>
199 /// <param name="wzProductCode"></param>
200 /// <param name="fPerMachine"></param>
201 /// <param name="wzVersion"></param>
202 /// <param name="operation"></param>
203 /// <param name="fCancel"></param>
204 /// <returns></returns>
205 [PreserveSig]
206 [return: MarshalAs(UnmanagedType.I4)]
207 int OnDetectRelatedMsiPackage(
208 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
209 [MarshalAs(UnmanagedType.LPWStr)] string wzUpgradeCode,
210 [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode,
211 [MarshalAs(UnmanagedType.Bool)] bool fPerMachine,
212 [MarshalAs(UnmanagedType.LPWStr)] string wzVersion,
213 [MarshalAs(UnmanagedType.U4)] RelatedOperation operation,
214 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
215 );
216
217 /// <summary>
218 /// See <see cref="IDefaultBootstrapperApplication.DetectPatchTarget"/>.
219 /// </summary>
220 /// <param name="wzPackageId"></param>
221 /// <param name="wzProductCode"></param>
222 /// <param name="patchState"></param>
223 /// <param name="fCancel"></param>
224 /// <returns></returns>
225 [PreserveSig]
226 [return: MarshalAs(UnmanagedType.I4)]
227 int OnDetectPatchTarget(
228 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
229 [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode,
230 [MarshalAs(UnmanagedType.U4)] PackageState patchState,
231 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
232 );
233
234 /// <summary>
235 /// See <see cref="IDefaultBootstrapperApplication.DetectMsiFeature"/>.
236 /// </summary>
237 /// <param name="wzPackageId"></param>
238 /// <param name="wzFeatureId"></param>
239 /// <param name="state"></param>
240 /// <param name="fCancel"></param>
241 /// <returns></returns>
242 [PreserveSig]
243 [return: MarshalAs(UnmanagedType.I4)]
244 int OnDetectMsiFeature(
245 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
246 [MarshalAs(UnmanagedType.LPWStr)] string wzFeatureId,
247 [MarshalAs(UnmanagedType.U4)] FeatureState state,
248 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
249 );
250
251 /// <summary>
252 /// See <see cref="IDefaultBootstrapperApplication.DetectPackageComplete"/>.
253 /// </summary>
254 [PreserveSig]
255 [return: MarshalAs(UnmanagedType.I4)]
256 int OnDetectPackageComplete(
257 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
258 int hrStatus,
259 [MarshalAs(UnmanagedType.U4)] PackageState state,
260 [MarshalAs(UnmanagedType.Bool)] bool fCached
261 );
262
263 /// <summary>
264 /// See <see cref="IDefaultBootstrapperApplication.DetectComplete"/>.
265 /// </summary>
266 /// <param name="hrStatus"></param>
267 /// <param name="fEligibleForCleanup"></param>
268 /// <returns></returns>
269 [PreserveSig]
270 [return: MarshalAs(UnmanagedType.I4)]
271 int OnDetectComplete(
272 int hrStatus,
273 [MarshalAs(UnmanagedType.Bool)] bool fEligibleForCleanup
274 );
275
276 /// <summary>
277 /// See <see cref="IDefaultBootstrapperApplication.PlanBegin"/>.
278 /// </summary>
279 /// <param name="cPackages"></param>
280 /// <param name="fCancel"></param>
281 /// <returns></returns>
282 [PreserveSig]
283 [return: MarshalAs(UnmanagedType.I4)]
284 int OnPlanBegin(
285 [MarshalAs(UnmanagedType.U4)] int cPackages,
286 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
287 );
288
289 /// <summary>
290 /// See <see cref="IDefaultBootstrapperApplication.PlanRelatedBundle"/>.
291 /// </summary>
292 /// <param name="wzBundleId"></param>
293 /// <param name="recommendedState"></param>
294 /// <param name="pRequestedState"></param>
295 /// <param name="fCancel"></param>
296 /// <returns></returns>
297 [PreserveSig]
298 [return: MarshalAs(UnmanagedType.I4)]
299 int OnPlanRelatedBundle(
300 [MarshalAs(UnmanagedType.LPWStr)] string wzBundleId,
301 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState,
302 [MarshalAs(UnmanagedType.U4)] ref RequestState pRequestedState,
303 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
304 );
305
306 /// <summary>
307 /// See <see cref="IDefaultBootstrapperApplication.PlanPackageBegin"/>.
308 /// </summary>
309 [PreserveSig]
310 [return: MarshalAs(UnmanagedType.I4)]
311 int OnPlanPackageBegin(
312 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
313 [MarshalAs(UnmanagedType.U4)] PackageState state,
314 [MarshalAs(UnmanagedType.Bool)] bool fCached,
315 [MarshalAs(UnmanagedType.U4)] BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition,
316 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState,
317 [MarshalAs(UnmanagedType.U4)] BOOTSTRAPPER_CACHE_TYPE recommendedCacheType,
318 [MarshalAs(UnmanagedType.U4)] ref RequestState pRequestedState,
319 [MarshalAs(UnmanagedType.U4)] ref BOOTSTRAPPER_CACHE_TYPE pRequestedCacheType,
320 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
321 );
322
323 /// <summary>
324 /// See <see cref="IDefaultBootstrapperApplication.PlanPatchTarget"/>.
325 /// </summary>
326 /// <param name="wzPackageId"></param>
327 /// <param name="wzProductCode"></param>
328 /// <param name="recommendedState"></param>
329 /// <param name="pRequestedState"></param>
330 /// <param name="fCancel"></param>
331 /// <returns></returns>
332 [PreserveSig]
333 [return: MarshalAs(UnmanagedType.I4)]
334 int OnPlanPatchTarget(
335 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
336 [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode,
337 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState,
338 [MarshalAs(UnmanagedType.U4)] ref RequestState pRequestedState,
339 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
340 );
341
342 /// <summary>
343 /// See <see cref="IDefaultBootstrapperApplication.PlanMsiFeature"/>.
344 /// </summary>
345 /// <param name="wzPackageId"></param>
346 /// <param name="wzFeatureId"></param>
347 /// <param name="recommendedState"></param>
348 /// <param name="pRequestedState"></param>
349 /// <param name="fCancel"></param>
350 /// <returns></returns>
351 [PreserveSig]
352 [return: MarshalAs(UnmanagedType.I4)]
353 int OnPlanMsiFeature(
354 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
355 [MarshalAs(UnmanagedType.LPWStr)] string wzFeatureId,
356 [MarshalAs(UnmanagedType.U4)] FeatureState recommendedState,
357 [MarshalAs(UnmanagedType.U4)] ref FeatureState pRequestedState,
358 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
359 );
360
361 /// <summary>
362 /// See <see cref="IDefaultBootstrapperApplication.PlanMsiPackage"/>.
363 /// </summary>
364 /// <param name="wzPackageId"></param>
365 /// <param name="fExecute"></param>
366 /// <param name="action"></param>
367 /// <param name="fCancel"></param>
368 /// <param name="actionMsiProperty"></param>
369 /// <param name="uiLevel"></param>
370 /// <param name="fDisableExternalUiHandler"></param>
371 /// <returns></returns>
372 [PreserveSig]
373 [return: MarshalAs(UnmanagedType.I4)]
374 int OnPlanMsiPackage(
375 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
376 [MarshalAs(UnmanagedType.Bool)] bool fExecute,
377 [MarshalAs(UnmanagedType.U4)] ActionState action,
378 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel,
379 [MarshalAs(UnmanagedType.U4)] ref BURN_MSI_PROPERTY actionMsiProperty,
380 [MarshalAs(UnmanagedType.U4)] ref INSTALLUILEVEL uiLevel,
381 [MarshalAs(UnmanagedType.Bool)] ref bool fDisableExternalUiHandler
382 );
383
384 /// <summary>
385 /// See <see cref="IDefaultBootstrapperApplication.PlanPackageComplete"/>.
386 /// </summary>
387 /// <param name="wzPackageId"></param>
388 /// <param name="hrStatus"></param>
389 /// <param name="requested"></param>
390 /// <returns></returns>
391 [PreserveSig]
392 [return: MarshalAs(UnmanagedType.I4)]
393 int OnPlanPackageComplete(
394 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
395 int hrStatus,
396 [MarshalAs(UnmanagedType.U4)] RequestState requested
397 );
398
399 /// <summary>
400 /// See <see cref="IDefaultBootstrapperApplication.PlannedPackage"/>.
401 /// </summary>
402 [PreserveSig]
403 [return: MarshalAs(UnmanagedType.I4)]
404 int OnPlannedPackage(
405 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
406 [MarshalAs(UnmanagedType.U4)] ActionState execute,
407 [MarshalAs(UnmanagedType.U4)] ActionState rollback,
408 [MarshalAs(UnmanagedType.Bool)] bool fPlannedCache,
409 [MarshalAs(UnmanagedType.Bool)] bool fPlannedUncache
410 );
411
412 /// <summary>
413 /// See <see cref="IDefaultBootstrapperApplication.PlanComplete"/>.
414 /// </summary>
415 /// <param name="hrStatus"></param>
416 /// <returns></returns>
417 [PreserveSig]
418 [return: MarshalAs(UnmanagedType.I4)]
419 int OnPlanComplete(
420 int hrStatus
421 );
422
423 /// <summary>
424 /// See <see cref="IDefaultBootstrapperApplication.ApplyBegin"/>.
425 /// </summary>
426 /// <param name="dwPhaseCount"></param>
427 /// <param name="fCancel"></param>
428 /// <returns></returns>
429 [PreserveSig]
430 [return: MarshalAs(UnmanagedType.I4)]
431 int OnApplyBegin(
432 [MarshalAs(UnmanagedType.U4)] int dwPhaseCount,
433 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
434 );
435
436 /// <summary>
437 /// See <see cref="IDefaultBootstrapperApplication.ElevateBegin"/>.
438 /// </summary>
439 /// <param name="fCancel"></param>
440 /// <returns></returns>
441 [PreserveSig]
442 [return: MarshalAs(UnmanagedType.I4)]
443 int OnElevateBegin(
444 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
445 );
446
447 /// <summary>
448 /// See <see cref="IDefaultBootstrapperApplication.ElevateComplete"/>.
449 /// </summary>
450 /// <param name="hrStatus"></param>
451 /// <returns></returns>
452 [PreserveSig]
453 [return: MarshalAs(UnmanagedType.I4)]
454 int OnElevateComplete(
455 int hrStatus
456 );
457
458 /// <summary>
459 /// See <see cref="IDefaultBootstrapperApplication.Progress"/>.
460 /// </summary>
461 /// <param name="dwProgressPercentage"></param>
462 /// <param name="dwOverallPercentage"></param>
463 /// <param name="fCancel"></param>
464 /// <returns></returns>
465 [PreserveSig]
466 [return: MarshalAs(UnmanagedType.I4)]
467 int OnProgress(
468 [MarshalAs(UnmanagedType.U4)] int dwProgressPercentage,
469 [MarshalAs(UnmanagedType.U4)] int dwOverallPercentage,
470 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
471 );
472
473 /// <summary>
474 /// See <see cref="IDefaultBootstrapperApplication.Error"/>.
475 /// </summary>
476 /// <param name="errorType"></param>
477 /// <param name="wzPackageId"></param>
478 /// <param name="dwCode"></param>
479 /// <param name="wzError"></param>
480 /// <param name="dwUIHint"></param>
481 /// <param name="cData"></param>
482 /// <param name="rgwzData"></param>
483 /// <param name="nRecommendation"></param>
484 /// <param name="pResult"></param>
485 /// <returns></returns>
486 [PreserveSig]
487 [return: MarshalAs(UnmanagedType.I4)]
488 int OnError(
489 [MarshalAs(UnmanagedType.U4)] ErrorType errorType,
490 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
491 [MarshalAs(UnmanagedType.U4)] int dwCode,
492 [MarshalAs(UnmanagedType.LPWStr)] string wzError,
493 [MarshalAs(UnmanagedType.I4)] int dwUIHint,
494 [MarshalAs(UnmanagedType.U4)] int cData,
495 [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5, ArraySubType = UnmanagedType.LPWStr), In] string[] rgwzData,
496 [MarshalAs(UnmanagedType.I4)] Result nRecommendation,
497 [MarshalAs(UnmanagedType.I4)] ref Result pResult
498 );
499
500 /// <summary>
501 /// See <see cref="IDefaultBootstrapperApplication.RegisterBegin"/>.
502 /// </summary>
503 /// <param name="fCancel"></param>
504 /// <returns></returns>
505 [PreserveSig]
506 [return: MarshalAs(UnmanagedType.I4)]
507 int OnRegisterBegin(
508 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
509 );
510
511 /// <summary>
512 /// See <see cref="IDefaultBootstrapperApplication.RegisterComplete"/>.
513 /// </summary>
514 /// <param name="hrStatus"></param>
515 /// <returns></returns>
516 [PreserveSig]
517 [return: MarshalAs(UnmanagedType.I4)]
518 int OnRegisterComplete(
519 int hrStatus
520 );
521
522 /// <summary>
523 /// See <see cref="IDefaultBootstrapperApplication.CacheBegin"/>.
524 /// </summary>
525 /// <param name="fCancel"></param>
526 /// <returns></returns>
527 [PreserveSig]
528 [return: MarshalAs(UnmanagedType.I4)]
529 int OnCacheBegin(
530 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
531 );
532
533 /// <summary>
534 /// See <see cref="IDefaultBootstrapperApplication.CachePackageBegin"/>.
535 /// </summary>
536 /// <param name="wzPackageId"></param>
537 /// <param name="cCachePayloads"></param>
538 /// <param name="dw64PackageCacheSize"></param>
539 /// <param name="fCancel"></param>
540 /// <returns></returns>
541 [PreserveSig]
542 [return: MarshalAs(UnmanagedType.I4)]
543 int OnCachePackageBegin(
544 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
545 [MarshalAs(UnmanagedType.U4)] int cCachePayloads,
546 [MarshalAs(UnmanagedType.U8)] long dw64PackageCacheSize,
547 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
548 );
549
550 /// <summary>
551 /// See <see cref="IDefaultBootstrapperApplication.CacheAcquireBegin"/>.
552 /// </summary>
553 [PreserveSig]
554 [return: MarshalAs(UnmanagedType.I4)]
555 int OnCacheAcquireBegin(
556 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId,
557 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
558 [MarshalAs(UnmanagedType.LPWStr)] string wzSource,
559 [MarshalAs(UnmanagedType.LPWStr)] string wzDownloadUrl,
560 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadContainerId,
561 [MarshalAs(UnmanagedType.U4)] CacheOperation recommendation,
562 [MarshalAs(UnmanagedType.I4)] ref CacheOperation action,
563 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
564 );
565
566 /// <summary>
567 /// See <see cref="IDefaultBootstrapperApplication.CacheAcquireProgress"/>.
568 /// </summary>
569 [PreserveSig]
570 [return: MarshalAs(UnmanagedType.I4)]
571 int OnCacheAcquireProgress(
572 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId,
573 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
574 [MarshalAs(UnmanagedType.U8)] long dw64Progress,
575 [MarshalAs(UnmanagedType.U8)] long dw64Total,
576 [MarshalAs(UnmanagedType.U4)] int dwOverallPercentage,
577 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
578 );
579
580 /// <summary>
581 /// See <see cref="IDefaultBootstrapperApplication.CacheAcquireResolving"/>.
582 /// </summary>
583 [PreserveSig]
584 [return: MarshalAs(UnmanagedType.I4)]
585 int OnCacheAcquireResolving(
586 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId,
587 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
588 [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3, ArraySubType = UnmanagedType.LPWStr), In] string[] searchPaths,
589 [MarshalAs(UnmanagedType.U4)] int cSearchPaths,
590 [MarshalAs(UnmanagedType.Bool)] bool fFoundLocal,
591 [MarshalAs(UnmanagedType.U4)] int dwRecommendedSearchPath,
592 [MarshalAs(UnmanagedType.LPWStr)] string wzDownloadUrl,
593 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadContainerId,
594 [MarshalAs(UnmanagedType.I4)] CacheResolveOperation recommendation,
595 [MarshalAs(UnmanagedType.U4)] ref int dwChosenSearchPath,
596 [MarshalAs(UnmanagedType.I4)] ref CacheResolveOperation action,
597 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
598 );
599
600 /// <summary>
601 /// See <see cref="IDefaultBootstrapperApplication.CacheAcquireComplete"/>.
602 /// </summary>
603 [PreserveSig]
604 [return: MarshalAs(UnmanagedType.I4)]
605 int OnCacheAcquireComplete(
606 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId,
607 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
608 int hrStatus,
609 BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION recommendation,
610 ref BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION pAction
611 );
612
613 /// <summary>
614 /// See <see cref="IDefaultBootstrapperApplication.CacheVerifyBegin"/>.
615 /// </summary>
616 [PreserveSig]
617 [return: MarshalAs(UnmanagedType.I4)]
618 int OnCacheVerifyBegin(
619 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId,
620 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
621 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
622 );
623
624 /// <summary>
625 /// See <see cref="IDefaultBootstrapperApplication.CacheVerifyProgress"/>.
626 /// </summary>
627 [PreserveSig]
628 [return: MarshalAs(UnmanagedType.I4)]
629 int OnCacheVerifyProgress(
630 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId,
631 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
632 [MarshalAs(UnmanagedType.U8)] long dw64Progress,
633 [MarshalAs(UnmanagedType.U8)] long dw64Total,
634 [MarshalAs(UnmanagedType.U4)] int dwOverallPercentage,
635 [MarshalAs(UnmanagedType.I4)] CacheVerifyStep verifyStep,
636 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
637 );
638
639 /// <summary>
640 /// See <see cref="IDefaultBootstrapperApplication.CacheVerifyComplete"/>.
641 /// </summary>
642 [PreserveSig]
643 [return: MarshalAs(UnmanagedType.I4)]
644 int OnCacheVerifyComplete(
645 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId,
646 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
647 int hrStatus,
648 BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION recommendation,
649 ref BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION action
650 );
651
652 /// <summary>
653 /// See <see cref="IDefaultBootstrapperApplication.CachePackageComplete"/>.
654 /// </summary>
655 /// <param name="wzPackageId"></param>
656 /// <param name="hrStatus"></param>
657 /// <param name="recommendation"></param>
658 /// <param name="action"></param>
659 /// <returns></returns>
660 [PreserveSig]
661 [return: MarshalAs(UnmanagedType.I4)]
662 int OnCachePackageComplete(
663 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
664 int hrStatus,
665 BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION recommendation,
666 ref BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION action
667 );
668
669 /// <summary>
670 /// See <see cref="IDefaultBootstrapperApplication.CacheComplete"/>.
671 /// </summary>
672 /// <param name="hrStatus"></param>
673 /// <returns></returns>
674 [PreserveSig]
675 [return: MarshalAs(UnmanagedType.I4)]
676 int OnCacheComplete(
677 int hrStatus
678 );
679
680 /// <summary>
681 /// See <see cref="IDefaultBootstrapperApplication.ExecuteBegin"/>.
682 /// </summary>
683 /// <param name="cExecutingPackages"></param>
684 /// <param name="fCancel"></param>
685 /// <returns></returns>
686 [PreserveSig]
687 [return: MarshalAs(UnmanagedType.I4)]
688 int OnExecuteBegin(
689 [MarshalAs(UnmanagedType.U4)] int cExecutingPackages,
690 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
691 );
692
693 /// <summary>
694 /// See <see cref="IDefaultBootstrapperApplication.ExecutePackageBegin"/>.
695 /// </summary>
696 /// <param name="wzPackageId"></param>
697 /// <param name="fExecute"></param>
698 /// <param name="action"></param>
699 /// <param name="uiLevel"></param>
700 /// <param name="fDisableExternalUiHandler"></param>
701 /// <param name="fCancel"></param>
702 /// <returns></returns>
703 [PreserveSig]
704 [return: MarshalAs(UnmanagedType.I4)]
705 int OnExecutePackageBegin(
706 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
707 [MarshalAs(UnmanagedType.Bool)] bool fExecute,
708 [MarshalAs(UnmanagedType.U4)] ActionState action,
709 [MarshalAs(UnmanagedType.U4)] INSTALLUILEVEL uiLevel,
710 [MarshalAs(UnmanagedType.Bool)] bool fDisableExternalUiHandler,
711 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
712 );
713
714 /// <summary>
715 /// See <see cref="IDefaultBootstrapperApplication.ExecutePatchTarget"/>.
716 /// </summary>
717 /// <param name="wzPackageId"></param>
718 /// <param name="wzTargetProductCode"></param>
719 /// <param name="fCancel"></param>
720 /// <returns></returns>
721 [PreserveSig]
722 [return: MarshalAs(UnmanagedType.I4)]
723 int OnExecutePatchTarget(
724 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
725 [MarshalAs(UnmanagedType.LPWStr)] string wzTargetProductCode,
726 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
727 );
728
729 /// <summary>
730 /// See <see cref="IDefaultBootstrapperApplication.ExecuteProgress"/>.
731 /// </summary>
732 /// <param name="wzPackageId"></param>
733 /// <param name="dwProgressPercentage"></param>
734 /// <param name="dwOverallPercentage"></param>
735 /// <param name="fCancel"></param>
736 /// <returns></returns>
737 [PreserveSig]
738 [return: MarshalAs(UnmanagedType.I4)]
739 int OnExecuteProgress(
740 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
741 [MarshalAs(UnmanagedType.U4)] int dwProgressPercentage,
742 [MarshalAs(UnmanagedType.U4)] int dwOverallPercentage,
743 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
744 );
745
746 /// <summary>
747 /// See <see cref="IDefaultBootstrapperApplication.ExecuteMsiMessage"/>.
748 /// </summary>
749 /// <param name="wzPackageId"></param>
750 /// <param name="messageType"></param>
751 /// <param name="dwUIHint"></param>
752 /// <param name="wzMessage"></param>
753 /// <param name="cData"></param>
754 /// <param name="rgwzData"></param>
755 /// <param name="nRecommendation"></param>
756 /// <param name="pResult"></param>
757 /// <returns></returns>
758 [PreserveSig]
759 [return: MarshalAs(UnmanagedType.I4)]
760 int OnExecuteMsiMessage(
761 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
762 [MarshalAs(UnmanagedType.U4)] InstallMessage messageType,
763 [MarshalAs(UnmanagedType.I4)] int dwUIHint,
764 [MarshalAs(UnmanagedType.LPWStr)] string wzMessage,
765 [MarshalAs(UnmanagedType.U4)] int cData,
766 [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 4, ArraySubType = UnmanagedType.LPWStr), In] string[] rgwzData,
767 [MarshalAs(UnmanagedType.I4)] Result nRecommendation,
768 [MarshalAs(UnmanagedType.I4)] ref Result pResult
769 );
770
771 /// <summary>
772 /// See <see cref="IDefaultBootstrapperApplication.ExecuteFilesInUse"/>.
773 /// </summary>
774 /// <param name="wzPackageId"></param>
775 /// <param name="cFiles"></param>
776 /// <param name="rgwzFiles"></param>
777 /// <param name="nRecommendation"></param>
778 /// <param name="pResult"></param>
779 /// <returns></returns>
780 [PreserveSig]
781 [return: MarshalAs(UnmanagedType.I4)]
782 int OnExecuteFilesInUse(
783 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
784 [MarshalAs(UnmanagedType.U4)] int cFiles,
785 [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1, ArraySubType = UnmanagedType.LPWStr), In] string[] rgwzFiles,
786 [MarshalAs(UnmanagedType.I4)] Result nRecommendation,
787 [MarshalAs(UnmanagedType.I4)] ref Result pResult
788 );
789
790 /// <summary>
791 /// See <see cref="IDefaultBootstrapperApplication.ExecutePackageComplete"/>.
792 /// </summary>
793 /// <param name="wzPackageId"></param>
794 /// <param name="hrStatus"></param>
795 /// <param name="restart"></param>
796 /// <param name="recommendation"></param>
797 /// <param name="pAction"></param>
798 /// <returns></returns>
799 [PreserveSig]
800 [return: MarshalAs(UnmanagedType.I4)]
801 int OnExecutePackageComplete(
802 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
803 int hrStatus,
804 [MarshalAs(UnmanagedType.U4)] ApplyRestart restart,
805 [MarshalAs(UnmanagedType.I4)] BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION recommendation,
806 [MarshalAs(UnmanagedType.I4)] ref BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION pAction
807 );
808
809 /// <summary>
810 /// See <see cref="IDefaultBootstrapperApplication.ExecuteComplete"/>.
811 /// </summary>
812 /// <param name="hrStatus"></param>
813 /// <returns></returns>
814 [PreserveSig]
815 [return: MarshalAs(UnmanagedType.I4)]
816 int OnExecuteComplete(
817 int hrStatus
818 );
819
820 /// <summary>
821 /// See <see cref="IDefaultBootstrapperApplication.UnregisterBegin"/>.
822 /// </summary>
823 /// <param name="fKeepRegistration"></param>
824 /// <param name="fForceKeepRegistration"></param>
825 /// <returns></returns>
826 [PreserveSig]
827 [return: MarshalAs(UnmanagedType.I4)]
828 int OnUnregisterBegin(
829 [MarshalAs(UnmanagedType.Bool)] bool fKeepRegistration,
830 [MarshalAs(UnmanagedType.Bool)] ref bool fForceKeepRegistration
831 );
832
833 /// <summary>
834 /// See <see cref="IDefaultBootstrapperApplication.UnregisterComplete"/>.
835 /// </summary>
836 /// <param name="hrStatus"></param>
837 /// <returns></returns>
838 [PreserveSig]
839 [return: MarshalAs(UnmanagedType.I4)]
840 int OnUnregisterComplete(
841 int hrStatus
842 );
843
844 /// <summary>
845 /// See <see cref="IDefaultBootstrapperApplication.ApplyComplete"/>.
846 /// </summary>
847 /// <param name="hrStatus"></param>
848 /// <param name="restart"></param>
849 /// <param name="recommendation"></param>
850 /// <param name="pAction"></param>
851 /// <returns></returns>
852 [PreserveSig]
853 [return: MarshalAs(UnmanagedType.I4)]
854 int OnApplyComplete(
855 int hrStatus,
856 [MarshalAs(UnmanagedType.U4)] ApplyRestart restart,
857 [MarshalAs(UnmanagedType.I4)] BOOTSTRAPPER_APPLYCOMPLETE_ACTION recommendation,
858 [MarshalAs(UnmanagedType.I4)] ref BOOTSTRAPPER_APPLYCOMPLETE_ACTION pAction
859 );
860
861 /// <summary>
862 /// See <see cref="IDefaultBootstrapperApplication.LaunchApprovedExeBegin"/>.
863 /// </summary>
864 /// <param name="fCancel"></param>
865 /// <returns></returns>
866 [PreserveSig]
867 [return: MarshalAs(UnmanagedType.I4)]
868 int OnLaunchApprovedExeBegin(
869 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
870 );
871
872 /// <summary>
873 /// See <see cref="IDefaultBootstrapperApplication.LaunchApprovedExeComplete"/>.
874 /// </summary>
875 /// <param name="hrStatus"></param>
876 /// <param name="processId"></param>
877 /// <returns></returns>
878 [PreserveSig]
879 [return: MarshalAs(UnmanagedType.I4)]
880 int OnLaunchApprovedExeComplete(
881 int hrStatus,
882 int processId
883 );
884
885 /// <summary>
886 /// See <see cref="IDefaultBootstrapperApplication.BeginMsiTransactionBegin"/>.
887 /// </summary>
888 /// <param name="wzTransactionId"></param>
889 /// <param name="fCancel"></param>
890 /// <returns></returns>
891 [PreserveSig]
892 [return: MarshalAs(UnmanagedType.I4)]
893 int OnBeginMsiTransactionBegin(
894 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
895 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
896 );
897
898 /// <summary>
899 /// See <see cref="IDefaultBootstrapperApplication.BeginMsiTransactionComplete"/>.
900 /// </summary>
901 /// <param name="wzTransactionId"></param>
902 /// <param name="hrStatus"></param>
903 /// <returns></returns>
904 [PreserveSig]
905 [return: MarshalAs(UnmanagedType.I4)]
906 int OnBeginMsiTransactionComplete(
907 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
908 int hrStatus
909 );
910
911 /// <summary>
912 /// See <see cref="IDefaultBootstrapperApplication.CommitMsiTransactionBegin"/>.
913 /// </summary>
914 /// <param name="wzTransactionId"></param>
915 /// <param name="fCancel"></param>
916 /// <returns></returns>
917 [PreserveSig]
918 [return: MarshalAs(UnmanagedType.I4)]
919 int OnCommitMsiTransactionBegin(
920 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
921 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
922 );
923
924 /// <summary>
925 /// See <see cref="IDefaultBootstrapperApplication.CommitMsiTransactionComplete"/>.
926 /// </summary>
927 /// <param name="wzTransactionId"></param>
928 /// <param name="hrStatus"></param>
929 /// <returns></returns>
930 [PreserveSig]
931 [return: MarshalAs(UnmanagedType.I4)]
932 int OnCommitMsiTransactionComplete(
933 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
934 int hrStatus
935 );
936
937 /// <summary>
938 /// See <see cref="IDefaultBootstrapperApplication.RollbackMsiTransactionBegin"/>.
939 /// </summary>
940 /// <param name="wzTransactionId"></param>
941 /// <returns></returns>
942 [PreserveSig]
943 [return: MarshalAs(UnmanagedType.I4)]
944 int OnRollbackMsiTransactionBegin(
945 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId
946 );
947
948 /// <summary>
949 /// See <see cref="IDefaultBootstrapperApplication.RollbackMsiTransactionComplete"/>.
950 /// </summary>
951 /// <param name="wzTransactionId"></param>
952 /// <param name="hrStatus"></param>
953 /// <returns></returns>
954 [PreserveSig]
955 [return: MarshalAs(UnmanagedType.I4)]
956 int OnRollbackMsiTransactionComplete(
957 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
958 int hrStatus
959 );
960
961 /// <summary>
962 /// See <see cref="IDefaultBootstrapperApplication.PauseAutomaticUpdatesBegin"/>.
963 /// </summary>
964 /// <returns></returns>
965 [PreserveSig]
966 [return: MarshalAs(UnmanagedType.I4)]
967 int OnPauseAutomaticUpdatesBegin(
968 );
969
970 /// <summary>
971 /// See <see cref="IDefaultBootstrapperApplication.PauseAutomaticUpdatesComplete"/>.
972 /// </summary>
973 /// <param name="hrStatus"></param>
974 /// <returns></returns>
975 [PreserveSig]
976 [return: MarshalAs(UnmanagedType.I4)]
977 int OnPauseAutomaticUpdatesComplete(
978 int hrStatus
979 );
980
981 /// <summary>
982 /// See <see cref="IDefaultBootstrapperApplication.SystemRestorePointBegin"/>.
983 /// </summary>
984 /// <returns></returns>
985 [PreserveSig]
986 [return: MarshalAs(UnmanagedType.I4)]
987 int OnSystemRestorePointBegin(
988 );
989
990 /// <summary>
991 /// See <see cref="IDefaultBootstrapperApplication.SystemRestorePointComplete"/>.
992 /// </summary>
993 /// <param name="hrStatus"></param>
994 /// <returns></returns>
995 [PreserveSig]
996 [return: MarshalAs(UnmanagedType.I4)]
997 int OnSystemRestorePointComplete(
998 int hrStatus
999 );
1000
1001 /// <summary>
1002 /// See <see cref="IDefaultBootstrapperApplication.PlanForwardCompatibleBundle"/>.
1003 /// </summary>
1004 /// <param name="wzBundleId"></param>
1005 /// <param name="relationType"></param>
1006 /// <param name="wzBundleTag"></param>
1007 /// <param name="fPerMachine"></param>
1008 /// <param name="wzVersion"></param>
1009 /// <param name="fRecommendedIgnoreBundle"></param>
1010 /// <param name="fCancel"></param>
1011 /// <param name="fIgnoreBundle"></param>
1012 /// <returns></returns>
1013 [PreserveSig]
1014 [return: MarshalAs(UnmanagedType.I4)]
1015 int OnPlanForwardCompatibleBundle(
1016 [MarshalAs(UnmanagedType.LPWStr)] string wzBundleId,
1017 [MarshalAs(UnmanagedType.U4)] RelationType relationType,
1018 [MarshalAs(UnmanagedType.LPWStr)] string wzBundleTag,
1019 [MarshalAs(UnmanagedType.Bool)] bool fPerMachine,
1020 [MarshalAs(UnmanagedType.LPWStr)] string wzVersion,
1021 [MarshalAs(UnmanagedType.Bool)] bool fRecommendedIgnoreBundle,
1022 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel,
1023 [MarshalAs(UnmanagedType.Bool)] ref bool fIgnoreBundle
1024 );
1025
1026 /// <summary>
1027 /// See <see cref="IDefaultBootstrapperApplication.CacheContainerOrPayloadVerifyBegin"/>.
1028 /// </summary>
1029 [PreserveSig]
1030 [return: MarshalAs(UnmanagedType.I4)]
1031 int OnCacheContainerOrPayloadVerifyBegin(
1032 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
1033 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
1034 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
1035 );
1036
1037 /// <summary>
1038 /// See <see cref="IDefaultBootstrapperApplication.CacheContainerOrPayloadVerifyProgress"/>.
1039 /// </summary>
1040 [PreserveSig]
1041 [return: MarshalAs(UnmanagedType.I4)]
1042 int OnCacheContainerOrPayloadVerifyProgress(
1043 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId,
1044 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
1045 [MarshalAs(UnmanagedType.U8)] long dw64Progress,
1046 [MarshalAs(UnmanagedType.U8)] long dw64Total,
1047 [MarshalAs(UnmanagedType.U4)] int dwOverallPercentage,
1048 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
1049 );
1050
1051 /// <summary>
1052 /// See <see cref="IDefaultBootstrapperApplication.CacheContainerOrPayloadVerifyComplete"/>.
1053 /// </summary>
1054 [PreserveSig]
1055 [return: MarshalAs(UnmanagedType.I4)]
1056 int OnCacheContainerOrPayloadVerifyComplete(
1057 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
1058 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
1059 int hrStatus
1060 );
1061
1062 /// <summary>
1063 /// See <see cref="IDefaultBootstrapperApplication.CachePayloadExtractBegin"/>.
1064 /// </summary>
1065 [PreserveSig]
1066 [return: MarshalAs(UnmanagedType.I4)]
1067 int OnCachePayloadExtractBegin(
1068 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
1069 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
1070 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
1071 );
1072
1073 /// <summary>
1074 /// See <see cref="IDefaultBootstrapperApplication.CachePayloadExtractProgress"/>.
1075 /// </summary>
1076 [PreserveSig]
1077 [return: MarshalAs(UnmanagedType.I4)]
1078 int OnCachePayloadExtractProgress(
1079 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageOrContainerId,
1080 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
1081 [MarshalAs(UnmanagedType.U8)] long dw64Progress,
1082 [MarshalAs(UnmanagedType.U8)] long dw64Total,
1083 [MarshalAs(UnmanagedType.U4)] int dwOverallPercentage,
1084 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
1085 );
1086
1087 /// <summary>
1088 /// See <see cref="IDefaultBootstrapperApplication.CachePayloadExtractComplete"/>.
1089 /// </summary>
1090 [PreserveSig]
1091 [return: MarshalAs(UnmanagedType.I4)]
1092 int OnCachePayloadExtractComplete(
1093 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
1094 [MarshalAs(UnmanagedType.LPWStr)] string wzPayloadId,
1095 int hrStatus
1096 );
1097 }
1098
1099 /// <summary>
1100 /// The display level for the BA.
1101 /// </summary>
1102 public enum Display
1103 {
1104 /// <summary>
1105 ///
1106 /// </summary>
1107 Unknown,
1108
1109 /// <summary>
1110 ///
1111 /// </summary>
1112 Embedded,
1113
1114 /// <summary>
1115 ///
1116 /// </summary>
1117 None,
1118
1119 /// <summary>
1120 ///
1121 /// </summary>
1122 Passive,
1123
1124 /// <summary>
1125 ///
1126 /// </summary>
1127 Full,
1128 }
1129
1130 /// <summary>
1131 /// Messages from Windows Installer (msi.h).
1132 /// </summary>
1133 public enum InstallMessage
1134 {
1135 /// <summary>
1136 /// premature termination, possibly fatal OOM
1137 /// </summary>
1138 FatalExit,
1139
1140 /// <summary>
1141 /// formatted error message
1142 /// </summary>
1143 Error = 0x01000000,
1144
1145 /// <summary>
1146 /// formatted warning message
1147 /// </summary>
1148 Warning = 0x02000000,
1149
1150 /// <summary>
1151 /// user request message
1152 /// </summary>
1153 User = 0x03000000,
1154
1155 /// <summary>
1156 /// informative message for log
1157 /// </summary>
1158 Info = 0x04000000,
1159
1160 /// <summary>
1161 /// list of files in use that need to be replaced
1162 /// </summary>
1163 FilesInUse = 0x05000000,
1164
1165 /// <summary>
1166 /// request to determine a valid source location
1167 /// </summary>
1168 ResolveSource = 0x06000000,
1169
1170 /// <summary>
1171 /// insufficient disk space message
1172 /// </summary>
1173 OutOfDiskSpace = 0x07000000,
1174
1175 /// <summary>
1176 /// start of action: action name &amp; description
1177 /// </summary>
1178 ActionStart = 0x08000000,
1179
1180 /// <summary>
1181 /// formatted data associated with individual action item
1182 /// </summary>
1183 ActionData = 0x09000000,
1184
1185 /// <summary>
1186 /// progress gauge info: units so far, total
1187 /// </summary>
1188 Progress = 0x0a000000,
1189
1190 /// <summary>
1191 /// product info for dialog: language Id, dialog caption
1192 /// </summary>
1193 CommonData = 0x0b000000,
1194
1195 /// <summary>
1196 /// sent prior to UI initialization, no string data
1197 /// </summary>
1198 Initialize = 0x0c000000,
1199
1200 /// <summary>
1201 /// sent after UI termination, no string data
1202 /// </summary>
1203 Terminate = 0x0d000000,
1204
1205 /// <summary>
1206 /// sent prior to display or authored dialog or wizard
1207 /// </summary>
1208 ShowDialog = 0x0e000000,
1209
1210 /// <summary>
1211 /// log only, to log performance number like action time
1212 /// </summary>
1213 Performance = 0x0f000000,
1214
1215 /// <summary>
1216 /// the list of apps that the user can request Restart Manager to shut down and restart
1217 /// </summary>
1218 RMFilesInUse = 0x19000000,
1219
1220 /// <summary>
1221 /// sent prior to server-side install of a product
1222 /// </summary>
1223 InstallStart = 0x1a000000,
1224
1225 /// <summary>
1226 /// sent after server-side install
1227 /// </summary>
1228 InstallEnd = 0x1B000000,
1229 }
1230
1231 /// <summary>
1232 /// The action to perform when a reboot is necessary.
1233 /// </summary>
1234 public enum Restart
1235 {
1236 /// <summary>
1237 ///
1238 /// </summary>
1239 Unknown,
1240
1241 /// <summary>
1242 ///
1243 /// </summary>
1244 Never,
1245
1246 /// <summary>
1247 ///
1248 /// </summary>
1249 Prompt,
1250
1251 /// <summary>
1252 ///
1253 /// </summary>
1254 Automatic,
1255
1256 /// <summary>
1257 ///
1258 /// </summary>
1259 Always,
1260 }
1261
1262 /// <summary>
1263 /// Result codes (based on Dialog Box Command IDs from WinUser.h).
1264 /// </summary>
1265 public enum Result
1266 {
1267 /// <summary>
1268 ///
1269 /// </summary>
1270 Error = -1,
1271
1272 /// <summary>
1273 ///
1274 /// </summary>
1275 None,
1276
1277 /// <summary>
1278 ///
1279 /// </summary>
1280 Ok,
1281
1282 /// <summary>
1283 ///
1284 /// </summary>
1285 Cancel,
1286
1287 /// <summary>
1288 ///
1289 /// </summary>
1290 Abort,
1291
1292 /// <summary>
1293 ///
1294 /// </summary>
1295 Retry,
1296
1297 /// <summary>
1298 ///
1299 /// </summary>
1300 Ignore,
1301
1302 /// <summary>
1303 ///
1304 /// </summary>
1305 Yes,
1306
1307 /// <summary>
1308 ///
1309 /// </summary>
1310 No,
1311
1312 /// <summary>
1313 /// /
1314 /// </summary>
1315 Close,
1316
1317 /// <summary>
1318 ///
1319 /// </summary>
1320 Help,
1321
1322 /// <summary>
1323 ///
1324 /// </summary>
1325 TryAgain,
1326
1327 /// <summary>
1328 ///
1329 /// </summary>
1330 Continue,
1331 }
1332
1333 /// <summary>
1334 /// Describes why a bundle or packaged is being resumed.
1335 /// </summary>
1336 public enum ResumeType
1337 {
1338 /// <summary>
1339 ///
1340 /// </summary>
1341 None,
1342
1343 /// <summary>
1344 /// Resume information exists but is invalid.
1345 /// </summary>
1346 Invalid,
1347
1348 /// <summary>
1349 /// The bundle was re-launched after an unexpected interruption.
1350 /// </summary>
1351 Interrupted,
1352
1353 /// <summary>
1354 /// A reboot is pending.
1355 /// </summary>
1356 RebootPending,
1357
1358 /// <summary>
1359 /// The bundle was re-launched after a reboot.
1360 /// </summary>
1361 Reboot,
1362
1363 /// <summary>
1364 /// The bundle was re-launched after being suspended.
1365 /// </summary>
1366 Suspend,
1367
1368 /// <summary>
1369 /// The bundle was launched from Add/Remove Programs.
1370 /// </summary>
1371 Arp,
1372 }
1373
1374 /// <summary>
1375 /// Indicates what caused the error.
1376 /// </summary>
1377 public enum ErrorType
1378 {
1379 /// <summary>
1380 /// The error occurred trying to elevate.
1381 /// </summary>
1382 Elevate,
1383
1384 /// <summary>
1385 /// The error came from the Windows Installer.
1386 /// </summary>
1387 WindowsInstaller,
1388
1389 /// <summary>
1390 /// The error came from an EXE Package.
1391 /// </summary>
1392 ExePackage,
1393
1394 /// <summary>
1395 /// The error came while trying to authenticate with an HTTP server.
1396 /// </summary>
1397 HttpServerAuthentication,
1398
1399 /// <summary>
1400 /// The error came while trying to authenticate with an HTTP proxy.
1401 /// </summary>
1402 HttpProxyAuthentication,
1403
1404 /// <summary>
1405 /// The error occurred during apply.
1406 /// </summary>
1407 Apply,
1408 };
1409
1410 /// <summary>
1411 /// The calculated operation for the related bundle.
1412 /// </summary>
1413 public enum RelatedOperation
1414 {
1415 /// <summary>
1416 ///
1417 /// </summary>
1418 None,
1419
1420 /// <summary>
1421 /// The related bundle or package will be downgraded.
1422 /// </summary>
1423 Downgrade,
1424
1425 /// <summary>
1426 /// The related package will be upgraded as a minor revision.
1427 /// </summary>
1428 MinorUpdate,
1429
1430 /// <summary>
1431 /// The related bundle or package will be upgraded as a major revision.
1432 /// </summary>
1433 MajorUpgrade,
1434
1435 /// <summary>
1436 /// The related bundle will be removed.
1437 /// </summary>
1438 Remove,
1439
1440 /// <summary>
1441 /// The related bundle will be installed.
1442 /// </summary>
1443 Install,
1444
1445 /// <summary>
1446 /// The related bundle will be repaired.
1447 /// </summary>
1448 Repair,
1449 };
1450
1451 /// <summary>
1452 /// The cache operation used to acquire a container or payload.
1453 /// </summary>
1454 public enum CacheOperation
1455 {
1456 /// <summary>
1457 /// There is no source available.
1458 /// </summary>
1459 None,
1460
1461 /// <summary>
1462 /// Copy the payload or container from the chosen local source.
1463 /// </summary>
1464 Copy,
1465
1466 /// <summary>
1467 /// Download the payload or container using the download URL.
1468 /// </summary>
1469 Download,
1470
1471 /// <summary>
1472 /// Extract the payload from the container.
1473 /// </summary>
1474 Extract,
1475 }
1476
1477 /// <summary>
1478 /// The source to be used to acquire a container or payload.
1479 /// </summary>
1480 public enum CacheResolveOperation
1481 {
1482 /// <summary>
1483 /// There is no source available.
1484 /// </summary>
1485 None,
1486
1487 /// <summary>
1488 /// Copy the payload or container from the chosen local source.
1489 /// </summary>
1490 Local,
1491
1492 /// <summary>
1493 /// Download the payload or container from the download URL.
1494 /// </summary>
1495 Download,
1496
1497 /// <summary>
1498 /// Extract the payload from the container.
1499 /// </summary>
1500 Container,
1501
1502 /// <summary>
1503 /// Look again for the payload or container locally.
1504 /// </summary>
1505 Retry,
1506 }
1507
1508 /// <summary>
1509 /// The current step when verifying a container or payload.
1510 /// </summary>
1511 public enum CacheVerifyStep
1512 {
1513 /// <summary>
1514 /// Copying or moving the file from the working path to the unverified path.
1515 /// Not used during Layout.
1516 /// </summary>
1517 Stage,
1518 /// <summary>
1519 /// Hashing the file.
1520 /// </summary>
1521 Hash,
1522 /// <summary>
1523 /// Copying or moving the file to the final location.
1524 /// </summary>
1525 Finalize,
1526 }
1527
1528 /// <summary>
1529 /// The restart state after a package or all packages were applied.
1530 /// </summary>
1531 public enum ApplyRestart
1532 {
1533 /// <summary>
1534 /// Package or chain does not require a restart.
1535 /// </summary>
1536 None,
1537
1538 /// <summary>
1539 /// Package or chain requires a restart but it has not been initiated yet.
1540 /// </summary>
1541 RestartRequired,
1542
1543 /// <summary>
1544 /// Package or chain has already initiated the restart.
1545 /// </summary>
1546 RestartInitiated
1547 }
1548
1549 /// <summary>
1550 /// The relation type for related bundles.
1551 /// </summary>
1552 public enum RelationType
1553 {
1554 /// <summary>
1555 ///
1556 /// </summary>
1557 None,
1558
1559 /// <summary>
1560 ///
1561 /// </summary>
1562 Detect,
1563
1564 /// <summary>
1565 ///
1566 /// </summary>
1567 Upgrade,
1568
1569 /// <summary>
1570 ///
1571 /// </summary>
1572 Addon,
1573
1574 /// <summary>
1575 ///
1576 /// </summary>
1577 Patch,
1578
1579 /// <summary>
1580 ///
1581 /// </summary>
1582 Dependent,
1583
1584 /// <summary>
1585 ///
1586 /// </summary>
1587 Update,
1588 }
1589
1590 /// <summary>
1591 /// One or more reasons why the application is requested to be closed or is being closed.
1592 /// </summary>
1593 [Flags]
1594 public enum EndSessionReasons
1595 {
1596 /// <summary>
1597 /// The system is shutting down or restarting (it is not possible to determine which event is occurring).
1598 /// </summary>
1599 Unknown,
1600
1601 /// <summary>
1602 /// The application is using a file that must be replaced, the system is being serviced, or system resources are exhausted.
1603 /// </summary>
1604 CloseApplication,
1605
1606 /// <summary>
1607 /// The application is forced to shut down.
1608 /// </summary>
1609 Critical = 0x40000000,
1610
1611 /// <summary>
1612 /// The user is logging off.
1613 /// </summary>
1614 Logoff = unchecked((int)0x80000000)
1615 }
1616
1617 /// <summary>
1618 /// The available actions for <see cref="IDefaultBootstrapperApplication.ApplyComplete"/>.
1619 /// </summary>
1620 public enum BOOTSTRAPPER_APPLYCOMPLETE_ACTION
1621 {
1622 /// <summary>
1623 ///
1624 /// </summary>
1625 None,
1626
1627 /// <summary>
1628 /// Instructs the engine to restart.
1629 /// The engine will not launch again after the machine is rebooted.
1630 /// Ignored if reboot was already initiated by <see cref="IDefaultBootstrapperApplication.ExecutePackageComplete"/>.
1631 /// </summary>
1632 Restart,
1633 }
1634
1635 /// <summary>
1636 /// The cache strategy to be used for the package.
1637 /// </summary>
1638 public enum BOOTSTRAPPER_CACHE_TYPE
1639 {
1640 /// <summary>
1641 /// The package will be cached in order to securely run the package, but will always be cleaned from the cache at the end.
1642 /// </summary>
1643 Remove,
1644
1645 /// <summary>
1646 /// The package will be cached in order to run the package, and then kept in the cache until the package is uninstalled.
1647 /// </summary>
1648 Keep,
1649
1650 /// <summary>
1651 /// The package will always be cached and stay in the cache, unless the package and bundle are both being uninstalled.
1652 /// </summary>
1653 Force,
1654 }
1655
1656 /// <summary>
1657 /// The available actions for <see cref="IDefaultBootstrapperApplication.CacheAcquireComplete"/>.
1658 /// </summary>
1659 public enum BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION
1660 {
1661 /// <summary>
1662 ///
1663 /// </summary>
1664 None,
1665
1666 /// <summary>
1667 /// Instructs the engine to try the acquisition of the payload again.
1668 /// Ignored if hrStatus is a success.
1669 /// </summary>
1670 Retry,
1671 }
1672
1673 /// <summary>
1674 /// The available actions for <see cref="IDefaultBootstrapperApplication.CachePackageComplete"/>.
1675 /// </summary>
1676 public enum BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION
1677 {
1678 /// <summary>
1679 ///
1680 /// </summary>
1681 None,
1682
1683 /// <summary>
1684 /// Instructs the engine to ignore non-vital package failures and continue with the caching.
1685 /// Ignored if hrStatus is a success or the package is vital.
1686 /// </summary>
1687 Ignore,
1688
1689 /// <summary>
1690 /// Instructs the engine to try the acquisition and verification of the package again.
1691 /// Ignored if hrStatus is a success.
1692 /// </summary>
1693 Retry,
1694 }
1695
1696 /// <summary>
1697 /// The available actions for <see cref="IDefaultBootstrapperApplication.CacheVerifyComplete"/>.
1698 /// </summary>
1699 public enum BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION
1700 {
1701 /// <summary>
1702 ///
1703 /// </summary>
1704 None,
1705
1706 /// <summary>
1707 /// Ignored if hrStatus is a success.
1708 /// </summary>
1709 RetryVerification,
1710
1711 /// <summary>
1712 /// Ignored if hrStatus is a success.
1713 /// </summary>
1714 RetryAcquisition,
1715 }
1716
1717 /// <summary>
1718 /// The available actions for <see cref="IDefaultBootstrapperApplication.ExecutePackageComplete"/>.
1719 /// </summary>
1720 public enum BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION
1721 {
1722 /// <summary>
1723 ///
1724 /// </summary>
1725 None,
1726
1727 /// <summary>
1728 /// Instructs the engine to ignore non-vital package failures and continue with the install.
1729 /// Ignored if hrStatus is a success or the package is vital.
1730 /// </summary>
1731 Ignore,
1732
1733 /// <summary>
1734 /// Instructs the engine to try the execution of the package again.
1735 /// Ignored if hrStatus is a success.
1736 /// </summary>
1737 Retry,
1738
1739 /// <summary>
1740 /// Instructs the engine to stop processing the chain and restart.
1741 /// The engine will launch again after the machine is restarted.
1742 /// </summary>
1743 Restart,
1744
1745 /// <summary>
1746 /// Instructs the engine to stop processing the chain and suspend the current state.
1747 /// </summary>
1748 Suspend,
1749 }
1750
1751 /// <summary>
1752 /// The result of evaluating a condition from a package.
1753 /// </summary>
1754 public enum BOOTSTRAPPER_PACKAGE_CONDITION_RESULT
1755 {
1756 /// <summary>
1757 /// No condition was authored.
1758 /// </summary>
1759 Default,
1760
1761 /// <summary>
1762 /// Evaluated to false.
1763 /// </summary>
1764 False,
1765
1766 /// <summary>
1767 /// Evaluated to true.
1768 /// </summary>
1769 True,
1770 }
1771
1772 /// <summary>
1773 /// The available actions for <see cref="IDefaultBootstrapperApplication.CacheAcquireResolving"/>.
1774 /// </summary>
1775 public enum BOOTSTRAPPER_RESOLVESOURCE_ACTION
1776 {
1777 /// <summary>
1778 /// Instructs the engine that the source can't be found.
1779 /// </summary>
1780 None,
1781
1782 /// <summary>
1783 /// Instructs the engine to try the local source again.
1784 /// </summary>
1785 Retry,
1786
1787 /// <summary>
1788 /// Instructs the engine to try the download source.
1789 /// </summary>
1790 Download,
1791 }
1792
1793 /// <summary>
1794 /// The available actions for <see cref="IDefaultBootstrapperApplication.Shutdown"/>.
1795 /// </summary>
1796 public enum BOOTSTRAPPER_SHUTDOWN_ACTION
1797 {
1798 /// <summary>
1799 ///
1800 /// </summary>
1801 None,
1802
1803 /// <summary>
1804 /// Instructs the engine to restart.
1805 /// The engine will not launch again after the machine is rebooted.
1806 /// Ignored if reboot was already initiated by <see cref="IDefaultBootstrapperApplication.ExecutePackageComplete"/>.
1807 /// </summary>
1808 Restart,
1809
1810 /// <summary>
1811 /// Instructs the engine to unload the bootstrapper application and
1812 /// restart the engine which will load the bootstrapper application again.
1813 /// Typically used to switch from a native bootstrapper application to a managed one.
1814 /// </summary>
1815 ReloadBootstrapper,
1816
1817 /// <summary>
1818 /// Opts out of the engine behavior of trying to uninstall itself when no non-permanent packages are installed.
1819 /// </summary>
1820 SkipCleanup,
1821 }
1822
1823 /// <summary>
1824 /// The property Burn will add so the MSI can know the planned action for the package.
1825 /// </summary>
1826 public enum BURN_MSI_PROPERTY
1827 {
1828 /// <summary>
1829 /// No property will be added.
1830 /// </summary>
1831 None,
1832
1833 /// <summary>
1834 /// Add BURNMSIINSTALL=1
1835 /// </summary>
1836 Install,
1837
1838 /// <summary>
1839 /// Add BURNMSIMODFIY=1
1840 /// </summary>
1841 Modify,
1842
1843 /// <summary>
1844 /// Add BURNMSIREPAIR=1
1845 /// </summary>
1846 Repair,
1847
1848 /// <summary>
1849 /// Add BURNMSIUNINSTALL=1
1850 /// </summary>
1851 Uninstall,
1852 }
1853
1854 /// <summary>
1855 /// From msi.h
1856 /// https://docs.microsoft.com/en-us/windows/win32/api/msi/nf-msi-msisetinternalui
1857 /// </summary>
1858 [Flags]
1859 public enum INSTALLUILEVEL
1860 {
1861 /// <summary>
1862 /// UI level is unchanged
1863 /// </summary>
1864 NoChange = 0,
1865
1866 /// <summary>
1867 /// default UI is used
1868 /// </summary>
1869 Default = 1,
1870
1871 /// <summary>
1872 /// completely silent installation
1873 /// </summary>
1874 None = 2,
1875
1876 /// <summary>
1877 /// simple progress and error handling
1878 /// </summary>
1879 Basic = 3,
1880
1881 /// <summary>
1882 /// authored UI, wizard dialogs suppressed
1883 /// </summary>
1884 Reduced = 4,
1885
1886 /// <summary>
1887 /// authored UI with wizards, progress, errors
1888 /// </summary>
1889 Full = 5,
1890
1891 /// <summary>
1892 /// display success/failure dialog at end of install
1893 /// </summary>
1894 EndDialog = 0x80,
1895
1896 /// <summary>
1897 /// display only progress dialog
1898 /// </summary>
1899 ProgressOnly = 0x40,
1900
1901 /// <summary>
1902 /// do not display the cancel button in basic UI
1903 /// </summary>
1904 HideCancel = 0x20,
1905
1906 /// <summary>
1907 /// force display of source resolution even if quiet
1908 /// </summary>
1909 SourceResOnly = 0x100,
1910
1911 /// <summary>
1912 /// show UAC prompt even if quiet
1913 /// Can only be used if on Windows Installer 5.0 or later
1914 /// </summary>
1915 UacOnly = 0x200,
1916 }
1917}