diff --git a/dlls/msi/source.c b/dlls/msi/source.c index 3c73351c2d0..70a955241eb 100644 --- a/dlls/msi/source.c +++ b/dlls/msi/source.c @@ -63,12 +63,16 @@ static UINT OpenSourceKey(LPCWSTR szProduct, HKEY* key, BOOL user, BOOL create) rc = MSIREG_OpenProductsKey(szProduct, &rootkey, create); if (rc) - return rc; + return ERROR_UNKNOWN_PRODUCT; if (create) rc = RegCreateKeyW(rootkey, szSourceList, key); else - rc = RegOpenKeyW(rootkey,szSourceList, key); + { + rc = RegOpenKeyW(rootkey,szSourceList, key); + if (rc != ERROR_SUCCESS) + rc = ERROR_BAD_CONFIGURATION; + } return rc; } @@ -250,7 +254,7 @@ UINT WINAPI MsiSourceListGetInfoW( LPCWSTR szProduct, LPCWSTR szUserSid, rc = OpenSourceKey(szProduct, &sourcekey, TRUE, FALSE); if (rc != ERROR_SUCCESS) - return ERROR_UNKNOWN_PRODUCT; + return rc; if (strcmpW(szProperty, INSTALLPROPERTY_MEDIAPACKAGEPATHW) == 0) { diff --git a/dlls/msi/tests/source.c b/dlls/msi/tests/source.c index 306a3b4073b..b87d1ba6c96 100644 --- a/dlls/msi/tests/source.c +++ b/dlls/msi/tests/source.c @@ -199,10 +199,7 @@ static void test_MsiSourceListGetInfo(void) /* user product key exists */ r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAME, NULL, &size); - todo_wine - { - ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - } + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyA(userkey, "SourceList", &hkey); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);