Migrate Burn API headers from burn repository
Rob Mensching committed
Apr 21, 2021 at 11:01 UTC
8eb98efd2175d9ece2e4639d43081667af9a4990
8 files changed
+2056
appveyor.cmd
+1
@@ -20,6 +20,7 @@ dotnet test -c %_C% --no-build src\test\WixToolsetTest.Mba.Core\WixToolsetTest.M
20
21
msbuild -t:PackNative -p:Configuration=%_C% src\balutil\balutil.vcxproj || exit /b
22
msbuild -t:PackNative -p:Configuration=%_C% src\bextutil\bextutil.vcxproj || exit /b
23
+msbuild -t:PackNative -p:Configuration=%_C% src\WixToolset.BootstrapperCore.Native\WixToolset.BootstrapperCore.Native.proj || exit /b
24
msbuild -t:Pack -p:Configuration=%_C% -p:NoBuild=true src\WixToolset.Mba.Core\WixToolset.Mba.Core.csproj || exit /b
25
26
@popd
src/WixToolset.BootstrapperCore.Native/WixToolset.BootstrapperCore.Native.nuspec
new
+19
@@ -0,0 +1,19 @@
1
+<?xml version="1.0"?>
2
+<package >
3
+ <metadata>
4
+ <id>$id$</id>
5
+ <version>$version$</version>
6
+ <authors>WiX Toolset Team</authors>
7
+ <owners>WiX Toolset Team</owners>
8
+ <license type="expression">MS-RL</license>
9
+ <projectUrl>https://github.com/wixtoolset/BootstrapperCore</projectUrl>
10
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
11
+ <description>$description$</description>
12
+ <copyright>$copyright$</copyright>
13
+ </metadata>
14
+
15
+ <files>
16
+ <file src="build\$id$.props" target="build\" />
17
+ <file src="inc\*" target="build\native\include" />
18
+ </files>
19
+</package>
src/WixToolset.BootstrapperCore.Native/WixToolset.BootstrapperCore.Native.proj
new
+19
@@ -0,0 +1,19 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- 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. -->
3
+
4
+
5
+<Project ToolsVersion="4.0" DefaultTargets="Pack" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6
+ <PropertyGroup>
7
+ <PackageId>WixToolset.BootstrapperCore.Native</PackageId>
8
+ <Description>WiX Bootstrapper native interfaces</Description>
9
+ </PropertyGroup>
10
+
11
+ <Target Name="PackNative" DependsOnTargets="GetBuildVersion">
12
+ <Exec Command='nuget pack $(PackageId).nuspec -OutputDirectory "$(BaseOutputPath)$(Configuration)" -Properties Id=$(PackageId);Version="$(BuildVersionSimple)";Authors="$(Authors)";Copyright="$(Copyright)";Description="$(Description)"' />
13
+ </Target>
14
+
15
+ <Import Project="..\Directory.Build.props" />
16
+ <!-- <Import Project="..\Directory.Build.targets" /> -->
17
+
18
+ <Import Project="..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" />
19
+</Project>
src/WixToolset.BootstrapperCore.Native/build/WixToolset.BootstrapperCore.Native.props
new
+13
@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- 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. -->
3
+
4
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5
+ <ItemDefinitionGroup>
6
+ <ClCompile>
7
+ <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
8
+ </ClCompile>
9
+ <ResourceCompile>
10
+ <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
11
+ </ResourceCompile>
12
+ </ItemDefinitionGroup>
13
+</Project>
src/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h
new
+1318
@@ -0,0 +1,1318 @@
1
+#pragma once
2
+// 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.
3
+
4
+
5
+enum BOOTSTRAPPER_DISPLAY
6
+{
7
+ BOOTSTRAPPER_DISPLAY_UNKNOWN,
8
+ BOOTSTRAPPER_DISPLAY_EMBEDDED,
9
+ BOOTSTRAPPER_DISPLAY_NONE,
10
+ BOOTSTRAPPER_DISPLAY_PASSIVE,
11
+ BOOTSTRAPPER_DISPLAY_FULL,
12
+};
13
+
14
+enum BOOTSTRAPPER_RESTART
15
+{
16
+ BOOTSTRAPPER_RESTART_UNKNOWN,
17
+ BOOTSTRAPPER_RESTART_NEVER,
18
+ BOOTSTRAPPER_RESTART_PROMPT,
19
+ BOOTSTRAPPER_RESTART_AUTOMATIC,
20
+ BOOTSTRAPPER_RESTART_ALWAYS,
21
+};
22
+
23
+enum BOOTSTRAPPER_RESUME_TYPE
24
+{
25
+ BOOTSTRAPPER_RESUME_TYPE_NONE,
26
+ BOOTSTRAPPER_RESUME_TYPE_INVALID, // resume information is present but invalid
27
+ BOOTSTRAPPER_RESUME_TYPE_INTERRUPTED, // relaunched after an unexpected interruption
28
+ BOOTSTRAPPER_RESUME_TYPE_REBOOT_PENDING, // reboot has not taken place yet
29
+ BOOTSTRAPPER_RESUME_TYPE_REBOOT, // relaunched after reboot
30
+ BOOTSTRAPPER_RESUME_TYPE_SUSPEND, // relaunched after suspend
31
+ BOOTSTRAPPER_RESUME_TYPE_ARP, // launched from ARP
32
+};
33
+
34
+enum BOOTSTRAPPER_ERROR_TYPE
35
+{
36
+ BOOTSTRAPPER_ERROR_TYPE_ELEVATE, // error occurred trying to elevate.
37
+ BOOTSTRAPPER_ERROR_TYPE_WINDOWS_INSTALLER, // error came from windows installer.
38
+ BOOTSTRAPPER_ERROR_TYPE_EXE_PACKAGE, // error came from an exe package.
39
+ BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_SERVER, // error occurred trying to authenticate with HTTP server.
40
+ BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_PROXY, // error occurred trying to authenticate with HTTP proxy.
41
+ BOOTSTRAPPER_ERROR_TYPE_APPLY, // error occurred during apply.
42
+};
43
+
44
+enum BOOTSTRAPPER_RELATED_OPERATION
45
+{
46
+ BOOTSTRAPPER_RELATED_OPERATION_NONE,
47
+ BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE,
48
+ BOOTSTRAPPER_RELATED_OPERATION_MINOR_UPDATE,
49
+ BOOTSTRAPPER_RELATED_OPERATION_MAJOR_UPGRADE,
50
+ BOOTSTRAPPER_RELATED_OPERATION_REMOVE,
51
+ BOOTSTRAPPER_RELATED_OPERATION_INSTALL,
52
+ BOOTSTRAPPER_RELATED_OPERATION_REPAIR,
53
+};
54
+
55
+enum BOOTSTRAPPER_CACHE_OPERATION
56
+{
57
+ // There is no source available.
58
+ BOOTSTRAPPER_CACHE_OPERATION_NONE,
59
+ // Copy the payload or container from the chosen local source.
60
+ BOOTSTRAPPER_CACHE_OPERATION_COPY,
61
+ // Download the payload or container using the download URL.
62
+ BOOTSTRAPPER_CACHE_OPERATION_DOWNLOAD,
63
+ // Extract the payload from the container.
64
+ BOOTSTRAPPER_CACHE_OPERATION_EXTRACT,
65
+};
66
+
67
+enum BOOTSTRAPPER_CACHE_RESOLVE_OPERATION
68
+{
69
+ // There is no source available.
70
+ BOOTSTRAPPER_CACHE_RESOLVE_NONE,
71
+ // Copy the payload or container from the chosen local source.
72
+ BOOTSTRAPPER_CACHE_RESOLVE_LOCAL,
73
+ // Download the payload or container from the download URL.
74
+ BOOTSTRAPPER_CACHE_RESOLVE_DOWNLOAD,
75
+ // Extract the payload from the container.
76
+ BOOTSTRAPPER_CACHE_RESOLVE_CONTAINER,
77
+ // Look again for the payload or container locally.
78
+ BOOTSTRAPPER_CACHE_RESOLVE_RETRY,
79
+};
80
+
81
+enum BOOTSTRAPPER_CACHE_VERIFY_STEP
82
+{
83
+ BOOTSTRAPPER_CACHE_VERIFY_STEP_STAGE,
84
+ BOOTSTRAPPER_CACHE_VERIFY_STEP_HASH,
85
+ BOOTSTRAPPER_CACHE_VERIFY_STEP_FINALIZE,
86
+};
87
+
88
+enum BOOTSTRAPPER_APPLY_RESTART
89
+{
90
+ BOOTSTRAPPER_APPLY_RESTART_NONE,
91
+ BOOTSTRAPPER_APPLY_RESTART_REQUIRED,
92
+ BOOTSTRAPPER_APPLY_RESTART_INITIATED,
93
+};
94
+
95
+enum BOOTSTRAPPER_RELATION_TYPE
96
+{
97
+ BOOTSTRAPPER_RELATION_NONE,
98
+ BOOTSTRAPPER_RELATION_DETECT,
99
+ BOOTSTRAPPER_RELATION_UPGRADE,
100
+ BOOTSTRAPPER_RELATION_ADDON,
101
+ BOOTSTRAPPER_RELATION_PATCH,
102
+ BOOTSTRAPPER_RELATION_DEPENDENT,
103
+ BOOTSTRAPPER_RELATION_UPDATE,
104
+};
105
+
106
+enum BOOTSTRAPPER_CACHE_TYPE
107
+{
108
+ BOOTSTRAPPER_CACHE_TYPE_REMOVE,
109
+ BOOTSTRAPPER_CACHE_TYPE_KEEP,
110
+ BOOTSTRAPPER_CACHE_TYPE_FORCE,
111
+};
112
+
113
+enum BOOTSTRAPPER_PACKAGE_CONDITION_RESULT
114
+{
115
+ BOOTSTRAPPER_PACKAGE_CONDITION_DEFAULT,
116
+ BOOTSTRAPPER_PACKAGE_CONDITION_FALSE,
117
+ BOOTSTRAPPER_PACKAGE_CONDITION_TRUE,
118
+};
119
+
120
+enum BOOTSTRAPPER_APPLICATION_MESSAGE
121
+{
122
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTBEGIN,
123
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTCOMPLETE,
124
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANBEGIN,
125
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANCOMPLETE,
126
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONSTARTUP,
127
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONSHUTDOWN,
128
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMSHUTDOWN,
129
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTFORWARDCOMPATIBLEBUNDLE,
130
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATEBEGIN,
131
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATE,
132
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATECOMPLETE,
133
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLE,
134
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGEBEGIN,
135
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE,
136
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPATCHTARGET,
137
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE,
138
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGECOMPLETE,
139
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLE,
140
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN,
141
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPATCHTARGET,
142
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE,
143
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGECOMPLETE,
144
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYBEGIN,
145
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONELEVATEBEGIN,
146
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONELEVATECOMPLETE,
147
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPROGRESS,
148
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONERROR,
149
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONREGISTERBEGIN,
150
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONREGISTERCOMPLETE,
151
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEBEGIN,
152
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGEBEGIN,
153
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIREBEGIN,
154
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIREPROGRESS,
155
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIRERESOLVING,
156
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIRECOMPLETE,
157
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYBEGIN,
158
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYCOMPLETE,
159
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGECOMPLETE,
160
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECOMPLETE,
161
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEBEGIN,
162
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPACKAGEBEGIN,
163
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPATCHTARGET,
164
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROGRESS,
165
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEMSIMESSAGE,
166
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEFILESINUSE,
167
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPACKAGECOMPLETE,
168
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTECOMPLETE,
169
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONUNREGISTERBEGIN,
170
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONUNREGISTERCOMPLETE,
171
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYCOMPLETE,
172
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN,
173
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE,
174
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE,
175
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONBEGIN,
176
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE,
177
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN,
178
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE,
179
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN,
180
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE,
181
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN,
182
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE,
183
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN,
184
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE,
185
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE,
186
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE,
187
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYPROGRESS,
188
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN,
189
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE,
190
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS,
191
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN,
192
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE,
193
+ BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS,
194
+};
195
+
196
+enum BOOTSTRAPPER_APPLYCOMPLETE_ACTION
197
+{
198
+ BOOTSTRAPPER_APPLYCOMPLETE_ACTION_NONE,
199
+ // Instructs the engine to restart.
200
+ // The engine will not launch again after the machine is rebooted.
201
+ // Ignored if reboot was already initiated by OnExecutePackageComplete().
202
+ BOOTSTRAPPER_APPLYCOMPLETE_ACTION_RESTART,
203
+};
204
+
205
+enum BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION
206
+{
207
+ BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION_NONE,
208
+ // Instructs the engine to try the acquisition of the payload again.
209
+ // Ignored if hrStatus is a success.
210
+ BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION_RETRY,
211
+};
212
+
213
+enum BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION
214
+{
215
+ BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION_NONE,
216
+ // Instructs the engine to ignore non-vital package failures and
217
+ // continue with the caching.
218
+ // Ignored if hrStatus is a success or the package is vital.
219
+ BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION_IGNORE,
220
+ // Instructs the engine to try the acquisition and verification of the package again.
221
+ // Ignored if hrStatus is a success.
222
+ BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION_RETRY,
223
+};
224
+
225
+enum BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION
226
+{
227
+ BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION_NONE,
228
+ // Ignored if hrStatus is a success.
229
+ BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION_RETRYVERIFICATION,
230
+ // Ignored if hrStatus is a success.
231
+ BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION_RETRYACQUISITION,
232
+};
233
+
234
+enum BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION
235
+{
236
+ BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_NONE,
237
+ // Instructs the engine to ignore non-vital package failures and
238
+ // continue with the install.
239
+ // Ignored if hrStatus is a success or the package is vital.
240
+ BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_IGNORE,
241
+ // Instructs the engine to try the execution of the package again.
242
+ // Ignored if hrStatus is a success.
243
+ BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_RETRY,
244
+ // Instructs the engine to stop processing the chain and restart.
245
+ // The engine will launch again after the machine is restarted.
246
+ BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_RESTART,
247
+ // Instructs the engine to stop processing the chain and
248
+ // suspend the current state.
249
+ BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_SUSPEND,
250
+};
251
+
252
+enum BOOTSTRAPPER_SHUTDOWN_ACTION
253
+{
254
+ BOOTSTRAPPER_SHUTDOWN_ACTION_NONE,
255
+ // Instructs the engine to restart.
256
+ // The engine will not launch again after the machine is rebooted.
257
+ // Ignored if reboot was already initiated by OnExecutePackageComplete().
258
+ BOOTSTRAPPER_SHUTDOWN_ACTION_RESTART,
259
+ // Instructs the engine to unload the bootstrapper application and
260
+ // restart the engine which will load the bootstrapper application again.
261
+ // Typically used to switch from a native bootstrapper application to a managed one.
262
+ BOOTSTRAPPER_SHUTDOWN_ACTION_RELOAD_BOOTSTRAPPER,
263
+ // Opts out of the engine behavior of trying to uninstall itself
264
+ // when no non-permanent packages are installed.
265
+ BOOTSTRAPPER_SHUTDOWN_ACTION_SKIP_CLEANUP,
266
+};
267
+
268
+enum BURN_MSI_PROPERTY
269
+{
270
+ BURN_MSI_PROPERTY_NONE, // no property added
271
+ BURN_MSI_PROPERTY_INSTALL, // add BURNMSIINSTALL=1
272
+ BURN_MSI_PROPERTY_MODIFY, // add BURNMSIMODIFY=1
273
+ BURN_MSI_PROPERTY_REPAIR, // add BURNMSIREPAIR=1
274
+ BURN_MSI_PROPERTY_UNINSTALL,// add BURNMSIUNINSTALL=1
275
+};
276
+
277
+struct BOOTSTRAPPER_COMMAND
278
+{
279
+ DWORD cbSize;
280
+ BOOTSTRAPPER_ACTION action;
281
+ BOOTSTRAPPER_DISPLAY display;
282
+ BOOTSTRAPPER_RESTART restart;
283
+
284
+ LPWSTR wzCommandLine;
285
+ int nCmdShow;
286
+
287
+ BOOTSTRAPPER_RESUME_TYPE resumeType;
288
+ HWND hwndSplashScreen;
289
+
290
+ // If this was run from a related bundle, specifies the relation type
291
+ BOOTSTRAPPER_RELATION_TYPE relationType;
292
+ BOOL fPassthrough;
293
+
294
+ LPWSTR wzLayoutDirectory;
295
+ LPWSTR wzBootstrapperWorkingFolder;
296
+ LPWSTR wzBootstrapperApplicationDataPath;
297
+};
298
+
299
+struct BA_ONAPPLYBEGIN_ARGS
300
+{
301
+ DWORD cbSize;
302
+ DWORD dwPhaseCount;
303
+};
304
+
305
+struct BA_ONAPPLYBEGIN_RESULTS
306
+{
307
+ DWORD cbSize;
308
+ BOOL fCancel;
309
+};
310
+
311
+struct BA_ONAPPLYCOMPLETE_ARGS
312
+{
313
+ DWORD cbSize;
314
+ HRESULT hrStatus;
315
+ // Indicates whether any package required a reboot or initiated the reboot already.
316
+ BOOTSTRAPPER_APPLY_RESTART restart;
317
+ BOOTSTRAPPER_APPLYCOMPLETE_ACTION recommendation;
318
+};
319
+
320
+struct BA_ONAPPLYCOMPLETE_RESULTS
321
+{
322
+ DWORD cbSize;
323
+ BOOTSTRAPPER_APPLYCOMPLETE_ACTION action;
324
+};
325
+
326
+struct BA_ONBEGINMSITRANSACTIONBEGIN_ARGS
327
+{
328
+ DWORD cbSize;
329
+ LPCWSTR wzTransactionId;
330
+};
331
+
332
+struct BA_ONBEGINMSITRANSACTIONBEGIN_RESULTS
333
+{
334
+ DWORD cbSize;
335
+ BOOL fCancel;
336
+};
337
+
338
+struct BA_ONBEGINMSITRANSACTIONCOMPLETE_ARGS
339
+{
340
+ DWORD cbSize;
341
+ LPCWSTR wzTransactionId;
342
+ HRESULT hrStatus;
343
+};
344
+
345
+struct BA_ONBEGINMSITRANSACTIONCOMPLETE_RESULTS
346
+{
347
+ DWORD cbSize;
348
+};
349
+
350
+struct BA_ONCACHEACQUIREBEGIN_ARGS
351
+{
352
+ DWORD cbSize;
353
+ LPCWSTR wzPackageOrContainerId;
354
+ LPCWSTR wzPayloadId;
355
+ LPCWSTR wzSource;
356
+ LPCWSTR wzDownloadUrl;
357
+ LPCWSTR wzPayloadContainerId;
358
+ BOOTSTRAPPER_CACHE_OPERATION recommendation;
359
+};
360
+
361
+struct BA_ONCACHEACQUIREBEGIN_RESULTS
362
+{
363
+ DWORD cbSize;
364
+ BOOL fCancel;
365
+ BOOTSTRAPPER_CACHE_OPERATION action;
366
+};
367
+
368
+struct BA_ONCACHEACQUIRECOMPLETE_ARGS
369
+{
370
+ DWORD cbSize;
371
+ LPCWSTR wzPackageOrContainerId;
372
+ LPCWSTR wzPayloadId;
373
+ HRESULT hrStatus;
374
+ BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION recommendation;
375
+};
376
+
377
+struct BA_ONCACHEACQUIRECOMPLETE_RESULTS
378
+{
379
+ DWORD cbSize;
380
+ BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION action;
381
+};
382
+
383
+struct BA_ONCACHEACQUIREPROGRESS_ARGS
384
+{
385
+ DWORD cbSize;
386
+ LPCWSTR wzPackageOrContainerId;
387
+ LPCWSTR wzPayloadId;
388
+ DWORD64 dw64Progress;
389
+ DWORD64 dw64Total;
390
+ DWORD dwOverallPercentage;
391
+};
392
+
393
+struct BA_ONCACHEACQUIREPROGRESS_RESULTS
394
+{
395
+ DWORD cbSize;
396
+ BOOL fCancel;
397
+};
398
+
399
+struct BA_ONCACHEACQUIRERESOLVING_ARGS
400
+{
401
+ DWORD cbSize;
402
+ LPCWSTR wzPackageOrContainerId;
403
+ LPCWSTR wzPayloadId;
404
+ LPCWSTR* rgSearchPaths;
405
+ DWORD cSearchPaths;
406
+ BOOL fFoundLocal;
407
+ DWORD dwRecommendedSearchPath;
408
+ LPCWSTR wzDownloadUrl;
409
+ LPCWSTR wzPayloadContainerId;
410
+ BOOTSTRAPPER_CACHE_RESOLVE_OPERATION recommendation;
411
+};
412
+
413
+struct BA_ONCACHEACQUIRERESOLVING_RESULTS
414
+{
415
+ DWORD cbSize;
416
+ DWORD dwChosenSearchPath;
417
+ BOOTSTRAPPER_CACHE_RESOLVE_OPERATION action;
418
+ BOOL fCancel;
419
+};
420
+
421
+struct BA_ONCACHEBEGIN_ARGS
422
+{
423
+ DWORD cbSize;
424
+};
425
+
426
+struct BA_ONCACHEBEGIN_RESULTS
427
+{
428
+ DWORD cbSize;
429
+ BOOL fCancel;
430
+};
431
+
432
+struct BA_ONCACHECOMPLETE_ARGS
433
+{
434
+ DWORD cbSize;
435
+ HRESULT hrStatus;
436
+};
437
+
438
+struct BA_ONCACHECOMPLETE_RESULTS
439
+{
440
+ DWORD cbSize;
441
+};
442
+
443
+struct BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_ARGS
444
+{
445
+ DWORD cbSize;
446
+ LPCWSTR wzPackageOrContainerId;
447
+ LPCWSTR wzPayloadId;
448
+};
449
+
450
+struct BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_RESULTS
451
+{
452
+ DWORD cbSize;
453
+ BOOL fCancel;
454
+};
455
+
456
+struct BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_ARGS
457
+{
458
+ DWORD cbSize;
459
+ LPCWSTR wzPackageOrContainerId;
460
+ LPCWSTR wzPayloadId;
461
+ HRESULT hrStatus;
462
+};
463
+
464
+struct BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_RESULTS
465
+{
466
+ DWORD cbSize;
467
+};
468
+
469
+struct BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_ARGS
470
+{
471
+ DWORD cbSize;
472
+ LPCWSTR wzPackageOrContainerId;
473
+ LPCWSTR wzPayloadId;
474
+ DWORD64 dw64Progress;
475
+ DWORD64 dw64Total;
476
+ DWORD dwOverallPercentage;
477
+};
478
+
479
+struct BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_RESULTS
480
+{
481
+ DWORD cbSize;
482
+ BOOL fCancel;
483
+};
484
+
485
+struct BA_ONCACHEPACKAGEBEGIN_ARGS
486
+{
487
+ DWORD cbSize;
488
+ LPCWSTR wzPackageId;
489
+ DWORD cCachePayloads;
490
+ DWORD64 dw64PackageCacheSize;
491
+};
492
+
493
+struct BA_ONCACHEPACKAGEBEGIN_RESULTS
494
+{
495
+ DWORD cbSize;
496
+ BOOL fCancel;
497
+};
498
+
499
+struct BA_ONCACHEPACKAGECOMPLETE_ARGS
500
+{
501
+ DWORD cbSize;
502
+ LPCWSTR wzPackageId;
503
+ HRESULT hrStatus;
504
+ BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION recommendation;
505
+};
506
+
507
+struct BA_ONCACHEPACKAGECOMPLETE_RESULTS
508
+{
509
+ DWORD cbSize;
510
+ BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION action;
511
+};
512
+
513
+struct BA_ONCACHEPAYLOADEXTRACTBEGIN_ARGS
514
+{
515
+ DWORD cbSize;
516
+ LPCWSTR wzContainerId;
517
+ LPCWSTR wzPayloadId;
518
+};
519
+
520
+struct BA_ONCACHEPAYLOADEXTRACTBEGIN_RESULTS
521
+{
522
+ DWORD cbSize;
523
+ BOOL fCancel;
524
+};
525
+
526
+struct BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS
527
+{
528
+ DWORD cbSize;
529
+ LPCWSTR wzContainerId;
530
+ LPCWSTR wzPayloadId;
531
+ HRESULT hrStatus;
532
+};
533
+
534
+struct BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS
535
+{
536
+ DWORD cbSize;
537
+};
538
+
539
+struct BA_ONCACHEPAYLOADEXTRACTPROGRESS_ARGS
540
+{
541
+ DWORD cbSize;
542
+ LPCWSTR wzContainerId;
543
+ LPCWSTR wzPayloadId;
544
+ DWORD64 dw64Progress;
545
+ DWORD64 dw64Total;
546
+ DWORD dwOverallPercentage;
547
+};
548
+
549
+struct BA_ONCACHEPAYLOADEXTRACTPROGRESS_RESULTS
550
+{
551
+ DWORD cbSize;
552
+ BOOL fCancel;
553
+};
554
+
555
+struct BA_ONCACHEVERIFYBEGIN_ARGS
556
+{
557
+ DWORD cbSize;
558
+ LPCWSTR wzPackageOrContainerId;
559
+ LPCWSTR wzPayloadId;
560
+};
561
+
562
+struct BA_ONCACHEVERIFYBEGIN_RESULTS
563
+{
564
+ DWORD cbSize;
565
+ BOOL fCancel;
566
+};
567
+
568
+struct BA_ONCACHEVERIFYCOMPLETE_ARGS
569
+{
570
+ DWORD cbSize;
571
+ LPCWSTR wzPackageOrContainerId;
572
+ LPCWSTR wzPayloadId;
573
+ HRESULT hrStatus;
574
+ BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION recommendation;
575
+};
576
+
577
+struct BA_ONCACHEVERIFYCOMPLETE_RESULTS
578
+{
579
+ DWORD cbSize;
580
+ BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION action;
581
+};
582
+
583
+struct BA_ONCACHEVERIFYPROGRESS_ARGS
584
+{
585
+ DWORD cbSize;
586
+ LPCWSTR wzPackageOrContainerId;
587
+ LPCWSTR wzPayloadId;
588
+ DWORD64 dw64Progress;
589
+ DWORD64 dw64Total;
590
+ DWORD dwOverallPercentage;
591
+ BOOTSTRAPPER_CACHE_VERIFY_STEP verifyStep;
592
+};
593
+
594
+struct BA_ONCACHEVERIFYPROGRESS_RESULTS
595
+{
596
+ DWORD cbSize;
597
+ BOOL fCancel;
598
+};
599
+
600
+struct BA_ONCOMMITMSITRANSACTIONBEGIN_ARGS
601
+{
602
+ DWORD cbSize;
603
+ LPCWSTR wzTransactionId;
604
+};
605
+
606
+struct BA_ONCOMMITMSITRANSACTIONBEGIN_RESULTS
607
+{
608
+ DWORD cbSize;
609
+ BOOL fCancel;
610
+};
611
+
612
+struct BA_ONCOMMITMSITRANSACTIONCOMPLETE_ARGS
613
+{
614
+ DWORD cbSize;
615
+ LPCWSTR wzTransactionId;
616
+ HRESULT hrStatus;
617
+};
618
+
619
+struct BA_ONCOMMITMSITRANSACTIONCOMPLETE_RESULTS
620
+{
621
+ DWORD cbSize;
622
+};
623
+
624
+struct BA_ONDETECTBEGIN_ARGS
625
+{
626
+ DWORD cbSize;
627
+ BOOL fInstalled;
628
+ DWORD cPackages;
629
+ BOOL fCached;
630
+};
631
+
632
+struct BA_ONDETECTBEGIN_RESULTS
633
+{
634
+ DWORD cbSize;
635
+ BOOL fCancel;
636
+};
637
+
638
+struct BA_ONDETECTCOMPLETE_ARGS
639
+{
640
+ DWORD cbSize;
641
+ HRESULT hrStatus;
642
+ BOOL fEligibleForCleanup;
643
+};
644
+
645
+struct BA_ONDETECTCOMPLETE_RESULTS
646
+{
647
+ DWORD cbSize;
648
+};
649
+
650
+struct BA_ONDETECTFORWARDCOMPATIBLEBUNDLE_ARGS
651
+{
652
+ DWORD cbSize;
653
+ LPCWSTR wzBundleId;
654
+ BOOTSTRAPPER_RELATION_TYPE relationType;
655
+ LPCWSTR wzBundleTag;
656
+ BOOL fPerMachine;
657
+ LPCWSTR wzVersion;
658
+ BOOL fMissingFromCache;
659
+};
660
+
661
+struct BA_ONDETECTFORWARDCOMPATIBLEBUNDLE_RESULTS
662
+{
663
+ DWORD cbSize;
664
+ BOOL fCancel;
665
+};
666
+
667
+struct BA_ONDETECTMSIFEATURE_ARGS
668
+{
669
+ DWORD cbSize;
670
+ LPCWSTR wzPackageId;
671
+ LPCWSTR wzFeatureId;
672
+ BOOTSTRAPPER_FEATURE_STATE state;
673
+};
674
+
675
+struct BA_ONDETECTMSIFEATURE_RESULTS
676
+{
677
+ DWORD cbSize;
678
+ BOOL fCancel;
679
+};
680
+
681
+struct BA_ONDETECTPACKAGEBEGIN_ARGS
682
+{
683
+ DWORD cbSize;
684
+ LPCWSTR wzPackageId;
685
+};
686
+
687
+struct BA_ONDETECTPACKAGEBEGIN_RESULTS
688
+{
689
+ DWORD cbSize;
690
+ BOOL fCancel;
691
+};
692
+
693
+struct BA_ONDETECTPACKAGECOMPLETE_ARGS
694
+{
695
+ DWORD cbSize;
696
+ LPCWSTR wzPackageId;
697
+ HRESULT hrStatus;
698
+ BOOTSTRAPPER_PACKAGE_STATE state;
699
+ BOOL fCached;
700
+};
701
+
702
+struct BA_ONDETECTPACKAGECOMPLETE_RESULTS
703
+{
704
+ DWORD cbSize;
705
+};
706
+
707
+struct BA_ONDETECTRELATEDBUNDLE_ARGS
708
+{
709
+ DWORD cbSize;
710
+ LPCWSTR wzBundleId;
711
+ BOOTSTRAPPER_RELATION_TYPE relationType;
712
+ LPCWSTR wzBundleTag;
713
+ BOOL fPerMachine;
714
+ LPCWSTR wzVersion;
715
+ BOOTSTRAPPER_RELATED_OPERATION operation;
716
+ BOOL fMissingFromCache;
717
+};
718
+
719
+struct BA_ONDETECTRELATEDBUNDLE_RESULTS
720
+{
721
+ DWORD cbSize;
722
+ BOOL fCancel;
723
+};
724
+
725
+struct BA_ONDETECTRELATEDMSIPACKAGE_ARGS
726
+{
727
+ DWORD cbSize;
728
+ LPCWSTR wzPackageId;
729
+ LPCWSTR wzUpgradeCode;
730
+ LPCWSTR wzProductCode;
731
+ BOOL fPerMachine;
732
+ LPCWSTR wzVersion;
733
+ BOOTSTRAPPER_RELATED_OPERATION operation;
734
+};
735
+
736
+struct BA_ONDETECTRELATEDMSIPACKAGE_RESULTS
737
+{
738
+ DWORD cbSize;
739
+ BOOL fCancel;
740
+};
741
+
742
+struct BA_ONDETECTPATCHTARGET_ARGS
743
+{
744
+ DWORD cbSize;
745
+ LPCWSTR wzPackageId;
746
+ LPCWSTR wzProductCode;
747
+ BOOTSTRAPPER_PACKAGE_STATE patchState;
748
+};
749
+
750
+struct BA_ONDETECTPATCHTARGET_RESULTS
751
+{
752
+ DWORD cbSize;
753
+ BOOL fCancel;
754
+};
755
+
756
+struct BA_ONDETECTUPDATE_ARGS
757
+{
758
+ DWORD cbSize;
759
+ LPCWSTR wzUpdateLocation;
760
+ DWORD64 dw64Size;
761
+ LPCWSTR wzVersion;
762
+ LPCWSTR wzTitle;
763
+ LPCWSTR wzSummary;
764
+ LPCWSTR wzContentType;
765
+ LPCWSTR wzContent;
766
+};
767
+
768
+struct BA_ONDETECTUPDATE_RESULTS
769
+{
770
+ DWORD cbSize;
771
+ BOOL fCancel;
772
+ BOOL fStopProcessingUpdates;
773
+};
774
+
775
+struct BA_ONDETECTUPDATEBEGIN_ARGS
776
+{
777
+ DWORD cbSize;
778
+ LPCWSTR wzUpdateLocation;
779
+};
780
+
781
+struct BA_ONDETECTUPDATEBEGIN_RESULTS
782
+{
783
+ DWORD cbSize;
784
+ BOOL fCancel;
785
+ BOOL fSkip;
786
+};
787
+
788
+struct BA_ONDETECTUPDATECOMPLETE_ARGS
789
+{
790
+ DWORD cbSize;
791
+ HRESULT hrStatus;
792
+};
793
+
794
+struct BA_ONDETECTUPDATECOMPLETE_RESULTS
795
+{
796
+ DWORD cbSize;
797
+ BOOL fIgnoreError;
798
+};
799
+
800
+struct BA_ONELEVATEBEGIN_ARGS
801
+{
802
+ DWORD cbSize;
803
+};
804
+
805
+struct BA_ONELEVATEBEGIN_RESULTS
806
+{
807
+ DWORD cbSize;
808
+ BOOL fCancel;
809
+};
810
+
811
+struct BA_ONELEVATECOMPLETE_ARGS
812
+{
813
+ DWORD cbSize;
814
+ HRESULT hrStatus;
815
+};
816
+
817
+struct BA_ONELEVATECOMPLETE_RESULTS
818
+{
819
+ DWORD cbSize;
820
+};
821
+
822
+struct BA_ONERROR_ARGS
823
+{
824
+ DWORD cbSize;
825
+ BOOTSTRAPPER_ERROR_TYPE errorType;
826
+ LPCWSTR wzPackageId;
827
+ DWORD dwCode;
828
+ LPCWSTR wzError;
829
+ DWORD dwUIHint;
830
+ DWORD cData;
831
+ LPCWSTR* rgwzData;
832
+ int nRecommendation;
833
+};
834
+
835
+struct BA_ONERROR_RESULTS
836
+{
837
+ DWORD cbSize;
838
+ int nResult;
839
+};
840
+
841
+struct BA_ONEXECUTEBEGIN_ARGS
842
+{
843
+ DWORD cbSize;
844
+ DWORD cExecutingPackages;
845
+};
846
+
847
+struct BA_ONEXECUTEBEGIN_RESULTS
848
+{
849
+ DWORD cbSize;
850
+ BOOL fCancel;
851
+};
852
+
853
+struct BA_ONEXECUTECOMPLETE_ARGS
854
+{
855
+ DWORD cbSize;
856
+ HRESULT hrStatus;
857
+};
858
+
859
+struct BA_ONEXECUTECOMPLETE_RESULTS
860
+{
861
+ DWORD cbSize;
862
+};
863
+
864
+struct BA_ONEXECUTEFILESINUSE_ARGS
865
+{
866
+ DWORD cbSize;
867
+ LPCWSTR wzPackageId;
868
+ DWORD cFiles;
869
+ LPCWSTR* rgwzFiles;
870
+ int nRecommendation;
871
+};
872
+
873
+struct BA_ONEXECUTEFILESINUSE_RESULTS
874
+{
875
+ DWORD cbSize;
876
+ int nResult;
877
+};
878
+
879
+struct BA_ONEXECUTEMSIMESSAGE_ARGS
880
+{
881
+ DWORD cbSize;
882
+ LPCWSTR wzPackageId;
883
+ INSTALLMESSAGE messageType;
884
+ DWORD dwUIHint;
885
+ LPCWSTR wzMessage;
886
+ DWORD cData;
887
+ LPCWSTR* rgwzData;
888
+ int nRecommendation;
889
+};
890
+
891
+struct BA_ONEXECUTEMSIMESSAGE_RESULTS
892
+{
893
+ DWORD cbSize;
894
+ int nResult;
895
+};
896
+
897
+struct BA_ONEXECUTEPACKAGEBEGIN_ARGS
898
+{
899
+ DWORD cbSize;
900
+ LPCWSTR wzPackageId;
901
+ BOOL fExecute; // false means rollback.
902
+ BOOTSTRAPPER_ACTION_STATE action;
903
+ INSTALLUILEVEL uiLevel;
904
+ BOOL fDisableExternalUiHandler;
905
+};
906
+
907
+struct BA_ONEXECUTEPACKAGEBEGIN_RESULTS
908
+{
909
+ DWORD cbSize;
910
+ BOOL fCancel;
911
+};
912
+
913
+struct BA_ONEXECUTEPACKAGECOMPLETE_ARGS
914
+{
915
+ DWORD cbSize;
916
+ LPCWSTR wzPackageId;
917
+ HRESULT hrStatus;
918
+ // Indicates whether this package requires a reboot or initiated the reboot already.
919
+ BOOTSTRAPPER_APPLY_RESTART restart;
920
+ BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION recommendation;
921
+};
922
+
923
+struct BA_ONEXECUTEPACKAGECOMPLETE_RESULTS
924
+{
925
+ DWORD cbSize;
926
+ BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION action;
927
+};
928
+
929
+struct BA_ONEXECUTEPATCHTARGET_ARGS
930
+{
931
+ DWORD cbSize;
932
+ LPCWSTR wzPackageId;
933
+ LPCWSTR wzTargetProductCode;
934
+};
935
+
936
+struct BA_ONEXECUTEPATCHTARGET_RESULTS
937
+{
938
+ DWORD cbSize;
939
+ BOOL fCancel;
940
+};
941
+
942
+struct BA_ONEXECUTEPROGRESS_ARGS
943
+{
944
+ DWORD cbSize;
945
+ LPCWSTR wzPackageId;
946
+ DWORD dwProgressPercentage;
947
+ DWORD dwOverallPercentage;
948
+};
949
+
950
+struct BA_ONEXECUTEPROGRESS_RESULTS
951
+{
952
+ DWORD cbSize;
953
+ BOOL fCancel;
954
+};
955
+
956
+struct BA_ONLAUNCHAPPROVEDEXEBEGIN_ARGS
957
+{
958
+ DWORD cbSize;
959
+};
960
+
961
+struct BA_ONLAUNCHAPPROVEDEXEBEGIN_RESULTS
962
+{
963
+ DWORD cbSize;
964
+ BOOL fCancel;
965
+};
966
+
967
+struct BA_ONLAUNCHAPPROVEDEXECOMPLETE_ARGS
968
+{
969
+ DWORD cbSize;
970
+ HRESULT hrStatus;
971
+ // Only valid if the operation succeeded.
972
+ DWORD dwProcessId;
973
+};
974
+
975
+struct BA_ONLAUNCHAPPROVEDEXECOMPLETE_RESULTS
976
+{
977
+ DWORD cbSize;
978
+};
979
+
980
+struct BA_ONPAUSEAUTOMATICUPDATESBEGIN_ARGS
981
+{
982
+ DWORD cbSize;
983
+};
984
+
985
+struct BA_ONPAUSEAUTOMATICUPDATESBEGIN_RESULTS
986
+{
987
+ DWORD cbSize;
988
+};
989
+
990
+struct BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_ARGS
991
+{
992
+ DWORD cbSize;
993
+ HRESULT hrStatus;
994
+};
995
+
996
+struct BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_RESULTS
997
+{
998
+ DWORD cbSize;
999
+};
1000
+
1001
+struct BA_ONPLANBEGIN_ARGS
1002
+{
1003
+ DWORD cbSize;
1004
+ DWORD cPackages;
1005
+};
1006
+
1007
+struct BA_ONPLANBEGIN_RESULTS
1008
+{
1009
+ DWORD cbSize;
1010
+ BOOL fCancel;
1011
+};
1012
+
1013
+struct BA_ONPLANCOMPLETE_ARGS
1014
+{
1015
+ DWORD cbSize;
1016
+ HRESULT hrStatus;
1017
+};
1018
+
1019
+struct BA_ONPLANCOMPLETE_RESULTS
1020
+{
1021
+ DWORD cbSize;
1022
+};
1023
+
1024
+struct BA_ONPLANFORWARDCOMPATIBLEBUNDLE_ARGS
1025
+{
1026
+ DWORD cbSize;
1027
+ LPCWSTR wzBundleId;
1028
+ BOOTSTRAPPER_RELATION_TYPE relationType;
1029
+ LPCWSTR wzBundleTag;
1030
+ BOOL fPerMachine;
1031
+ LPCWSTR wzVersion;
1032
+ BOOL fRecommendedIgnoreBundle;
1033
+};
1034
+
1035
+struct BA_ONPLANFORWARDCOMPATIBLEBUNDLE_RESULTS
1036
+{
1037
+ DWORD cbSize;
1038
+ BOOL fCancel;
1039
+ BOOL fIgnoreBundle;
1040
+};
1041
+
1042
+struct BA_ONPLANMSIFEATURE_ARGS
1043
+{
1044
+ DWORD cbSize;
1045
+ LPCWSTR wzPackageId;
1046
+ LPCWSTR wzFeatureId;
1047
+ BOOTSTRAPPER_FEATURE_STATE recommendedState;
1048
+};
1049
+
1050
+struct BA_ONPLANMSIFEATURE_RESULTS
1051
+{
1052
+ DWORD cbSize;
1053
+ BOOTSTRAPPER_FEATURE_STATE requestedState;
1054
+ BOOL fCancel;
1055
+};
1056
+
1057
+struct BA_ONPLANMSIPACKAGE_ARGS
1058
+{
1059
+ DWORD cbSize;
1060
+ LPCWSTR wzPackageId;
1061
+ BOOL fExecute; // false means rollback.
1062
+ BOOTSTRAPPER_ACTION_STATE action;
1063
+};
1064
+
1065
+struct BA_ONPLANMSIPACKAGE_RESULTS
1066
+{
1067
+ DWORD cbSize;
1068
+ BOOL fCancel;
1069
+ BURN_MSI_PROPERTY actionMsiProperty;
1070
+ INSTALLUILEVEL uiLevel;
1071
+ BOOL fDisableExternalUiHandler;
1072
+};
1073
+
1074
+struct BA_ONPLANNEDPACKAGE_ARGS
1075
+{
1076
+ DWORD cbSize;
1077
+ LPCWSTR wzPackageId;
1078
+ BOOTSTRAPPER_ACTION_STATE execute;
1079
+ BOOTSTRAPPER_ACTION_STATE rollback;
1080
+ BOOL fPlannedCache;
1081
+ BOOL fPlannedUncache;
1082
+};
1083
+
1084
+struct BA_ONPLANNEDPACKAGE_RESULTS
1085
+{
1086
+ DWORD cbSize;
1087
+};
1088
+
1089
+struct BA_ONPLANPACKAGEBEGIN_ARGS
1090
+{
1091
+ DWORD cbSize;
1092
+ LPCWSTR wzPackageId;
1093
+ BOOTSTRAPPER_PACKAGE_STATE state;
1094
+ BOOL fCached;
1095
+ BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition;
1096
+ BOOTSTRAPPER_REQUEST_STATE recommendedState;
1097
+ BOOTSTRAPPER_CACHE_TYPE recommendedCacheType;
1098
+};
1099
+
1100
+struct BA_ONPLANPACKAGEBEGIN_RESULTS
1101
+{
1102
+ DWORD cbSize;
1103
+ BOOL fCancel;
1104
+ BOOTSTRAPPER_REQUEST_STATE requestedState;
1105
+ BOOTSTRAPPER_CACHE_TYPE requestedCacheType;
1106
+};
1107
+
1108
+struct BA_ONPLANPACKAGECOMPLETE_ARGS
1109
+{
1110
+ DWORD cbSize;
1111
+ LPCWSTR wzPackageId;
1112
+ HRESULT hrStatus;
1113
+ BOOTSTRAPPER_REQUEST_STATE requested;
1114
+};
1115
+
1116
+struct BA_ONPLANPACKAGECOMPLETE_RESULTS
1117
+{
1118
+ DWORD cbSize;
1119
+};
1120
+
1121
+struct BA_ONPLANRELATEDBUNDLE_ARGS
1122
+{
1123
+ DWORD cbSize;
1124
+ LPCWSTR wzBundleId;
1125
+ BOOTSTRAPPER_REQUEST_STATE recommendedState;
1126
+};
1127
+
1128
+struct BA_ONPLANRELATEDBUNDLE_RESULTS
1129
+{
1130
+ DWORD cbSize;
1131
+ BOOL fCancel;
1132
+ BOOTSTRAPPER_REQUEST_STATE requestedState;
1133
+};
1134
+
1135
+struct BA_ONPLANPATCHTARGET_ARGS
1136
+{
1137
+ DWORD cbSize;
1138
+ LPCWSTR wzPackageId;
1139
+ LPCWSTR wzProductCode;
1140
+ BOOTSTRAPPER_REQUEST_STATE recommendedState;
1141
+};
1142
+
1143
+struct BA_ONPLANPATCHTARGET_RESULTS
1144
+{
1145
+ DWORD cbSize;
1146
+ BOOTSTRAPPER_REQUEST_STATE requestedState;
1147
+ BOOL fCancel;
1148
+};
1149
+
1150
+struct BA_ONPROGRESS_ARGS
1151
+{
1152
+ DWORD cbSize;
1153
+ DWORD dwProgressPercentage;
1154
+ DWORD dwOverallPercentage;
1155
+};
1156
+
1157
+struct BA_ONPROGRESS_RESULTS
1158
+{
1159
+ DWORD cbSize;
1160
+ BOOL fCancel;
1161
+};
1162
+
1163
+struct BA_ONREGISTERBEGIN_ARGS
1164
+{
1165
+ DWORD cbSize;
1166
+};
1167
+
1168
+struct BA_ONREGISTERBEGIN_RESULTS
1169
+{
1170
+ DWORD cbSize;
1171
+ BOOL fCancel;
1172
+};
1173
+
1174
+struct BA_ONREGISTERCOMPLETE_ARGS
1175
+{
1176
+ DWORD cbSize;
1177
+ HRESULT hrStatus;
1178
+};
1179
+
1180
+struct BA_ONREGISTERCOMPLETE_RESULTS
1181
+{
1182
+ DWORD cbSize;
1183
+};
1184
+
1185
+struct BA_ONROLLBACKMSITRANSACTIONBEGIN_ARGS
1186
+{
1187
+ DWORD cbSize;
1188
+ LPCWSTR wzTransactionId;
1189
+};
1190
+
1191
+struct BA_ONROLLBACKMSITRANSACTIONBEGIN_RESULTS
1192
+{
1193
+ DWORD cbSize;
1194
+};
1195
+
1196
+struct BA_ONROLLBACKMSITRANSACTIONCOMPLETE_ARGS
1197
+{
1198
+ DWORD cbSize;
1199
+ LPCWSTR wzTransactionId;
1200
+ HRESULT hrStatus;
1201
+};
1202
+
1203
+struct BA_ONROLLBACKMSITRANSACTIONCOMPLETE_RESULTS
1204
+{
1205
+ DWORD cbSize;
1206
+};
1207
+
1208
+struct BA_ONSHUTDOWN_ARGS
1209
+{
1210
+ DWORD cbSize;
1211
+};
1212
+
1213
+struct BA_ONSHUTDOWN_RESULTS
1214
+{
1215
+ DWORD cbSize;
1216
+ BOOTSTRAPPER_SHUTDOWN_ACTION action;
1217
+};
1218
+
1219
+struct BA_ONSTARTUP_ARGS
1220
+{
1221
+ DWORD cbSize;
1222
+};
1223
+
1224
+struct BA_ONSTARTUP_RESULTS
1225
+{
1226
+ DWORD cbSize;
1227
+};
1228
+
1229
+struct BA_ONSYSTEMRESTOREPOINTBEGIN_ARGS
1230
+{
1231
+ DWORD cbSize;
1232
+};
1233
+
1234
+struct BA_ONSYSTEMRESTOREPOINTBEGIN_RESULTS
1235
+{
1236
+ DWORD cbSize;
1237
+};
1238
+
1239
+struct BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS
1240
+{
1241
+ DWORD cbSize;
1242
+ HRESULT hrStatus;
1243
+};
1244
+
1245
+struct BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS
1246
+{
1247
+ DWORD cbSize;
1248
+};
1249
+
1250
+struct BA_ONSYSTEMSHUTDOWN_ARGS
1251
+{
1252
+ DWORD cbSize;
1253
+ DWORD dwEndSession;
1254
+};
1255
+
1256
+struct BA_ONSYSTEMSHUTDOWN_RESULTS
1257
+{
1258
+ DWORD cbSize;
1259
+ BOOL fCancel;
1260
+};
1261
+
1262
+struct BA_ONUNREGISTERBEGIN_ARGS
1263
+{
1264
+ DWORD cbSize;
1265
+ BOOL fKeepRegistration;
1266
+};
1267
+
1268
+struct BA_ONUNREGISTERBEGIN_RESULTS
1269
+{
1270
+ DWORD cbSize;
1271
+ BOOL fForceKeepRegistration;
1272
+};
1273
+
1274
+struct BA_ONUNREGISTERCOMPLETE_ARGS
1275
+{
1276
+ DWORD cbSize;
1277
+ HRESULT hrStatus;
1278
+};
1279
+
1280
+struct BA_ONUNREGISTERCOMPLETE_RESULTS
1281
+{
1282
+ DWORD cbSize;
1283
+};
1284
+
1285
+
1286
+
1287
+extern "C" typedef HRESULT(WINAPI *PFN_BOOTSTRAPPER_APPLICATION_PROC)(
1288
+ __in BOOTSTRAPPER_APPLICATION_MESSAGE message,
1289
+ __in const LPVOID pvArgs,
1290
+ __inout LPVOID pvResults,
1291
+ __in_opt LPVOID pvContext
1292
+ );
1293
+
1294
+extern "C" typedef void (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_DESTROY)();
1295
+
1296
+
1297
+
1298
+struct BOOTSTRAPPER_CREATE_ARGS
1299
+{
1300
+ DWORD cbSize;
1301
+ DWORD64 qwEngineAPIVersion;
1302
+ PFN_BOOTSTRAPPER_ENGINE_PROC pfnBootstrapperEngineProc;
1303
+ LPVOID pvBootstrapperEngineProcContext;
1304
+ BOOTSTRAPPER_COMMAND* pCommand;
1305
+};
1306
+
1307
+struct BOOTSTRAPPER_CREATE_RESULTS
1308
+{
1309
+ DWORD cbSize;
1310
+ PFN_BOOTSTRAPPER_APPLICATION_PROC pfnBootstrapperApplicationProc;
1311
+ LPVOID pvBootstrapperApplicationProcContext;
1312
+ BOOL fDisableUnloading; // indicates the BA dll must not be unloaded after BootstrapperApplicationDestroy.
1313
+};
1314
+
1315
+extern "C" typedef HRESULT(WINAPI *PFN_BOOTSTRAPPER_APPLICATION_CREATE)(
1316
+ __in const BOOTSTRAPPER_CREATE_ARGS* pArgs,
1317
+ __inout BOOTSTRAPPER_CREATE_RESULTS* pResults
1318
+ );
src/WixToolset.BootstrapperCore.Native/inc/BootstrapperEngine.h
new
+442
@@ -0,0 +1,442 @@
1
+#pragma once
2
+// 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.
3
+
4
+
5
+#if defined(__cplusplus)
6
+extern "C" {
7
+#endif
8
+
9
+#define IDERROR -1
10
+#define IDNOACTION 0
11
+
12
+#ifndef FACILITY_WIX
13
+#define FACILITY_WIX 500
14
+#endif
15
+
16
+static const HRESULT E_SUSPECTED_AV_INTERFERENCE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIX, 2000);
17
+
18
+// Note that ordering of the enumeration values is important.
19
+// Some code paths use < or > comparisions and simply reording values will break those comparisons.
20
+enum BOOTSTRAPPER_ACTION
21
+{
22
+ BOOTSTRAPPER_ACTION_UNKNOWN,
23
+ BOOTSTRAPPER_ACTION_HELP,
24
+ BOOTSTRAPPER_ACTION_LAYOUT,
25
+ BOOTSTRAPPER_ACTION_UNINSTALL,
26
+ BOOTSTRAPPER_ACTION_CACHE,
27
+ BOOTSTRAPPER_ACTION_INSTALL,
28
+ BOOTSTRAPPER_ACTION_MODIFY,
29
+ BOOTSTRAPPER_ACTION_REPAIR,
30
+ BOOTSTRAPPER_ACTION_UPDATE_REPLACE,
31
+ BOOTSTRAPPER_ACTION_UPDATE_REPLACE_EMBEDDED,
32
+};
33
+
34
+enum BOOTSTRAPPER_ACTION_STATE
35
+{
36
+ BOOTSTRAPPER_ACTION_STATE_NONE,
37
+ BOOTSTRAPPER_ACTION_STATE_UNINSTALL,
38
+ BOOTSTRAPPER_ACTION_STATE_INSTALL,
39
+ BOOTSTRAPPER_ACTION_STATE_MODIFY,
40
+ BOOTSTRAPPER_ACTION_STATE_MEND,
41
+ BOOTSTRAPPER_ACTION_STATE_REPAIR,
42
+ BOOTSTRAPPER_ACTION_STATE_MINOR_UPGRADE,
43
+};
44
+
45
+enum BOOTSTRAPPER_PACKAGE_STATE
46
+{
47
+ BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN,
48
+ BOOTSTRAPPER_PACKAGE_STATE_OBSOLETE,
49
+ BOOTSTRAPPER_PACKAGE_STATE_ABSENT,
50
+ BOOTSTRAPPER_PACKAGE_STATE_PRESENT,
51
+ BOOTSTRAPPER_PACKAGE_STATE_SUPERSEDED,
52
+};
53
+
54
+enum BOOTSTRAPPER_REQUEST_STATE
55
+{
56
+ BOOTSTRAPPER_REQUEST_STATE_NONE,
57
+ BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT,
58
+ BOOTSTRAPPER_REQUEST_STATE_ABSENT,
59
+ BOOTSTRAPPER_REQUEST_STATE_CACHE,
60
+ BOOTSTRAPPER_REQUEST_STATE_PRESENT,
61
+ BOOTSTRAPPER_REQUEST_STATE_MEND,
62
+ BOOTSTRAPPER_REQUEST_STATE_REPAIR,
63
+};
64
+
65
+enum BOOTSTRAPPER_FEATURE_STATE
66
+{
67
+ BOOTSTRAPPER_FEATURE_STATE_UNKNOWN,
68
+ BOOTSTRAPPER_FEATURE_STATE_ABSENT,
69
+ BOOTSTRAPPER_FEATURE_STATE_ADVERTISED,
70
+ BOOTSTRAPPER_FEATURE_STATE_LOCAL,
71
+ BOOTSTRAPPER_FEATURE_STATE_SOURCE,
72
+};
73
+
74
+enum BOOTSTRAPPER_LOG_LEVEL
75
+{
76
+ BOOTSTRAPPER_LOG_LEVEL_NONE, // turns off report (only valid for XXXSetLevel())
77
+ BOOTSTRAPPER_LOG_LEVEL_STANDARD, // written if reporting is on
78
+ BOOTSTRAPPER_LOG_LEVEL_VERBOSE, // written only if verbose reporting is on
79
+ BOOTSTRAPPER_LOG_LEVEL_DEBUG, // reporting useful when debugging code
80
+ BOOTSTRAPPER_LOG_LEVEL_ERROR, // always gets reported, but can never be specified
81
+};
82
+
83
+enum BOOTSTRAPPER_UPDATE_HASH_TYPE
84
+{
85
+ BOOTSTRAPPER_UPDATE_HASH_TYPE_NONE,
86
+ BOOTSTRAPPER_UPDATE_HASH_TYPE_SHA512,
87
+};
88
+
89
+enum BOOTSTRAPPER_ENGINE_MESSAGE
90
+{
91
+ BOOTSTRAPPER_ENGINE_MESSAGE_GETPACKAGECOUNT,
92
+ BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLENUMERIC,
93
+ BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLESTRING,
94
+ BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLEVERSION,
95
+ BOOTSTRAPPER_ENGINE_MESSAGE_FORMATSTRING,
96
+ BOOTSTRAPPER_ENGINE_MESSAGE_ESCAPESTRING,
97
+ BOOTSTRAPPER_ENGINE_MESSAGE_EVALUATECONDITION,
98
+ BOOTSTRAPPER_ENGINE_MESSAGE_LOG,
99
+ BOOTSTRAPPER_ENGINE_MESSAGE_SENDEMBEDDEDERROR,
100
+ BOOTSTRAPPER_ENGINE_MESSAGE_SENDEMBEDDEDPROGRESS,
101
+ BOOTSTRAPPER_ENGINE_MESSAGE_SETUPDATE,
102
+ BOOTSTRAPPER_ENGINE_MESSAGE_SETLOCALSOURCE,
103
+ BOOTSTRAPPER_ENGINE_MESSAGE_SETDOWNLOADSOURCE,
104
+ BOOTSTRAPPER_ENGINE_MESSAGE_SETVARIABLENUMERIC,
105
+ BOOTSTRAPPER_ENGINE_MESSAGE_SETVARIABLESTRING,
106
+ BOOTSTRAPPER_ENGINE_MESSAGE_SETVARIABLEVERSION,
107
+ BOOTSTRAPPER_ENGINE_MESSAGE_CLOSESPLASHSCREEN,
108
+ BOOTSTRAPPER_ENGINE_MESSAGE_DETECT,
109
+ BOOTSTRAPPER_ENGINE_MESSAGE_PLAN,
110
+ BOOTSTRAPPER_ENGINE_MESSAGE_ELEVATE,
111
+ BOOTSTRAPPER_ENGINE_MESSAGE_APPLY,
112
+ BOOTSTRAPPER_ENGINE_MESSAGE_QUIT,
113
+ BOOTSTRAPPER_ENGINE_MESSAGE_LAUNCHAPPROVEDEXE,
114
+ BOOTSTRAPPER_ENGINE_MESSAGE_SETUPDATESOURCE,
115
+ BOOTSTRAPPER_ENGINE_MESSAGE_COMPAREVERSIONS,
116
+};
117
+
118
+typedef struct _BAENGINE_APPLY_ARGS
119
+{
120
+ DWORD cbSize;
121
+ HWND hwndParent;
122
+} BAENGINE_APPLY_ARGS;
123
+
124
+typedef struct _BAENGINE_APPLY_RESULTS
125
+{
126
+ DWORD cbSize;
127
+} BAENGINE_APPLY_RESULTS;
128
+
129
+typedef struct _BAENGINE_CLOSESPLASHSCREEN_ARGS
130
+{
131
+ DWORD cbSize;
132
+} BAENGINE_CLOSESPLASHSCREEN_ARGS;
133
+
134
+typedef struct _BAENGINE_CLOSESPLASHSCREEN_RESULTS
135
+{
136
+ DWORD cbSize;
137
+} BAENGINE_CLOSESPLASHSCREEN_RESULTS;
138
+
139
+typedef struct _BAENGINE_COMPAREVERSIONS_ARGS
140
+{
141
+ DWORD cbSize;
142
+ LPCWSTR wzVersion1;
143
+ LPCWSTR wzVersion2;
144
+} BAENGINE_COMPAREVERSIONS_ARGS;
145
+
146
+typedef struct _BAENGINE_COMPAREVERSIONS_RESULTS
147
+{
148
+ DWORD cbSize;
149
+ int nResult;
150
+} BAENGINE_COMPAREVERSIONS_RESULTS;
151
+
152
+typedef struct _BAENGINE_DETECT_ARGS
153
+{
154
+ DWORD cbSize;
155
+ HWND hwndParent;
156
+} BAENGINE_DETECT_ARGS;
157
+
158
+typedef struct _BAENGINE_DETECT_RESULTS
159
+{
160
+ DWORD cbSize;
161
+} BAENGINE_DETECT_RESULTS;
162
+
163
+typedef struct _BAENGINE_ELEVATE_ARGS
164
+{
165
+ DWORD cbSize;
166
+ HWND hwndParent;
167
+} BAENGINE_ELEVATE_ARGS;
168
+
169
+typedef struct _BAENGINE_ELEVATE_RESULTS
170
+{
171
+ DWORD cbSize;
172
+} BAENGINE_ELEVATE_RESULTS;
173
+
174
+typedef struct _BAENGINE_ESCAPESTRING_ARGS
175
+{
176
+ DWORD cbSize;
177
+ LPCWSTR wzIn;
178
+} BAENGINE_ESCAPESTRING_ARGS;
179
+
180
+typedef struct _BAENGINE_ESCAPESTRING_RESULTS
181
+{
182
+ DWORD cbSize;
183
+ LPWSTR wzOut;
184
+ // Should be initialized to the size of wzOut.
185
+ SIZE_T cchOut;
186
+} BAENGINE_ESCAPESTRING_RESULTS;
187
+
188
+typedef struct _BAENGINE_EVALUATECONDITION_ARGS
189
+{
190
+ DWORD cbSize;
191
+ LPCWSTR wzCondition;
192
+} BAENGINE_EVALUATECONDITION_ARGS;
193
+
194
+typedef struct _BAENGINE_EVALUATECONDITION_RESULTS
195
+{
196
+ DWORD cbSize;
197
+ BOOL f;
198
+} BAENGINE_EVALUATECONDITION_RESULTS;
199
+
200
+typedef struct _BAENGINE_FORMATSTRING_ARGS
201
+{
202
+ DWORD cbSize;
203
+ LPCWSTR wzIn;
204
+} BAENGINE_FORMATSTRING_ARGS;
205
+
206
+typedef struct _BAENGINE_FORMATSTRING_RESULTS
207
+{
208
+ DWORD cbSize;
209
+ LPWSTR wzOut;
210
+ // Should be initialized to the size of wzOut.
211
+ SIZE_T cchOut;
212
+} BAENGINE_FORMATSTRING_RESULTS;
213
+
214
+typedef struct _BAENGINE_GETPACKAGECOUNT_ARGS
215
+{
216
+ DWORD cbSize;
217
+} BAENGINE_GETPACKAGECOUNT_ARGS;
218
+
219
+typedef struct _BAENGINE_GETPACKAGECOUNT_RESULTS
220
+{
221
+ DWORD cbSize;
222
+ DWORD cPackages;
223
+} BAENGINE_GETPACKAGECOUNT_RESULTS;
224
+
225
+typedef struct _BAENGINE_GETVARIABLENUMERIC_ARGS
226
+{
227
+ DWORD cbSize;
228
+ LPCWSTR wzVariable;
229
+} BAENGINE_GETVARIABLENUMERIC_ARGS;
230
+
231
+typedef struct _BAENGINE_GETVARIABLENUMERIC_RESULTS
232
+{
233
+ DWORD cbSize;
234
+ LONGLONG llValue;
235
+} BAENGINE_GETVARIABLENUMERIC_RESULTS;
236
+
237
+typedef struct _BAENGINE_GETVARIABLESTRING_ARGS
238
+{
239
+ DWORD cbSize;
240
+ LPCWSTR wzVariable;
241
+} BAENGINE_GETVARIABLESTRING_ARGS;
242
+
243
+typedef struct _BAENGINE_GETVARIABLESTRING_RESULTS
244
+{
245
+ DWORD cbSize;
246
+ LPWSTR wzValue;
247
+ // Should be initialized to the size of wzValue.
248
+ SIZE_T cchValue;
249
+} BAENGINE_GETVARIABLESTRING_RESULTS;
250
+
251
+typedef struct _BAENGINE_GETVARIABLEVERSION_ARGS
252
+{
253
+ DWORD cbSize;
254
+ LPCWSTR wzVariable;
255
+} BAENGINE_GETVARIABLEVERSION_ARGS;
256
+
257
+typedef struct _BAENGINE_GETVARIABLEVERSION_RESULTS
258
+{
259
+ DWORD cbSize;
260
+ LPWSTR wzValue;
261
+ // Should be initialized to the size of wzValue.
262
+ SIZE_T cchValue;
263
+} BAENGINE_GETVARIABLEVERSION_RESULTS;
264
+
265
+typedef struct _BAENGINE_LAUNCHAPPROVEDEXE_ARGS
266
+{
267
+ DWORD cbSize;
268
+ HWND hwndParent;
269
+ LPCWSTR wzApprovedExeForElevationId;
270
+ LPCWSTR wzArguments;
271
+ DWORD dwWaitForInputIdleTimeout;
272
+} BAENGINE_LAUNCHAPPROVEDEXE_ARGS;
273
+
274
+typedef struct _BAENGINE_LAUNCHAPPROVEDEXE_RESULTS
275
+{
276
+ DWORD cbSize;
277
+} BAENGINE_LAUNCHAPPROVEDEXE_RESULTS;
278
+
279
+typedef struct _BAENGINE_SETUPDATESOURCE_ARGS
280
+{
281
+ DWORD cbSize;
282
+ LPCWSTR wzUrl;
283
+} BAENGINE_SETUPDATESOURCE_ARGS;
284
+
285
+typedef struct _BAENGINE_SETUPDATESOURCE_RESULTS
286
+{
287
+ DWORD cbSize;
288
+} BAENGINE_SETUPDATESOURCE_RESULTS;
289
+
290
+typedef struct _BAENGINE_LOG_ARGS
291
+{
292
+ DWORD cbSize;
293
+ BOOTSTRAPPER_LOG_LEVEL level;
294
+ LPCWSTR wzMessage;
295
+} BAENGINE_LOG_ARGS;
296
+
297
+typedef struct _BAENGINE_LOG_RESULTS
298
+{
299
+ DWORD cbSize;
300
+} BAENGINE_LOG_RESULTS;
301
+
302
+typedef struct _BAENGINE_PLAN_ARGS
303
+{
304
+ DWORD cbSize;
305
+ BOOTSTRAPPER_ACTION action;
306
+} BAENGINE_PLAN_ARGS;
307
+
308
+typedef struct _BAENGINE_PLAN_RESULTS
309
+{
310
+ DWORD cbSize;
311
+} BAENGINE_PLAN_RESULTS;
312
+
313
+typedef struct _BAENGINE_QUIT_ARGS
314
+{
315
+ DWORD cbSize;
316
+ DWORD dwExitCode;
317
+} BAENGINE_QUIT_ARGS;
318
+
319
+typedef struct _BAENGINE_QUIT_RESULTS
320
+{
321
+ DWORD cbSize;
322
+} BAENGINE_QUIT_RESULTS;
323
+
324
+typedef struct _BAENGINE_SENDEMBEDDEDERROR_ARGS
325
+{
326
+ DWORD cbSize;
327
+ DWORD dwErrorCode;
328
+ LPCWSTR wzMessage;
329
+ DWORD dwUIHint;
330
+} BAENGINE_SENDEMBEDDEDERROR_ARGS;
331
+
332
+typedef struct _BAENGINE_SENDEMBEDDEDERROR_RESULTS
333
+{
334
+ DWORD cbSize;
335
+ int nResult;
336
+} BAENGINE_SENDEMBEDDEDERROR_RESULTS;
337
+
338
+typedef struct _BAENGINE_SENDEMBEDDEDPROGRESS_ARGS
339
+{
340
+ DWORD cbSize;
341
+ DWORD dwProgressPercentage;
342
+ DWORD dwOverallProgressPercentage;
343
+} BAENGINE_SENDEMBEDDEDPROGRESS_ARGS;
344
+
345
+typedef struct _BAENGINE_SENDEMBEDDEDPROGRESS_RESULTS
346
+{
347
+ DWORD cbSize;
348
+ int nResult;
349
+} BAENGINE_SENDEMBEDDEDPROGRESS_RESULTS;
350
+
351
+typedef struct _BAENGINE_SETDOWNLOADSOURCE_ARGS
352
+{
353
+ DWORD cbSize;
354
+ LPCWSTR wzPackageOrContainerId;
355
+ LPCWSTR wzPayloadId;
356
+ LPCWSTR wzUrl;
357
+ LPCWSTR wzUser;
358
+ LPCWSTR wzPassword;
359
+} BAENGINE_SETDOWNLOADSOURCE_ARGS;
360
+
361
+typedef struct _BAENGINE_SETDOWNLOADSOURCE_RESULTS
362
+{
363
+ DWORD cbSize;
364
+} BAENGINE_SETDOWNLOADSOURCE_RESULTS;
365
+
366
+typedef struct _BAENGINE_SETLOCALSOURCE_ARGS
367
+{
368
+ DWORD cbSize;
369
+ LPCWSTR wzPackageOrContainerId;
370
+ LPCWSTR wzPayloadId;
371
+ LPCWSTR wzPath;
372
+} BAENGINE_SETLOCALSOURCE_ARGS;
373
+
374
+typedef struct _BAENGINE_SETLOCALSOURCE_RESULTS
375
+{
376
+ DWORD cbSize;
377
+} BAENGINE_SETLOCALSOURCE_RESULTS;
378
+
379
+typedef struct _BAENGINE_SETUPDATE_ARGS
380
+{
381
+ DWORD cbSize;
382
+ LPCWSTR wzLocalSource;
383
+ LPCWSTR wzDownloadSource;
384
+ DWORD64 qwSize;
385
+ BOOTSTRAPPER_UPDATE_HASH_TYPE hashType;
386
+ BYTE* rgbHash;
387
+ DWORD cbHash;
388
+} BAENGINE_SETUPDATE_ARGS;
389
+
390
+typedef struct _BAENGINE_SETUPDATE_RESULTS
391
+{
392
+ DWORD cbSize;
393
+} BAENGINE_SETUPDATE_RESULTS;
394
+
395
+typedef struct _BAENGINE_SETVARIABLENUMERIC_ARGS
396
+{
397
+ DWORD cbSize;
398
+ LPCWSTR wzVariable;
399
+ LONGLONG llValue;
400
+} BAENGINE_SETVARIABLENUMERIC_ARGS;
401
+
402
+typedef struct _BAENGINE_SETVARIABLENUMERIC_RESULTS
403
+{
404
+ DWORD cbSize;
405
+} BAENGINE_SETVARIABLENUMERIC_RESULTS;
406
+
407
+typedef struct _BAENGINE_SETVARIABLESTRING_ARGS
408
+{
409
+ DWORD cbSize;
410
+ LPCWSTR wzVariable;
411
+ LPCWSTR wzValue;
412
+ BOOL fFormatted;
413
+} BAENGINE_SETVARIABLESTRING_ARGS;
414
+
415
+typedef struct _BAENGINE_SETVARIABLESTRING_RESULTS
416
+{
417
+ DWORD cbSize;
418
+} BAENGINE_SETVARIABLESTRING_RESULTS;
419
+
420
+typedef struct _BAENGINE_SETVARIABLEVERSION_ARGS
421
+{
422
+ DWORD cbSize;
423
+ LPCWSTR wzVariable;
424
+ LPCWSTR wzValue;
425
+} BAENGINE_SETVARIABLEVERSION_ARGS;
426
+
427
+typedef struct _BAENGINE_SETVARIABLEVERSION_RESULTS
428
+{
429
+ DWORD cbSize;
430
+} BAENGINE_SETVARIABLEVERSION_RESULTS;
431
+
432
+
433
+extern "C" typedef HRESULT(WINAPI *PFN_BOOTSTRAPPER_ENGINE_PROC)(
434
+ __in BOOTSTRAPPER_ENGINE_MESSAGE message,
435
+ __in const LPVOID pvArgs,
436
+ __inout LPVOID pvResults,
437
+ __in_opt LPVOID pvContext
438
+ );
439
+
440
+#if defined(__cplusplus)
441
+}
442
+#endif
src/WixToolset.BootstrapperCore.Native/inc/BundleExtension.h
new
+60
@@ -0,0 +1,60 @@
1
+#pragma once
2
+// 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.
3
+
4
+
5
+#if defined(__cplusplus)
6
+extern "C" {
7
+#endif
8
+
9
+enum BUNDLE_EXTENSION_MESSAGE
10
+{
11
+ BUNDLE_EXTENSION_MESSAGE_SEARCH,
12
+};
13
+
14
+typedef struct _BUNDLE_EXTENSION_SEARCH_ARGS
15
+{
16
+ DWORD cbSize;
17
+ LPCWSTR wzId;
18
+ LPCWSTR wzVariable;
19
+} BUNDLE_EXTENSION_SEARCH_ARGS;
20
+
21
+typedef struct _BUNDLE_EXTENSION_SEARCH_RESULTS
22
+{
23
+ DWORD cbSize;
24
+} BUNDLE_EXTENSION_SEARCH_RESULTS;
25
+
26
+extern "C" typedef HRESULT(WINAPI *PFN_BUNDLE_EXTENSION_PROC)(
27
+ __in BUNDLE_EXTENSION_MESSAGE message,
28
+ __in const LPVOID pvArgs,
29
+ __inout LPVOID pvResults,
30
+ __in_opt LPVOID pvContext
31
+ );
32
+
33
+typedef struct _BUNDLE_EXTENSION_CREATE_ARGS
34
+{
35
+ DWORD cbSize;
36
+ DWORD64 qwEngineAPIVersion;
37
+ PFN_BUNDLE_EXTENSION_ENGINE_PROC pfnBundleExtensionEngineProc;
38
+ LPVOID pvBundleExtensionEngineProcContext;
39
+ LPCWSTR wzBootstrapperWorkingFolder;
40
+ LPCWSTR wzBundleExtensionDataPath;
41
+ LPCWSTR wzExtensionId;
42
+} BUNDLE_EXTENSION_CREATE_ARGS;
43
+
44
+typedef struct _BUNDLE_EXTENSION_CREATE_RESULTS
45
+{
46
+ DWORD cbSize;
47
+ PFN_BUNDLE_EXTENSION_PROC pfnBundleExtensionProc;
48
+ LPVOID pvBundleExtensionProcContext;
49
+} BUNDLE_EXTENSION_CREATE_RESULTS;
50
+
51
+extern "C" typedef HRESULT(WINAPI *PFN_BUNDLE_EXTENSION_CREATE)(
52
+ __in const BUNDLE_EXTENSION_CREATE_ARGS* pArgs,
53
+ __inout BUNDLE_EXTENSION_CREATE_RESULTS* pResults
54
+ );
55
+
56
+extern "C" typedef void (WINAPI *PFN_BUNDLE_EXTENSION_DESTROY)();
57
+
58
+#if defined(__cplusplus)
59
+}
60
+#endif
src/WixToolset.BootstrapperCore.Native/inc/BundleExtensionEngine.h
new
+184
@@ -0,0 +1,184 @@
1
+#pragma once
2
+// 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.
3
+
4
+
5
+#if defined(__cplusplus)
6
+extern "C" {
7
+#endif
8
+
9
+enum BUNDLE_EXTENSION_LOG_LEVEL
10
+{
11
+ BUNDLE_EXTENSION_LOG_LEVEL_NONE, // turns off report (only valid for XXXSetLevel())
12
+ BUNDLE_EXTENSION_LOG_LEVEL_STANDARD, // written if reporting is on
13
+ BUNDLE_EXTENSION_LOG_LEVEL_VERBOSE, // written only if verbose reporting is on
14
+ BUNDLE_EXTENSION_LOG_LEVEL_DEBUG, // reporting useful when debugging code
15
+ BUNDLE_EXTENSION_LOG_LEVEL_ERROR, // always gets reported, but can never be specified
16
+};
17
+
18
+enum BUNDLE_EXTENSION_ENGINE_MESSAGE
19
+{
20
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_ESCAPESTRING,
21
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_EVALUATECONDITION,
22
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_FORMATSTRING,
23
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_GETVARIABLENUMERIC,
24
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_GETVARIABLESTRING,
25
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_GETVARIABLEVERSION,
26
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_LOG,
27
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_SETVARIABLENUMERIC,
28
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_SETVARIABLESTRING,
29
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_SETVARIABLEVERSION,
30
+ BUNDLE_EXTENSION_ENGINE_MESSAGE_COMPAREVERSIONS,
31
+};
32
+
33
+typedef struct _BUNDLE_EXTENSION_ENGINE_COMPAREVERSIONS_ARGS
34
+{
35
+ DWORD cbSize;
36
+ LPCWSTR wzVersion1;
37
+ LPCWSTR wzVersion2;
38
+} BUNDLE_EXTENSION_ENGINE_COMPAREVERSIONS_ARGS;
39
+
40
+typedef struct _BUNDLE_EXTENSION_ENGINE_COMPAREVERSIONS_RESULTS
41
+{
42
+ DWORD cbSize;
43
+ int nResult;
44
+} BUNDLE_EXTENSION_ENGINE_COMPAREVERSIONS_RESULTS;
45
+
46
+typedef struct _BUNDLE_EXTENSION_ENGINE_ESCAPESTRING_ARGS
47
+{
48
+ DWORD cbSize;
49
+ LPCWSTR wzIn;
50
+} BUNDLE_EXTENSION_ENGINE_ESCAPESTRING_ARGS;
51
+
52
+typedef struct _BUNDLE_EXTENSION_ENGINE_ESCAPESTRING_RESULTS
53
+{
54
+ DWORD cbSize;
55
+ LPWSTR wzOut;
56
+ // Should be initialized to the size of wzOut.
57
+ SIZE_T cchOut;
58
+} BUNDLE_EXTENSION_ENGINE_ESCAPESTRING_RESULTS;
59
+
60
+typedef struct _BUNDLE_EXTENSION_ENGINE_EVALUATECONDITION_ARGS
61
+{
62
+ DWORD cbSize;
63
+ LPCWSTR wzCondition;
64
+} BUNDLE_EXTENSION_ENGINE_EVALUATECONDITION_ARGS;
65
+
66
+typedef struct _BUNDLE_EXTENSION_ENGINE_EVALUATECONDITION_RESULTS
67
+{
68
+ DWORD cbSize;
69
+ BOOL f;
70
+} BUNDLE_EXTENSION_ENGINE_EVALUATECONDITION_RESULTS;
71
+
72
+typedef struct _BUNDLE_EXTENSION_ENGINE_FORMATSTRING_ARGS
73
+{
74
+ DWORD cbSize;
75
+ LPCWSTR wzIn;
76
+} BUNDLE_EXTENSION_ENGINE_FORMATSTRING_ARGS;
77
+
78
+typedef struct _BUNDLE_EXTENSION_ENGINE_FORMATSTRING_RESULTS
79
+{
80
+ DWORD cbSize;
81
+ LPWSTR wzOut;
82
+ // Should be initialized to the size of wzOut.
83
+ SIZE_T cchOut;
84
+} BUNDLE_EXTENSION_ENGINE_FORMATSTRING_RESULTS;
85
+
86
+typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLENUMERIC_ARGS
87
+{
88
+ DWORD cbSize;
89
+ LPCWSTR wzVariable;
90
+} BUNDLE_EXTENSION_ENGINE_GETVARIABLENUMERIC_ARGS;
91
+
92
+typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLENUMERIC_RESULTS
93
+{
94
+ DWORD cbSize;
95
+ LONGLONG llValue;
96
+} BUNDLE_EXTENSION_ENGINE_GETVARIABLENUMERIC_RESULTS;
97
+
98
+typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLESTRING_ARGS
99
+{
100
+ DWORD cbSize;
101
+ LPCWSTR wzVariable;
102
+} BUNDLE_EXTENSION_ENGINE_GETVARIABLESTRING_ARGS;
103
+
104
+typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLESTRING_RESULTS
105
+{
106
+ DWORD cbSize;
107
+ LPWSTR wzValue;
108
+ // Should be initialized to the size of wzValue.
109
+ SIZE_T cchValue;
110
+} BUNDLE_EXTENSION_ENGINE_GETVARIABLESTRING_RESULTS;
111
+
112
+typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_ARGS
113
+{
114
+ DWORD cbSize;
115
+ LPCWSTR wzVariable;
116
+} BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_ARGS;
117
+
118
+typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_RESULTS
119
+{
120
+ DWORD cbSize;
121
+ LPWSTR wzValue;
122
+ // Should be initialized to the size of wzValue.
123
+ SIZE_T cchValue;
124
+} BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_RESULTS;
125
+
126
+typedef struct _BUNDLE_EXTENSION_ENGINE_LOG_ARGS
127
+{
128
+ DWORD cbSize;
129
+ BUNDLE_EXTENSION_LOG_LEVEL level;
130
+ LPCWSTR wzMessage;
131
+} BUNDLE_EXTENSION_ENGINE_LOG_ARGS;
132
+
133
+typedef struct _BUNDLE_EXTENSION_ENGINE_LOG_RESULTS
134
+{
135
+ DWORD cbSize;
136
+} BUNDLE_EXTENSION_ENGINE_LOG_RESULTS;
137
+
138
+typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLENUMERIC_ARGS
139
+{
140
+ DWORD cbSize;
141
+ LPCWSTR wzVariable;
142
+ LONGLONG llValue;
143
+} BUNDLE_EXTENSION_ENGINE_SETVARIABLENUMERIC_ARGS;
144
+
145
+typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLENUMERIC_RESULTS
146
+{
147
+ DWORD cbSize;
148
+} BUNDLE_EXTENSION_ENGINE_SETVARIABLENUMERIC_RESULTS;
149
+
150
+typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLESTRING_ARGS
151
+{
152
+ DWORD cbSize;
153
+ LPCWSTR wzVariable;
154
+ LPCWSTR wzValue;
155
+ BOOL fFormatted;
156
+} BUNDLE_EXTENSION_ENGINE_SETVARIABLESTRING_ARGS;
157
+
158
+typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLESTRING_RESULTS
159
+{
160
+ DWORD cbSize;
161
+} BUNDLE_EXTENSION_ENGINE_SETVARIABLESTRING_RESULTS;
162
+
163
+typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLEVERSION_ARGS
164
+{
165
+ DWORD cbSize;
166
+ LPCWSTR wzVariable;
167
+ LPCWSTR wzValue;
168
+} BUNDLE_EXTENSION_ENGINE_SETVARIABLEVERSION_ARGS;
169
+
170
+typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLEVERSION_RESULTS
171
+{
172
+ DWORD cbSize;
173
+} BUNDLE_EXTENSION_ENGINE_SETVARIABLEVERSION_RESULTS;
174
+
175
+extern "C" typedef HRESULT(WINAPI *PFN_BUNDLE_EXTENSION_ENGINE_PROC)(
176
+ __in BUNDLE_EXTENSION_ENGINE_MESSAGE message,
177
+ __in const LPVOID pvArgs,
178
+ __inout LPVOID pvResults,
179
+ __in_opt LPVOID pvContext
180
+ );
181
+
182
+#if defined(__cplusplus)
183
+}
184
+#endif