From edccb203c421d2bd820062024088c6698424d9ee Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Wed, 4 Feb 2026 20:47:04 -0500 Subject: Support dual-purpose packages in Burn. Fixes https://github.com/wixtoolset/issues/issues/8958 --- src/api/burn/inc/BootstrapperApplicationTypes.h | 11 +++++++++++ src/api/burn/inc/BootstrapperEngineTypes.h | 10 +++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'src/api/burn/inc') diff --git a/src/api/burn/inc/BootstrapperApplicationTypes.h b/src/api/burn/inc/BootstrapperApplicationTypes.h index 2ece1b7b..b430e04a 100644 --- a/src/api/burn/inc/BootstrapperApplicationTypes.h +++ b/src/api/burn/inc/BootstrapperApplicationTypes.h @@ -10,6 +10,7 @@ extern "C" { const LPCWSTR BOOTSTRAPPER_APPLICATION_COMMANDLINE_SWITCH_API_VERSION = L"burn.ba.apiver"; const LPCWSTR BOOTSTRAPPER_APPLICATION_COMMANDLINE_SWITCH_PIPE_NAME = L"burn.ba.pipe"; const DWORD WIX_5_BOOTSTRAPPER_APPLICATION_API_VERSION = 5; +const DWORD WIX_7_BOOTSTRAPPER_APPLICATION_API_VERSION = 7; enum BOOTSTRAPPER_DISPLAY { @@ -27,6 +28,15 @@ enum BOOTSTRAPPER_REGISTRATION_TYPE BOOTSTRAPPER_REGISTRATION_TYPE_FULL, }; +enum BOOTSTRAPPER_PACKAGE_SCOPE +{ + BOOTSTRAPPER_PACKAGE_SCOPE_INVALID, + BOOTSTRAPPER_PACKAGE_SCOPE_PER_MACHINE, + BOOTSTRAPPER_PACKAGE_SCOPE_PER_MACHINE_OR_PER_USER, + BOOTSTRAPPER_PACKAGE_SCOPE_PER_USER_OR_PER_MACHINE, + BOOTSTRAPPER_PACKAGE_SCOPE_PER_USER, +}; + enum BOOTSTRAPPER_RESUME_TYPE { BOOTSTRAPPER_RESUME_TYPE_NONE, @@ -353,6 +363,7 @@ struct BOOTSTRAPPER_COMMAND DWORD cbSize; BOOTSTRAPPER_ACTION action; BOOTSTRAPPER_DISPLAY display; + BOOTSTRAPPER_SCOPE commandLineScope; LPWSTR wzCommandLine; INT32 nCmdShow; diff --git a/src/api/burn/inc/BootstrapperEngineTypes.h b/src/api/burn/inc/BootstrapperEngineTypes.h index f89238c0..6dced349 100644 --- a/src/api/burn/inc/BootstrapperEngineTypes.h +++ b/src/api/burn/inc/BootstrapperEngineTypes.h @@ -30,6 +30,13 @@ enum BOOTSTRAPPER_ACTION BOOTSTRAPPER_ACTION_UPDATE_REPLACE_EMBEDDED, }; +enum BOOTSTRAPPER_SCOPE +{ + BOOTSTRAPPER_SCOPE_DEFAULT, + BOOTSTRAPPER_SCOPE_PER_MACHINE, + BOOTSTRAPPER_SCOPE_PER_USER, +}; + enum BOOTSTRAPPER_ACTION_STATE { BOOTSTRAPPER_ACTION_STATE_NONE, @@ -183,7 +190,7 @@ typedef struct _BAENGINE_ESCAPESTRING_RESULTS { DWORD dwApiVersion; LPWSTR wzOut; - // Should be initialized to the size of wzOut. + // Should be initialized to the count of wzOut. DWORD cchOut; } BAENGINE_ESCAPESTRING_RESULTS; @@ -306,6 +313,7 @@ typedef struct _BAENGINE_PLAN_ARGS { DWORD dwApiVersion; BOOTSTRAPPER_ACTION action; + BOOTSTRAPPER_SCOPE plannedScope; } BAENGINE_PLAN_ARGS; typedef struct _BAENGINE_PLAN_RESULTS -- cgit v1.2.3-55-g6feb