diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2021-02-22 16:16:12 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2021-02-22 20:25:06 -0600 |
| commit | 4f4c85ed66f1b2dfb1bec76d54d7b50c637d5bfa (patch) | |
| tree | 6de8e63ad46626ec457af256d481e81d726f3860 /src/engine/package.h | |
| parent | d0d93beac0b79fa9c3d43398813954988afda18f (diff) | |
| download | wix-4f4c85ed66f1b2dfb1bec76d54d7b50c637d5bfa.tar.gz wix-4f4c85ed66f1b2dfb1bec76d54d7b50c637d5bfa.tar.bz2 wix-4f4c85ed66f1b2dfb1bec76d54d7b50c637d5bfa.zip | |
Add patch target for slipstream MSI package even if not installed.
Fixes #3897
Diffstat (limited to 'src/engine/package.h')
| -rw-r--r-- | src/engine/package.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/engine/package.h b/src/engine/package.h index 3a243c7d..283afa57 100644 --- a/src/engine/package.h +++ b/src/engine/package.h | |||
| @@ -14,6 +14,8 @@ typedef _BURN_PACKAGE BURN_PACKAGE; | |||
| 14 | 14 | ||
| 15 | // constants | 15 | // constants |
| 16 | 16 | ||
| 17 | const DWORD BURN_PACKAGE_INVALID_PATCH_INDEX = 0x80000000; | ||
| 18 | |||
| 17 | enum BURN_EXE_EXIT_CODE_TYPE | 19 | enum BURN_EXE_EXIT_CODE_TYPE |
| 18 | { | 20 | { |
| 19 | BURN_EXE_EXIT_CODE_TYPE_NONE, | 21 | BURN_EXE_EXIT_CODE_TYPE_NONE, |
| @@ -116,7 +118,9 @@ typedef struct _BURN_MSPTARGETPRODUCT | |||
| 116 | DWORD dwOrder; | 118 | DWORD dwOrder; |
| 117 | WCHAR wzTargetProductCode[39]; | 119 | WCHAR wzTargetProductCode[39]; |
| 118 | BURN_PACKAGE* pChainedTargetPackage; | 120 | BURN_PACKAGE* pChainedTargetPackage; |
| 121 | BOOL fInstalled; | ||
| 119 | BOOL fSlipstream; | 122 | BOOL fSlipstream; |
| 123 | BOOL fSlipstreamRequired; // this means the target product is not present on the machine, but is available in the chain as a slipstream target. | ||
| 120 | 124 | ||
| 121 | BOOTSTRAPPER_PACKAGE_STATE patchPackageState; // only valid after Detect. | 125 | BOOTSTRAPPER_PACKAGE_STATE patchPackageState; // only valid after Detect. |
| 122 | BOOTSTRAPPER_REQUEST_STATE defaultRequested; // only valid during Plan. | 126 | BOOTSTRAPPER_REQUEST_STATE defaultRequested; // only valid during Plan. |
| @@ -172,6 +176,18 @@ typedef struct _BURN_RELATED_MSI | |||
| 172 | DWORD cLanguages; | 176 | DWORD cLanguages; |
| 173 | } BURN_RELATED_MSI; | 177 | } BURN_RELATED_MSI; |
| 174 | 178 | ||
| 179 | typedef struct _BURN_CHAINED_PATCH | ||
| 180 | { | ||
| 181 | BURN_PACKAGE* pMspPackage; | ||
| 182 | DWORD dwMspTargetProductIndex; // index into the Msp.rgTargetProducts | ||
| 183 | } BURN_CHAINED_PATCH; | ||
| 184 | |||
| 185 | typedef struct _BURN_SLIPSTREAM_MSP | ||
| 186 | { | ||
| 187 | BURN_PACKAGE* pMspPackage; | ||
| 188 | DWORD dwMsiChainedPatchIndex; // index into the Msi.rgChainedPatches | ||
| 189 | } BURN_SLIPSTREAM_MSP; | ||
| 190 | |||
| 175 | typedef struct _BURN_PACKAGE_PAYLOAD | 191 | typedef struct _BURN_PACKAGE_PAYLOAD |
| 176 | { | 192 | { |
| 177 | BURN_PAYLOAD* pPayload; | 193 | BURN_PAYLOAD* pPayload; |
| @@ -295,9 +311,12 @@ typedef struct _BURN_PACKAGE | |||
| 295 | BURN_RELATED_MSI* rgRelatedMsis; | 311 | BURN_RELATED_MSI* rgRelatedMsis; |
| 296 | DWORD cRelatedMsis; | 312 | DWORD cRelatedMsis; |
| 297 | 313 | ||
| 298 | _BURN_PACKAGE** rgpSlipstreamMspPackages; | 314 | BURN_SLIPSTREAM_MSP* rgSlipstreamMsps; |
| 299 | LPWSTR* rgsczSlipstreamMspPackageIds; | 315 | LPWSTR* rgsczSlipstreamMspPackageIds; |
| 300 | DWORD cSlipstreamMspPackages; | 316 | DWORD cSlipstreamMspPackages; |
| 317 | |||
| 318 | BURN_CHAINED_PATCH* rgChainedPatches; | ||
| 319 | DWORD cChainedPatches; | ||
| 301 | } Msi; | 320 | } Msi; |
| 302 | struct | 321 | struct |
| 303 | { | 322 | { |
