From 8b47ea48058fb96e2e647b8cfa5d5b939bee35bc Mon Sep 17 00:00:00 2001
From: Rob Mensching <rob@firegiant.com>
Date: Mon, 12 Apr 2021 22:49:25 -0700
Subject: Detect system MSI packages before user managed packages

---
 src/engine/msiengine.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/engine/msiengine.cpp b/src/engine/msiengine.cpp
index 6c5b760b..4f6062ea 100644
--- a/src/engine/msiengine.cpp
+++ b/src/engine/msiengine.cpp
@@ -522,19 +522,19 @@ extern "C" HRESULT MsiEngineDetectPackage(
             }
 
             // get product version
-            hr = WiuGetProductInfoEx(wzProductCode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONSTRING, &sczInstalledVersion);
+            hr = WiuGetProductInfoEx(wzProductCode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONSTRING, &sczInstalledVersion);
             if (HRESULT_FROM_WIN32(ERROR_UNKNOWN_PRODUCT) != hr && HRESULT_FROM_WIN32(ERROR_UNKNOWN_PROPERTY) != hr)
             {
-                ExitOnFailure(hr, "Failed to get version for product in user unmanaged context: %ls", wzProductCode);
-                fPerMachine = FALSE;
+                ExitOnFailure(hr, "Failed to get version for product in machine context: %ls", wzProductCode);
+                fPerMachine = TRUE;
             }
             else
             {
-                hr = WiuGetProductInfoEx(wzProductCode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONSTRING, &sczInstalledVersion);
+                hr = WiuGetProductInfoEx(wzProductCode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONSTRING, &sczInstalledVersion);
                 if (HRESULT_FROM_WIN32(ERROR_UNKNOWN_PRODUCT) != hr && HRESULT_FROM_WIN32(ERROR_UNKNOWN_PROPERTY) != hr)
                 {
-                    ExitOnFailure(hr, "Failed to get version for product in machine context: %ls", wzProductCode);
-                    fPerMachine = TRUE;
+                    ExitOnFailure(hr, "Failed to get version for product in user unmanaged context: %ls", wzProductCode);
+                    fPerMachine = FALSE;
                 }
                 else
                 {
-- 
cgit v1.2.3-55-g6feb