@joebigelow / wix / commits / 8eb98efd

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