Detect system MSI packages before user managed packages
Rob Mensching committed
Apr 12, 2021 at 22:49 UTC
8b47ea48058fb96e2e647b8cfa5d5b939bee35bc
1 file changed
+6
-6
src/engine/msiengine.cpp
+6
-6
@@ -522,19 +522,19 @@ extern "C" HRESULT MsiEngineDetectPackage(
522
}
523
524
// get product version
525
- hr = WiuGetProductInfoEx(wzProductCode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONSTRING, &sczInstalledVersion);
525
+ hr = WiuGetProductInfoEx(wzProductCode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONSTRING, &sczInstalledVersion);
526
if (HRESULT_FROM_WIN32(ERROR_UNKNOWN_PRODUCT) != hr && HRESULT_FROM_WIN32(ERROR_UNKNOWN_PROPERTY) != hr)
527
{
528
- ExitOnFailure(hr, "Failed to get version for product in user unmanaged context: %ls", wzProductCode);
529
- fPerMachine = FALSE;
528
+ ExitOnFailure(hr, "Failed to get version for product in machine context: %ls", wzProductCode);
529
+ fPerMachine = TRUE;
530
}
531
else
532
{
533
- hr = WiuGetProductInfoEx(wzProductCode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONSTRING, &sczInstalledVersion);
533
+ hr = WiuGetProductInfoEx(wzProductCode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONSTRING, &sczInstalledVersion);
534
if (HRESULT_FROM_WIN32(ERROR_UNKNOWN_PRODUCT) != hr && HRESULT_FROM_WIN32(ERROR_UNKNOWN_PROPERTY) != hr)
535
{
536
- ExitOnFailure(hr, "Failed to get version for product in machine context: %ls", wzProductCode);
537
- fPerMachine = TRUE;
536
+ ExitOnFailure(hr, "Failed to get version for product in user unmanaged context: %ls", wzProductCode);
537
+ fPerMachine = FALSE;
538
}
539
else
540
{