Module: wine Branch: master Commit: 88d51ad12280dffee3fad6a6002524e2436c6896 URL: http://source.winehq.org/git/wine.git/?a=commit;h=88d51ad12280dffee3fad6a600...
Author: James Hawkins truiken@gmail.com Date: Sun Dec 16 20:29:36 2007 -0600
msi: Return ERROR_UNKNOWN_COMPONENT if no products exist.
---
dlls/msi/registry.c | 9 +++++++++ dlls/msi/tests/msi.c | 10 ++-------- 2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/dlls/msi/registry.c b/dlls/msi/registry.c index 7423658..c80247a 100644 --- a/dlls/msi/registry.c +++ b/dlls/msi/registry.c @@ -1321,6 +1321,15 @@ UINT WINAPI MsiEnumClientsW(LPCWSTR szComponent, DWORD index, LPWSTR szProduct) MSIREG_OpenLocalSystemComponentKey(szComponent, &hkeyComp, FALSE) != ERROR_SUCCESS) return ERROR_UNKNOWN_COMPONENT;
+ /* see if there are any products at all */ + sz = SQUISH_GUID_SIZE; + r = RegEnumValueW(hkeyComp, 0, szValName, &sz, NULL, NULL, NULL, NULL); + if (r != ERROR_SUCCESS) + { + RegCloseKey(hkeyComp); + return ERROR_UNKNOWN_COMPONENT; + } + sz = SQUISH_GUID_SIZE; r = RegEnumValueW(hkeyComp, index, szValName, &sz, NULL, NULL, NULL, NULL); if( r == ERROR_SUCCESS ) diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c index d85d972..c46d651 100644 --- a/dlls/msi/tests/msi.c +++ b/dlls/msi/tests/msi.c @@ -1643,10 +1643,7 @@ static void test_MsiEnumClients(void) /* user unmanaged component key exists */ product[0] = '\0'; r = MsiEnumClientsA(component, 0, product); - todo_wine - { - ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); - } + ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); ok(!lstrcmpA(product, ""), "Expected product to be unchanged, got %s\n", product);
/* index > 0, no products exist */ @@ -1719,10 +1716,7 @@ static void test_MsiEnumClients(void) /* user local component key exists */ product[0] = '\0'; r = MsiEnumClientsA(component, 0, product); - todo_wine - { - ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); - } + ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); ok(!lstrcmpA(product, ""), "Expected product to be unchanged, got %s\n", product);
/* index > 0, no products exist */