aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/package.h
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-01-14 21:37:24 -0600
committerSean Hall <r.sean.hall@gmail.com>2022-01-16 10:30:28 -0600
commitda1d1376953ef1c9afb32d5eee02b785e52e372e (patch)
tree0df8550960259d7b13f5cd90f04d21b5576f16b7 /src/burn/engine/package.h
parentabe316b80fae80eba54b0b79e76b6362105fa098 (diff)
downloadwix-da1d1376953ef1c9afb32d5eee02b785e52e372e.tar.gz
wix-da1d1376953ef1c9afb32d5eee02b785e52e372e.tar.bz2
wix-da1d1376953ef1c9afb32d5eee02b785e52e372e.zip
Remove orphan compatible MSI packages.
Reimplements #3190
Diffstat (limited to 'src/burn/engine/package.h')
-rw-r--r--src/burn/engine/package.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/burn/engine/package.h b/src/burn/engine/package.h
index 10b5f33c..934355e1 100644
--- a/src/burn/engine/package.h
+++ b/src/burn/engine/package.h
@@ -147,6 +147,14 @@ typedef struct _BURN_MSIFEATURE
147 BOOTSTRAPPER_FEATURE_ACTION rollback; // only valid during Plan. 147 BOOTSTRAPPER_FEATURE_ACTION rollback; // only valid during Plan.
148} BURN_MSIFEATURE; 148} BURN_MSIFEATURE;
149 149
150typedef struct _BURN_COMPATIBLE_PROVIDER_ENTRY
151{
152 LPWSTR sczProviderKey;
153 LPWSTR sczId;
154 LPWSTR sczName;
155 LPWSTR sczVersion;
156} BURN_COMPATIBLE_PROVIDER_ENTRY;
157
150typedef struct _BURN_RELATED_MSI 158typedef struct _BURN_RELATED_MSI
151{ 159{
152 LPWSTR sczUpgradeCode; 160 LPWSTR sczUpgradeCode;
@@ -206,6 +214,27 @@ typedef struct _BURN_PATCH_TARGETCODE
206 BURN_PATCH_TARGETCODE_TYPE type; 214 BURN_PATCH_TARGETCODE_TYPE type;
207} BURN_PATCH_TARGETCODE; 215} BURN_PATCH_TARGETCODE;
208 216
217typedef struct _BURN_COMPATIBLE_PACKAGE
218{
219 BOOL fDetected;
220 BOOL fPlannable;
221 BOOL fDefaultRequested;
222 BOOL fRequested;
223 BOOL fRemove;
224 LPWSTR sczCacheId;
225 BURN_COMPATIBLE_PROVIDER_ENTRY compatibleEntry;
226
227 BURN_PACKAGE_TYPE type;
228 union
229 {
230 struct
231 {
232 LPWSTR sczVersion;
233 VERUTIL_VERSION* pVersion;
234 } Msi;
235 };
236} BURN_COMPATIBLE_PACKAGE;
237
209typedef struct _BURN_PACKAGE 238typedef struct _BURN_PACKAGE
210{ 239{
211 LPWSTR sczId; 240 LPWSTR sczId;
@@ -259,6 +288,8 @@ typedef struct _BURN_PACKAGE
259 BURN_DEPENDENCY_PROVIDER* rgDependencyProviders; 288 BURN_DEPENDENCY_PROVIDER* rgDependencyProviders;
260 DWORD cDependencyProviders; 289 DWORD cDependencyProviders;
261 290
291 BURN_COMPATIBLE_PACKAGE compatiblePackage;
292
262 BURN_PACKAGE_TYPE type; 293 BURN_PACKAGE_TYPE type;
263 union 294 union
264 { 295 {
@@ -371,6 +402,9 @@ HRESULT PackagesParseFromXml(
371void PackageUninitialize( 402void PackageUninitialize(
372 __in BURN_PACKAGE* pPackage 403 __in BURN_PACKAGE* pPackage
373 ); 404 );
405void PackageUninitializeCompatible(
406 __in BURN_COMPATIBLE_PACKAGE* pCompatiblePackage
407 );
374void PackagesUninitialize( 408void PackagesUninitialize(
375 __in BURN_PACKAGES* pPackages 409 __in BURN_PACKAGES* pPackages
376 ); 410 );