From 738ec8285583248a84349939734ed600a47ba73d Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Fri, 5 Apr 2024 16:25:09 +0200 Subject: [PATCH] msi/tests: Get rid of workarounds for old Windows versions. --- dlls/msi/tests/action.c | 260 +-- dlls/msi/tests/automation.c | 46 +- dlls/msi/tests/custom.c | 4 +- dlls/msi/tests/install.c | 115 +- dlls/msi/tests/msi.c | 4120 +++++++++++++---------------------- dlls/msi/tests/package.c | 135 +- dlls/msi/tests/patch.c | 115 +- dlls/msi/tests/record.c | 2 +- dlls/msi/tests/source.c | 1485 +++++-------- include/msi.h | 2 +- 10 files changed, 2191 insertions(+), 4093 deletions(-) diff --git a/dlls/msi/tests/action.c b/dlls/msi/tests/action.c index 715555f5207..47ccef33733 100644 --- a/dlls/msi/tests/action.c +++ b/dlls/msi/tests/action.c @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -40,23 +39,6 @@ #include "utils.h" #include "typelib.h" -static UINT (WINAPI *pMsiQueryComponentStateA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPCSTR, INSTALLSTATE *); -static UINT (WINAPI *pMsiSourceListEnumSourcesA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, DWORD, LPSTR, LPDWORD); -static UINT (WINAPI *pMsiSourceListGetInfoA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, LPCSTR, LPSTR, LPDWORD); -static INSTALLSTATE (WINAPI *pMsiGetComponentPathExA) - (LPCSTR, LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPSTR, LPDWORD); -static UINT (WINAPI *pMsiQueryFeatureStateExA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPCSTR, INSTALLSTATE *); - -static LONG (WINAPI *pRegDeleteKeyExA)(HKEY, LPCSTR, REGSAM, DWORD); -static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL); - -static BOOL (WINAPI *pSRRemoveRestorePoint)(DWORD); -static BOOL (WINAPI *pSRSetRestorePointA)(RESTOREPOINTINFOA *, STATEMGRSTATUS *); - static BOOL is_wow64; static const BOOL is_64bit = sizeof(void *) > sizeof(int); @@ -2372,33 +2354,6 @@ static const msi_table rep_tables[] = /* make the max size large so there is only one cab file */ #define MEDIA_SIZE 0x7FFFFFFF -static void init_functionpointers(void) -{ - HMODULE hmsi = GetModuleHandleA("msi.dll"); - HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll"); - HMODULE hkernel32 = GetModuleHandleA("kernel32.dll"); - HMODULE hsrclient = LoadLibraryA("srclient.dll"); - -#define GET_PROC(mod, func) \ - p ## func = (void*)GetProcAddress(mod, #func); \ - if(!p ## func) \ - trace("GetProcAddress(%s) failed\n", #func); - - GET_PROC(hmsi, MsiQueryComponentStateA); - GET_PROC(hmsi, MsiSourceListEnumSourcesA); - GET_PROC(hmsi, MsiSourceListGetInfoA); - GET_PROC(hmsi, MsiGetComponentPathExA); - GET_PROC(hmsi, MsiQueryFeatureStateExA); - - GET_PROC(hadvapi32, RegDeleteKeyExA) - GET_PROC(hkernel32, IsWow64Process) - - GET_PROC(hsrclient, SRRemoveRestorePoint); - GET_PROC(hsrclient, SRSetRestorePointA); - -#undef GET_PROC -} - static char *get_user_sid(void) { HANDLE token; @@ -2454,34 +2409,6 @@ static void delete_test_files(void) RemoveDirectoryA("msitest"); } -static BOOL notify_system_change(DWORD event_type, STATEMGRSTATUS *status) -{ - RESTOREPOINTINFOA spec; - - spec.dwEventType = event_type; - spec.dwRestorePtType = APPLICATION_INSTALL; - spec.llSequenceNumber = status->llSequenceNumber; - lstrcpyA(spec.szDescription, "msitest restore point"); - - return pSRSetRestorePointA(&spec, status); -} - -static void remove_restore_point(DWORD seq_number) -{ - DWORD res; - - res = pSRRemoveRestorePoint(seq_number); - if (res != ERROR_SUCCESS) - trace("Failed to remove the restore point : %#lx\n", res); -} - -static LONG delete_key( HKEY key, LPCSTR subkey, REGSAM access ) -{ - if (pRegDeleteKeyExA) - return pRegDeleteKeyExA( key, subkey, access, 0 ); - return RegDeleteKeyA( key, subkey ); -} - static void delete_pfmsitest_files(void) { SHFILEOPSTRUCTA shfl; @@ -3115,9 +3042,9 @@ static void test_publish_product(void) if (!res) CHECK_DEL_REG_STR(patches, "AllPatches", ""); - delete_key(patches, "", access); + RegDeleteKeyExA(patches, "", access, 0); RegCloseKey(patches); - delete_key(hkey, "", access); + RegDeleteKeyExA(hkey, "", access, 0); RegCloseKey(hkey); currentuser: @@ -3194,9 +3121,9 @@ currentuser: if (!res) CHECK_DEL_REG_STR(patches, "AllPatches", ""); - delete_key(patches, "", access); + RegDeleteKeyExA(patches, "", access, 0); RegCloseKey(patches); - delete_key(hkey, "", access); + RegDeleteKeyExA(hkey, "", access, 0); RegCloseKey(hkey); machprod: @@ -3227,7 +3154,7 @@ machprod: CHECK_DEL_REG_STR(net, "1", temp); - res = delete_key(net, "", access); + res = RegDeleteKeyExA(net, "", access, 0); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); RegCloseKey(net); @@ -3236,13 +3163,13 @@ machprod: CHECK_DEL_REG_STR(media, "1", "DISK1;"); - res = delete_key(media, "", access); + res = RegDeleteKeyExA(media, "", access, 0); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); RegCloseKey(media); - res = delete_key(sourcelist, "", access); + res = RegDeleteKeyExA(sourcelist, "", access, 0); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); RegCloseKey(sourcelist); - res = delete_key(hkey, "", access); + res = RegDeleteKeyExA(hkey, "", access, 0); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); RegCloseKey(hkey); @@ -3251,7 +3178,7 @@ machprod: CHECK_DEL_REG_STR(hkey, "84A88FD7F6998CE40A22FB59F6B9C2BB", ""); - res = delete_key(hkey, "", access); + res = RegDeleteKeyExA(hkey, "", access, 0); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); RegCloseKey(hkey); @@ -3327,7 +3254,7 @@ static void test_publish_features(void) RegDeleteValueA(hkey, "feature"); RegDeleteValueA(hkey, "montecristo"); - delete_key(hkey, "", access); + RegDeleteKeyExA(hkey, "", access, 0); RegCloseKey(hkey); sprintf(keypath, udfeatpath, usersid); @@ -3339,10 +3266,10 @@ static void test_publish_features(void) RegDeleteValueA(hkey, "feature"); RegDeleteValueA(hkey, "montecristo"); - delete_key(hkey, "", access); + RegDeleteKeyExA(hkey, "", access, 0); RegCloseKey(hkey); sprintf(keypath, udpridpath, usersid); - delete_key(HKEY_LOCAL_MACHINE, keypath, access); + RegDeleteKeyExA(HKEY_LOCAL_MACHINE, keypath, access, 0); /* PublishFeatures, machine */ r = MsiInstallProductA(msifile, "PUBLISH_FEATURES=1 ALLUSERS=1"); @@ -3363,7 +3290,7 @@ static void test_publish_features(void) RegDeleteValueA(hkey, "feature"); RegDeleteValueA(hkey, "montecristo"); - delete_key(hkey, "", access); + RegDeleteKeyExA(hkey, "", access, 0); RegCloseKey(hkey); sprintf(keypath, udfeatpath, "S-1-5-18"); @@ -3375,10 +3302,10 @@ static void test_publish_features(void) RegDeleteValueA(hkey, "feature"); RegDeleteValueA(hkey, "montecristo"); - delete_key(hkey, "", access); + RegDeleteKeyExA(hkey, "", access, 0); RegCloseKey(hkey); sprintf(keypath, udpridpath, "S-1-5-18"); - delete_key(HKEY_LOCAL_MACHINE, keypath, access); + RegDeleteKeyExA(HKEY_LOCAL_MACHINE, keypath, access, 0); error: DeleteFileA(msifile); @@ -3510,10 +3437,10 @@ static void test_register_user(void) RegDeleteValueA(props, "ProductID"); RegDeleteValueA(props, "RegCompany"); RegDeleteValueA(props, "RegOwner"); - delete_key(props, "", access); + RegDeleteKeyExA(props, "", access, 0); RegCloseKey(props); sprintf(keypath, keypridfmt, usersid); - delete_key(HKEY_LOCAL_MACHINE, keypath, access); + RegDeleteKeyExA(HKEY_LOCAL_MACHINE, keypath, access, 0); /* RegisterUser, machine */ r = MsiInstallProductA(msifile, "REGISTER_USER=1 ALLUSERS=1"); @@ -3532,10 +3459,10 @@ static void test_register_user(void) RegDeleteValueA(props, "ProductID"); RegDeleteValueA(props, "RegCompany"); RegDeleteValueA(props, "RegOwner"); - delete_key(props, "", access); + RegDeleteKeyExA(props, "", access, 0); RegCloseKey(props); sprintf(keypath, keypridfmt, "S-1-5-18"); - delete_key(HKEY_LOCAL_MACHINE, keypath, access); + RegDeleteKeyExA(HKEY_LOCAL_MACHINE, keypath, access, 0); error: free(company); @@ -3612,7 +3539,7 @@ static void test_process_components(void) ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %ld\n", res); RegDeleteValueA(comp, "84A88FD7F6998CE40A22FB59F6B9C2BB"); - delete_key(comp, "", access); + RegDeleteKeyExA(comp, "", access, 0); RegCloseKey(comp); sprintf(keypath, keyfmt, usersid, "241C3DA58FECD0945B9687D408766058"); @@ -3630,7 +3557,7 @@ static void test_process_components(void) ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %ld\n", res); RegDeleteValueA(comp, "84A88FD7F6998CE40A22FB59F6B9C2BB"); - delete_key(comp, "", access); + RegDeleteKeyExA(comp, "", access, 0); RegCloseKey(comp); /* ProcessComponents, machine */ @@ -3654,7 +3581,7 @@ static void test_process_components(void) ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %ld\n", res); RegDeleteValueA(comp, "84A88FD7F6998CE40A22FB59F6B9C2BB"); - delete_key(comp, "", access); + RegDeleteKeyExA(comp, "", access, 0); RegCloseKey(comp); sprintf(keypath, keyfmt, "S-1-5-18", "241C3DA58FECD0945B9687D408766058"); @@ -3672,7 +3599,7 @@ static void test_process_components(void) ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %ld\n", res); RegDeleteValueA(comp, "84A88FD7F6998CE40A22FB59F6B9C2BB"); - delete_key(comp, "", access); + RegDeleteKeyExA(comp, "", access, 0); RegCloseKey(comp); error: @@ -3695,11 +3622,6 @@ static void test_publish(void) REGSAM access = KEY_ALL_ACCESS; DWORD error, type, size; - if (!pMsiQueryFeatureStateExA) - { - win_skip("MsiQueryFeatureStateExA is not available\n"); - return; - } if (!is_process_elevated()) { skip("process is limited\n"); @@ -3736,7 +3658,7 @@ static void test_publish(void) state = 0xdead; SetLastError(0xdeadbeef); - r = pMsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, "feature", &state); + r = MsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, "feature", &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_PRODUCT, "got %u\n", r); ok(state == 0xdead, "got %d\n", state); @@ -3744,7 +3666,7 @@ static void test_publish(void) state = 0xdead; SetLastError(0xdeadbeef); - r = pMsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, "feature", &state); + r = MsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, "feature", &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_PRODUCT, "got %u\n", r); ok(state == 0xdead, "got %d\n", state); @@ -3752,7 +3674,7 @@ static void test_publish(void) state = 0xdead; SetLastError(0xdeadbeef); - r = pMsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "feature", &state); + r = MsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "feature", &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_PRODUCT, "got %u\n", r); ok(state == 0xdead, "got %d\n", state); @@ -3764,7 +3686,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -3792,7 +3714,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -3815,7 +3737,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -3874,7 +3796,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -3896,7 +3818,7 @@ static void test_publish(void) state = 0xdead; SetLastError(0xdeadbeef); - r = pMsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, "feature", &state); + r = MsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, "feature", &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_PRODUCT, "got %u\n", r); ok(state == 0xdead, "got %d\n", state); @@ -3904,7 +3826,7 @@ static void test_publish(void) state = 0xdead; SetLastError(0xdeadbeef); - r = pMsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, "feature", &state); + r = MsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, "feature", &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_PRODUCT, "got %u\n", r); ok(state == 0xdead, "got %d\n", state); @@ -3912,7 +3834,7 @@ static void test_publish(void) state = 0xdead; SetLastError(0xdeadbeef); - r = pMsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "feature", &state); + r = MsiQueryFeatureStateExA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "feature", &state); error = GetLastError(); ok(r == ERROR_SUCCESS, "got %u\n", r); ok(state == INSTALLSTATE_LOCAL, "got %d\n", state); @@ -3921,7 +3843,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); @@ -3979,7 +3901,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -4002,7 +3924,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); @@ -4060,7 +3982,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); @@ -4118,7 +4040,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); @@ -4176,7 +4098,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -4199,7 +4121,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); @@ -4265,7 +4187,7 @@ static void test_publish(void) state = MsiQueryFeatureStateA(prodcode, "montecristo"); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &state); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -4292,11 +4214,6 @@ static void test_publish_sourcelist(void) CHAR path[MAX_PATH]; CHAR prodcode[] = "{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}"; - if (!pMsiSourceListEnumSourcesA || !pMsiSourceListGetInfoA) - { - win_skip("MsiSourceListEnumSourcesA and/or MsiSourceListGetInfoA are not available\n"); - return; - } if (!is_process_elevated()) { skip("process is limited\n"); @@ -4323,16 +4240,16 @@ static void test_publish_sourcelist(void) /* nothing published */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(size == MAX_PATH, "got %lu\n", size); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got \"%s\"\n", value); size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(size == MAX_PATH, "got %lu\n", size); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got \"%s\"\n", value); @@ -4345,16 +4262,16 @@ static void test_publish_sourcelist(void) /* after RegisterProduct */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(size == MAX_PATH, "got %lu\n", size); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got \"%s\"\n", value); size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(size == MAX_PATH, "got %lu\n", size); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got \"%s\"\n", value); @@ -4367,16 +4284,16 @@ static void test_publish_sourcelist(void) /* after ProcessComponents */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(size == MAX_PATH, "got %lu\n", size); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got \"%s\"\n", value); size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(size == MAX_PATH, "got %lu\n", size); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got \"%s\"\n", value); @@ -4389,16 +4306,16 @@ static void test_publish_sourcelist(void) /* after PublishFeatures */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(size == MAX_PATH, "got %lu\n", size); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got \"%s\"\n", value); size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(size == MAX_PATH, "got %lu\n", size); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got \"%s\"\n", value); @@ -4411,24 +4328,24 @@ static void test_publish_sourcelist(void) /* after PublishProduct */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "msitest.msi"), "Expected 'msitest.msi', got %s\n", value); ok(size == 11, "Expected 11, got %lu\n", size); size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_MEDIAPACKAGEPATHA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_MEDIAPACKAGEPATHA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, ""), "Expected \"\", got \"%s\"\n", value); ok(size == 0, "Expected 0, got %lu\n", size); size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_DISKPROMPTA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_DISKPROMPTA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, ""), "Expected \"\", got \"%s\"\n", value); ok(size == 0, "Expected 0, got %lu\n", size); @@ -4438,40 +4355,40 @@ static void test_publish_sourcelist(void) size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, path), "Expected \"%s\", got \"%s\"\n", path, value); ok(size == lstrlenA(path), "Expected %d, got %lu\n", lstrlenA(path), size); size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "n"), "Expected \"n\", got \"%s\"\n", value); ok(size == 1, "Expected 1, got %lu\n", size); size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, path), "Expected \"%s\", got \"%s\"\n", path, value); ok(size == lstrlenA(path), "Expected %d, got %lu\n", lstrlenA(path), size); size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 1, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 1, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -5810,10 +5727,7 @@ static void test_publish_components(void) "english.txt", INSTALLMODE_DEFAULT, NULL, &size); ok(r == ERROR_SUCCESS, "MsiProvideQualifiedComponent returned %d\n", r); - if (pRegDeleteKeyExA) - res = pRegDeleteKeyExA(HKEY_LOCAL_MACHINE, keypath2, KEY_WOW64_64KEY, 0); - else - res = RegDeleteKeyA(HKEY_LOCAL_MACHINE, keypath2); + res = RegDeleteKeyExA(HKEY_LOCAL_MACHINE, keypath2, KEY_WOW64_64KEY, 0); ok(res == ERROR_SUCCESS, "RegDeleteKey failed %ld\n", res); res = RegCreateKeyA(HKEY_CURRENT_USER, keypath, &key); @@ -6581,16 +6495,12 @@ START_TEST(action) { DWORD len; char temp_path[MAX_PATH], prev_path[MAX_PATH], log_file[MAX_PATH]; - STATEMGRSTATUS status; - BOOL ret = FALSE; if (!is_process_elevated()) restart_as_admin_elevated(); - init_functionpointers(); subtest("custom"); - if (pIsWow64Process) - pIsWow64Process(GetCurrentProcess(), &is_wow64); + IsWow64Process(GetCurrentProcess(), &is_wow64); GetCurrentDirectoryA(MAX_PATH, prev_path); GetTempPathA(MAX_PATH, temp_path); @@ -6605,18 +6515,6 @@ START_TEST(action) ok(get_system_dirs(), "failed to retrieve system dirs\n"); ok(get_user_dirs(), "failed to retrieve user dirs\n"); - /* Create a restore point ourselves so we circumvent the multitude of restore points - * that would have been created by all the installation and removal tests. - * - * This is not needed on version 5.0 where setting MSIFASTINSTALL prevents the - * creation of restore points. - */ - if (pSRSetRestorePointA && !pMsiGetComponentPathExA) - { - memset(&status, 0, sizeof(status)); - ret = notify_system_change(BEGIN_NESTED_SYSTEM_CHANGE, &status); - } - /* Create only one log file and don't append. We have to pass something * for the log mode for this to work. The logfile needs to have an absolute * path otherwise we still end up with some extra logfiles as some tests @@ -6660,13 +6558,5 @@ START_TEST(action) test_remove_existing_products(); DeleteFileA(log_file); - - if (pSRSetRestorePointA && !pMsiGetComponentPathExA && ret) - { - ret = notify_system_change(END_NESTED_SYSTEM_CHANGE, &status); - if (ret) - remove_restore_point(status.llSequenceNumber); - } - SetCurrentDirectoryA(prev_path); } diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c index 2766933bcc5..0ec0820a48b 100644 --- a/dlls/msi/tests/automation.c +++ b/dlls/msi/tests/automation.c @@ -36,9 +36,6 @@ static BOOL is_wow64; -static LONG (WINAPI *pRegDeleteKeyExA)(HKEY, LPCSTR, REGSAM, DWORD); -static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL); - DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); static const char *msifile = "winetest-automation.msi"; @@ -191,29 +188,6 @@ static const msi_summary_info summary_info[] = ADD_INFO_FILETIME(PID_LASTPRINTED, &systemtime) }; -static void init_functionpointers(void) -{ - HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll"); - HMODULE hkernel32 = GetModuleHandleA("kernel32.dll"); - -#define GET_PROC(dll, func) \ - p ## func = (void *)GetProcAddress(dll, #func); \ - if(!p ## func) \ - trace("GetProcAddress(%s) failed\n", #func); - - GET_PROC(hadvapi32, RegDeleteKeyExA) - GET_PROC(hkernel32, IsWow64Process) - -#undef GET_PROC -} - -static LONG delete_key_portable( HKEY key, LPCSTR subkey, REGSAM access ) -{ - if (pRegDeleteKeyExA) - return pRegDeleteKeyExA( key, subkey, access, 0 ); - return RegDeleteKeyA( key, subkey ); -} - /* * Database Helpers */ @@ -2259,7 +2233,7 @@ static UINT delete_registry_key(HKEY hkeyParent, LPCSTR subkey, REGSAM access) RegCloseKey(hkey); free(string); - delete_key_portable(hkeyParent, subkey, access); + RegDeleteKeyExA(hkeyParent, subkey, access, 0); return ERROR_SUCCESS; } @@ -2439,13 +2413,13 @@ static void test_Installer_InstallProduct(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Remove registry keys written by RegisterProduct standard action */ - res = delete_key_portable(HKEY_LOCAL_MACHINE, + res = RegDeleteKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{837450fa-a39b-4bc8-b321-08b393f784b3}", - KEY_WOW64_32KEY); + KEY_WOW64_32KEY, 0); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); - res = delete_key_portable(HKEY_LOCAL_MACHINE, - "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\UpgradeCodes\\D8E760ECA1E276347B43E42BDBDA5656", access); + res = RegDeleteKeyExA(HKEY_LOCAL_MACHINE, + "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\UpgradeCodes\\D8E760ECA1E276347B43E42BDBDA5656", access, 0); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); res = find_registry_key(HKEY_LOCAL_MACHINE, @@ -2456,8 +2430,8 @@ static void test_Installer_InstallProduct(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); RegCloseKey(hkey); - res = delete_key_portable(HKEY_LOCAL_MACHINE, - "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\Products\\af054738b93a8cb43b12803b397f483b", access); + res = RegDeleteKeyExA(HKEY_LOCAL_MACHINE, + "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\Products\\af054738b93a8cb43b12803b397f483b", access, 0); ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %ld\n", res); /* Remove registry keys written by PublishProduct standard action */ @@ -2624,12 +2598,9 @@ START_TEST(automation) CLSID clsid; IUnknown *pUnk; - init_functionpointers(); - if (!is_process_elevated()) restart_as_admin_elevated(); - if (pIsWow64Process) - pIsWow64Process(GetCurrentProcess(), &is_wow64); + IsWow64Process(GetCurrentProcess(), &is_wow64); GetSystemTimeAsFileTime(&systemtime); @@ -2666,6 +2637,5 @@ START_TEST(automation) } OleUninitialize(); - SetCurrentDirectoryA(prev_path); } diff --git a/dlls/msi/tests/custom.c b/dlls/msi/tests/custom.c index ef24de5cc22..8c5e7e4bbd0 100644 --- a/dlls/msi/tests/custom.c +++ b/dlls/msi/tests/custom.c @@ -1128,9 +1128,7 @@ static void test_invalid_functions(MSIHANDLE hinst) ok(hinst, r == ERROR_INVALID_HANDLE, "got %u\n", r); r = MsiCreateTransformSummaryInfoA(db, db, "bogus.mst", 0, 0); - todo_wine ok(hinst, r == ERROR_INSTALL_PACKAGE_OPEN_FAILED || - r == ERROR_INSTALL_PACKAGE_INVALID /* winxp */, - "got %u\n", r); + todo_wine ok(hinst, r == ERROR_INSTALL_PACKAGE_OPEN_FAILED, "got %u\n", r); GetCurrentDirectoryA(sizeof(path), path); r = MsiDatabaseExportA(db, "Test", path, "bogus.idt"); diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c index 23b5a858ece..89a27a2746a 100644 --- a/dlls/msi/tests/install.c +++ b/dlls/msi/tests/install.c @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -37,21 +36,6 @@ #include "wine/test.h" #include "utils.h" -static UINT (WINAPI *pMsiQueryComponentStateA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPCSTR, INSTALLSTATE*); -static UINT (WINAPI *pMsiSourceListEnumSourcesA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, DWORD, LPSTR, LPDWORD); -static INSTALLSTATE (WINAPI *pMsiGetComponentPathExA) - (LPCSTR, LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPSTR, LPDWORD); - -static LONG (WINAPI *pRegDeleteKeyExA)(HKEY, LPCSTR, REGSAM, DWORD); -static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL); -static BOOL (WINAPI *pWow64DisableWow64FsRedirection)(void **); -static BOOL (WINAPI *pWow64RevertWow64FsRedirection)(void *); - -static BOOL (WINAPI *pSRRemoveRestorePoint)(DWORD); -static BOOL (WINAPI *pSRSetRestorePointA)(RESTOREPOINTINFOA*, STATEMGRSTATUS*); - static BOOL is_wow64; static const BOOL is_64bit = sizeof(void *) > sizeof(int); @@ -2224,33 +2208,6 @@ static int CDECL fci_delete(char *pszFile, int *err, void *pv) return 0; } -static void init_functionpointers(void) -{ - HMODULE hmsi = GetModuleHandleA("msi.dll"); - HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll"); - HMODULE hkernel32 = GetModuleHandleA("kernel32.dll"); - HMODULE hsrclient = LoadLibraryA("srclient.dll"); - -#define GET_PROC(mod, func) \ - p ## func = (void*)GetProcAddress(mod, #func); \ - if(!p ## func) \ - trace("GetProcAddress(%s) failed\n", #func); - - GET_PROC(hmsi, MsiQueryComponentStateA); - GET_PROC(hmsi, MsiSourceListEnumSourcesA); - GET_PROC(hmsi, MsiGetComponentPathExA); - - GET_PROC(hadvapi32, RegDeleteKeyExA) - GET_PROC(hkernel32, IsWow64Process) - GET_PROC(hkernel32, Wow64DisableWow64FsRedirection); - GET_PROC(hkernel32, Wow64RevertWow64FsRedirection); - - GET_PROC(hsrclient, SRRemoveRestorePoint); - GET_PROC(hsrclient, SRSetRestorePointA); - -#undef GET_PROC -} - BOOL is_process_elevated(void) { HANDLE token; @@ -2711,34 +2668,6 @@ void create_database_wordcount(const CHAR *name, const msi_table *tables, int nu free( nameW ); } -static BOOL notify_system_change(DWORD event_type, STATEMGRSTATUS *status) -{ - RESTOREPOINTINFOA spec; - - spec.dwEventType = event_type; - spec.dwRestorePtType = APPLICATION_INSTALL; - spec.llSequenceNumber = status->llSequenceNumber; - lstrcpyA(spec.szDescription, "msitest restore point"); - - return pSRSetRestorePointA(&spec, status); -} - -static void remove_restore_point(DWORD seq_number) -{ - DWORD res; - - res = pSRRemoveRestorePoint(seq_number); - if (res != ERROR_SUCCESS) - trace("Failed to remove the restore point: %#lx\n", res); -} - -static LONG delete_key( HKEY key, LPCSTR subkey, REGSAM access ) -{ - if (pRegDeleteKeyExA) - return pRegDeleteKeyExA( key, subkey, access, 0 ); - return RegDeleteKeyA( key, subkey ); -} - static void test_MsiInstallProduct(void) { UINT r; @@ -2813,7 +2742,7 @@ static void test_MsiInstallProduct(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); ok(!lstrcmpA(path, "OrderTestValue"), "Expected OrderTestValue, got %s\n", path); - delete_key(HKEY_CURRENT_USER, "SOFTWARE\\Wine\\msitest", access); + RegDeleteKeyExA(HKEY_CURRENT_USER, "SOFTWARE\\Wine\\msitest", access, 0); /* not published, reinstall */ r = MsiInstallProductA(msifile, NULL); @@ -5282,7 +5211,7 @@ static void process_pending_renames(HKEY hkey) else { fileret = DeleteFileA(src); - ok(fileret || broken(!fileret) /* win2k3 */, "Failed to delete file %s (%lu)\n", src, GetLastError()); + ok(fileret, "Failed to delete file %s (%lu)\n", src, GetLastError()); } } @@ -5504,7 +5433,7 @@ static void test_feature_override(void) ok(!delete_pf("msitest\\preselected.txt", TRUE), "file not removed\n"); ok(!delete_pf("msitest", FALSE), "directory not removed\n"); - delete_key(HKEY_LOCAL_MACHINE, "Software\\Wine\\msitest", access); + RegDeleteKeyExA(HKEY_LOCAL_MACHINE, "Software\\Wine\\msitest", access, 0); error: DeleteFileA("msitest\\override.txt"); @@ -5890,7 +5819,7 @@ static void test_mixed_package(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Wine\\msitest", 0, KEY_ALL_ACCESS|KEY_WOW64_32KEY, &hkey); - ok(res == ERROR_FILE_NOT_FOUND || broken(!res), "32-bit component key not removed\n"); + ok(res == ERROR_FILE_NOT_FOUND, "32-bit component key not removed\n"); res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Wine\\msitest", 0, KEY_ALL_ACCESS|KEY_WOW64_64KEY, &hkey); ok(res == ERROR_FILE_NOT_FOUND, "64-bit component key not removed\n"); @@ -5953,7 +5882,7 @@ static void test_mixed_package(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Wine\\msitest", 0, KEY_ALL_ACCESS|KEY_WOW64_32KEY, &hkey); - ok(res == ERROR_FILE_NOT_FOUND || broken(!res), "32-bit component key not removed\n"); + ok(res == ERROR_FILE_NOT_FOUND, "32-bit component key not removed\n"); res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Wine\\msitest", 0, KEY_ALL_ACCESS|KEY_WOW64_64KEY, &hkey); ok(res == ERROR_FILE_NOT_FOUND, "64-bit component key not removed\n"); @@ -6189,7 +6118,7 @@ static void test_wow64(void) goto error; } - pWow64DisableWow64FsRedirection(&cookie); + Wow64DisableWow64FsRedirection(&cookie); ok(!delete_pf("msitest\\cabout\\new\\five.txt", TRUE), "File installed\n"); ok(!delete_pf("msitest\\cabout\\new", FALSE), "Directory created\n"); @@ -6215,7 +6144,7 @@ static void test_wow64(void) ok(delete_pf_native("msitest\\filename", TRUE), "File not installed\n"); ok(delete_pf_native("msitest", FALSE), "Directory not created\n"); - pWow64RevertWow64FsRedirection(cookie); + Wow64RevertWow64FsRedirection(cookie); error: delete_test_files(); @@ -6256,16 +6185,12 @@ START_TEST(install) { DWORD len; char temp_path[MAX_PATH], prev_path[MAX_PATH], log_file[MAX_PATH]; - STATEMGRSTATUS status; - BOOL ret = FALSE; if (!is_process_elevated()) restart_as_admin_elevated(); - init_functionpointers(); subtest("custom"); - if (pIsWow64Process) - pIsWow64Process(GetCurrentProcess(), &is_wow64); + IsWow64Process(GetCurrentProcess(), &is_wow64); GetCurrentDirectoryA(MAX_PATH, prev_path); GetTempPathA(MAX_PATH, temp_path); @@ -6280,18 +6205,6 @@ START_TEST(install) ok(get_system_dirs(), "failed to retrieve system dirs\n"); ok(get_user_dirs(), "failed to retrieve user dirs\n"); - /* Create a restore point ourselves so we circumvent the multitude of restore points - * that would have been created by all the installation and removal tests. - * - * This is not needed on version 5.0 where setting MSIFASTINSTALL prevents the - * creation of restore points. - */ - if (pSRSetRestorePointA && !pMsiGetComponentPathExA) - { - memset(&status, 0, sizeof(status)); - ret = notify_system_change(BEGIN_NESTED_SYSTEM_CHANGE, &status); - } - /* Create only one log file and don't append. We have to pass something * for the log mode for this to work. The logfile needs to have an absolute * path otherwise we still end up with some extra logfiles as some tests @@ -6301,8 +6214,7 @@ START_TEST(install) lstrcatA(log_file, "\\msitest.log"); MsiEnableLogA(INSTALLLOGMODE_FATALEXIT, log_file, 0); - if (pSRSetRestorePointA) /* test has side-effects on win2k3 that cause failures in following tests */ - test_MsiInstallProduct(); + test_MsiInstallProduct(); test_MsiSetComponentState(); test_packagecoltypes(); test_continuouscabs(); @@ -6349,15 +6261,6 @@ START_TEST(install) test_source_resolution(); DeleteFileA(customdll); - DeleteFileA(log_file); - - if (pSRSetRestorePointA && !pMsiGetComponentPathExA && ret) - { - ret = notify_system_change(END_NESTED_SYSTEM_CHANGE, &status); - if (ret) - remove_restore_point(status.llSequenceNumber); - } - SetCurrentDirectoryA(prev_path); } diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c index d00b8b53fcc..5c036f31305 100644 --- a/dlls/msi/tests/msi.c +++ b/dlls/msi/tests/msi.c @@ -41,77 +41,6 @@ static BOOL is_wow64; static const char msifile[] = "winetest.msi"; static const WCHAR msifileW[] = L"winetest.msi"; -static LONG (WINAPI *pRegDeleteKeyExA)(HKEY, LPCSTR, REGSAM, DWORD); -static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL); - -static INSTALLSTATE (WINAPI *pMsiGetComponentPathA) - (LPCSTR, LPCSTR, LPSTR, DWORD*); -static INSTALLSTATE (WINAPI *pMsiGetComponentPathExA) - (LPCSTR, LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPSTR, LPDWORD); -static INSTALLSTATE (WINAPI *pMsiProvideComponentA) - (LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPDWORD); -static INSTALLSTATE (WINAPI *pMsiProvideComponentW) - (LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPDWORD); -static UINT (WINAPI *pMsiGetFileHashA) - (LPCSTR, DWORD, PMSIFILEHASHINFO); -static UINT (WINAPI *pMsiGetProductInfoExA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPCSTR, LPSTR, LPDWORD); -static UINT (WINAPI *pMsiOpenPackageExA) - (LPCSTR, DWORD, MSIHANDLE*); -static UINT (WINAPI *pMsiOpenPackageExW) - (LPCWSTR, DWORD, MSIHANDLE*); -static UINT (WINAPI *pMsiEnumPatchesExA) - (LPCSTR, LPCSTR, DWORD, DWORD, DWORD, LPSTR, LPSTR, - MSIINSTALLCONTEXT*, LPSTR, LPDWORD); -static UINT (WINAPI *pMsiQueryComponentStateA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPCSTR, INSTALLSTATE*); -static INSTALLSTATE (WINAPI *pMsiUseFeatureExA) - (LPCSTR, LPCSTR ,DWORD, DWORD); -static UINT (WINAPI *pMsiGetPatchInfoExA) - (LPCSTR, LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPCSTR, LPSTR, DWORD *); -static UINT (WINAPI *pMsiEnumProductsExA) - (LPCSTR, LPCSTR, DWORD, DWORD, CHAR[39], MSIINSTALLCONTEXT *, LPSTR, LPDWORD); -static UINT (WINAPI *pMsiEnumComponentsExA) - (LPCSTR, DWORD, DWORD, CHAR[39], MSIINSTALLCONTEXT *, LPSTR, LPDWORD); -static UINT (WINAPI *pMsiSetExternalUIRecord) - (INSTALLUI_HANDLER_RECORD, DWORD, LPVOID, PINSTALLUI_HANDLER_RECORD); -static UINT (WINAPI *pMsiSourceListGetInfoA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, LPCSTR, LPSTR, LPDWORD); - -static void init_functionpointers(void) -{ - HMODULE hmsi = GetModuleHandleA("msi.dll"); - HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll"); - HMODULE hkernel32 = GetModuleHandleA("kernel32.dll"); - -#define GET_PROC(dll, func) \ - p ## func = (void *)GetProcAddress(dll, #func); \ - if(!p ## func) \ - trace("GetProcAddress(%s) failed\n", #func); - - GET_PROC(hmsi, MsiGetComponentPathA) - GET_PROC(hmsi, MsiGetComponentPathExA); - GET_PROC(hmsi, MsiProvideComponentA) - GET_PROC(hmsi, MsiProvideComponentW) - GET_PROC(hmsi, MsiGetFileHashA) - GET_PROC(hmsi, MsiGetProductInfoExA) - GET_PROC(hmsi, MsiOpenPackageExA) - GET_PROC(hmsi, MsiOpenPackageExW) - GET_PROC(hmsi, MsiEnumPatchesExA) - GET_PROC(hmsi, MsiQueryComponentStateA) - GET_PROC(hmsi, MsiSetExternalUIRecord) - GET_PROC(hmsi, MsiUseFeatureExA) - GET_PROC(hmsi, MsiGetPatchInfoExA) - GET_PROC(hmsi, MsiEnumProductsExA) - GET_PROC(hmsi, MsiEnumComponentsExA) - GET_PROC(hmsi, MsiSourceListGetInfoA) - - GET_PROC(hadvapi32, RegDeleteKeyExA) - GET_PROC(hkernel32, IsWow64Process) - -#undef GET_PROC -} - /* cabinet definitions */ /* make the max size large so there is only one cab file */ @@ -874,48 +803,35 @@ static void test_usefeature(void) { INSTALLSTATE r; - if (!pMsiUseFeatureExA) - { - win_skip("MsiUseFeatureExA not implemented\n"); - return; - } - r = MsiQueryFeatureStateA(NULL, NULL); ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n"); r = MsiQueryFeatureStateA("{9085040-6000-11d3-8cfe-0150048383c9}" ,NULL); ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n"); - r = pMsiUseFeatureExA(NULL,NULL,0,0); + r = MsiUseFeatureExA(NULL,NULL,0,0); ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n"); - r = pMsiUseFeatureExA(NULL, "WORDVIEWFiles", -2, 1 ); + r = MsiUseFeatureExA(NULL, "WORDVIEWFiles", -2, 1 ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n"); - r = pMsiUseFeatureExA("{90850409-6000-11d3-8cfe-0150048383c9}", + r = MsiUseFeatureExA("{90850409-6000-11d3-8cfe-0150048383c9}", NULL, -2, 0 ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n"); - r = pMsiUseFeatureExA("{9085040-6000-11d3-8cfe-0150048383c9}", + r = MsiUseFeatureExA("{9085040-6000-11d3-8cfe-0150048383c9}", "WORDVIEWFiles", -2, 0 ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n"); - r = pMsiUseFeatureExA("{0085040-6000-11d3-8cfe-0150048383c9}", + r = MsiUseFeatureExA("{0085040-6000-11d3-8cfe-0150048383c9}", "WORDVIEWFiles", -2, 0 ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n"); - r = pMsiUseFeatureExA("{90850409-6000-11d3-8cfe-0150048383c9}", + r = MsiUseFeatureExA("{90850409-6000-11d3-8cfe-0150048383c9}", "WORDVIEWFiles", -2, 1 ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n"); } -static LONG delete_key( HKEY key, LPCSTR subkey, REGSAM access ) -{ - if (pRegDeleteKeyExA) - return pRegDeleteKeyExA( key, subkey, access, 0 ); - return RegDeleteKeyA( key, subkey ); -} - static void test_null(void) { MSIHANDLE hpkg; @@ -929,7 +845,7 @@ static void test_null(void) if (is_wow64) access |= KEY_WOW64_64KEY; - r = pMsiOpenPackageExW(NULL, 0, &hpkg); + r = MsiOpenPackageExW(NULL, 0, &hpkg); ok( r == ERROR_INVALID_PARAMETER,"wrong error\n"); state = MsiQueryProductStateW(NULL); @@ -1016,8 +932,8 @@ static void test_null(void) r = RegCloseKey(hkey); ok( r == ERROR_SUCCESS, "wrong error %d\n", r); - r = delete_key(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{F1C3AF50-8B56-4A69-A00C-00773FE42F30}", - access & KEY_WOW64_64KEY); + r = RegDeleteKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{F1C3AF50-8B56-4A69-A00C-00773FE42F30}", + access & KEY_WOW64_64KEY, 0); ok( r == ERROR_SUCCESS, "wrong error %d\n", r); } @@ -1027,36 +943,33 @@ static void test_getcomponentpath(void) char buffer[0x100]; DWORD sz; - if(!pMsiGetComponentPathA) - return; - - r = pMsiGetComponentPathA( NULL, NULL, NULL, NULL ); + r = MsiGetComponentPathA( NULL, NULL, NULL, NULL ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return value\n"); - r = pMsiGetComponentPathA( "bogus", "bogus", NULL, NULL ); + r = MsiGetComponentPathA( "bogus", "bogus", NULL, NULL ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return value\n"); - r = pMsiGetComponentPathA( "bogus", "{00000000-0000-0000-000000000000}", NULL, NULL ); + r = MsiGetComponentPathA( "bogus", "{00000000-0000-0000-000000000000}", NULL, NULL ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return value\n"); sz = sizeof buffer; buffer[0]=0; - r = pMsiGetComponentPathA( "bogus", "{00000000-0000-0000-000000000000}", buffer, &sz ); + r = MsiGetComponentPathA( "bogus", "{00000000-0000-0000-000000000000}", buffer, &sz ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return value\n"); - r = pMsiGetComponentPathA( "{00000000-78E1-11D2-B60F-006097C998E7}", + r = MsiGetComponentPathA( "{00000000-78E1-11D2-B60F-006097C998E7}", "{00000000-0000-0000-0000-000000000000}", buffer, &sz ); ok( r == INSTALLSTATE_UNKNOWN, "wrong return value\n"); - r = pMsiGetComponentPathA( "{00000409-78E1-11D2-B60F-006097C998E7}", + r = MsiGetComponentPathA( "{00000409-78E1-11D2-B60F-006097C998E7}", "{00000000-0000-0000-0000-00000000}", buffer, &sz ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return value\n"); - r = pMsiGetComponentPathA( "{00000409-78E1-11D2-B60F-006097C998E7}", + r = MsiGetComponentPathA( "{00000409-78E1-11D2-B60F-006097C998E7}", "{029E403D-A86A-1D11-5B5B0006799C897E}", buffer, &sz ); ok( r == INSTALLSTATE_INVALIDARG, "wrong return value\n"); - r = pMsiGetComponentPathA( "{00000000-78E1-11D2-B60F-006097C9987e}", + r = MsiGetComponentPathA( "{00000000-78E1-11D2-B60F-006097C9987e}", "{00000000-A68A-11d1-5B5B-0006799C897E}", buffer, &sz ); ok( r == INSTALLSTATE_UNKNOWN, "wrong return value\n"); } @@ -1136,38 +1049,32 @@ static void test_MsiGetFileHash(void) MSIFILEHASHINFO hash; DWORD i; - if (!pMsiGetFileHashA) - { - win_skip("MsiGetFileHash not implemented\n"); - return; - } - hash.dwFileHashInfoSize = sizeof(MSIFILEHASHINFO); /* szFilePath is NULL */ - r = pMsiGetFileHashA(NULL, 0, &hash); + r = MsiGetFileHashA(NULL, 0, &hash); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* szFilePath is empty */ - r = pMsiGetFileHashA("", 0, &hash); + r = MsiGetFileHashA("", 0, &hash); ok(r == ERROR_PATH_NOT_FOUND || r == ERROR_BAD_PATHNAME, "Expected ERROR_PATH_NOT_FOUND or ERROR_BAD_PATHNAME, got %d\n", r); /* szFilePath is nonexistent */ - r = pMsiGetFileHashA(name, 0, &hash); + r = MsiGetFileHashA(name, 0, &hash); ok(r == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %d\n", r); /* dwOptions is non-zero */ - r = pMsiGetFileHashA(name, 1, &hash); + r = MsiGetFileHashA(name, 1, &hash); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* pHash.dwFileHashInfoSize is not correct */ hash.dwFileHashInfoSize = 0; - r = pMsiGetFileHashA(name, 0, &hash); + r = MsiGetFileHashA(name, 0, &hash); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* pHash is NULL */ - r = pMsiGetFileHashA(name, 0, NULL); + r = MsiGetFileHashA(name, 0, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); for (i = 0; i < ARRAY_SIZE(hash_data); i++) @@ -1179,7 +1086,7 @@ static void test_MsiGetFileHash(void) memset(&hash, 0, sizeof(MSIFILEHASHINFO)); hash.dwFileHashInfoSize = sizeof(MSIFILEHASHINFO); - r = pMsiGetFileHashA(name, 0, &hash); + r = MsiGetFileHashA(name, 0, &hash); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ret = memcmp(&hash, &hash_data[i].hash, HASHSIZE); @@ -1378,7 +1285,7 @@ static void test_MsiQueryProductState(void) ok(error == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %lu\n", error); RegDeleteValueA(localkey, "WindowsInstaller"); - delete_key(localkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(localkey, "", access & KEY_WOW64_64KEY, 0); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); lstrcatA(keypath, usersid); @@ -1421,19 +1328,6 @@ static void test_MsiQueryProductState(void) SetLastError(0xdeadbeef); state = MsiQueryProductStateA(prodcode); error = GetLastError(); - if (state == INSTALLSTATE_ADVERTISED) - { - win_skip("broken result\n"); - RegDeleteValueA(props, "WindowsInstaller"); - delete_key(props, "", access & KEY_WOW64_64KEY); - RegCloseKey(props); - delete_key(localkey, "", access & KEY_WOW64_64KEY); - RegCloseKey(localkey); - RegDeleteKeyA(userkey, ""); - RegCloseKey(userkey); - LocalFree(usersid); - return; - } ok(state == INSTALLSTATE_DEFAULT, "Expected INSTALLSTATE_DEFAULT, got %d\n", state); ok(error == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %lu\n", error); @@ -1458,9 +1352,9 @@ static void test_MsiQueryProductState(void) ok(error == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %lu\n", error); RegDeleteValueA(props, "WindowsInstaller"); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(localkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(localkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(localkey); RegDeleteKeyA(userkey, ""); RegCloseKey(userkey); @@ -1507,11 +1401,11 @@ static void test_MsiQueryProductState(void) ok(state == INSTALLSTATE_DEFAULT, "Expected INSTALLSTATE_DEFAULT, got %d\n", state); RegDeleteValueA(props, "WindowsInstaller"); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(localkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(localkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(localkey); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); /* MSIINSTALLCONTEXT_MACHINE */ @@ -1558,11 +1452,11 @@ static void test_MsiQueryProductState(void) ok(state == INSTALLSTATE_DEFAULT, "Expected INSTALLSTATE_DEFAULT, got %d\n", state); RegDeleteValueA(props, "WindowsInstaller"); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(localkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(localkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(localkey); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); LocalFree(usersid); @@ -1883,8 +1777,8 @@ static void test_MsiQueryFeatureState(void) RegDeleteValueA(compkey, prod_squashed); RegDeleteValueA(compkey2, prod_squashed); - delete_key(compkey, "", access & KEY_WOW64_64KEY); - delete_key(compkey2, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(compkey2, "", access & KEY_WOW64_64KEY, 0); RegDeleteValueA(localkey, "feature"); RegDeleteValueA(userkey, "feature"); RegDeleteKeyA(userkey, ""); @@ -1990,11 +1884,11 @@ static void test_MsiQueryFeatureState(void) RegDeleteValueA(compkey, prod_squashed); RegDeleteValueA(compkey2, prod_squashed); - delete_key(compkey, "", access & KEY_WOW64_64KEY); - delete_key(compkey2, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(compkey2, "", access & KEY_WOW64_64KEY, 0); RegDeleteValueA(localkey, "feature"); RegDeleteValueA(userkey, "feature"); - delete_key(userkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(compkey); RegCloseKey(compkey2); RegCloseKey(localkey); @@ -2098,11 +1992,11 @@ static void test_MsiQueryFeatureState(void) RegDeleteValueA(compkey, prod_squashed); RegDeleteValueA(compkey2, prod_squashed); - delete_key(compkey, "", access & KEY_WOW64_64KEY); - delete_key(compkey2, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(compkey2, "", access & KEY_WOW64_64KEY, 0); RegDeleteValueA(localkey, "feature"); RegDeleteValueA(userkey, "feature"); - delete_key(userkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(compkey); RegCloseKey(compkey2); RegCloseKey(localkey); @@ -2128,12 +2022,6 @@ static void test_MsiQueryComponentState(void) static const INSTALLSTATE MAGIC_ERROR = 0xdeadbeef; - if (!pMsiQueryComponentStateA) - { - win_skip("MsiQueryComponentStateA not implemented\n"); - return; - } - create_test_guid(prodcode, prod_squashed); compose_base85_guid(component, comp_base85, comp_squashed); usersid = get_user_sid(); @@ -2144,7 +2032,7 @@ static void test_MsiQueryComponentState(void) /* NULL szProductCode */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(NULL, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(NULL, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2153,7 +2041,7 @@ static void test_MsiQueryComponentState(void) /* empty szProductCode */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA("", NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA("", NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2162,7 +2050,7 @@ static void test_MsiQueryComponentState(void) /* random szProductCode */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA("random", NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA("random", NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2171,7 +2059,7 @@ static void test_MsiQueryComponentState(void) /* GUID-length szProductCode */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA("DJANE93KNDNAS-2KN2NR93KMN3LN13=L1N3KDE", NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA("DJANE93KNDNAS-2KN2NR93KMN3LN13=L1N3KDE", NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2180,7 +2068,7 @@ static void test_MsiQueryComponentState(void) /* GUID-length with brackets */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA("{JANE93KNDNAS-2KN2NR93KMN3LN13=L1N3KD}", NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA("{JANE93KNDNAS-2KN2NR93KMN3LN13=L1N3KD}", NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2189,7 +2077,7 @@ static void test_MsiQueryComponentState(void) /* actual GUID */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2197,7 +2085,7 @@ static void test_MsiQueryComponentState(void) state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2217,13 +2105,13 @@ static void test_MsiQueryComponentState(void) state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); ok(error == 0xdeadbeef, "expected 0xdeadbeef, got %lu\n", error); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); /* create local system product key */ @@ -2242,7 +2130,7 @@ static void test_MsiQueryComponentState(void) /* local system product key exists */ state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2254,7 +2142,7 @@ static void test_MsiQueryComponentState(void) /* LocalPackage value exists */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -2269,7 +2157,7 @@ static void test_MsiQueryComponentState(void) /* component key exists */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -2281,7 +2169,7 @@ static void test_MsiQueryComponentState(void) /* component\product exists */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); error = GetLastError(); ok(state == INSTALLSTATE_NOTUSED || state == INSTALLSTATE_LOCAL, @@ -2291,7 +2179,7 @@ static void test_MsiQueryComponentState(void) /* NULL component, product exists */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, NULL, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, NULL, &state); error = GetLastError(); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(state == MAGIC_ERROR, "Expected state not changed, got %d\n", state); @@ -2303,7 +2191,7 @@ static void test_MsiQueryComponentState(void) /* INSTALLSTATE_LOCAL */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); @@ -2315,7 +2203,7 @@ static void test_MsiQueryComponentState(void) /* INSTALLSTATE_SOURCE */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_SOURCE, "Expected INSTALLSTATE_SOURCE, got %d\n", state); @@ -2327,7 +2215,7 @@ static void test_MsiQueryComponentState(void) /* bad INSTALLSTATE_SOURCE */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); @@ -2339,7 +2227,7 @@ static void test_MsiQueryComponentState(void) /* INSTALLSTATE_SOURCE */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_SOURCE, "Expected INSTALLSTATE_SOURCE, got %d\n", state); @@ -2351,23 +2239,23 @@ static void test_MsiQueryComponentState(void) /* registry component */ state = MAGIC_ERROR; SetLastError(0xdeadbeef); - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, component, &state); error = GetLastError(); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); ok(error == 0xdeadbeef, "expected 0xdeadbeef, got %lu\n", error); RegDeleteValueA(prodkey, "LocalPackage"); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegDeleteValueA(compkey, prod_squashed); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); RegCloseKey(compkey); /* MSIINSTALLCONTEXT_USERUNMANAGED */ state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2378,7 +2266,7 @@ static void test_MsiQueryComponentState(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -2400,7 +2288,7 @@ static void test_MsiQueryComponentState(void) RegCloseKey(prodkey); state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -2414,7 +2302,7 @@ static void test_MsiQueryComponentState(void) /* component key exists */ state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); @@ -2423,7 +2311,7 @@ static void test_MsiQueryComponentState(void) /* component\product exists */ state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_NOTUSED || state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_NOTUSED or INSTALLSTATE_LOCAL, got %d\n", state); @@ -2432,14 +2320,14 @@ static void test_MsiQueryComponentState(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, component, &state); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); /* MSIINSTALLCONTEXT_USERMANAGED */ state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, component, &state); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2450,7 +2338,7 @@ static void test_MsiQueryComponentState(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, component, &state); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(state == MAGIC_ERROR, "Expected 0xdeadbeef, got %d\n", state); @@ -2466,11 +2354,11 @@ static void test_MsiQueryComponentState(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, component, &state); ok(r == ERROR_UNKNOWN_COMPONENT, "Expected ERROR_UNKNOWN_COMPONENT, got %d\n", r); ok(state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); @@ -2486,15 +2374,15 @@ static void test_MsiQueryComponentState(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); state = MAGIC_ERROR; - r = pMsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, component, &state); + r = MsiQueryComponentStateA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, component, &state); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(state == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", state); RegDeleteValueA(prodkey, "LocalPackage"); RegDeleteValueA(prodkey, "ManagedLocalPackage"); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegDeleteValueA(compkey, prod_squashed); - delete_key(compkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); RegCloseKey(compkey); LocalFree(usersid); @@ -2674,9 +2562,9 @@ static void test_MsiGetComponentPath(void) ok(size == 10, "Expected 10, got %lu\n", size); RegDeleteValueA(compkey, prod_squashed); - delete_key(compkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); RegDeleteValueA(installprop, "WindowsInstaller"); - delete_key(installprop, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(installprop, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(compkey); RegCloseKey(installprop); DeleteFileA("C:\\imapath"); @@ -2764,9 +2652,9 @@ static void test_MsiGetComponentPath(void) ok(size == 10, "Expected 10, got %lu\n", size); RegDeleteValueA(compkey, prod_squashed); - delete_key(compkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); RegDeleteValueA(installprop, "WindowsInstaller"); - delete_key(installprop, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(installprop, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(compkey); RegCloseKey(installprop); DeleteFileA("C:\\imapath"); @@ -2874,10 +2762,10 @@ static void test_MsiGetComponentPath(void) ok(size == 10, "Expected 10, got %lu\n", size); RegDeleteValueA(compkey, prod_squashed); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); - delete_key(compkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); RegDeleteValueA(installprop, "WindowsInstaller"); - delete_key(installprop, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(installprop, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); RegCloseKey(compkey); RegCloseKey(installprop); @@ -2957,7 +2845,7 @@ static void test_MsiGetComponentPath(void) RegDeleteValueA(compkey, prod_squashed); RegDeleteKeyA(prodkey, ""); - delete_key(compkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); RegCloseKey(compkey); DeleteFileA("C:\\imapath"); @@ -3039,8 +2927,8 @@ static void test_MsiGetComponentPath(void) ok(size == 10, "Expected 10, got %lu\n", size); RegDeleteValueA(compkey, prod_squashed); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); - delete_key(compkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); RegCloseKey(compkey); DeleteFileA("C:\\imapath"); @@ -3058,12 +2946,6 @@ static void test_MsiGetComponentPathEx(void) REGSAM access = KEY_ALL_ACCESS; LONG res; - if (!pMsiGetComponentPathExA) - { - win_skip( "MsiGetComponentPathExA not present\n" ); - return; - } - if (is_wow64) access |= KEY_WOW64_64KEY; create_test_guid( prod, prod_squashed ); @@ -3072,37 +2954,37 @@ static void test_MsiGetComponentPathEx(void) /* NULL product */ size = MAX_PATH; - state = pMsiGetComponentPathExA( NULL, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); + state = MsiGetComponentPathExA( NULL, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); ok( state == INSTALLSTATE_INVALIDARG, "got %d\n", state ); todo_wine ok( !size, "got %lu\n", size ); /* NULL component */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, NULL, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); + state = MsiGetComponentPathExA( prod, NULL, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); ok( state == INSTALLSTATE_INVALIDARG, "got %d\n", state ); todo_wine ok( !size, "got %lu\n", size ); /* non-NULL usersid, MSIINSTALLCONTEXT_MACHINE */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, usersid, MSIINSTALLCONTEXT_MACHINE, path, &size); + state = MsiGetComponentPathExA( prod, comp, usersid, MSIINSTALLCONTEXT_MACHINE, path, &size); ok( state == INSTALLSTATE_INVALIDARG, "got %d\n", state ); todo_wine ok( !size, "got %lu\n", size ); /* NULL buf */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, NULL, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, NULL, &size ); ok( state == INSTALLSTATE_UNKNOWN, "got %d\n", state ); todo_wine ok( size == MAX_PATH * 2, "got %lu\n", size ); /* NULL buflen */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, NULL ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, NULL ); ok( state == INSTALLSTATE_INVALIDARG, "got %d\n", state ); ok( size == MAX_PATH, "got %lu\n", size ); /* all params valid */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); ok( state == INSTALLSTATE_UNKNOWN, "got %d\n", state ); todo_wine ok( !size, "got %lu\n", size ); @@ -3121,7 +3003,7 @@ static void test_MsiGetComponentPathEx(void) /* local system component key exists */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); ok( state == INSTALLSTATE_UNKNOWN, "got %d\n", state ); res = RegSetValueExA( key_comp, prod_squashed, 0, REG_SZ, (const BYTE *)"c:\\testcomponentpath", 20 ); @@ -3130,7 +3012,7 @@ static void test_MsiGetComponentPathEx(void) /* product value exists */ path[0] = 0; size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); ok( state == INSTALLSTATE_ABSENT, "got %d\n", state ); ok( !lstrcmpA( path, "c:\\testcomponentpath" ), "got %s\n", path ); ok( size == 20, "got %lu\n", size ); @@ -3150,7 +3032,7 @@ static void test_MsiGetComponentPathEx(void) /* install properties key exists */ path[0] = 0; size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); ok( state == INSTALLSTATE_ABSENT, "got %d\n", state ); ok( !lstrcmpA( path, "c:\\testcomponentpath"), "got %s\n", path ); ok( size == 20, "got %lu\n", size ); @@ -3160,22 +3042,22 @@ static void test_MsiGetComponentPathEx(void) /* file exists */ path[0] = 0; size = 0; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); ok( state == INSTALLSTATE_MOREDATA, "got %d\n", state ); ok( !path[0], "got %s\n", path ); todo_wine ok( size == 40, "got %lu\n", size ); path[0] = 0; size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); ok( state == INSTALLSTATE_LOCAL, "got %d\n", state ); ok( !lstrcmpA( path, "c:\\testcomponentpath" ), "got %s\n", path ); ok( size == 20, "got %lu\n", size ); RegDeleteValueA( key_comp, prod_squashed ); - delete_key( key_comp, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( key_comp, "", access & KEY_WOW64_64KEY, 0 ); RegDeleteValueA( key_installprop, "WindowsInstaller" ); - delete_key( key_installprop, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( key_installprop, "", access & KEY_WOW64_64KEY, 0 ); RegCloseKey( key_comp ); RegCloseKey( key_installprop ); DeleteFileA( "c:\\testcomponentpath" ); @@ -3188,7 +3070,7 @@ static void test_MsiGetComponentPathEx(void) /* user unmanaged product key exists */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, path, &size ); ok( state == INSTALLSTATE_UNKNOWN, "got %d\n", state ); todo_wine ok(!size, "got %lu\n", size); @@ -3203,7 +3085,7 @@ static void test_MsiGetComponentPathEx(void) /* user unmanaged component key exists */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, path, &size ); ok( state == INSTALLSTATE_UNKNOWN, "got %d\n", state ); todo_wine ok(!size, "got %lu\n", size); @@ -3213,7 +3095,7 @@ static void test_MsiGetComponentPathEx(void) /* product value exists */ path[0] = 0; size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, path, &size ); ok( state == INSTALLSTATE_ABSENT, "got %d\n", state ); ok( !lstrcmpA( path, "c:\\testcomponentpath"), "got %s\n", path ); ok( size == 20, "got %lu\n", size ); @@ -3223,14 +3105,14 @@ static void test_MsiGetComponentPathEx(void) /* file exists */ path[0] = 0; size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, path, &size ); ok( state == INSTALLSTATE_LOCAL, "got %d\n", state ); ok( !lstrcmpA( path, "c:\\testcomponentpath"), "got %s\n", path ); ok( size == 20, "got %lu\n", size ); RegDeleteValueA( key_comp, prod_squashed ); RegDeleteKeyA( key_prod, "" ); - delete_key( key_comp, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( key_comp, "", access & KEY_WOW64_64KEY, 0 ); RegCloseKey( key_prod ); RegCloseKey( key_comp ); DeleteFileA( "c:\\testcomponentpath" ); @@ -3246,7 +3128,7 @@ static void test_MsiGetComponentPathEx(void) /* user managed product key exists */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); ok( state == INSTALLSTATE_UNKNOWN, "got %d\n", state ); lstrcpyA( path_key, "Software\\Microsoft\\Windows\\CurrentVersion\\" ); @@ -3260,7 +3142,7 @@ static void test_MsiGetComponentPathEx(void) /* user managed component key exists */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); ok( state == INSTALLSTATE_UNKNOWN, "got %d\n", state ); res = RegSetValueExA( key_comp, prod_squashed, 0, REG_SZ, (const BYTE *)"c:\\testcomponentpath", 20 ); @@ -3269,7 +3151,7 @@ static void test_MsiGetComponentPathEx(void) /* product value exists */ path[0] = 0; size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); ok( state == INSTALLSTATE_ABSENT, "got %d\n", state ); ok( !lstrcmpA( path, "c:\\testcomponentpath" ), "got %s\n", path ); ok( size == 20, "got %lu\n", size ); @@ -3289,7 +3171,7 @@ static void test_MsiGetComponentPathEx(void) /* install properties key exists */ path[0] = 0; size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); ok( state == INSTALLSTATE_ABSENT, "got %d\n", state ); ok( !lstrcmpA( path, "c:\\testcomponentpath" ), "got %s\n", path ); ok( size == 20, "got %lu\n", size ); @@ -3299,16 +3181,16 @@ static void test_MsiGetComponentPathEx(void) /* file exists */ path[0] = 0; size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_USERMANAGED, path, &size ); ok( state == INSTALLSTATE_LOCAL, "got %d\n", state ); ok( !lstrcmpA( path, "c:\\testcomponentpath" ), "got %s\n", path ); ok( size == 20, "got %lu\n", size ); RegDeleteValueA( key_comp, prod_squashed ); - delete_key( key_prod, "", access & KEY_WOW64_64KEY ); - delete_key( key_comp, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( key_prod, "", access & KEY_WOW64_64KEY, 0 ); + RegDeleteKeyExA( key_comp, "", access & KEY_WOW64_64KEY, 0 ); RegDeleteValueA( key_installprop, "WindowsInstaller" ); - delete_key( key_installprop, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( key_installprop, "", access & KEY_WOW64_64KEY, 0 ); RegCloseKey( key_prod ); RegCloseKey( key_comp ); RegCloseKey( key_installprop ); @@ -3327,7 +3209,7 @@ static void test_MsiGetComponentPathEx(void) /* local classes product key exists */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); ok( state == INSTALLSTATE_UNKNOWN, "got %d\n", state ); todo_wine ok(!size, "got %lu\n", size); @@ -3340,7 +3222,7 @@ static void test_MsiGetComponentPathEx(void) /* local user component key exists */ size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); ok( state == INSTALLSTATE_UNKNOWN, "got %d\n", state ); todo_wine ok(!size, "got %lu\n", size); @@ -3350,7 +3232,7 @@ static void test_MsiGetComponentPathEx(void) /* product value exists */ path[0] = 0; size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); ok( state == INSTALLSTATE_ABSENT, "got %d\n", state ); ok( !lstrcmpA( path, "c:\\testcomponentpath" ), "got %s\n", path ); ok( size == 20, "got %lu\n", size ); @@ -3360,14 +3242,14 @@ static void test_MsiGetComponentPathEx(void) /* file exists */ path[0] = 0; size = MAX_PATH; - state = pMsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); + state = MsiGetComponentPathExA( prod, comp, NULL, MSIINSTALLCONTEXT_MACHINE, path, &size ); ok( state == INSTALLSTATE_LOCAL, "got %d\n", state ); ok( !lstrcmpA( path, "c:\\testcomponentpath" ), "got %s\n", path ); ok( size == 20, "got %lu\n", size ); RegDeleteValueA( key_comp, prod_squashed ); - delete_key( key_prod, "", access & KEY_WOW64_64KEY ); - delete_key( key_comp, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( key_prod, "", access & KEY_WOW64_64KEY, 0 ); + RegDeleteKeyExA( key_comp, "", access & KEY_WOW64_64KEY, 0 ); RegCloseKey( key_prod ); RegCloseKey( key_comp ); DeleteFileA( "c:\\testcomponentpath" ); @@ -3396,9 +3278,9 @@ static void test_MsiProvideComponent(void) buf[0] = 0; len = sizeof(buf); - r = pMsiProvideComponentA("{90120000-0070-0000-0000-4000000FF1CE}", - "{17961602-C4E2-482E-800A-DF6E627549CF}", - "ProductFiles", INSTALLMODE_NODETECTION, buf, &len); + r = MsiProvideComponentA("{90120000-0070-0000-0000-4000000FF1CE}", + "{17961602-C4E2-482E-800A-DF6E627549CF}", + "ProductFiles", INSTALLMODE_NODETECTION, buf, &len); ok(r == ERROR_INVALID_PARAMETER, "got %u\n", r); r = MsiInstallProductA(msifile, NULL); @@ -3409,24 +3291,24 @@ static void test_MsiProvideComponent(void) buf[0] = 0; len = sizeof(buf); - r = pMsiProvideComponentA("{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", "sourcedir", - "{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", - INSTALLMODE_NODETECTION, buf, &len); + r = MsiProvideComponentA("{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", "sourcedir", + "{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", + INSTALLMODE_NODETECTION, buf, &len); ok(r == ERROR_SUCCESS, "got %u\n", r); ok(buf[0], "empty path\n"); ok(len == lstrlenA(buf), "got %lu\n", len); len2 = 0; - r = pMsiProvideComponentA("{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", "sourcedir", - "{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", - INSTALLMODE_NODETECTION, NULL, &len2); + r = MsiProvideComponentA("{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", "sourcedir", + "{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", + INSTALLMODE_NODETECTION, NULL, &len2); ok(r == ERROR_SUCCESS, "got %u\n", r); ok(len2 == len, "got %lu\n", len2); len2 = 0; - r = pMsiProvideComponentA("{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", "sourcedir", - "{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", - INSTALLMODE_NODETECTION, buf, &len2); + r = MsiProvideComponentA("{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", "sourcedir", + "{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", + INSTALLMODE_NODETECTION, buf, &len2); ok(r == ERROR_MORE_DATA, "got %u\n", r); ok(len2 == len, "got %lu\n", len2); @@ -3434,21 +3316,21 @@ static void test_MsiProvideComponent(void) bufW[0] = 0; len = sizeof(buf); - r = pMsiProvideComponentW(L"{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", L"sourcedir", - L"{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", INSTALLMODE_NODETECTION, bufW, &len); + r = MsiProvideComponentW(L"{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", L"sourcedir", + L"{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", INSTALLMODE_NODETECTION, bufW, &len); ok(r == ERROR_SUCCESS, "got %u\n", r); ok(bufW[0], "empty path\n"); ok(len == lstrlenW(bufW), "got %lu\n", len); len2 = 0; - r = pMsiProvideComponentW(L"{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", L"sourcedir", - L"{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", INSTALLMODE_NODETECTION, NULL, &len2); + r = MsiProvideComponentW(L"{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", L"sourcedir", + L"{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", INSTALLMODE_NODETECTION, NULL, &len2); ok(r == ERROR_SUCCESS, "got %u\n", r); ok(len2 == len, "got %lu\n", len2); len2 = 0; - r = pMsiProvideComponentW(L"{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", L"sourcedir", - L"{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", INSTALLMODE_NODETECTION, bufW, &len2); + r = MsiProvideComponentW(L"{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}", L"sourcedir", + L"{DD422F92-3ED8-49B5-A0B7-F266F98357DF}", INSTALLMODE_NODETECTION, bufW, &len2); ok(r == ERROR_MORE_DATA, "got %u\n", r); ok(len2 == len, "got %lu\n", len2); @@ -3588,15 +3470,15 @@ static void test_MsiProvideQualifiedComponentEx(void) DeleteFileA( "msitest\\text.txt" ); RemoveDirectoryA( "msitest" ); - delete_key( hkey5, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( hkey5, "", access & KEY_WOW64_64KEY, 0 ); RegCloseKey( hkey5 ); - delete_key( hkey4, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( hkey4, "", access & KEY_WOW64_64KEY, 0 ); RegCloseKey( hkey4 ); - delete_key( hkey3, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( hkey3, "", access & KEY_WOW64_64KEY, 0 ); RegCloseKey( hkey3 ); - delete_key( hkey2, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( hkey2, "", access & KEY_WOW64_64KEY, 0 ); RegCloseKey( hkey2 ); - delete_key( hkey, "", access & KEY_WOW64_64KEY ); + RegDeleteKeyExA( hkey, "", access & KEY_WOW64_64KEY, 0 ); RegCloseKey( hkey ); } @@ -3715,7 +3597,7 @@ static void test_MsiGetProductCode(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(product, prodcode), "Expected %s, got %s\n", prodcode, product); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); lstrcpyA(keypath, "Software\\Microsoft\\Installer\\Products\\"); @@ -3751,7 +3633,7 @@ static void test_MsiGetProductCode(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(product, prodcode), "Expected %s, got %s\n", prodcode, product); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\"); @@ -3769,11 +3651,11 @@ static void test_MsiGetProductCode(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(product, prodcode2), "Expected %s, got %s\n", prodcode2, product); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); RegDeleteValueA(compkey, prod_squashed); RegDeleteValueA(compkey, prod2_squashed); - delete_key(compkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(compkey); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\"); @@ -3816,7 +3698,7 @@ static void test_MsiGetProductCode(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(product, prodcode), "Expected %s, got %s\n", prodcode, product); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); lstrcpyA(keypath, "Software\\Microsoft\\Installer\\Products\\"); @@ -3852,7 +3734,7 @@ static void test_MsiGetProductCode(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(product, prodcode), "Expected %s, got %s\n", prodcode, product); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\"); @@ -3870,11 +3752,11 @@ static void test_MsiGetProductCode(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(product, prodcode2), "Expected %s, got %s\n", prodcode2, product); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); RegDeleteValueA(compkey, prod_squashed); RegDeleteValueA(compkey, prod2_squashed); - delete_key(compkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(compkey); LocalFree(usersid); } @@ -4001,7 +3883,7 @@ static void test_MsiEnumClients(void) RegDeleteValueA(compkey, prod_squashed); RegDeleteValueA(compkey, prod2_squashed); - delete_key(compkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(compkey); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\"); @@ -4009,6 +3891,12 @@ static void test_MsiEnumClients(void) lstrcatA(keypath, comp_squashed); res = RegCreateKeyExA(HKEY_LOCAL_MACHINE, keypath, 0, NULL, 0, access, NULL, &compkey, NULL); + if (res == ERROR_ACCESS_DENIED) + { + skip("Not enough rights to perform tests\n"); + LocalFree(usersid); + return; + } ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* user local component key exists */ @@ -4071,7 +3959,7 @@ static void test_MsiEnumClients(void) RegDeleteValueA(compkey, prod_squashed); RegDeleteValueA(compkey, prod2_squashed); - delete_key(compkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(compkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(compkey); LocalFree(usersid); } @@ -4281,13 +4169,6 @@ static void test_MsiGetFileVersion(void) lstrcpyA(lang, "lang"); r = MsiGetFileVersionA(path, version, &versz, lang, &langsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - if (langchecksz && !langsz) - { - win_skip("broken MsiGetFileVersionA detected\n"); - free(vercheck); - free(langcheck); - return; - } ok(versz == verchecksz, "Expected %lu, got %lu\n", verchecksz, versz); ok(strstr(lang, langcheck) != NULL, "Expected \"%s\" in \"%s\"\n", langcheck, lang); ok(!lstrcmpA(version, vercheck), @@ -4512,7 +4393,7 @@ static void test_MsiGetProductInfo(void) ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "got %lu\n", sz); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); @@ -4624,9 +4505,9 @@ static void test_MsiGetProductInfo(void) RegDeleteValueA(propkey, "IMadeThis"); RegDeleteValueA(propkey, "HelpLink"); - delete_key(propkey, "", access & KEY_WOW64_64KEY); - delete_key(localkey, "", access & KEY_WOW64_64KEY); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(propkey, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(localkey, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(propkey); RegCloseKey(localkey); RegCloseKey(prodkey); @@ -4686,8 +4567,8 @@ static void test_MsiGetProductInfo(void) ok(sz == 4, "Expected 4, got %lu\n", sz); RegDeleteValueA(propkey, "HelpLink"); - delete_key(propkey, "", access & KEY_WOW64_64KEY); - delete_key(localkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(propkey, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(localkey, "", access & KEY_WOW64_64KEY, 0); RegDeleteKeyA(prodkey, ""); RegCloseKey(propkey); RegCloseKey(localkey); @@ -4743,8 +4624,8 @@ static void test_MsiGetProductInfo(void) ok(!lstrcmpA(buf, "apple"), "Expected \"apple\", got \"%s\"\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); - delete_key(propkey, "", access & KEY_WOW64_64KEY); - delete_key(localkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(propkey, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(localkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(propkey); RegCloseKey(localkey); @@ -5649,8 +5530,8 @@ static void test_MsiGetProductInfo(void) RegDeleteValueA(propkey, "Version"); RegDeleteValueA(propkey, "ProductIcon"); RegDeleteValueA(propkey, "AuthorizedLUAApp"); - delete_key(propkey, "", access & KEY_WOW64_64KEY); - delete_key(localkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(propkey, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(localkey, "", access & KEY_WOW64_64KEY, 0); RegDeleteValueA(prodkey, "InstanceType"); RegDeleteValueA(prodkey, "Transforms"); RegDeleteValueA(prodkey, "Language"); @@ -5661,8 +5542,8 @@ static void test_MsiGetProductInfo(void) RegDeleteValueA(prodkey, "ProductIcon"); RegDeleteValueA(prodkey, "AuthorizedLUAApp"); RegDeleteValueA(source, "PackageName"); - delete_key(source, "", access & KEY_WOW64_64KEY); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(source, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(propkey); RegCloseKey(localkey); RegCloseKey(source); @@ -5686,12 +5567,6 @@ static void test_MsiGetProductInfoEx(void) DWORD sz; REGSAM access = KEY_ALL_ACCESS; - if (!pMsiGetProductInfoExA) - { - win_skip("MsiGetProductInfoExA is not available\n"); - return; - } - create_test_guid(prodcode, prod_squashed); create_test_guid(packcode, pack_squashed); usersid = get_user_sid(); @@ -5702,115 +5577,95 @@ static void test_MsiGetProductInfoEx(void) /* NULL szProductCode */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetProductInfoExA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); /* empty szProductCode */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetProductInfoExA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); /* garbage szProductCode */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetProductInfoExA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); /* guid without brackets */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA("6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D", usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetProductInfoExA("6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D", usersid, + MSIINSTALLCONTEXT_USERUNMANAGED, + INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); /* guid with brackets */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA("{6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D}", usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA("{6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D}", usersid, + MSIINSTALLCONTEXT_USERUNMANAGED, + INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); /* szValue is non-NULL while pcchValue is NULL */ lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, NULL); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + INSTALLPROPERTY_PRODUCTSTATEA, buf, NULL); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); /* dwContext is out of range */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, 42, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, 42, INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); /* szProperty is NULL */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - NULL, buf, &sz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, NULL, buf, &sz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); /* szProperty is empty */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - "", buf, &sz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, "", buf, &sz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); /* szProperty is not a valid property */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - "notvalid", buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, "notvalid", buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); /* same length as guid, but random */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA("A938G02JF-2NF3N93-VN3-2NNF-3KGKALDNF93", usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetProductInfoExA("A938G02JF-2NF3N93-VN3-2NNF-3KGKALDNF93", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -5833,11 +5688,9 @@ static void test_MsiGetProductInfoEx(void) /* local user product key exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTSTATEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -5847,11 +5700,9 @@ static void test_MsiGetProductInfoEx(void) /* InstallProperties key exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTSTATEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -5861,9 +5712,8 @@ static void test_MsiGetProductInfoEx(void) /* LocalPackage value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTSTATEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "5"), "Expected \"5\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -5873,11 +5723,8 @@ static void test_MsiGetProductInfoEx(void) /* LocalPackage value must exist */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPLINKA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPLINKA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -5887,9 +5734,7 @@ static void test_MsiGetProductInfoEx(void) /* LocalPackage exists, but HelpLink does not exist */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPLINKA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPLINKA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, ""), "Expected \"\", got \"%s\"\n", buf); ok(sz == 0, "Expected 0, got %lu\n", sz); @@ -5900,9 +5745,7 @@ static void test_MsiGetProductInfoEx(void) /* HelpLink value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPLINKA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPLINKA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "link"), "Expected \"link\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -5913,53 +5756,45 @@ static void test_MsiGetProductInfoEx(void) /* HelpTelephone value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPTELEPHONEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPTELEPHONEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "phone"), "Expected \"phone\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); /* szValue and pcchValue are NULL */ - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPTELEPHONEA, NULL, NULL); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPTELEPHONEA, + NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* pcchValue is exactly 5 */ sz = 5; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPTELEPHONEA, buf, &sz); - ok(r == ERROR_MORE_DATA, - "Expected ERROR_MORE_DATA, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPTELEPHONEA, + buf, &sz); + ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); ok(sz == 10, "Expected 10, got %lu\n", sz); /* szValue is NULL, pcchValue is exactly 5 */ sz = 5; - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPTELEPHONEA, NULL, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPTELEPHONEA, + NULL, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(sz == 10, "Expected 10, got %lu\n", sz); /* szValue is NULL, pcchValue is MAX_PATH */ sz = MAX_PATH; - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPTELEPHONEA, NULL, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPTELEPHONEA, + NULL, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(sz == 10, "Expected 10, got %lu\n", sz); /* pcchValue is exactly 0 */ sz = 0; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPTELEPHONEA, buf, &sz); - ok(r == ERROR_MORE_DATA, - "Expected ERROR_MORE_DATA, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPTELEPHONEA, + buf, &sz); + ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected \"apple\", got \"%s\"\n", buf); ok(sz == 10, "Expected 10, got %lu\n", sz); @@ -5969,11 +5804,8 @@ static void test_MsiGetProductInfoEx(void) /* szProperty is not a valid property */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - "notvalid", buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, "notvalid", buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -5983,9 +5815,8 @@ static void test_MsiGetProductInfoEx(void) /* InstallDate value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_INSTALLDATEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_INSTALLDATEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "date"), "Expected \"date\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -5996,9 +5827,8 @@ static void test_MsiGetProductInfoEx(void) /* DisplayName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "name"), "Expected \"name\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -6009,9 +5839,8 @@ static void test_MsiGetProductInfoEx(void) /* InstallLocation value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_INSTALLLOCATIONA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_INSTALLLOCATIONA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "loc"), "Expected \"loc\", got \"%s\"\n", buf); ok(sz == 3, "Expected 3, got %lu\n", sz); @@ -6022,9 +5851,8 @@ static void test_MsiGetProductInfoEx(void) /* InstallSource value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_INSTALLSOURCEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_INSTALLSOURCEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "source"), "Expected \"source\", got \"%s\"\n", buf); ok(sz == 6, "Expected 6, got %lu\n", sz); @@ -6035,9 +5863,8 @@ static void test_MsiGetProductInfoEx(void) /* LocalPackage value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "local"), "Expected \"local\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -6048,9 +5875,8 @@ static void test_MsiGetProductInfoEx(void) /* Publisher value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PUBLISHERA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PUBLISHERA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "pub"), "Expected \"pub\", got \"%s\"\n", buf); ok(sz == 3, "Expected 3, got %lu\n", sz); @@ -6061,9 +5887,8 @@ static void test_MsiGetProductInfoEx(void) /* URLInfoAbout value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_URLINFOABOUTA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_URLINFOABOUTA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "about"), "Expected \"about\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -6074,9 +5899,8 @@ static void test_MsiGetProductInfoEx(void) /* URLUpdateInfo value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_URLUPDATEINFOA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_URLUPDATEINFOA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "update"), "Expected \"update\", got \"%s\"\n", buf); ok(sz == 6, "Expected 6, got %lu\n", sz); @@ -6087,9 +5911,8 @@ static void test_MsiGetProductInfoEx(void) /* VersionMinor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_VERSIONMINORA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONMINORA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "2"), "Expected \"2\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -6100,9 +5923,8 @@ static void test_MsiGetProductInfoEx(void) /* VersionMajor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_VERSIONMAJORA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONMAJORA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "3"), "Expected \"3\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -6113,9 +5935,8 @@ static void test_MsiGetProductInfoEx(void) /* DisplayVersion value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_VERSIONSTRINGA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONSTRINGA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "3.2.1"), "Expected \"3.2.1\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -6126,9 +5947,8 @@ static void test_MsiGetProductInfoEx(void) /* ProductID value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTIDA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTIDA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "id"), "Expected \"id\", got \"%s\"\n", buf); ok(sz == 2, "Expected 2, got %lu\n", sz); @@ -6139,9 +5959,8 @@ static void test_MsiGetProductInfoEx(void) /* RegCompany value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_REGCOMPANYA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_REGCOMPANYA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "comp"), "Expected \"comp\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -6152,9 +5971,8 @@ static void test_MsiGetProductInfoEx(void) /* RegOwner value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_REGOWNERA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_REGOWNERA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "owner"), "Expected \"owner\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -6165,11 +5983,9 @@ static void test_MsiGetProductInfoEx(void) /* Transforms value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_TRANSFORMSA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_TRANSFORMSA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6179,11 +5995,9 @@ static void test_MsiGetProductInfoEx(void) /* Language value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LANGUAGEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LANGUAGEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6193,11 +6007,9 @@ static void test_MsiGetProductInfoEx(void) /* ProductName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTNAMEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTNAMEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6209,11 +6021,9 @@ static void test_MsiGetProductInfoEx(void) /* AssignmentType value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_ASSIGNMENTTYPEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_ASSIGNMENTTYPEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6223,11 +6033,9 @@ static void test_MsiGetProductInfoEx(void) /* PackageCode value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PACKAGECODEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PACKAGECODEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6237,11 +6045,9 @@ static void test_MsiGetProductInfoEx(void) /* Version value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_VERSIONA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6251,11 +6057,9 @@ static void test_MsiGetProductInfoEx(void) /* ProductIcon value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTICONA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTICONA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6265,11 +6069,9 @@ static void test_MsiGetProductInfoEx(void) /* PackageName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PACKAGENAMEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PACKAGENAMEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6279,11 +6081,9 @@ static void test_MsiGetProductInfoEx(void) /* AuthorizedLUAApp value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_AUTHORIZED_LUA_APPA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_AUTHORIZED_LUA_APPA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6329,11 +6129,9 @@ static void test_MsiGetProductInfoEx(void) /* user product key exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTSTATEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6348,17 +6146,9 @@ static void test_MsiGetProductInfoEx(void) sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_SUCCESS || broken(r == ERROR_UNKNOWN_PRODUCT), "Expected ERROR_SUCCESS, got %d\n", r); - if (r == ERROR_UNKNOWN_PRODUCT) - { - win_skip("skipping remaining tests for MsiGetProductInfoEx\n"); - delete_key(prodkey, "", access); - RegCloseKey(prodkey); - return; - } + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTSTATEA, + buf, &sz); + ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "1"), "Expected \"1\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -6368,11 +6158,9 @@ static void test_MsiGetProductInfoEx(void) /* HelpLink value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPLINKA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPLINKA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6382,11 +6170,9 @@ static void test_MsiGetProductInfoEx(void) /* HelpTelephone value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_HELPTELEPHONEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_HELPTELEPHONEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6396,11 +6182,9 @@ static void test_MsiGetProductInfoEx(void) /* InstallDate value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_INSTALLDATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_INSTALLDATEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6410,11 +6194,9 @@ static void test_MsiGetProductInfoEx(void) /* DisplayName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6424,11 +6206,9 @@ static void test_MsiGetProductInfoEx(void) /* InstallLocation value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_INSTALLLOCATIONA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_INSTALLLOCATIONA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6438,11 +6218,9 @@ static void test_MsiGetProductInfoEx(void) /* InstallSource value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_INSTALLSOURCEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_INSTALLSOURCEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6452,11 +6230,9 @@ static void test_MsiGetProductInfoEx(void) /* LocalPackage value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6466,11 +6242,9 @@ static void test_MsiGetProductInfoEx(void) /* Publisher value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PUBLISHERA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PUBLISHERA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6480,11 +6254,9 @@ static void test_MsiGetProductInfoEx(void) /* URLInfoAbout value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_URLINFOABOUTA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_URLINFOABOUTA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6494,11 +6266,9 @@ static void test_MsiGetProductInfoEx(void) /* URLUpdateInfo value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_URLUPDATEINFOA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_URLUPDATEINFOA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6508,11 +6278,9 @@ static void test_MsiGetProductInfoEx(void) /* VersionMinor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_VERSIONMINORA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONMINORA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6522,11 +6290,9 @@ static void test_MsiGetProductInfoEx(void) /* VersionMajor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_VERSIONMAJORA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONMAJORA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6536,11 +6302,9 @@ static void test_MsiGetProductInfoEx(void) /* DisplayVersion value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_VERSIONSTRINGA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONSTRINGA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6550,11 +6314,9 @@ static void test_MsiGetProductInfoEx(void) /* ProductID value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTIDA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTIDA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6564,11 +6326,9 @@ static void test_MsiGetProductInfoEx(void) /* RegCompany value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_REGCOMPANYA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_REGCOMPANYA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6578,11 +6338,9 @@ static void test_MsiGetProductInfoEx(void) /* RegOwner value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_REGOWNERA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_REGOWNERA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6592,9 +6350,8 @@ static void test_MsiGetProductInfoEx(void) /* Transforms value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_TRANSFORMSA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_TRANSFORMSA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "trans"), "Expected \"trans\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -6605,9 +6362,8 @@ static void test_MsiGetProductInfoEx(void) /* Language value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LANGUAGEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LANGUAGEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "lang"), "Expected \"lang\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -6618,9 +6374,8 @@ static void test_MsiGetProductInfoEx(void) /* ProductName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTNAMEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTNAMEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "name"), "Expected \"name\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -6633,9 +6388,8 @@ static void test_MsiGetProductInfoEx(void) /* AssignmentType value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_ASSIGNMENTTYPEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_ASSIGNMENTTYPEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, ""), "Expected \"\", got \"%s\"\n", buf); ok(sz == 0, "Expected 0, got %lu\n", sz); @@ -6648,13 +6402,11 @@ static void test_MsiGetProductInfoEx(void) /* PackageCode value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PACKAGECODEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PACKAGECODEA, + buf, &sz); 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); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); } @@ -6665,9 +6417,8 @@ static void test_MsiGetProductInfoEx(void) /* Version value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_VERSIONA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_VERSIONA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "ver"), "Expected \"ver\", got \"%s\"\n", buf); ok(sz == 3, "Expected 3, got %lu\n", sz); @@ -6678,9 +6429,8 @@ static void test_MsiGetProductInfoEx(void) /* ProductIcon value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PRODUCTICONA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PRODUCTICONA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "icon"), "Expected \"icon\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -6691,13 +6441,11 @@ static void test_MsiGetProductInfoEx(void) /* PackageName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_PACKAGENAMEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_PACKAGENAMEA, + buf, &sz); todo_wine { - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); } @@ -6708,9 +6456,8 @@ static void test_MsiGetProductInfoEx(void) /* AuthorizedLUAApp value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_AUTHORIZED_LUA_APPA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_AUTHORIZED_LUA_APPA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "auth"), "Expected \"auth\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -6741,7 +6488,7 @@ static void test_MsiGetProductInfoEx(void) RegDeleteValueA(prodkey, "HelpTelephone"); RegDeleteValueA(prodkey, "HelpLink"); RegDeleteValueA(prodkey, "LocalPackage"); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); /* MSIINSTALLCONTEXT_USERMANAGED */ @@ -6757,11 +6504,9 @@ static void test_MsiGetProductInfoEx(void) /* local user product key exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTSTATEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6771,11 +6516,9 @@ static void test_MsiGetProductInfoEx(void) /* InstallProperties key exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTSTATEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -6785,9 +6528,8 @@ static void test_MsiGetProductInfoEx(void) /* ManagedLocalPackage value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTSTATEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "5"), "Expected \"5\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -6798,9 +6540,8 @@ static void test_MsiGetProductInfoEx(void) /* HelpLink value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_HELPLINKA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_HELPLINKA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "link"), "Expected \"link\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -6811,9 +6552,8 @@ static void test_MsiGetProductInfoEx(void) /* HelpTelephone value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_HELPTELEPHONEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_HELPTELEPHONEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "phone"), "Expected \"phone\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -6824,9 +6564,8 @@ static void test_MsiGetProductInfoEx(void) /* InstallDate value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_INSTALLDATEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_INSTALLDATEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "date"), "Expected \"date\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -6837,9 +6576,8 @@ static void test_MsiGetProductInfoEx(void) /* DisplayName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "name"), "Expected \"name\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -6850,9 +6588,8 @@ static void test_MsiGetProductInfoEx(void) /* InstallLocation value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_INSTALLLOCATIONA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_INSTALLLOCATIONA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "loc"), "Expected \"loc\", got \"%s\"\n", buf); ok(sz == 3, "Expected 3, got %lu\n", sz); @@ -6863,9 +6600,8 @@ static void test_MsiGetProductInfoEx(void) /* InstallSource value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_INSTALLSOURCEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_INSTALLSOURCEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "source"), "Expected \"source\", got \"%s\"\n", buf); ok(sz == 6, "Expected 6, got %lu\n", sz); @@ -6876,9 +6612,8 @@ static void test_MsiGetProductInfoEx(void) /* LocalPackage value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "local"), "Expected \"local\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -6889,9 +6624,8 @@ static void test_MsiGetProductInfoEx(void) /* Publisher value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PUBLISHERA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PUBLISHERA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "pub"), "Expected \"pub\", got \"%s\"\n", buf); ok(sz == 3, "Expected 3, got %lu\n", sz); @@ -6902,9 +6636,8 @@ static void test_MsiGetProductInfoEx(void) /* URLInfoAbout value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_URLINFOABOUTA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_URLINFOABOUTA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "about"), "Expected \"about\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -6915,9 +6648,8 @@ static void test_MsiGetProductInfoEx(void) /* URLUpdateInfo value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_URLUPDATEINFOA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_URLUPDATEINFOA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "update"), "Expected \"update\", got \"%s\"\n", buf); ok(sz == 6, "Expected 6, got %lu\n", sz); @@ -6928,9 +6660,8 @@ static void test_MsiGetProductInfoEx(void) /* VersionMinor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_VERSIONMINORA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_VERSIONMINORA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "2"), "Expected \"2\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -6941,9 +6672,8 @@ static void test_MsiGetProductInfoEx(void) /* VersionMajor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_VERSIONMAJORA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_VERSIONMAJORA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "3"), "Expected \"3\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -6954,9 +6684,8 @@ static void test_MsiGetProductInfoEx(void) /* DisplayVersion value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_VERSIONSTRINGA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_VERSIONSTRINGA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "3.2.1"), "Expected \"3.2.1\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -6967,9 +6696,8 @@ static void test_MsiGetProductInfoEx(void) /* ProductID value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTIDA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTIDA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "id"), "Expected \"id\", got \"%s\"\n", buf); ok(sz == 2, "Expected 2, got %lu\n", sz); @@ -6980,9 +6708,8 @@ static void test_MsiGetProductInfoEx(void) /* RegCompany value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_REGCOMPANYA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_REGCOMPANYA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "comp"), "Expected \"comp\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -6993,9 +6720,8 @@ static void test_MsiGetProductInfoEx(void) /* RegOwner value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_REGOWNERA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_REGOWNERA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "owner"), "Expected \"owner\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -7006,11 +6732,9 @@ static void test_MsiGetProductInfoEx(void) /* Transforms value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_TRANSFORMSA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_TRANSFORMSA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7020,11 +6744,9 @@ static void test_MsiGetProductInfoEx(void) /* Language value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LANGUAGEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LANGUAGEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7034,11 +6756,9 @@ static void test_MsiGetProductInfoEx(void) /* ProductName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTNAMEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTNAMEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7050,11 +6770,9 @@ static void test_MsiGetProductInfoEx(void) /* AssignmentType value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_ASSIGNMENTTYPEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_ASSIGNMENTTYPEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7064,11 +6782,9 @@ static void test_MsiGetProductInfoEx(void) /* PackageCode value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PACKAGECODEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PACKAGECODEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7078,11 +6794,9 @@ static void test_MsiGetProductInfoEx(void) /* Version value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_VERSIONA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_VERSIONA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7092,11 +6806,9 @@ static void test_MsiGetProductInfoEx(void) /* ProductIcon value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTICONA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTICONA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7106,11 +6818,9 @@ static void test_MsiGetProductInfoEx(void) /* PackageName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PACKAGENAMEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PACKAGENAMEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7120,11 +6830,9 @@ static void test_MsiGetProductInfoEx(void) /* AuthorizedLUAApp value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_AUTHORIZED_LUA_APPA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_AUTHORIZED_LUA_APPA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7154,9 +6862,9 @@ static void test_MsiGetProductInfoEx(void) RegDeleteValueA(propkey, "HelpTelephone"); RegDeleteValueA(propkey, "HelpLink"); RegDeleteValueA(propkey, "ManagedLocalPackage"); - delete_key(propkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(propkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(propkey); - delete_key(localkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(localkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(localkey); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\"); @@ -7170,14 +6878,13 @@ static void test_MsiGetProductInfoEx(void) /* user product key exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTSTATEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "1"), "Expected \"1\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); - delete_key(userkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(userkey); lstrcpyA(keypath, "Software\\Microsoft\\Installer\\Products\\"); @@ -7189,11 +6896,9 @@ static void test_MsiGetProductInfoEx(void) /* current user product key exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTSTATEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7203,11 +6908,9 @@ static void test_MsiGetProductInfoEx(void) /* HelpLink value exists, user product key does not exist */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_HELPLINKA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_HELPLINKA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7225,11 +6928,9 @@ static void test_MsiGetProductInfoEx(void) /* HelpLink value exists, user product key does exist */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_HELPLINKA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_HELPLINKA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7239,11 +6940,9 @@ static void test_MsiGetProductInfoEx(void) /* HelpTelephone value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_HELPTELEPHONEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_HELPTELEPHONEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7253,11 +6952,9 @@ static void test_MsiGetProductInfoEx(void) /* InstallDate value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_INSTALLDATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_INSTALLDATEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7267,11 +6964,9 @@ static void test_MsiGetProductInfoEx(void) /* DisplayName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7281,11 +6976,9 @@ static void test_MsiGetProductInfoEx(void) /* InstallLocation value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_INSTALLLOCATIONA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_INSTALLLOCATIONA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7295,11 +6988,9 @@ static void test_MsiGetProductInfoEx(void) /* InstallSource value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_INSTALLSOURCEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_INSTALLSOURCEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7309,11 +7000,9 @@ static void test_MsiGetProductInfoEx(void) /* LocalPackage value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7323,11 +7012,9 @@ static void test_MsiGetProductInfoEx(void) /* Publisher value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PUBLISHERA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PUBLISHERA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7337,11 +7024,9 @@ static void test_MsiGetProductInfoEx(void) /* URLInfoAbout value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_URLINFOABOUTA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_URLINFOABOUTA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7351,11 +7036,9 @@ static void test_MsiGetProductInfoEx(void) /* URLUpdateInfo value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_URLUPDATEINFOA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_URLUPDATEINFOA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7365,11 +7048,9 @@ static void test_MsiGetProductInfoEx(void) /* VersionMinor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_VERSIONMINORA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_VERSIONMINORA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7379,11 +7060,9 @@ static void test_MsiGetProductInfoEx(void) /* VersionMajor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_VERSIONMAJORA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_VERSIONMAJORA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7393,11 +7072,9 @@ static void test_MsiGetProductInfoEx(void) /* DisplayVersion value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_VERSIONSTRINGA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_VERSIONSTRINGA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7407,11 +7084,9 @@ static void test_MsiGetProductInfoEx(void) /* ProductID value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTIDA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTIDA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7421,11 +7096,9 @@ static void test_MsiGetProductInfoEx(void) /* RegCompany value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_REGCOMPANYA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_REGCOMPANYA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7435,11 +7108,9 @@ static void test_MsiGetProductInfoEx(void) /* RegOwner value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_REGOWNERA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_REGOWNERA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7449,9 +7120,8 @@ static void test_MsiGetProductInfoEx(void) /* Transforms value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_TRANSFORMSA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_TRANSFORMSA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "trans"), "Expected \"trans\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -7462,9 +7132,8 @@ static void test_MsiGetProductInfoEx(void) /* Language value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LANGUAGEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LANGUAGEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "lang"), "Expected \"lang\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -7475,9 +7144,8 @@ static void test_MsiGetProductInfoEx(void) /* ProductName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTNAMEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTNAMEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "name"), "Expected \"name\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -7490,9 +7158,8 @@ static void test_MsiGetProductInfoEx(void) /* AssignmentType value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_ASSIGNMENTTYPEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_ASSIGNMENTTYPEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, ""), "Expected \"\", got \"%s\"\n", buf); ok(sz == 0, "Expected 0, got %lu\n", sz); @@ -7505,13 +7172,11 @@ static void test_MsiGetProductInfoEx(void) /* PackageCode value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PACKAGECODEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PACKAGECODEA, + buf, &sz); 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); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); } @@ -7522,9 +7187,8 @@ static void test_MsiGetProductInfoEx(void) /* Version value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_VERSIONA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_VERSIONA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "ver"), "Expected \"ver\", got \"%s\"\n", buf); ok(sz == 3, "Expected 3, got %lu\n", sz); @@ -7535,9 +7199,8 @@ static void test_MsiGetProductInfoEx(void) /* ProductIcon value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PRODUCTICONA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PRODUCTICONA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "icon"), "Expected \"icon\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -7548,13 +7211,11 @@ static void test_MsiGetProductInfoEx(void) /* PackageName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PACKAGENAMEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PACKAGENAMEA, + buf, &sz); todo_wine { - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); } @@ -7565,9 +7226,8 @@ static void test_MsiGetProductInfoEx(void) /* AuthorizedLUAApp value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_AUTHORIZED_LUA_APPA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_AUTHORIZED_LUA_APPA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "auth"), "Expected \"auth\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -7597,9 +7257,9 @@ static void test_MsiGetProductInfoEx(void) RegDeleteValueA(userkey, "InstallDate"); RegDeleteValueA(userkey, "HelpTelephone"); RegDeleteValueA(userkey, "HelpLink"); - delete_key(userkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(userkey); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); /* MSIINSTALLCONTEXT_MACHINE */ @@ -7607,11 +7267,8 @@ static void test_MsiGetProductInfoEx(void) /* szUserSid is non-NULL */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, usersid, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, usersid, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7624,11 +7281,8 @@ static void test_MsiGetProductInfoEx(void) /* local system product key exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7638,11 +7292,8 @@ static void test_MsiGetProductInfoEx(void) /* InstallProperties key exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7652,9 +7303,7 @@ static void test_MsiGetProductInfoEx(void) /* LocalPackage value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "5"), "Expected \"5\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -7665,9 +7314,7 @@ static void test_MsiGetProductInfoEx(void) /* HelpLink value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_HELPLINKA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_HELPLINKA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "link"), "Expected \"link\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -7678,9 +7325,7 @@ static void test_MsiGetProductInfoEx(void) /* HelpTelephone value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_HELPTELEPHONEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_HELPTELEPHONEA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "phone"), "Expected \"phone\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -7691,9 +7336,7 @@ static void test_MsiGetProductInfoEx(void) /* InstallDate value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_INSTALLDATEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_INSTALLDATEA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "date"), "Expected \"date\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -7704,9 +7347,8 @@ static void test_MsiGetProductInfoEx(void) /* DisplayName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "name"), "Expected \"name\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -7717,9 +7359,7 @@ static void test_MsiGetProductInfoEx(void) /* InstallLocation value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_INSTALLLOCATIONA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_INSTALLLOCATIONA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "loc"), "Expected \"loc\", got \"%s\"\n", buf); ok(sz == 3, "Expected 3, got %lu\n", sz); @@ -7730,9 +7370,7 @@ static void test_MsiGetProductInfoEx(void) /* InstallSource value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_INSTALLSOURCEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_INSTALLSOURCEA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "source"), "Expected \"source\", got \"%s\"\n", buf); ok(sz == 6, "Expected 6, got %lu\n", sz); @@ -7743,9 +7381,7 @@ static void test_MsiGetProductInfoEx(void) /* LocalPackage value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "local"), "Expected \"local\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -7756,9 +7392,7 @@ static void test_MsiGetProductInfoEx(void) /* Publisher value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PUBLISHERA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PUBLISHERA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "pub"), "Expected \"pub\", got \"%s\"\n", buf); ok(sz == 3, "Expected 3, got %lu\n", sz); @@ -7769,9 +7403,7 @@ static void test_MsiGetProductInfoEx(void) /* URLInfoAbout value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_URLINFOABOUTA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_URLINFOABOUTA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "about"), "Expected \"about\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -7782,9 +7414,7 @@ static void test_MsiGetProductInfoEx(void) /* URLUpdateInfo value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_URLUPDATEINFOA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_URLUPDATEINFOA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "update"), "Expected \"update\", got \"%s\"\n", buf); ok(sz == 6, "Expected 6, got %lu\n", sz); @@ -7795,9 +7425,7 @@ static void test_MsiGetProductInfoEx(void) /* VersionMinor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_VERSIONMINORA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONMINORA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "2"), "Expected \"2\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -7808,9 +7436,7 @@ static void test_MsiGetProductInfoEx(void) /* VersionMajor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_VERSIONMAJORA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONMAJORA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "3"), "Expected \"3\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -7821,9 +7447,7 @@ static void test_MsiGetProductInfoEx(void) /* DisplayVersion value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_VERSIONSTRINGA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONSTRINGA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "3.2.1"), "Expected \"3.2.1\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -7834,9 +7458,7 @@ static void test_MsiGetProductInfoEx(void) /* ProductID value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTIDA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTIDA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "id"), "Expected \"id\", got \"%s\"\n", buf); ok(sz == 2, "Expected 2, got %lu\n", sz); @@ -7847,9 +7469,7 @@ static void test_MsiGetProductInfoEx(void) /* RegCompany value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_REGCOMPANYA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_REGCOMPANYA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "comp"), "Expected \"comp\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -7860,9 +7480,7 @@ static void test_MsiGetProductInfoEx(void) /* RegOwner value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_REGOWNERA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_REGOWNERA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "owner"), "Expected \"owner\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -7873,11 +7491,8 @@ static void test_MsiGetProductInfoEx(void) /* Transforms value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_TRANSFORMSA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_TRANSFORMSA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7887,11 +7502,8 @@ static void test_MsiGetProductInfoEx(void) /* Language value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LANGUAGEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LANGUAGEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7901,11 +7513,8 @@ static void test_MsiGetProductInfoEx(void) /* ProductName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTNAMEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTNAMEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7917,11 +7526,8 @@ static void test_MsiGetProductInfoEx(void) /* AssignmentType value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_ASSIGNMENTTYPEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_ASSIGNMENTTYPEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7931,11 +7537,8 @@ static void test_MsiGetProductInfoEx(void) /* PackageCode value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PACKAGECODEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PACKAGECODEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7945,11 +7548,8 @@ static void test_MsiGetProductInfoEx(void) /* Version value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_VERSIONA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7959,11 +7559,8 @@ static void test_MsiGetProductInfoEx(void) /* ProductIcon value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTICONA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTICONA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7973,11 +7570,8 @@ static void test_MsiGetProductInfoEx(void) /* PackageName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PACKAGENAMEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PACKAGENAMEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -7987,11 +7581,8 @@ static void test_MsiGetProductInfoEx(void) /* AuthorizedLUAApp value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_AUTHORIZED_LUA_APPA, buf, &sz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_AUTHORIZED_LUA_APPA, buf, &sz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8021,9 +7612,9 @@ static void test_MsiGetProductInfoEx(void) RegDeleteValueA(propkey, "HelpTelephone"); RegDeleteValueA(propkey, "HelpLink"); RegDeleteValueA(propkey, "LocalPackage"); - delete_key(propkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(propkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(propkey); - delete_key(localkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(localkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(localkey); lstrcpyA(keypath, "Software\\Classes\\Installer\\Products\\"); @@ -8041,9 +7632,7 @@ static void test_MsiGetProductInfoEx(void) /* local classes product key exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTSTATEA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "1"), "Expected \"1\", got \"%s\"\n", buf); ok(sz == 1, "Expected 1, got %lu\n", sz); @@ -8054,11 +7643,8 @@ static void test_MsiGetProductInfoEx(void) /* HelpLink value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_HELPLINKA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_HELPLINKA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8068,11 +7654,8 @@ static void test_MsiGetProductInfoEx(void) /* HelpTelephone value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_HELPTELEPHONEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_HELPTELEPHONEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8082,11 +7665,8 @@ static void test_MsiGetProductInfoEx(void) /* InstallDate value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_INSTALLDATEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_INSTALLDATEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8096,11 +7676,9 @@ static void test_MsiGetProductInfoEx(void) /* DisplayName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA, + buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8110,11 +7688,8 @@ static void test_MsiGetProductInfoEx(void) /* InstallLocation value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_INSTALLLOCATIONA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_INSTALLLOCATIONA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8124,11 +7699,8 @@ static void test_MsiGetProductInfoEx(void) /* InstallSource value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_INSTALLSOURCEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_INSTALLSOURCEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8138,11 +7710,8 @@ static void test_MsiGetProductInfoEx(void) /* LocalPackage value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8152,11 +7721,8 @@ static void test_MsiGetProductInfoEx(void) /* Publisher value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PUBLISHERA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PUBLISHERA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8166,11 +7732,8 @@ static void test_MsiGetProductInfoEx(void) /* URLInfoAbout value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_URLINFOABOUTA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_URLINFOABOUTA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8180,11 +7743,8 @@ static void test_MsiGetProductInfoEx(void) /* URLUpdateInfo value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_URLUPDATEINFOA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_URLUPDATEINFOA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8194,11 +7754,8 @@ static void test_MsiGetProductInfoEx(void) /* VersionMinor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_VERSIONMINORA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONMINORA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8208,11 +7765,8 @@ static void test_MsiGetProductInfoEx(void) /* VersionMajor value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_VERSIONMAJORA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONMAJORA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8222,11 +7776,8 @@ static void test_MsiGetProductInfoEx(void) /* DisplayVersion value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_VERSIONSTRINGA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONSTRINGA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8236,11 +7787,8 @@ static void test_MsiGetProductInfoEx(void) /* ProductID value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTIDA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTIDA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8250,11 +7798,8 @@ static void test_MsiGetProductInfoEx(void) /* RegCompany value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_REGCOMPANYA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_REGCOMPANYA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8264,11 +7809,8 @@ static void test_MsiGetProductInfoEx(void) /* RegOwner value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_REGOWNERA, buf, &sz); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_REGOWNERA, buf, &sz); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); @@ -8278,9 +7820,7 @@ static void test_MsiGetProductInfoEx(void) /* Transforms value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_TRANSFORMSA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_TRANSFORMSA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "trans"), "Expected \"trans\", got \"%s\"\n", buf); ok(sz == 5, "Expected 5, got %lu\n", sz); @@ -8291,9 +7831,7 @@ static void test_MsiGetProductInfoEx(void) /* Language value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LANGUAGEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LANGUAGEA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "lang"), "Expected \"lang\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -8304,9 +7842,7 @@ static void test_MsiGetProductInfoEx(void) /* ProductName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTNAMEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTNAMEA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "name"), "Expected \"name\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -8319,9 +7855,7 @@ static void test_MsiGetProductInfoEx(void) /* AssignmentType value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_ASSIGNMENTTYPEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_ASSIGNMENTTYPEA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, ""), "Expected \"\", got \"%s\"\n", buf); ok(sz == 0, "Expected 0, got %lu\n", sz); @@ -8334,13 +7868,10 @@ static void test_MsiGetProductInfoEx(void) /* PackageCode value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PACKAGECODEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PACKAGECODEA, buf, &sz); 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); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); } @@ -8351,9 +7882,7 @@ static void test_MsiGetProductInfoEx(void) /* Version value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_VERSIONA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "ver"), "Expected \"ver\", got \"%s\"\n", buf); ok(sz == 3, "Expected 3, got %lu\n", sz); @@ -8364,9 +7893,7 @@ static void test_MsiGetProductInfoEx(void) /* ProductIcon value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PRODUCTICONA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PRODUCTICONA, buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "icon"), "Expected \"icon\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -8377,13 +7904,10 @@ static void test_MsiGetProductInfoEx(void) /* PackageName value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_PACKAGENAMEA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_PACKAGENAMEA, buf, &sz); todo_wine { - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(buf, "apple"), "Expected buf to be unchanged, got %s\n", buf); ok(sz == MAX_PATH, "Expected MAX_PATH, got %lu\n", sz); } @@ -8394,9 +7918,8 @@ static void test_MsiGetProductInfoEx(void) /* AuthorizedLUAApp value exists */ sz = MAX_PATH; lstrcpyA(buf, "apple"); - r = pMsiGetProductInfoExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_AUTHORIZED_LUA_APPA, buf, &sz); + r = MsiGetProductInfoExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_AUTHORIZED_LUA_APPA, + buf, &sz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(buf, "auth"), "Expected \"auth\", got \"%s\"\n", buf); ok(sz == 4, "Expected 4, got %lu\n", sz); @@ -8426,7 +7949,7 @@ static void test_MsiGetProductInfoEx(void) RegDeleteValueA(prodkey, "InstallDate"); RegDeleteValueA(prodkey, "HelpTelephone"); RegDeleteValueA(prodkey, "HelpLink"); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); LocalFree(usersid); } @@ -8783,11 +8306,11 @@ static void test_MsiGetUserInfo(void) RegDeleteValueA(props, "ProductID"); RegDeleteValueA(props, "RegCompany"); RegDeleteValueA(props, "RegOwner"); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(userprod, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userprod, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(userprod); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); /* MSIINSTALLCONTEXT_USERUNMANAGED */ @@ -8901,9 +8424,9 @@ static void test_MsiGetUserInfo(void) RegDeleteValueA(props, "ProductID"); RegDeleteValueA(props, "RegCompany"); RegDeleteValueA(props, "RegOwner"); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(userprod, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userprod, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(userprod); RegDeleteKeyA(prodkey, ""); RegCloseKey(prodkey); @@ -9024,11 +8547,11 @@ static void test_MsiGetUserInfo(void) RegDeleteValueA(props, "ProductID"); RegDeleteValueA(props, "RegCompany"); RegDeleteValueA(props, "RegOwner"); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(userprod, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userprod, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(userprod); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); LocalFree(usersid); } @@ -9188,11 +8711,11 @@ static void test_MsiOpenProduct(void) MsiCloseHandle(hprod); RegDeleteValueA(props, "ManagedLocalPackage"); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(userkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(userkey); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); /* MSIINSTALLCONTEXT_USERUNMANAGED */ @@ -9257,9 +8780,9 @@ static void test_MsiOpenProduct(void) MsiCloseHandle(hprod); RegDeleteValueA(props, "LocalPackage"); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(userkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(userkey); RegDeleteKeyA(prodkey, ""); RegCloseKey(prodkey); @@ -9349,11 +8872,11 @@ static void test_MsiOpenProduct(void) ok(hprod == 0xdeadbeef, "Expected hprod to be unchanged\n"); RegDeleteValueA(props, "LocalPackage"); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(userkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(userkey); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); DeleteFileA(msifile); @@ -9386,23 +8909,19 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, + &context, targetsid, &size); if (r == ERROR_ACCESS_DENIED) { skip("Not enough rights to perform tests\n"); return; } ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\"); @@ -9424,18 +8943,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(prodkey, "Patches", 0, NULL, 0, access, NULL, &patches, NULL); @@ -9447,18 +8961,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(patches, "Patches", 0, REG_SZ, @@ -9472,19 +8981,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, @@ -9497,19 +9000,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); patch_squashed[lstrlenA(patch_squashed) + 1] = '\0'; @@ -9524,18 +9021,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(patches, patch_squashed, 0, REG_SZ, @@ -9548,20 +9040,14 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERMANAGED, - "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERMANAGED, "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* increase the index */ lstrcpyA(patchcode, "apple"); @@ -9569,18 +9055,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 1, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 1, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* increase again */ @@ -9589,19 +9070,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 2, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 2, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* szPatchCode is NULL */ @@ -9609,72 +9084,52 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, NULL, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, NULL, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERMANAGED, - "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERMANAGED, "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* szTargetProductCode is NULL */ lstrcpyA(patchcode, "apple"); context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, NULL, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, NULL, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(context == MSIINSTALLCONTEXT_USERMANAGED, - "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(context == MSIINSTALLCONTEXT_USERMANAGED, "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* pdwTargetProductContext is NULL */ lstrcpyA(patchcode, "apple"); lstrcpyA(targetprod, "banana"); lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - NULL, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, NULL, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* szTargetUserSid is NULL */ lstrcpyA(patchcode, "apple"); lstrcpyA(targetprod, "banana"); context = 0xdeadbeef; size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, NULL, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, NULL, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERMANAGED, - "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); - ok(size == lstrlenA(expectedsid) * sizeof(WCHAR), - "Expected %d*sizeof(WCHAR), got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERMANAGED, "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); + ok(size == lstrlenA(expectedsid) * sizeof(WCHAR), "Expected %d*sizeof(WCHAR), got %lu\n", lstrlenA(expectedsid), size); /* pcchTargetUserSid is exactly the length of szTargetUserSid */ lstrcpyA(patchcode, "apple"); @@ -9682,20 +9137,14 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = lstrlenA(expectedsid); - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERMANAGED, - "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); - ok(!strncmp(targetsid, expectedsid, lstrlenA(expectedsid) - 1), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid) * sizeof(WCHAR), - "Expected %d*sizeof(WCHAR), got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERMANAGED, "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); + ok(!strncmp(targetsid, expectedsid, lstrlenA(expectedsid) - 1), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid) * sizeof(WCHAR), "Expected %d*sizeof(WCHAR), got %lu\n", lstrlenA(expectedsid), size); /* pcchTargetUserSid has enough room for NULL terminator */ lstrcpyA(patchcode, "apple"); @@ -9703,35 +9152,25 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = lstrlenA(expectedsid) + 1; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERMANAGED, - "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERMANAGED, "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* both szTargetuserSid and pcchTargetUserSid are NULL */ lstrcpyA(patchcode, "apple"); lstrcpyA(targetprod, "banana"); context = 0xdeadbeef; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, NULL, NULL); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERMANAGED, - "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERMANAGED, "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); /* MSIPATCHSTATE_SUPERSEDED */ @@ -9740,18 +9179,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); @@ -9773,18 +9207,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(udprod, "Patches", 0, NULL, 0, access, NULL, &udpatch, NULL); @@ -9796,18 +9225,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(udpatch, patch_squashed, 0, NULL, 0, access, NULL, &hpatch, NULL); @@ -9819,19 +9243,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); data = MSIPATCHSTATE_SUPERSEDED; @@ -9845,20 +9263,14 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERMANAGED, - "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERMANAGED, "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* MSIPATCHSTATE_OBSOLETED */ @@ -9867,18 +9279,13 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_OBSOLETED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_OBSOLETED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); data = MSIPATCHSTATE_OBSOLETED; @@ -9892,20 +9299,14 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_OBSOLETED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_OBSOLETED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERMANAGED, - "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERMANAGED, "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* MSIPATCHSTATE_REGISTERED */ /* FIXME */ @@ -9918,20 +9319,14 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_ALL, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_ALL, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERMANAGED, - "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERMANAGED, "Expected MSIINSTALLCONTEXT_USERMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* same patch in multiple places, only one is enumerated */ lstrcpyA(patchcode, "apple"); @@ -9939,31 +9334,26 @@ static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSIPATCHSTATE_ALL, 1, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_ALL, + 1, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); RegDeleteValueA(hpatch, "State"); - delete_key(hpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hpatch); - delete_key(udpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udpatch); - delete_key(udprod, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udprod, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udprod); RegDeleteValueA(patches, "Patches"); - delete_key(patches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(patches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(patches); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); } @@ -9994,18 +9384,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Installer\\Products\\"); @@ -10020,18 +9405,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyA(prodkey, "Patches", &patches); @@ -10043,18 +9423,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(patches, "Patches", 0, REG_SZ, @@ -10068,19 +9443,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, @@ -10093,19 +9462,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); patch_squashed[lstrlenA(patch_squashed) + 1] = 0; @@ -10120,20 +9483,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_NO_MORE_ITEMS || - broken(r == ERROR_BAD_CONFIGURATION), /* Windows Installer 3.0 */ - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(patches, patch_squashed, 0, REG_SZ, @@ -10146,20 +9502,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_NO_MORE_ITEMS || - broken(r == ERROR_BAD_CONFIGURATION), /* Windows Installer 3.0 */ - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); @@ -10181,20 +9530,14 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERUNMANAGED, - "Expected MSIINSTALLCONTEXT_USERUNMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERUNMANAGED, "Expected MSIINSTALLCONTEXT_USERUNMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* MSIPATCHSTATE_SUPERSEDED */ @@ -10203,18 +9546,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); @@ -10236,18 +9574,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(udprod, "Patches", 0, NULL, 0, access, NULL, &udpatch, NULL); @@ -10259,18 +9592,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(udpatch, patch_squashed, 0, NULL, 0, access, NULL, &hpatch, NULL); @@ -10282,19 +9610,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); data = MSIPATCHSTATE_SUPERSEDED; @@ -10308,20 +9630,14 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERUNMANAGED, - "Expected MSIINSTALLCONTEXT_USERUNMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERUNMANAGED, "Expected MSIINSTALLCONTEXT_USERUNMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* MSIPATCHSTATE_OBSOLETED */ @@ -10330,18 +9646,13 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_OBSOLETED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_OBSOLETED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); data = MSIPATCHSTATE_OBSOLETED; @@ -10355,20 +9666,14 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_OBSOLETED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_OBSOLETED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERUNMANAGED, - "Expected MSIINSTALLCONTEXT_USERUNMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERUNMANAGED, "Expected MSIINSTALLCONTEXT_USERUNMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* MSIPATCHSTATE_REGISTERED */ /* FIXME */ @@ -10381,20 +9686,14 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_ALL, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_ALL, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_USERUNMANAGED, - "Expected MSIINSTALLCONTEXT_USERUNMANAGED, got %d\n", context); - ok(!lstrcmpA(targetsid, expectedsid), - "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); - ok(size == lstrlenA(expectedsid), - "Expected %d, got %lu\n", lstrlenA(expectedsid), size); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_USERUNMANAGED, "Expected MSIINSTALLCONTEXT_USERUNMANAGED, got %d\n", context); + ok(!lstrcmpA(targetsid, expectedsid), "Expected \"%s\", got \"%s\"\n", expectedsid, targetsid); + ok(size == lstrlenA(expectedsid), "Expected %d, got %lu\n", lstrlenA(expectedsid), size); /* same patch in multiple places, only one is enumerated */ lstrcpyA(patchcode, "apple"); @@ -10402,28 +9701,23 @@ static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expecteds context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_ALL, 1, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_ALL, + 1, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); RegDeleteValueA(hpatch, "State"); - delete_key(hpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hpatch); - delete_key(udpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udpatch); - delete_key(udprod, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udprod, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udprod); - delete_key(userkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(userkey); RegDeleteValueA(patches, patch_squashed); RegDeleteValueA(patches, "Patches"); @@ -10462,18 +9756,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Classes\\Installer\\Products\\"); @@ -10493,18 +9782,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(prodkey, "Patches", 0, NULL, 0, access, NULL, &patches, NULL); @@ -10516,18 +9800,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(patches, "Patches", 0, REG_SZ, @@ -10541,19 +9820,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, @@ -10566,19 +9839,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); patch_squashed[lstrlenA(patch_squashed) + 1] = '\0'; @@ -10593,18 +9860,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(patches, patch_squashed, 0, REG_SZ, @@ -10617,16 +9879,12 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_MACHINE, - "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_MACHINE, "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); ok(!lstrcmpA(targetsid, ""), "Expected \"\", got \"%s\"\n", targetsid); ok(size == 0, "Expected 0, got %lu\n", size); @@ -10648,18 +9906,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_MACHINE, - "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); - ok(!lstrcmpA(targetsid, ""), - "Expected \"\", got \"%s\"\n", targetsid); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_MACHINE, "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); + ok(!lstrcmpA(targetsid, ""), "Expected \"\", got \"%s\"\n", targetsid); ok(size == 0, "Expected 0, got %lu\n", size); res = RegCreateKeyExA(udprod, "Patches", 0, NULL, 0, access, NULL, &udpatch, NULL); @@ -10671,18 +9924,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_MACHINE, - "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); - ok(!lstrcmpA(targetsid, ""), - "Expected \"\", got \"%s\"\n", targetsid); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_MACHINE, "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); + ok(!lstrcmpA(targetsid, ""), "Expected \"\", got \"%s\"\n", targetsid); ok(size == 0, "Expected 0, got %lu\n", size); res = RegCreateKeyExA(udpatch, patch_squashed, 0, NULL, 0, access, NULL, &hpatch, NULL); @@ -10694,18 +9942,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); data = MSIPATCHSTATE_APPLIED; @@ -10719,18 +9962,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_APPLIED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_MACHINE, - "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); - ok(!lstrcmpA(targetsid, ""), - "Expected \"\", got \"%s\"\n", targetsid); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_MACHINE, "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); + ok(!lstrcmpA(targetsid, ""), "Expected \"\", got \"%s\"\n", targetsid); ok(size == 0, "Expected 0, got %lu\n", size); /* MSIPATCHSTATE_SUPERSEDED */ @@ -10740,18 +9978,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); data = MSIPATCHSTATE_SUPERSEDED; @@ -10765,16 +9998,12 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_SUPERSEDED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_SUPERSEDED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_MACHINE, - "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_MACHINE, "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); ok(!lstrcmpA(targetsid, ""), "Expected \"\", got \"%s\"\n", targetsid); ok(size == 0, "Expected 0, got %lu\n", size); @@ -10785,18 +10014,13 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_OBSOLETED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_OBSOLETED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); data = MSIPATCHSTATE_OBSOLETED; @@ -10810,16 +10034,12 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_OBSOLETED, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_OBSOLETED, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_MACHINE, - "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_MACHINE, "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); ok(!lstrcmpA(targetsid, ""), "Expected \"\", got \"%s\"\n", targetsid); ok(size == 0, "Expected 0, got %lu\n", size); @@ -10834,16 +10054,12 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_ALL, 0, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_ALL, + 0, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patchcode, patch), - "Expected \"%s\", got \"%s\"\n", patch, patchcode); - ok(!lstrcmpA(targetprod, prodcode), - "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); - ok(context == MSIINSTALLCONTEXT_MACHINE, - "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); + ok(!lstrcmpA(patchcode, patch), "Expected \"%s\", got \"%s\"\n", patch, patchcode); + ok(!lstrcmpA(targetprod, prodcode), "Expected \"%s\", got \"%s\"\n", prodcode, targetprod); + ok(context == MSIINSTALLCONTEXT_MACHINE, "Expected MSIINSTALLCONTEXT_MACHINE, got %d\n", context); ok(!lstrcmpA(targetsid, ""), "Expected \"\", got \"%s\"\n", targetsid); ok(size == 0, "Expected 0, got %lu\n", size); @@ -10853,34 +10069,29 @@ static void test_MsiEnumPatchesEx_machine(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_ALL, 1, patchcode, targetprod, - &context, targetsid, &size); + r = MsiEnumPatchesExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_ALL, + 1, patchcode, targetprod, &context, targetsid, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - delete_key(hpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hpatch, "", access & KEY_WOW64_64KEY, 0); RegDeleteValueA(hpatch, "State"); RegCloseKey(hpatch); - delete_key(udpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udpatch); - delete_key(udprod, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udprod, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udprod); done: RegDeleteValueA(patches, patch_squashed); RegDeleteValueA(patches, "Patches"); - delete_key(patches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(patches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(patches); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); } @@ -10894,12 +10105,6 @@ static void test_MsiEnumPatchesEx(void) DWORD size; UINT r; - if (!pMsiEnumPatchesExA) - { - win_skip("MsiEnumPatchesExA not implemented\n"); - return; - } - create_test_guid(prodcode, prod_squashed); usersid = get_user_sid(); @@ -10909,19 +10114,13 @@ static void test_MsiEnumPatchesEx(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_ALL, 0, patchcode, targetprod, &context, - targetsid, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_ALL, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* garbage szProductCode */ @@ -10930,19 +10129,13 @@ static void test_MsiEnumPatchesEx(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_ALL, 0, patchcode, targetprod, &context, - targetsid, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_ALL, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* guid without brackets */ @@ -10951,20 +10144,13 @@ static void test_MsiEnumPatchesEx(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA("6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D", usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_ALL, - 0, patchcode, targetprod, &context, - targetsid, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA("6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSIPATCHSTATE_ALL, 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* guid with brackets */ @@ -10973,20 +10159,13 @@ static void test_MsiEnumPatchesEx(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA("{6700E8CF-95AB-4D9C-BC2C-15840DDA7A5D}", usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_ALL, - 0, patchcode, targetprod, &context, - targetsid, &size); - ok(r == ERROR_NO_MORE_ITEMS, - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA("{6700E8CF-95AB-4D9C-BC2C-15840DDA7A5D}", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSIPATCHSTATE_ALL, 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* szUserSid is S-1-5-18 */ @@ -10995,20 +10174,13 @@ static void test_MsiEnumPatchesEx(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, "S-1-5-18", - MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_ALL, - 0, patchcode, targetprod, &context, - targetsid, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, "S-1-5-18", MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_ALL, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* dwContext is MSIINSTALLCONTEXT_MACHINE, but szUserSid is non-NULL */ @@ -11017,19 +10189,13 @@ static void test_MsiEnumPatchesEx(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_MACHINE, - MSIPATCHSTATE_ALL, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_ALL, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* dwContext is out of bounds */ @@ -11038,19 +10204,13 @@ static void test_MsiEnumPatchesEx(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, 0, - MSIPATCHSTATE_ALL, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, 0, MSIPATCHSTATE_ALL, 0, patchcode, targetprod, + &context, targetsid, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* dwContext is out of bounds */ @@ -11059,19 +10219,13 @@ static void test_MsiEnumPatchesEx(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_ALL + 1, - MSIPATCHSTATE_ALL, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_ALL + 1, MSIPATCHSTATE_ALL, 0, patchcode, + targetprod, &context, targetsid, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* dwFilter is out of bounds */ @@ -11080,19 +10234,13 @@ static void test_MsiEnumPatchesEx(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_INVALID, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_INVALID, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* dwFilter is out of bounds */ @@ -11101,19 +10249,13 @@ static void test_MsiEnumPatchesEx(void) context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); size = MAX_PATH; - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_ALL + 1, 0, patchcode, targetprod, - &context, targetsid, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_ALL + 1, + 0, patchcode, targetprod, &context, targetsid, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* pcchTargetUserSid is NULL while szTargetUserSid is non-NULL */ @@ -11121,19 +10263,13 @@ static void test_MsiEnumPatchesEx(void) lstrcpyA(targetprod, "banana"); context = 0xdeadbeef; lstrcpyA(targetsid, "kiwi"); - r = pMsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSIPATCHSTATE_ALL, 0, patchcode, targetprod, - &context, targetsid, NULL); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patchcode, "apple"), - "Expected patchcode to be unchanged, got %s\n", patchcode); - ok(!lstrcmpA(targetprod, "banana"), - "Expected targetprod to be unchanged, got %s\n", targetprod); - ok(context == 0xdeadbeef, - "Expected context to be unchanged, got %d\n", context); - ok(!lstrcmpA(targetsid, "kiwi"), - "Expected targetsid to be unchanged, got %s\n", targetsid); + r = MsiEnumPatchesExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_ALL, + 0, patchcode, targetprod, &context, targetsid, NULL); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patchcode, "apple"), "Expected patchcode to be unchanged, got %s\n", patchcode); + ok(!lstrcmpA(targetprod, "banana"), "Expected targetprod to be unchanged, got %s\n", targetprod); + ok(context == 0xdeadbeef, "Expected context to be unchanged, got %d\n", context); + ok(!lstrcmpA(targetsid, "kiwi"), "Expected targetsid to be unchanged, got %s\n", targetsid); test_MsiEnumPatchesEx_usermanaged(usersid, usersid); test_MsiEnumPatchesEx_usermanaged(NULL, usersid); @@ -11296,18 +10432,12 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_NO_MORE_ITEMS || - broken(r == ERROR_FILE_NOT_FOUND), /* Windows Installer < 3.0 */ - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - res = RegSetValueExA(patches, "Patches", 0, REG_SZ, - (const BYTE *)patch_squashed, - lstrlenA(patch_squashed) + 1); + res = RegSetValueExA(patches, "Patches", 0, REG_SZ, (const BYTE *)patch_squashed, lstrlenA(patch_squashed) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Patches value exists, is not REG_MULTI_SZ */ @@ -11315,17 +10445,12 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_BAD_CONFIGURATION || - broken(r == ERROR_SUCCESS), /* Windows Installer < 3.0 */ - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, - (const BYTE *)"a\0b\0c\0\0", 7); + res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, (const BYTE *)"a\0b\0c\0\0", 7); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Patches value exists, is not a squashed guid */ @@ -11333,18 +10458,13 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); patch_squashed[lstrlenA(patch_squashed) + 1] = '\0'; - res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, - (const BYTE *)patch_squashed, - lstrlenA(patch_squashed) + 2); + res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, (const BYTE *)patch_squashed, lstrlenA(patch_squashed) + 2); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Patches value exists */ @@ -11352,18 +10472,12 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_NO_MORE_ITEMS || - broken(r == ERROR_FILE_NOT_FOUND), /* Windows Installer < 3.0 */ - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple") || - broken(!lstrcmpA(patch, patchcode)), /* Windows Installer < 3.0 */ - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - res = RegSetValueExA(patches, patch_squashed, 0, REG_SZ, - (const BYTE *)"whatever", 9); + res = RegSetValueExA(patches, patch_squashed, 0, REG_SZ, (const BYTE *)"whatever", 9); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* patch squashed value exists */ @@ -11372,42 +10486,33 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patch, patchcode), - "Expected \"%s\", got \"%s\"\n", patchcode, patch); - ok(!lstrcmpA(transforms, "whatever"), - "Expected \"whatever\", got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, patchcode), "Expected \"%s\", got \"%s\"\n", patchcode, patch); + ok(!lstrcmpA(transforms, "whatever"), "Expected \"whatever\", got \"%s\"\n", transforms); ok(size == 8 || size == MAX_PATH, "Expected 8 or MAX_PATH, got %lu\n", size); /* lpPatchBuf is NULL */ size = MAX_PATH; lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, NULL, transforms, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* lpTransformsBuf is NULL, pcchTransformsBuf is not */ size = MAX_PATH; lstrcpyA(patch, "apple"); r = MsiEnumPatchesA(prodcode, 0, patch, NULL, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* pcchTransformsBuf is NULL, lpTransformsBuf is not */ lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, NULL); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); /* pcchTransformsBuf is too small */ size = 6; @@ -11415,11 +10520,8 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); - ok(!lstrcmpA(patch, patchcode), - "Expected \"%s\", got \"%s\"\n", patchcode, patch); - ok(!lstrcmpA(transforms, "whate") || - broken(!lstrcmpA(transforms, "banana")), /* Windows Installer < 3.0 */ - "Expected \"whate\", got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, patchcode), "Expected \"%s\", got \"%s\"\n", patchcode, patch); + ok(!lstrcmpA(transforms, "whate"), "Expected \"whate\", got \"%s\"\n", transforms); ok(size == 8 || size == 16, "Expected 8 or 16, got %lu\n", size); /* increase the index */ @@ -11428,10 +10530,8 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 1, patch, transforms, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* increase again */ @@ -11440,16 +10540,14 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 2, patch, transforms, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); RegDeleteValueA(patches, "Patches"); - delete_key(patches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(patches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(patches); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); /* MSIINSTALLCONTEXT_USERUNMANAGED */ @@ -11458,12 +10556,9 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Installer\\Products\\"); @@ -11478,10 +10573,8 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyA(prodkey, "Patches", &patches); @@ -11492,18 +10585,12 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_NO_MORE_ITEMS || - broken(r == ERROR_FILE_NOT_FOUND), /* Windows Installer < 3.0 */ - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - res = RegSetValueExA(patches, "Patches", 0, REG_SZ, - (const BYTE *)patch_squashed, - lstrlenA(patch_squashed) + 1); + res = RegSetValueExA(patches, "Patches", 0, REG_SZ, (const BYTE *)patch_squashed, lstrlenA(patch_squashed) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Patches value exists, is not REG_MULTI_SZ */ @@ -11511,17 +10598,12 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_BAD_CONFIGURATION || - broken(r == ERROR_SUCCESS), /* Windows Installer < 3.0 */ - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, - (const BYTE *)"a\0b\0c\0\0", 7); + res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, (const BYTE *)"a\0b\0c\0\0", 7); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Patches value exists, is not a squashed guid */ @@ -11529,18 +10611,13 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); patch_squashed[lstrlenA(patch_squashed) + 1] = '\0'; - res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, - (const BYTE *)patch_squashed, - lstrlenA(patch_squashed) + 2); + res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, (const BYTE *)patch_squashed, lstrlenA(patch_squashed) + 2); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Patches value exists */ @@ -11548,18 +10625,12 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_NO_MORE_ITEMS || - broken(r == ERROR_FILE_NOT_FOUND), /* Windows Installer < 3.0 */ - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple") || - broken(!lstrcmpA(patch, patchcode)), /* Windows Installer < 3.0 */ - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - res = RegSetValueExA(patches, patch_squashed, 0, REG_SZ, - (const BYTE *)"whatever", 9); + res = RegSetValueExA(patches, patch_squashed, 0, REG_SZ, (const BYTE *)"whatever", 9); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* patch code value exists */ @@ -11567,15 +10638,9 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_NO_MORE_ITEMS || - broken(r == ERROR_SUCCESS), /* Windows Installer < 3.0 */ - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple") || - broken(!lstrcmpA(patch, patchcode)), /* Windows Installer < 3.0 */ - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana") || - broken(!lstrcmpA(transforms, "whatever")), /* Windows Installer < 3.0 */ - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); @@ -11584,6 +10649,12 @@ static void test_MsiEnumPatches(void) lstrcatA(keypath, patch_squashed); res = RegCreateKeyExA(HKEY_LOCAL_MACHINE, keypath, 0, NULL, 0, access, NULL, &userkey, NULL); + if (res == ERROR_ACCESS_DENIED) + { + skip("Not enough rights to perform tests\n"); + LocalFree(usersid); + return; + } ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* userdata patch key exists */ @@ -11592,13 +10663,11 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patch, patchcode), - "Expected \"%s\", got \"%s\"\n", patchcode, patch); - ok(!lstrcmpA(transforms, "whatever"), - "Expected \"whatever\", got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, patchcode), "Expected \"%s\", got \"%s\"\n", patchcode, patch); + ok(!lstrcmpA(transforms, "whatever"), "Expected \"whatever\", got \"%s\"\n", transforms); ok(size == 8 || size == MAX_PATH, "Expected 8 or MAX_PATH, got %lu\n", size); - delete_key(userkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(userkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(userkey); RegDeleteValueA(patches, patch_squashed); RegDeleteValueA(patches, "Patches"); @@ -11613,12 +10682,9 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Classes\\Installer\\Products\\"); @@ -11639,10 +10705,8 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(prodkey, "Patches", 0, NULL, 0, access, NULL, &patches, NULL); @@ -11653,18 +10717,12 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_NO_MORE_ITEMS || - broken(r == ERROR_FILE_NOT_FOUND), /* Windows Installer < 3.0 */ - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - res = RegSetValueExA(patches, "Patches", 0, REG_SZ, - (const BYTE *)patch_squashed, - lstrlenA(patch_squashed) + 1); + res = RegSetValueExA(patches, "Patches", 0, REG_SZ, (const BYTE *)patch_squashed, lstrlenA(patch_squashed) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Patches value exists, is not REG_MULTI_SZ */ @@ -11672,17 +10730,12 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_BAD_CONFIGURATION || - broken(r == ERROR_SUCCESS), /* Windows Installer < 3.0 */ - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, - (const BYTE *)"a\0b\0c\0\0", 7); + res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, (const BYTE *)"a\0b\0c\0\0", 7); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Patches value exists, is not a squashed guid */ @@ -11690,18 +10743,13 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); - ok(!lstrcmpA(patch, "apple"), - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); patch_squashed[lstrlenA(patch_squashed) + 1] = '\0'; - res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, - (const BYTE *)patch_squashed, - lstrlenA(patch_squashed) + 2); + res = RegSetValueExA(patches, "Patches", 0, REG_MULTI_SZ, (const BYTE *)patch_squashed, lstrlenA(patch_squashed) + 2); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Patches value exists */ @@ -11709,18 +10757,12 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_NO_MORE_ITEMS || - broken(r == ERROR_FILE_NOT_FOUND), /* Windows Installer < 3.0 */ - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple") || - broken(!lstrcmpA(patch, patchcode)), /* Windows Installer < 3.0 */ - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana"), - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - res = RegSetValueExA(patches, patch_squashed, 0, REG_SZ, - (const BYTE *)"whatever", 9); + res = RegSetValueExA(patches, patch_squashed, 0, REG_SZ, (const BYTE *)"whatever", 9); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* patch code value exists */ @@ -11729,10 +10771,8 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patch, patchcode), - "Expected \"%s\", got \"%s\"\n", patchcode, patch); - ok(!lstrcmpA(transforms, "whatever"), - "Expected \"whatever\", got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, patchcode), "Expected \"%s\", got \"%s\"\n", patchcode, patch); + ok(!lstrcmpA(transforms, "whatever"), "Expected \"whatever\", got \"%s\"\n", transforms); ok(size == 8 || size == MAX_PATH, "Expected 8 or MAX_PATH, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\"); @@ -11748,10 +10788,8 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patch, patchcode), - "Expected \"%s\", got \"%s\"\n", patchcode, patch); - ok(!lstrcmpA(transforms, "whatever"), - "Expected \"whatever\", got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, patchcode), "Expected \"%s\", got \"%s\"\n", patchcode, patch); + ok(!lstrcmpA(transforms, "whatever"), "Expected \"whatever\", got \"%s\"\n", transforms); ok(size == 8 || size == MAX_PATH, "Expected 8 or MAX_PATH, got %lu\n", size); res = RegCreateKeyExA(udprod, "Patches", 0, NULL, 0, access, NULL, &udpatch, NULL); @@ -11763,10 +10801,8 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patch, patchcode), - "Expected \"%s\", got \"%s\"\n", patchcode, patch); - ok(!lstrcmpA(transforms, "whatever"), - "Expected \"whatever\", got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, patchcode), "Expected \"%s\", got \"%s\"\n", patchcode, patch); + ok(!lstrcmpA(transforms, "whatever"), "Expected \"whatever\", got \"%s\"\n", transforms); ok(size == 8 || size == MAX_PATH, "Expected 8 or MAX_PATH, got %lu\n", size); res = RegCreateKeyExA(udpatch, patch_squashed, 0, NULL, 0, access, NULL, &hpatch, NULL); @@ -11777,20 +10813,13 @@ static void test_MsiEnumPatches(void) lstrcpyA(patch, "apple"); lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); - ok(r == ERROR_NO_MORE_ITEMS || - broken(r == ERROR_SUCCESS), /* Windows Installer < 3.0 */ - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); - ok(!lstrcmpA(patch, "apple") || - broken(!lstrcmpA(patch, patchcode)), /* Windows Installer < 3.0 */ - "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); - ok(!lstrcmpA(transforms, "banana") || - broken(!lstrcmpA(transforms, "whatever")), /* Windows Installer < 3.0 */ - "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + ok(!lstrcmpA(patch, "apple"), "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch); + ok(!lstrcmpA(transforms, "banana"), "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); data = MSIPATCHSTATE_APPLIED; - res = RegSetValueExA(hpatch, "State", 0, REG_DWORD, - (const BYTE *)&data, sizeof(DWORD)); + res = RegSetValueExA(hpatch, "State", 0, REG_DWORD, (const BYTE *)&data, sizeof(DWORD)); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* State value exists */ @@ -11799,10 +10828,8 @@ static void test_MsiEnumPatches(void) lstrcpyA(transforms, "banana"); r = MsiEnumPatchesA(prodcode, 0, patch, transforms, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(patch, patchcode), - "Expected \"%s\", got \"%s\"\n", patchcode, patch); - ok(!lstrcmpA(transforms, "whatever"), - "Expected \"whatever\", got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, patchcode), "Expected \"%s\", got \"%s\"\n", patchcode, patch); + ok(!lstrcmpA(transforms, "whatever"), "Expected \"whatever\", got \"%s\"\n", transforms); ok(size == 8 || size == MAX_PATH, "Expected 8 or MAX_PATH, got %lu\n", size); /* now duplicate some of the tests for the W version */ @@ -11816,11 +10843,8 @@ static void test_MsiEnumPatches(void) ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); WideCharToMultiByte( CP_ACP, 0, patchW, -1, patch, MAX_PATH, NULL, NULL ); WideCharToMultiByte( CP_ACP, 0, transformsW, -1, transforms, MAX_PATH, NULL, NULL ); - ok(!lstrcmpA(patch, patchcode), - "Expected \"%s\", got \"%s\"\n", patchcode, patch); - ok(!lstrcmpA(transforms, "whate") || - broken(!lstrcmpA(transforms, "banana")), /* Windows Installer < 3.0 */ - "Expected \"whate\", got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, patchcode), "Expected \"%s\", got \"%s\"\n", patchcode, patch); + ok(!lstrcmpA(transforms, "whate"), "Expected \"whate\", got \"%s\"\n", transforms); ok(size == 8, "Expected 8, got %lu\n", size); /* patch code value exists */ @@ -11831,24 +10855,22 @@ static void test_MsiEnumPatches(void) ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); WideCharToMultiByte( CP_ACP, 0, patchW, -1, patch, MAX_PATH, NULL, NULL ); WideCharToMultiByte( CP_ACP, 0, transformsW, -1, transforms, MAX_PATH, NULL, NULL ); - ok(!lstrcmpA(patch, patchcode), - "Expected \"%s\", got \"%s\"\n", patchcode, patch); - ok(!lstrcmpA(transforms, "whatever"), - "Expected \"whatever\", got \"%s\"\n", transforms); + ok(!lstrcmpA(patch, patchcode), "Expected \"%s\", got \"%s\"\n", patchcode, patch); + ok(!lstrcmpA(transforms, "whatever"), "Expected \"whatever\", got \"%s\"\n", transforms); ok(size == 8 || size == MAX_PATH, "Expected 8 or MAX_PATH, got %lu\n", size); RegDeleteValueA(patches, patch_squashed); RegDeleteValueA(patches, "Patches"); - delete_key(patches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(patches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(patches); RegDeleteValueA(hpatch, "State"); - delete_key(hpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hpatch); - delete_key(udpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udpatch); - delete_key(udprod, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udprod, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udprod); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); LocalFree(usersid); } @@ -11866,12 +10888,6 @@ static void test_MsiGetPatchInfoEx(void) UINT r; REGSAM access = KEY_ALL_ACCESS; - if (!pMsiGetPatchInfoExA) - { - win_skip("MsiGetPatchInfoEx not implemented\n"); - return; - } - create_test_guid(prodcode, prod_squashed); create_test_guid(patchcode, patch_squashed); usersid = get_user_sid(); @@ -11882,237 +10898,181 @@ static void test_MsiGetPatchInfoEx(void) /* NULL szPatchCode */ lstrcpyA(val, "apple"); size = MAX_PATH; - r = pMsiGetPatchInfoExA(NULL, prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(NULL, prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* empty szPatchCode */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA("", prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA("", prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* garbage szPatchCode */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA("garbage", prodcode, NULL, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA("garbage", prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* guid without brackets */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA("6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D", prodcode, - NULL, MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA("6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D", prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, + INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* guid with brackets */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA("{6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D}", prodcode, - NULL, MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA("{6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D}", prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, + INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* same length as guid, but random */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA("A938G02JF-2NF3N93-VN3-2NNF-3KGKALDNF93", prodcode, - NULL, MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA("A938G02JF-2NF3N93-VN3-2NNF-3KGKALDNF93", prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, + INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* NULL szProductCode */ lstrcpyA(val, "apple"); size = MAX_PATH; - r = pMsiGetPatchInfoExA(patchcode, NULL, NULL, MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, NULL, NULL, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* empty szProductCode */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, "", NULL, MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, "", NULL, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* garbage szProductCode */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, "garbage", NULL, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, "garbage", NULL, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* guid without brackets */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, "6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D", - NULL, MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, "6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D", NULL, MSIINSTALLCONTEXT_USERMANAGED, + INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* guid with brackets */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, "{6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D}", - NULL, MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, "{6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D}", NULL, MSIINSTALLCONTEXT_USERMANAGED, + INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* same length as guid, but random */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, "A938G02JF-2NF3N93-VN3-2NNF-3KGKALDNF93", - NULL, MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, "A938G02JF-2NF3N93-VN3-2NNF-3KGKALDNF93", NULL, MSIINSTALLCONTEXT_USERMANAGED, + INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* szUserSid cannot be S-1-5-18 for MSIINSTALLCONTEXT_USERMANAGED */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, "S-1-5-18", - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, "S-1-5-18", MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* szUserSid cannot be S-1-5-18 for MSIINSTALLCONTEXT_USERUNMANAGED */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, "S-1-5-18", - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, "S-1-5-18", MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* szUserSid cannot be S-1-5-18 for MSIINSTALLCONTEXT_MACHINE */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, "S-1-5-18", - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, "S-1-5-18", MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* szUserSid must be NULL for MSIINSTALLCONTEXT_MACHINE */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* dwContext is out of range */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_NONE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_NONE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* dwContext is out of range */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_ALL, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_ALL, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* dwContext is invalid */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, 3, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, 3, INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); /* MSIINSTALLCONTEXT_USERMANAGED */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); @@ -12132,13 +11092,10 @@ static void test_MsiGetPatchInfoEx(void) /* local UserData product key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(udprod, "InstallProperties", 0, NULL, 0, access, NULL, &props, NULL); @@ -12147,12 +11104,10 @@ static void test_MsiGetPatchInfoEx(void) /* InstallProperties key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(udprod, "Patches", 0, NULL, 0, access, NULL, &patches, NULL); @@ -12161,12 +11116,10 @@ static void test_MsiGetPatchInfoEx(void) /* Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCHA, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(patches, patch_squashed, 0, NULL, 0, access, NULL, &hpatch, NULL); @@ -12175,12 +11128,10 @@ static void test_MsiGetPatchInfoEx(void) /* Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\"); @@ -12194,12 +11145,10 @@ static void test_MsiGetPatchInfoEx(void) /* managed product key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(prodkey, "Patches", 0, NULL, 0, access, NULL, &prodpatches, NULL); @@ -12208,27 +11157,22 @@ static void test_MsiGetPatchInfoEx(void) /* Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); - res = RegSetValueExA(prodpatches, patch_squashed, 0, REG_SZ, - (const BYTE *)"transforms", 11); + res = RegSetValueExA(prodpatches, patch_squashed, 0, REG_SZ, (const BYTE *)"transforms", 11); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* specific patch value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); @@ -12242,132 +11186,114 @@ static void test_MsiGetPatchInfoEx(void) /* UserData Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, ""), "Expected \"\", got \"%s\"\n", val); ok(size == 0, "Expected 0, got %lu\n", size); - res = RegSetValueExA(udpatch, "ManagedLocalPackage", 0, REG_SZ, - (const BYTE *)"pack", 5); + res = RegSetValueExA(udpatch, "ManagedLocalPackage", 0, REG_SZ, (const BYTE *)"pack", 5); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* ManagedLocalPatch value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "pack"), "Expected \"pack\", got \"%s\"\n", val); ok(size == 4, "Expected 4, got %lu\n", size); size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_TRANSFORMSA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_TRANSFORMSA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "transforms"), "Expected \"transforms\", got \"%s\"\n", val); ok(size == 10, "Expected 10, got %lu\n", size); - res = RegSetValueExA(hpatch, "Installed", 0, REG_SZ, - (const BYTE *)"mydate", 7); + res = RegSetValueExA(hpatch, "Installed", 0, REG_SZ, (const BYTE *)"mydate", 7); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Installed value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_INSTALLDATEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_INSTALLDATEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "mydate"), "Expected \"mydate\", got \"%s\"\n", val); ok(size == 6, "Expected 6, got %lu\n", size); - res = RegSetValueExA(hpatch, "Uninstallable", 0, REG_SZ, - (const BYTE *)"yes", 4); + res = RegSetValueExA(hpatch, "Uninstallable", 0, REG_SZ, (const BYTE *)"yes", 4); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Uninstallable value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_UNINSTALLABLEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_UNINSTALLABLEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "yes"), "Expected \"yes\", got \"%s\"\n", val); ok(size == 3, "Expected 3, got %lu\n", size); - res = RegSetValueExA(hpatch, "State", 0, REG_SZ, - (const BYTE *)"good", 5); + res = RegSetValueExA(hpatch, "State", 0, REG_SZ, (const BYTE *)"good", 5); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* State value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PATCHSTATEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PATCHSTATEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "good"), "Expected \"good\", got \"%s\"\n", val); ok(size == 4, "Expected 4, got %lu\n", size); size = 1; - res = RegSetValueExA(hpatch, "State", 0, REG_DWORD, - (const BYTE *)&size, sizeof(DWORD)); + res = RegSetValueExA(hpatch, "State", 0, REG_DWORD, (const BYTE *)&size, sizeof(DWORD)); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* State value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_PATCHSTATEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_PATCHSTATEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "1"), "Expected \"1\", got \"%s\"\n", val); ok(size == 1, "Expected 1, got %lu\n", size); size = 1; - res = RegSetValueExA(hpatch, "Uninstallable", 0, REG_DWORD, - (const BYTE *)&size, sizeof(DWORD)); + res = RegSetValueExA(hpatch, "Uninstallable", 0, REG_DWORD, (const BYTE *)&size, sizeof(DWORD)); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* Uninstallable value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_UNINSTALLABLEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_UNINSTALLABLEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "1"), "Expected \"1\", got \"%s\"\n", val); ok(size == 1, "Expected 1, got %lu\n", size); - res = RegSetValueExA(hpatch, "DisplayName", 0, REG_SZ, - (const BYTE *)"display", 8); + res = RegSetValueExA(hpatch, "DisplayName", 0, REG_SZ, (const BYTE *)"display", 8); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* DisplayName value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_DISPLAYNAMEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_DISPLAYNAMEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "display"), "Expected \"display\", got \"%s\"\n", val); ok(size == 7, "Expected 7, got %lu\n", size); - res = RegSetValueExA(hpatch, "MoreInfoURL", 0, REG_SZ, - (const BYTE *)"moreinfo", 9); + res = RegSetValueExA(hpatch, "MoreInfoURL", 0, REG_SZ, (const BYTE *)"moreinfo", 9); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* MoreInfoURL value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_MOREINFOURLA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_MOREINFOURLA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "moreinfo"), "Expected \"moreinfo\", got \"%s\"\n", val); ok(size == 8, "Expected 8, got %lu\n", size); @@ -12375,71 +11301,59 @@ static void test_MsiGetPatchInfoEx(void) /* szProperty is invalid */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - "IDontExist", val, &size); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, "IDontExist", val, &size); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(!lstrcmpA(val, "apple"), "Expected \"apple\", got \"%s\"\n", val); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); /* lpValue is NULL, while pcchValue is non-NULL */ size = MAX_PATH; - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_MOREINFOURLA, NULL, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_MOREINFOURLA, + NULL, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(size == 16, "Expected 16, got %lu\n", size); /* pcchValue is NULL, while lpValue is non-NULL */ lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_MOREINFOURLA, val, NULL); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_MOREINFOURLA, + val, NULL); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(val, "apple"), "Expected \"apple\", got \"%s\"\n", val); /* both lpValue and pcchValue are NULL */ - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_MOREINFOURLA, NULL, NULL); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_MOREINFOURLA, + NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* pcchValue doesn't have enough room for NULL terminator */ size = 8; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_MOREINFOURLA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_MOREINFOURLA, + val, &size); ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); - ok(!lstrcmpA(val, "moreinf"), - "Expected \"moreinf\", got \"%s\"\n", val); + ok(!lstrcmpA(val, "moreinf"), "Expected \"moreinf\", got \"%s\"\n", val); ok(size == 16, "Expected 16, got %lu\n", size); /* pcchValue has exactly enough room for NULL terminator */ size = 9; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_MOREINFOURLA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_MOREINFOURLA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(val, "moreinfo"), - "Expected \"moreinfo\", got \"%s\"\n", val); + ok(!lstrcmpA(val, "moreinfo"), "Expected \"moreinfo\", got \"%s\"\n", val); ok(size == 8, "Expected 8, got %lu\n", size); /* pcchValue is too small, lpValue is NULL */ size = 0; - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_MOREINFOURLA, NULL, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_MOREINFOURLA, + NULL, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(size == 16, "Expected 16, got %lu\n", size); RegDeleteValueA(prodpatches, patch_squashed); - delete_key(prodpatches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodpatches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodpatches); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); /* UserData is sufficient for all properties @@ -12447,9 +11361,8 @@ static void test_MsiGetPatchInfoEx(void) */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "pack"), "Expected \"pack\", got \"%s\"\n", val); ok(size == 4, "Expected 4, got %lu\n", size); @@ -12459,9 +11372,8 @@ static void test_MsiGetPatchInfoEx(void) */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - INSTALLPROPERTY_TRANSFORMSA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_TRANSFORMSA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); ok(!lstrcmpA(val, "apple"), "Expected \"apple\", got \"%s\"\n", val); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -12472,28 +11384,25 @@ static void test_MsiGetPatchInfoEx(void) RegDeleteValueA(hpatch, "Uninstallable"); RegDeleteValueA(hpatch, "Installed"); RegDeleteValueA(udpatch, "ManagedLocalPackage"); - delete_key(udpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udpatch); - delete_key(hpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hpatch); - delete_key(patches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(patches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(patches); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(udprod, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udprod, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udprod); /* MSIINSTALLCONTEXT_USERUNMANAGED */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); @@ -12507,13 +11416,10 @@ static void test_MsiGetPatchInfoEx(void) /* local UserData product key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(udprod, "InstallProperties", 0, NULL, 0, access, NULL, &props, NULL); @@ -12522,12 +11428,10 @@ static void test_MsiGetPatchInfoEx(void) /* InstallProperties key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(udprod, "Patches", 0, NULL, 0, access, NULL, &patches, NULL); @@ -12536,12 +11440,10 @@ static void test_MsiGetPatchInfoEx(void) /* Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(patches, patch_squashed, 0, NULL, 0, access, NULL, &hpatch, NULL); @@ -12550,12 +11452,10 @@ static void test_MsiGetPatchInfoEx(void) /* Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Installer\\Products\\"); @@ -12567,12 +11467,10 @@ static void test_MsiGetPatchInfoEx(void) /* current user product key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyA(prodkey, "Patches", &prodpatches); @@ -12581,12 +11479,10 @@ static void test_MsiGetPatchInfoEx(void) /* Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(prodpatches, patch_squashed, 0, REG_SZ, @@ -12596,12 +11492,10 @@ static void test_MsiGetPatchInfoEx(void) /* specific patch value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\"); @@ -12615,9 +11509,8 @@ static void test_MsiGetPatchInfoEx(void) /* UserData Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, ""), "Expected \"\", got \"%s\"\n", val); ok(size == 0, "Expected 0, got %lu\n", size); @@ -12629,24 +11522,22 @@ static void test_MsiGetPatchInfoEx(void) /* LocalPatch value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "pack"), "Expected \"pack\", got \"%s\"\n", val); ok(size == 4, "Expected 4, got %lu\n", size); size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_TRANSFORMSA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_TRANSFORMSA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "transforms"), "Expected \"transforms\", got \"%s\"\n", val); ok(size == 10, "Expected 10, got %lu\n", size); RegDeleteValueA(prodpatches, patch_squashed); - delete_key(prodpatches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodpatches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodpatches); RegDeleteKeyA(prodkey, ""); RegCloseKey(prodkey); @@ -12656,9 +11547,8 @@ static void test_MsiGetPatchInfoEx(void) */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "pack"), "Expected \"pack\", got \"%s\"\n", val); ok(size == 4, "Expected 4, got %lu\n", size); @@ -12668,36 +11558,32 @@ static void test_MsiGetPatchInfoEx(void) */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_TRANSFORMSA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, INSTALLPROPERTY_TRANSFORMSA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); ok(!lstrcmpA(val, "apple"), "Expected \"apple\", got \"%s\"\n", val); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); RegDeleteValueA(udpatch, "LocalPackage"); - delete_key(udpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udpatch); - delete_key(hpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hpatch); - delete_key(patches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(patches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(patches); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(udprod, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udprod, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udprod); /* MSIINSTALLCONTEXT_MACHINE */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer"); @@ -12710,13 +11596,10 @@ static void test_MsiGetPatchInfoEx(void) /* local UserData product key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(udprod, "InstallProperties", 0, NULL, 0, access, NULL, &props, NULL); @@ -12725,12 +11608,10 @@ static void test_MsiGetPatchInfoEx(void) /* InstallProperties key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(udprod, "Patches", 0, NULL, 0, access, NULL, &patches, NULL); @@ -12739,12 +11620,10 @@ static void test_MsiGetPatchInfoEx(void) /* Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(patches, patch_squashed, 0, NULL, 0, access, NULL, &hpatch, NULL); @@ -12753,12 +11632,10 @@ static void test_MsiGetPatchInfoEx(void) /* Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Classes\\Installer\\Products\\"); @@ -12776,12 +11653,10 @@ static void test_MsiGetPatchInfoEx(void) /* local product key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegCreateKeyExA(prodkey, "Patches", 0, NULL, 0, access, NULL, &prodpatches, NULL); @@ -12790,12 +11665,10 @@ static void test_MsiGetPatchInfoEx(void) /* Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); res = RegSetValueExA(prodpatches, patch_squashed, 0, REG_SZ, @@ -12805,12 +11678,10 @@ static void test_MsiGetPatchInfoEx(void) /* specific patch value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); - ok(!lstrcmpA(val, "apple"), - "Expected val to be unchanged, got \"%s\"\n", val); + ok(!lstrcmpA(val, "apple"), "Expected val to be unchanged, got \"%s\"\n", val); ok(size == MAX_PATH, "Expected size to be unchanged, got %lu\n", size); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer"); @@ -12823,40 +11694,36 @@ static void test_MsiGetPatchInfoEx(void) /* UserData Patches key exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, ""), "Expected \"\", got \"%s\"\n", val); ok(size == 0, "Expected 0, got %lu\n", size); - res = RegSetValueExA(udpatch, "LocalPackage", 0, REG_SZ, - (const BYTE *)"pack", 5); + res = RegSetValueExA(udpatch, "LocalPackage", 0, REG_SZ, (const BYTE *)"pack", 5); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* LocalPatch value exists */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "pack"), "Expected \"pack\", got \"%s\"\n", val); ok(size == 4, "Expected 4, got %lu\n", size); size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_TRANSFORMSA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_TRANSFORMSA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "transforms"), "Expected \"transforms\", got \"%s\"\n", val); ok(size == 10, "Expected 10, got %lu\n", size); RegDeleteValueA(prodpatches, patch_squashed); - delete_key(prodpatches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodpatches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodpatches); - delete_key(prodkey, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(prodkey); /* UserData is sufficient for all properties @@ -12864,9 +11731,8 @@ static void test_MsiGetPatchInfoEx(void) */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_LOCALPACKAGEA, + val, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(val, "pack"), "Expected \"pack\", got \"%s\"\n", val); ok(size == 4, "Expected 4, got %lu\n", size); @@ -12876,23 +11742,22 @@ static void test_MsiGetPatchInfoEx(void) */ size = MAX_PATH; lstrcpyA(val, "apple"); - r = pMsiGetPatchInfoExA(patchcode, prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_TRANSFORMSA, val, &size); + r = MsiGetPatchInfoExA(patchcode, prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_TRANSFORMSA, + val, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); ok(!lstrcmpA(val, "apple"), "Expected \"apple\", got \"%s\"\n", val); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); RegDeleteValueA(udpatch, "LocalPackage"); - delete_key(udpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udpatch); - delete_key(hpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hpatch); - delete_key(patches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(patches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(patches); - delete_key(props, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(props, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(props); - delete_key(udprod, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(udprod, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(udprod); LocalFree(usersid); } @@ -13068,25 +11933,25 @@ static void test_MsiGetPatchInfo(void) ok(valW[0], "expected > 0 got %u\n", valW[0]); ok(size == 11, "expected 11 got %lu\n", size); - delete_key(hkey_udproductpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hkey_udproductpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hkey_udproductpatch); - delete_key(hkey_udproductpatches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hkey_udproductpatches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hkey_udproductpatches); - delete_key(hkey_udpatch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hkey_udpatch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hkey_udpatch); - delete_key(hkey_udpatches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hkey_udpatches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hkey_udpatches); - delete_key(hkey_udprops, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hkey_udprops, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hkey_udprops); - delete_key(hkey_udproduct, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hkey_udproduct, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hkey_udproduct); done: - delete_key(hkey_patches, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hkey_patches, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hkey_patches); - delete_key(hkey_product, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hkey_product, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hkey_product); - delete_key(hkey_patch, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(hkey_patch, "", access & KEY_WOW64_64KEY, 0); RegCloseKey(hkey_patch); } @@ -13176,8 +12041,8 @@ static void test_MsiEnumProducts(void) ok(found2, "product2 not found\n"); ok(found3, "product3 not found\n"); - delete_key(key1, "", access & KEY_WOW64_64KEY); - delete_key(key2, "", access & KEY_WOW64_64KEY); + RegDeleteKeyExA(key1, "", access & KEY_WOW64_64KEY, 0); + RegDeleteKeyExA(key2, "", access & KEY_WOW64_64KEY, 0); RegDeleteKeyA(key3, ""); RegCloseKey(key1); RegCloseKey(key2); @@ -13241,12 +12106,6 @@ static void test_MsiEnumProductsEx(void) char *usersid = get_user_sid(); BOOL found1, found2, found3; - if (!pMsiEnumProductsExA) - { - win_skip("MsiEnumProductsExA not implemented\n"); - return; - } - create_test_guid( product0, NULL ); create_test_guid( product1, product_squashed1 ); create_test_guid( product2, product_squashed2 ); @@ -13285,34 +12144,34 @@ static void test_MsiEnumProductsEx(void) r = RegCreateKeyExA( HKEY_USERS, keypath3, 0, NULL, 0, access, NULL, &key3, NULL ); ok( r == ERROR_SUCCESS, "got %u\n", r ); - r = pMsiEnumProductsExA( NULL, NULL, 0, 0, NULL, NULL, NULL, NULL ); + r = MsiEnumProductsExA( NULL, NULL, 0, 0, NULL, NULL, NULL, NULL ); ok( r == ERROR_INVALID_PARAMETER, "got %u\n", r ); len = sizeof(sid); - r = pMsiEnumProductsExA( NULL, NULL, 0, 0, NULL, NULL, NULL, &len ); + r = MsiEnumProductsExA( NULL, NULL, 0, 0, NULL, NULL, NULL, &len ); ok( r == ERROR_INVALID_PARAMETER, "got %u\n", r ); ok( len == sizeof(sid), "got %lu\n", len ); - r = pMsiEnumProductsExA( NULL, NULL, MSIINSTALLCONTEXT_ALL, 0, NULL, NULL, NULL, NULL ); + r = MsiEnumProductsExA( NULL, NULL, MSIINSTALLCONTEXT_ALL, 0, NULL, NULL, NULL, NULL ); ok( r == ERROR_SUCCESS, "got %u\n", r ); sid[0] = 0; len = sizeof(sid); - r = pMsiEnumProductsExA( product0, NULL, MSIINSTALLCONTEXT_ALL, 0, NULL, NULL, sid, &len ); + r = MsiEnumProductsExA( product0, NULL, MSIINSTALLCONTEXT_ALL, 0, NULL, NULL, sid, &len ); ok( r == ERROR_NO_MORE_ITEMS, "got %u\n", r ); ok( len == sizeof(sid), "got %lu\n", len ); ok( !sid[0], "got %s\n", sid ); sid[0] = 0; len = sizeof(sid); - r = pMsiEnumProductsExA( product0, usersid, MSIINSTALLCONTEXT_ALL, 0, NULL, NULL, sid, &len ); + r = MsiEnumProductsExA( product0, usersid, MSIINSTALLCONTEXT_ALL, 0, NULL, NULL, sid, &len ); ok( r == ERROR_NO_MORE_ITEMS, "got %u\n", r ); ok( len == sizeof(sid), "got %lu\n", len ); ok( !sid[0], "got %s\n", sid ); sid[0] = 0; len = 0; - r = pMsiEnumProductsExA( NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, 0, NULL, NULL, sid, &len ); + r = MsiEnumProductsExA( NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, 0, NULL, NULL, sid, &len ); ok( r == ERROR_MORE_DATA, "got %u\n", r ); ok( len, "length unchanged\n" ); ok( !sid[0], "got %s\n", sid ); @@ -13321,7 +12180,7 @@ static void test_MsiEnumProductsEx(void) context = 0xdeadbeef; sid[0] = 0; len = sizeof(sid); - r = pMsiEnumProductsExA( NULL, NULL, MSIINSTALLCONTEXT_ALL, 0, guid, &context, sid, &len ); + r = MsiEnumProductsExA( NULL, NULL, MSIINSTALLCONTEXT_ALL, 0, guid, &context, sid, &len ); ok( r == ERROR_SUCCESS, "got %u\n", r ); ok( guid[0], "empty guid\n" ); ok( context != 0xdeadbeef, "context unchanged\n" ); @@ -13332,7 +12191,7 @@ static void test_MsiEnumProductsEx(void) context = 0xdeadbeef; sid[0] = 0; len = sizeof(sid); - r = pMsiEnumProductsExA( NULL, usersid, MSIINSTALLCONTEXT_ALL, 0, guid, &context, sid, &len ); + r = MsiEnumProductsExA( NULL, usersid, MSIINSTALLCONTEXT_ALL, 0, guid, &context, sid, &len ); ok( r == ERROR_SUCCESS, "got %u\n", r ); ok( guid[0], "empty guid\n" ); ok( context != 0xdeadbeef, "context unchanged\n" ); @@ -13343,7 +12202,7 @@ static void test_MsiEnumProductsEx(void) context = 0xdeadbeef; sid[0] = 0; len = sizeof(sid); - r = pMsiEnumProductsExA( NULL, "S-1-1-0", MSIINSTALLCONTEXT_ALL, 0, guid, &context, sid, &len ); + r = MsiEnumProductsExA( NULL, "S-1-1-0", MSIINSTALLCONTEXT_ALL, 0, guid, &context, sid, &len ); if (r == ERROR_ACCESS_DENIED) { skip( "insufficient rights\n" ); @@ -13361,7 +12220,7 @@ static void test_MsiEnumProductsEx(void) sid[0] = 0; len = sizeof(sid); found1 = found2 = found3 = FALSE; - while (!pMsiEnumProductsExA( NULL, "S-1-1-0", MSIINSTALLCONTEXT_ALL, index, guid, &context, sid, &len )) + while (!MsiEnumProductsExA( NULL, "S-1-1-0", MSIINSTALLCONTEXT_ALL, index, guid, &context, sid, &len )) { if (!strcmp( product1, guid )) { @@ -13396,9 +12255,9 @@ static void test_MsiEnumProductsEx(void) ok(found3, "product3 not found\n"); done: - delete_key( key1, "", access ); - delete_key( key2, "", access ); - delete_key( key3, "", access ); + RegDeleteKeyExA( key1, "", access, 0 ); + RegDeleteKeyExA( key2, "", access, 0 ); + RegDeleteKeyExA( key3, "", access, 0 ); RegCloseKey( key1 ); RegCloseKey( key2 ); RegCloseKey( key3 ); @@ -13471,8 +12330,8 @@ static void test_MsiEnumComponents(void) ok( found2, "comp2 not found\n" ); done: - delete_key( key1, "", access ); - delete_key( key2, "", access ); + RegDeleteKeyExA( key1, "", access, 0 ); + RegDeleteKeyExA( key2, "", access, 0 ); RegCloseKey( key1 ); RegCloseKey( key2 ); LocalFree( usersid ); @@ -13491,11 +12350,6 @@ static void test_MsiEnumComponentsEx(void) REGSAM access = KEY_ALL_ACCESS; char *usersid = get_user_sid(); - if (!pMsiEnumComponentsExA) - { - win_skip( "MsiEnumComponentsExA not implemented\n" ); - return; - } if (!is_process_elevated()) { skip("process is limited\n"); @@ -13541,7 +12395,7 @@ static void test_MsiEnumComponentsEx(void) sid[0] = 0; len = sizeof(sid); found1 = found2 = FALSE; - while (!pMsiEnumComponentsExA( "S-1-1-0", MSIINSTALLCONTEXT_ALL, index, guid, &context, sid, &len )) + while (!MsiEnumComponentsExA( "S-1-1-0", MSIINSTALLCONTEXT_ALL, index, guid, &context, sid, &len )) { if (!strcmp( comp1, guid )) { @@ -13568,16 +12422,16 @@ static void test_MsiEnumComponentsEx(void) ok( found1, "comp1 not found\n" ); ok( found2, "comp2 not found\n" ); - r = pMsiEnumComponentsExA( NULL, 0, 0, NULL, NULL, NULL, NULL ); + r = MsiEnumComponentsExA( NULL, 0, 0, NULL, NULL, NULL, NULL ); ok( r == ERROR_INVALID_PARAMETER, "got %u\n", r ); - r = pMsiEnumComponentsExA( NULL, MSIINSTALLCONTEXT_ALL, 0, NULL, NULL, sid, NULL ); + r = MsiEnumComponentsExA( NULL, MSIINSTALLCONTEXT_ALL, 0, NULL, NULL, sid, NULL ); ok( r == ERROR_INVALID_PARAMETER, "got %u\n", r ); done: RegDeleteValueA( key2, comp_squashed2 ); - delete_key( key1, "", access ); - delete_key( key2, "", access ); + RegDeleteKeyExA( key1, "", access, 0 ); + RegDeleteKeyExA( key2, "", access, 0 ); RegCloseKey( key1 ); RegCloseKey( key2 ); LocalFree( usersid ); @@ -14078,18 +12932,12 @@ static void test_MsiSetExternalUI(void) ret_a = MsiSetExternalUIA(NULL, 0, NULL); ok(ret_a == handler_a, "expected %p, got %p\n", handler_a, ret_a); - /* Not present before Installer 3.1 */ - if (!pMsiSetExternalUIRecord) { - win_skip("MsiSetExternalUIRecord is not available\n"); - return; - } - - error = pMsiSetExternalUIRecord(handler_record, INSTALLLOGMODE_ERROR, NULL, &prev); + error = MsiSetExternalUIRecord(handler_record, INSTALLLOGMODE_ERROR, NULL, &prev); ok(!error, "MsiSetExternalUIRecord failed %u\n", error); ok(prev == NULL, "expected NULL, got %p\n", prev); prev = (INSTALLUI_HANDLER_RECORD)0xdeadbeef; - error = pMsiSetExternalUIRecord(NULL, INSTALLLOGMODE_ERROR, NULL, &prev); + error = MsiSetExternalUIRecord(NULL, INSTALLLOGMODE_ERROR, NULL, &prev); ok(!error, "MsiSetExternalUIRecord failed %u\n", error); ok(prev == handler_record, "expected %p, got %p\n", handler_record, prev); @@ -14106,7 +12954,7 @@ static void test_MsiSetExternalUI(void) ok(ret_w == NULL, "expected NULL, got %p\n", ret_w); prev = (INSTALLUI_HANDLER_RECORD)0xdeadbeef; - error = pMsiSetExternalUIRecord(handler_record, INSTALLLOGMODE_ERROR, NULL, &prev); + error = MsiSetExternalUIRecord(handler_record, INSTALLLOGMODE_ERROR, NULL, &prev); ok(!error, "MsiSetExternalUIRecord failed %u\n", error); ok(prev == NULL, "expected NULL, got %p\n", prev); @@ -14117,14 +12965,14 @@ static void test_MsiSetExternalUI(void) ok(ret_w == NULL, "expected NULL, got %p\n", ret_w); prev = (INSTALLUI_HANDLER_RECORD)0xdeadbeef; - error = pMsiSetExternalUIRecord(NULL, 0, NULL, &prev); + error = MsiSetExternalUIRecord(NULL, 0, NULL, &prev); ok(!error, "MsiSetExternalUIRecord failed %u\n", error); ok(prev == handler_record, "expected %p, got %p\n", handler_record, prev); - error = pMsiSetExternalUIRecord(handler_record, INSTALLLOGMODE_ERROR, NULL, NULL); + error = MsiSetExternalUIRecord(handler_record, INSTALLLOGMODE_ERROR, NULL, NULL); ok(!error, "MsiSetExternalUIRecord failed %u\n", error); - error = pMsiSetExternalUIRecord(NULL, 0, NULL, NULL); + error = MsiSetExternalUIRecord(NULL, 0, NULL, NULL); ok(!error, "MsiSetExternalUIRecord failed %u\n", error); } @@ -14135,12 +12983,6 @@ static void test_lastusedsource(void) DWORD size; UINT r; - if (!pMsiSourceListGetInfoA) - { - win_skip("MsiSourceListGetInfoA is not available\n"); - return; - } - CreateDirectoryA("msitest", NULL); create_file("maximus", 500); create_cab_file("test1.cab", MEDIA_SIZE, "maximus\0"); @@ -14156,8 +12998,8 @@ static void test_lastusedsource(void) size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "expected ERROR_UNKNOWN_PRODUCT, got %u\n", r); ok(!lstrcmpA(value, "aaa"), "expected \"aaa\", got \"%s\"\n", value); @@ -14174,8 +13016,8 @@ static void test_lastusedsource(void) size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r); ok(!lstrcmpA(value, path), "expected \"%s\", got \"%s\"\n", path, value); ok(size == lstrlenA(path), "expected %d, got %lu\n", lstrlenA(path), size); @@ -14187,8 +13029,8 @@ static void test_lastusedsource(void) size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "expected ERROR_UNKNOWN_PRODUCT, got %u\n", r); ok(!lstrcmpA(value, "aaa"), "expected \"aaa\", got \"%s\"\n", value); @@ -14200,8 +13042,8 @@ static void test_lastusedsource(void) size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r); ok(!lstrcmpA(value, path), "expected \"%s\", got \"%s\"\n", path, value); ok(size == lstrlenA(path), "expected %d, got %lu\n", lstrlenA(path), size); @@ -14211,8 +13053,8 @@ static void test_lastusedsource(void) size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "expected ERROR_UNKNOWN_PRODUCT, got %u\n", r); ok(!lstrcmpA(value, "aaa"), "expected \"aaa\", got \"%s\"\n", value); @@ -14225,8 +13067,8 @@ static void test_lastusedsource(void) size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r); ok(!lstrcmpA(value, path), "expected \"%s\", got \"%s\"\n", path, value); ok(size == lstrlenA(path), "expected %d, got %lu\n", lstrlenA(path), size); @@ -14236,8 +13078,8 @@ static void test_lastusedsource(void) size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); + r = MsiSourceListGetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "expected ERROR_UNKNOWN_PRODUCT, got %u\n", r); ok(!lstrcmpA(value, "aaa"), "expected \"aaa\", got \"%s\"\n", value); @@ -14587,10 +13429,7 @@ START_TEST(msi) if (!is_process_elevated()) restart_as_admin_elevated(); - init_functionpointers(); - - if (pIsWow64Process) - pIsWow64Process(GetCurrentProcess(), &is_wow64); + IsWow64Process(GetCurrentProcess(), &is_wow64); GetCurrentDirectoryA(MAX_PATH, prev_path); GetTempPathA(MAX_PATH, temp_path); @@ -14638,8 +13477,7 @@ START_TEST(msi) test_lastusedsource(); test_setpropertyfolder(); test_sourcedir_props(); - if (pMsiGetComponentPathExA) - test_concurrentinstall(); + test_concurrentinstall(); test_command_line_parsing(); test_MsiProvideQualifiedComponentEx(); diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c index 8bb57be71e9..5977a525fb6 100644 --- a/dlls/msi/tests/package.c +++ b/dlls/msi/tests/package.c @@ -38,43 +38,6 @@ static BOOL is_wow64; static const char msifile[] = "winetest-package.msi"; static const WCHAR msifileW[] = L"winetest-package.msi"; -static INSTALLSTATE (WINAPI *pMsiGetComponentPathExA)(LPCSTR, LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPSTR, LPDWORD); - -static LONG (WINAPI *pRegDeleteKeyExA)(HKEY, LPCSTR, REGSAM, DWORD); -static LONG (WINAPI *pRegDeleteKeyExW)(HKEY, LPCWSTR, REGSAM, DWORD); -static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL); -static BOOL (WINAPI *pSRRemoveRestorePoint)(DWORD); -static BOOL (WINAPI *pSRSetRestorePointA)(RESTOREPOINTINFOA*, STATEMGRSTATUS*); - -static void init_functionpointers(void) -{ - HMODULE hmsi = GetModuleHandleA("msi.dll"); - HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll"); - HMODULE hkernel32 = GetModuleHandleA("kernel32.dll"); - HMODULE hsrclient = LoadLibraryA("srclient.dll"); - -#define GET_PROC(mod, func) \ - p ## func = (void*)GetProcAddress(mod, #func); - - GET_PROC(hmsi, MsiGetComponentPathExA); - - GET_PROC(hadvapi32, RegDeleteKeyExA) - GET_PROC(hadvapi32, RegDeleteKeyExW) - GET_PROC(hkernel32, IsWow64Process) - - GET_PROC(hsrclient, SRRemoveRestorePoint); - GET_PROC(hsrclient, SRSetRestorePointA); - -#undef GET_PROC -} - -static LONG delete_key( HKEY key, LPCSTR subkey, REGSAM access ) -{ - if (pRegDeleteKeyExA) - return pRegDeleteKeyExA( key, subkey, access, 0 ); - return RegDeleteKeyA( key, subkey ); -} - static char *get_user_sid(void) { HANDLE token; @@ -138,12 +101,7 @@ static LSTATUS package_RegDeleteTreeW(HKEY hKey, LPCWSTR lpszSubKey, REGSAM acce } if (lpszSubKey) - { - if (pRegDeleteKeyExW) - ret = pRegDeleteKeyExW(hKey, lpszSubKey, access, 0); - else - ret = RegDeleteKeyW(hKey, lpszSubKey); - } + ret = RegDeleteKeyExW(hKey, lpszSubKey, access, 0); else while (TRUE) { @@ -977,27 +935,6 @@ done: return ret; } -static BOOL notify_system_change(DWORD event_type, STATEMGRSTATUS *status) -{ - RESTOREPOINTINFOA spec; - - spec.dwEventType = event_type; - spec.dwRestorePtType = APPLICATION_INSTALL; - spec.llSequenceNumber = status->llSequenceNumber; - lstrcpyA(spec.szDescription, "msitest restore point"); - - return pSRSetRestorePointA(&spec, status); -} - -static void remove_restore_point(DWORD seq_number) -{ - DWORD res; - - res = pSRRemoveRestorePoint(seq_number); - if (res != ERROR_SUCCESS) - trace("Failed to remove the restore point: %#lx\n", res); -} - static BOOL is_root(const char *path) { return (isalpha(path[0]) && path[1] == ':' && path[2] == '\\' && !path[3]); @@ -2038,20 +1975,16 @@ static void test_condition(void) ok( r == MSICONDITION_FALSE, "wrong return val (%d)\n", r); r = MsiEvaluateConditionW(hpkg, L"\"a\x30a\"<\"\xe5\""); - ok( r == MSICONDITION_TRUE || broken(r == MSICONDITION_FALSE), - "wrong return val (%d)\n", r); + ok( r == MSICONDITION_TRUE, "wrong return val (%d)\n", r); r = MsiEvaluateConditionW(hpkg, L"\"a\x30a\">\"\xe5\""); - ok( r == MSICONDITION_FALSE || broken(r == MSICONDITION_TRUE), - "wrong return val (%d)\n", r); + ok( r == MSICONDITION_FALSE, "wrong return val (%d)\n", r); r = MsiEvaluateConditionW(hpkg, L"\"a\x30a\"<>\"\xe5\""); - ok( r == MSICONDITION_TRUE || broken(r == MSICONDITION_FALSE), - "wrong return val (%d)\n", r); + ok( r == MSICONDITION_TRUE, "wrong return val (%d)\n", r); r = MsiEvaluateConditionW(hpkg, L"\"a\x30a\"=\"\xe5\""); - ok( r == MSICONDITION_FALSE || broken(r == MSICONDITION_TRUE), - "wrong return val (%d)\n", r); + ok( r == MSICONDITION_FALSE, "wrong return val (%d)\n", r); MsiCloseHandle( hpkg ); DeleteFileA(msifile); @@ -2991,7 +2924,6 @@ static void test_states(void) MSIHANDLE hpkg, hprod; UINT r; MSIHANDLE hdb; - BOOL is_broken; char value[MAX_PATH]; DWORD size; @@ -3528,8 +3460,7 @@ static void test_states(void) /* reinstall the product */ r = MsiInstallProductA(msifile3, "REINSTALL=ALL"); - is_broken = (r == ERROR_INSTALL_FAILURE); - ok(r == ERROR_SUCCESS || broken(is_broken) /* win2k3 */, "Expected ERROR_SUCCESS, got %d\n", r); + ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); state = MsiQueryFeatureStateA("{7262AC98-EEBD-4364-8CE3-D654F6A425B9}", "five"); ok(state == INSTALLSTATE_UNKNOWN, "state = %d\n", state); @@ -3701,8 +3632,7 @@ static void test_states(void) MsiCloseHandle( hpkg ); r = MsiInstallProductA(msifile, ""); - ok(r == ERROR_SUCCESS || (is_broken && r == ERROR_INSTALL_FAILURE) /* win2k3 */, - "Expected ERROR_SUCCESS, got %d\n", r); + ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); state = MsiQueryFeatureStateA("{7262AC98-EEBD-4364-8CE3-D654F6A425B9}", "one"); ok(state == INSTALLSTATE_SOURCE, "state = %d\n", state); state = MsiQueryFeatureStateA("{7262AC98-EEBD-4364-8CE3-D654F6A425B9}", "two"); @@ -4040,8 +3970,8 @@ done: MsiCloseHandle( hpkg ); DeleteFileA(msifile); RegDeleteKeyA(HKEY_CURRENT_USER, "Software\\Winetest_msi"); - delete_key(HKEY_LOCAL_MACHINE, "Software\\Winetest_msi", KEY_WOW64_32KEY); - delete_key(HKEY_LOCAL_MACHINE, "Software\\Winetest_msi", KEY_WOW64_64KEY); + RegDeleteKeyExA(HKEY_LOCAL_MACHINE, "Software\\Winetest_msi", KEY_WOW64_32KEY, 0); + RegDeleteKeyExA(HKEY_LOCAL_MACHINE, "Software\\Winetest_msi", KEY_WOW64_64KEY, 0); } static void test_appsearch_complocator(void) @@ -4332,9 +4262,7 @@ static void test_appsearch_reglocator(void) users = 0; res = RegCreateKeyA(HKEY_USERS, "S-1-5-18\\Software\\Wine", &users); - ok(res == ERROR_SUCCESS || - broken(res == ERROR_INVALID_PARAMETER), - "Expected ERROR_SUCCESS, got %ld\n", res); + ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); if (res == ERROR_SUCCESS) { @@ -7955,6 +7883,7 @@ static void test_MsiGetProductProperty(void) skip("Not enough rights to perform tests\n"); RegDeleteKeyA(prodkey, ""); RegCloseKey(prodkey); + DeleteFileA(msifile); return; } ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); @@ -7965,12 +7894,16 @@ static void test_MsiGetProductProperty(void) lstrcpyA(val, path); lstrcatA(val, "\\"); lstrcatA(val, msifile); - res = RegSetValueExA(props, "LocalPackage", 0, REG_SZ, - (const BYTE *)val, lstrlenA(val) + 1); + res = RegSetValueExA(props, "LocalPackage", 0, REG_SZ, (const BYTE *)val, lstrlenA(val) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); hprod = 0xdeadbeef; r = MsiOpenProductA(prodcode, &hprod); + if (r == ERROR_UNKNOWN_PRODUCT) + { + win_skip("broken result, skipping tests\n"); + goto done; + } ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(hprod != 0 && hprod != 0xdeadbeef, "Expected a valid product handle\n"); @@ -8191,13 +8124,13 @@ static void test_MsiGetProductProperty(void) "Expected %d, got %lu\n", lstrlenW(prodcodeW), size); MsiCloseHandle(hprod); - +done: RegDeleteValueA(props, "LocalPackage"); - delete_key(props, "", access); + RegDeleteKeyExA(props, "", access, 0); RegCloseKey(props); - delete_key(userkey, "", access); + RegDeleteKeyExA(userkey, "", access, 0); RegCloseKey(userkey); - delete_key(prodkey, "", access); + RegDeleteKeyExA(prodkey, "", access, 0); RegCloseKey(prodkey); DeleteFileA(msifile); } @@ -9560,16 +9493,11 @@ static void test_top_level_action(void) START_TEST(package) { char temp_path[MAX_PATH], prev_path[MAX_PATH]; - STATEMGRSTATUS status; - BOOL ret = FALSE; DWORD len; if (!is_process_elevated()) restart_as_admin_elevated(); - init_functionpointers(); - - if (pIsWow64Process) - pIsWow64Process(GetCurrentProcess(), &is_wow64); + IsWow64Process(GetCurrentProcess(), &is_wow64); GetCurrentDirectoryA(MAX_PATH, prev_path); GetTempPathA(MAX_PATH, temp_path); @@ -9581,18 +9509,6 @@ START_TEST(package) if (len && (CURR_DIR[len - 1] == '\\')) CURR_DIR[len - 1] = 0; - /* Create a restore point ourselves so we circumvent the multitude of restore points - * that would have been created by all the installation and removal tests. - * - * This is not needed on version 5.0 where setting MSIFASTINSTALL prevents the - * creation of restore points. - */ - if (pSRSetRestorePointA && !pMsiGetComponentPathExA) - { - memset(&status, 0, sizeof(status)); - ret = notify_system_change(BEGIN_NESTED_SYSTEM_CHANGE, &status); - } - test_createpackage(); test_doaction(); test_gettargetpath_bad(); @@ -9631,12 +9547,5 @@ START_TEST(package) test_controlevent(); test_top_level_action(); - if (pSRSetRestorePointA && !pMsiGetComponentPathExA && ret) - { - ret = notify_system_change(END_NESTED_SYSTEM_CHANGE, &status); - if (ret) - remove_restore_point(status.llSequenceNumber); - } - SetCurrentDirectoryA(prev_path); } diff --git a/dlls/msi/tests/patch.c b/dlls/msi/tests/patch.c index a0dee596c15..1b110ecfc89 100644 --- a/dlls/msi/tests/patch.c +++ b/dlls/msi/tests/patch.c @@ -32,12 +32,6 @@ #include "wine/test.h" #include "utils.h" -static UINT (WINAPI *pMsiApplyPatchA)( LPCSTR, LPCSTR, INSTALLTYPE, LPCSTR ); -static UINT (WINAPI *pMsiGetPatchInfoExA)( LPCSTR, LPCSTR, LPCSTR, MSIINSTALLCONTEXT, - LPCSTR, LPSTR, DWORD * ); -static UINT (WINAPI *pMsiEnumPatchesExA)( LPCSTR, LPCSTR, DWORD, DWORD, DWORD, LPSTR, - LPSTR, MSIINSTALLCONTEXT *, LPSTR, LPDWORD ); - static const char *msifile = "winetest-patch.msi"; static const char *mspfile = "winetest-patch.msp"; static const WCHAR msifileW[] = L"winetest-patch.msi"; @@ -146,22 +140,6 @@ static const struct msi_table tables[] = ADD_TABLE( condition ) }; -static void init_function_pointers( void ) -{ - HMODULE hmsi = GetModuleHandleA( "msi.dll" ); - -#define GET_PROC( mod, func ) \ - p ## func = (void *)GetProcAddress( mod, #func ); \ - if (!p ## func) \ - trace( "GetProcAddress(%s) failed\n", #func ); - - GET_PROC( hmsi, MsiApplyPatchA ); - GET_PROC( hmsi, MsiGetPatchInfoExA ); - GET_PROC( hmsi, MsiEnumPatchesExA ); - -#undef GET_PROC -} - static BOOL get_program_files_dir( char *buf, char *buf2 ) { HKEY hkey; @@ -691,11 +669,6 @@ static void test_simple_patch( void ) WCHAR pathW[MAX_PATH]; MSIHANDLE hpackage, hdb, hview, hrec; - if (!pMsiApplyPatchA) - { - win_skip("MsiApplyPatchA is not available\n"); - return; - } if (!is_process_elevated()) { skip("process is limited\n"); @@ -774,14 +747,7 @@ static void test_simple_patch( void ) MsiCloseHandle( hpackage ); r = MsiApplyPatchA( mspfile, NULL, INSTALLTYPE_DEFAULT, NULL ); - ok( r == ERROR_SUCCESS || broken( r == ERROR_PATCH_PACKAGE_INVALID ), /* version 2.0 */ - "expected ERROR_SUCCESS, got %u\n", r ); - - if (r == ERROR_PATCH_PACKAGE_INVALID) - { - win_skip("Windows Installer < 3.0 detected\n"); - goto uninstall; - } + ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r ); size = get_pf_file_size( "msitest\\patch.txt" ); ok( size == 1002, "expected 1002, got %lu\n", size ); @@ -857,7 +823,6 @@ static void test_simple_patch( void ) MsiCloseHandle( hview ); MsiCloseHandle( hdb ); -uninstall: size = sizeof(path); r = MsiGetProductInfoA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", "InstallSource", path, &size ); @@ -1030,11 +995,6 @@ static void test_system_tables( void ) const char *query; MSIHANDLE hproduct, hdb, hview, hrec; - if (!pMsiApplyPatchA) - { - win_skip("MsiApplyPatchA is not available\n"); - return; - } if (!is_process_elevated()) { skip("process is limited\n"); @@ -1112,14 +1072,7 @@ static void test_system_tables( void ) MsiCloseHandle( hproduct ); r = MsiApplyPatchA( mspfile, NULL, INSTALLTYPE_DEFAULT, NULL ); - ok( r == ERROR_SUCCESS || broken( r == ERROR_PATCH_PACKAGE_INVALID ), /* version 2.0 */ - "expected ERROR_SUCCESS, got %u\n", r ); - - if (r == ERROR_PATCH_PACKAGE_INVALID) - { - win_skip("Windows Installer < 3.0 detected\n"); - goto uninstall; - } + ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r ); r = MsiOpenProductA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", &hproduct ); ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r ); @@ -1203,7 +1156,6 @@ static void test_system_tables( void ) MsiCloseHandle( hdb ); MsiCloseHandle( hproduct ); -uninstall: r = MsiInstallProductA( msifile, "REMOVE=ALL" ); ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r ); @@ -1220,11 +1172,6 @@ static void test_patch_registration( void ) DWORD size; char buffer[MAX_PATH], patch_code[39]; - if (!pMsiApplyPatchA || !pMsiGetPatchInfoExA || !pMsiEnumPatchesExA) - { - win_skip("required functions not available\n"); - return; - } if (!is_process_elevated()) { skip("process is limited\n"); @@ -1247,67 +1194,59 @@ static void test_patch_registration( void ) } r = MsiApplyPatchA( mspfile, NULL, INSTALLTYPE_DEFAULT, NULL ); - ok( r == ERROR_SUCCESS || broken( r == ERROR_PATCH_PACKAGE_INVALID ), /* version 2.0 */ - "expected ERROR_SUCCESS, got %u\n", r ); - - if (r == ERROR_PATCH_PACKAGE_INVALID) - { - win_skip("Windows Installer < 3.0 detected\n"); - goto uninstall; - } + ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r ); buffer[0] = 0; size = sizeof(buffer); - r = pMsiGetPatchInfoExA( "{0F96CDC0-4CDF-4304-B283-7B9264889EF7}", - "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", - NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, buffer, &size ); + r = MsiGetPatchInfoExA( "{0F96CDC0-4CDF-4304-B283-7B9264889EF7}", + "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", + NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + INSTALLPROPERTY_LOCALPACKAGEA, buffer, &size ); ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r ); ok( buffer[0], "buffer empty\n" ); buffer[0] = 0; size = sizeof(buffer); - r = pMsiGetPatchInfoExA( "{0F96CDC0-4CDF-4304-B283-7B9264889EF7}", - "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", - NULL, MSIINSTALLCONTEXT_MACHINE, - INSTALLPROPERTY_LOCALPACKAGEA, buffer, &size ); + r = MsiGetPatchInfoExA( "{0F96CDC0-4CDF-4304-B283-7B9264889EF7}", + "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", + NULL, MSIINSTALLCONTEXT_MACHINE, + INSTALLPROPERTY_LOCALPACKAGEA, buffer, &size ); ok( r == ERROR_UNKNOWN_PRODUCT, "expected ERROR_UNKNOWN_PRODUCT, got %u\n", r ); buffer[0] = 0; size = sizeof(buffer); - r = pMsiGetPatchInfoExA( "{0F96CDC0-4CDF-4304-B283-7B9264889EF7}", - "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", + r = MsiGetPatchInfoExA( "{0F96CDC0-4CDF-4304-B283-7B9264889EF7}", + "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", NULL, MSIINSTALLCONTEXT_USERMANAGED, INSTALLPROPERTY_LOCALPACKAGEA, buffer, &size ); ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r ); ok( !buffer[0], "got %s\n", buffer ); - r = pMsiEnumPatchesExA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", - NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED, - 0, patch_code, NULL, NULL, NULL, NULL ); + r = MsiEnumPatchesExA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", + NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED, + 0, patch_code, NULL, NULL, NULL, NULL ); ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r ); ok( !strcmp( patch_code, "{0F96CDC0-4CDF-4304-B283-7B9264889EF7}" ), "wrong patch code\n" ); - r = pMsiEnumPatchesExA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", - NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, - 0, patch_code, NULL, NULL, NULL, NULL ); + r = MsiEnumPatchesExA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", + NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED, + 0, patch_code, NULL, NULL, NULL, NULL ); ok( r == ERROR_NO_MORE_ITEMS, "expected ERROR_NO_MORE_ITEMS, got %u\n", r ); - r = pMsiEnumPatchesExA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", - NULL, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, - 0, patch_code, NULL, NULL, NULL, NULL ); + r = MsiEnumPatchesExA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", + NULL, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED, + 0, patch_code, NULL, NULL, NULL, NULL ); ok( r == ERROR_NO_MORE_ITEMS, "expected ERROR_NO_MORE_ITEMS, got %u\n", r ); -uninstall: r = MsiInstallProductA( msifile, "REMOVE=ALL" ); ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r ); buffer[0] = 0; size = sizeof(buffer); - r = pMsiGetPatchInfoExA( "{0F96CDC0-4CDF-4304-B283-7B9264889EF7}", - "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", - NULL, MSIINSTALLCONTEXT_USERUNMANAGED, - INSTALLPROPERTY_LOCALPACKAGEA, buffer, &size ); + r = MsiGetPatchInfoExA( "{0F96CDC0-4CDF-4304-B283-7B9264889EF7}", + "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}", + NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + INSTALLPROPERTY_LOCALPACKAGEA, buffer, &size ); ok( r == ERROR_UNKNOWN_PRODUCT, "expected ERROR_UNKNOWN_PRODUCT, got %u\n", r ); cleanup: @@ -1324,8 +1263,6 @@ START_TEST(patch) if (!is_process_elevated()) restart_as_admin_elevated(); - init_function_pointers(); - GetCurrentDirectoryA( MAX_PATH, prev_path ); GetTempPathA( MAX_PATH, temp_path ); SetCurrentDirectoryA( temp_path ); diff --git a/dlls/msi/tests/record.c b/dlls/msi/tests/record.c index b0cad8265e8..5f3e2754f2b 100644 --- a/dlls/msi/tests/record.c +++ b/dlls/msi/tests/record.c @@ -349,7 +349,7 @@ static void test_msirecord(void) ok(r == ERROR_SUCCESS, "failed to add stream to record\n"); r = MsiRecordReadStream(h, 1, buf, NULL); ok(r == ERROR_INVALID_PARAMETER, "should return error\n"); - DeleteFileA(filename); /* Windows 98 doesn't like this at all, so don't check return. */ + DeleteFileA(filename); r = MsiRecordReadStream(h, 1, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "should return error\n"); sz = sizeof buf; diff --git a/dlls/msi/tests/source.c b/dlls/msi/tests/source.c index df3134eb488..0f6967cde22 100644 --- a/dlls/msi/tests/source.c +++ b/dlls/msi/tests/source.c @@ -35,53 +35,6 @@ static BOOL is_wow64; -static LONG (WINAPI *pRegDeleteKeyExA)(HKEY, LPCSTR, REGSAM, DWORD); -static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL); - -static UINT (WINAPI *pMsiSourceListAddMediaDiskA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, DWORD, LPCSTR, LPCSTR); -static UINT (WINAPI *pMsiSourceListAddSourceExA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, LPCSTR, DWORD); -static UINT (WINAPI *pMsiSourceListEnumMediaDisksA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, DWORD, LPDWORD, LPSTR, - LPDWORD, LPSTR, LPDWORD); -static UINT (WINAPI *pMsiSourceListEnumSourcesA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, DWORD, LPSTR, LPDWORD); -static UINT (WINAPI *pMsiSourceListGetInfoA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, LPCSTR, LPSTR, LPDWORD); -static UINT (WINAPI *pMsiSourceListGetInfoW) - (LPCWSTR, LPCWSTR, MSIINSTALLCONTEXT, DWORD, LPCWSTR, LPWSTR, LPDWORD); -static UINT (WINAPI *pMsiSourceListSetInfoA) - (LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD,LPCSTR, LPCSTR); -static UINT (WINAPI *pMsiSourceListAddSourceA) - (LPCSTR, LPCSTR, DWORD, LPCSTR); - -static void init_functionpointers(void) -{ - HMODULE hmsi = GetModuleHandleA("msi.dll"); - HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll"); - HMODULE hkernel32 = GetModuleHandleA("kernel32.dll"); - -#define GET_PROC(dll, func) \ - p ## func = (void *)GetProcAddress(dll, #func); \ - if(!p ## func) \ - trace("GetProcAddress(%s) failed\n", #func); - - GET_PROC(hmsi, MsiSourceListAddMediaDiskA) - GET_PROC(hmsi, MsiSourceListAddSourceExA) - GET_PROC(hmsi, MsiSourceListEnumMediaDisksA) - GET_PROC(hmsi, MsiSourceListEnumSourcesA) - GET_PROC(hmsi, MsiSourceListGetInfoA) - GET_PROC(hmsi, MsiSourceListGetInfoW) - GET_PROC(hmsi, MsiSourceListSetInfoA) - GET_PROC(hmsi, MsiSourceListAddSourceA) - - GET_PROC(hadvapi32, RegDeleteKeyExA) - GET_PROC(hkernel32, IsWow64Process) - -#undef GET_PROC -} - /* copied from dlls/msi/registry.c */ static BOOL squash_guid(LPCWSTR in, LPWSTR out) { @@ -203,12 +156,6 @@ static void test_MsiSourceListGetInfo(void) HKEY userkey, hkey, media; DWORD size; - if (!pMsiSourceListGetInfoA) - { - win_skip("Skipping MsiSourceListGetInfoA tests\n"); - return; - } - create_test_guid(prodcode, prod_squashed); if (!(usersid = get_user_sid())) { @@ -217,78 +164,78 @@ static void test_MsiSourceListGetInfo(void) } /* NULL szProductCodeOrPatchCode */ - r = pMsiSourceListGetInfoA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* empty szProductCodeOrPatchCode */ - r = pMsiSourceListGetInfoA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* garbage szProductCodeOrPatchCode */ - r = pMsiSourceListGetInfoA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid without brackets */ - r = pMsiSourceListGetInfoA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid with brackets */ - r = pMsiSourceListGetInfoA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* same length as guid, but random */ - r = pMsiSourceListGetInfoA("ADKD-2KSDFF2-DKK1KNFJASD9GLKWME-1I3KAD", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA("ADKD-2KSDFF2-DKK1KNFJASD9GLKWME-1I3KAD", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* invalid context */ - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_NONE, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_NONE, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* another invalid context */ - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_ALLUSERMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_ALLUSERMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* yet another invalid context */ - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_ALL, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_ALL, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* mix two valid contexts */ - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED | MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED | MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* invalid option */ - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, 4, INSTALLPROPERTY_PACKAGENAMEA, NULL, NULL); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* NULL property */ - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, NULL, NULL, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* empty property */ - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, "", NULL, NULL); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* value is non-NULL while size is NULL */ - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* size is non-NULL while value is NULL */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, &size); ok(r == ERROR_UNKNOWN_PRODUCT || r == ERROR_INVALID_PARAMETER, "Expected ERROR_UNKNOWN_PRODUCT or ERROR_INVALID_PARAMETER, got %d\n", r); @@ -302,7 +249,7 @@ static void test_MsiSourceListGetInfo(void) /* user product key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got \"%s\"\n", value); @@ -313,7 +260,7 @@ static void test_MsiSourceListGetInfo(void) /* SourceList key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(size == 0, "Expected 0, got %lu\n", size); @@ -325,16 +272,16 @@ static void test_MsiSourceListGetInfo(void) /* PackageName value exists */ size = 0xdeadbeef; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, NULL, &size); ok(r == ERROR_SUCCESS || r == ERROR_INVALID_PARAMETER, - "Expected ERROR_SUCCESS or ERROR_INVALID_PARAMETER, got %d\n", r); + "Expected ERROR_SUCCESS or ERROR_INVALID_PARAMETER, got %d\n", r); ok(size == 11 || r != ERROR_SUCCESS, "Expected 11, got %lu\n", size); /* read the value, don't change size */ - size = 11; + size = 11; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected 'aaa', got %s\n", value); @@ -342,7 +289,7 @@ static void test_MsiSourceListGetInfo(void) /* read the value, fix size */ size++; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "msitest.msi"), "Expected 'msitest.msi', got %s\n", value); @@ -351,7 +298,7 @@ static void test_MsiSourceListGetInfo(void) /* empty property now that product key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, "", value, &size); ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(size == MAX_PATH, "Expected %d, got %lu\n", MAX_PATH, size); @@ -360,7 +307,7 @@ static void test_MsiSourceListGetInfo(void) /* nonexistent property now that product key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, "nonexistent", value, &size); ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(size == MAX_PATH, "Expected %d, got %lu\n", MAX_PATH, size); @@ -373,7 +320,7 @@ static void test_MsiSourceListGetInfo(void) /* nonexistent property now that nonexistent value exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, "nonexistent", value, &size); ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); ok(size == MAX_PATH, "Expected %d, got %lu\n", MAX_PATH, size); @@ -381,7 +328,7 @@ static void test_MsiSourceListGetInfo(void) /* invalid option now that product key exists */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, 4, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(size == 11, "Expected 11, got %lu\n", size); @@ -389,9 +336,8 @@ static void test_MsiSourceListGetInfo(void) /* INSTALLPROPERTY_MEDIAPACKAGEPATH, media key does not exist */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_MEDIAPACKAGEPATHA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_MEDIAPACKAGEPATHA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, ""), "Expected \"\", got \"%s\"\n", value); ok(size == 0, "Expected 0, got %lu\n", size); @@ -406,9 +352,8 @@ static void test_MsiSourceListGetInfo(void) /* INSTALLPROPERTY_MEDIAPACKAGEPATH */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_MEDIAPACKAGEPATHA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_MEDIAPACKAGEPATHA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "path"), "Expected \"path\", got \"%s\"\n", value); ok(size == 4, "Expected 4, got %lu\n", size); @@ -420,9 +365,8 @@ static void test_MsiSourceListGetInfo(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_DISKPROMPTA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_DISKPROMPTA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "prompt"), "Expected \"prompt\", got \"%s\"\n", value); ok(size == 6, "Expected 6, got %lu\n", size); @@ -431,9 +375,8 @@ static void test_MsiSourceListGetInfo(void) RegDeleteValueA(hkey, "LastUsedSource"); size = MAX_PATH; memset(value, 0x55, sizeof(value)); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(!lstrcmpA(value, ""), "Expected \"\", got \"%s\"\n", value); ok(size == 0, "Expected 0, got %lu\n", size); @@ -442,9 +385,8 @@ static void test_MsiSourceListGetInfo(void) usersidW = strdupAW(usersid); prodcodeW = strdupAW(prodcode); memset(valueW, 0x55, sizeof(valueW)); - r = pMsiSourceListGetInfoW(prodcodeW, usersidW, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEW, - valueW, &size); + r = MsiSourceListGetInfoW(prodcodeW, usersidW, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEW, valueW, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); ok(!valueW[0], "Expected \"\""); ok(size == 0, "Expected 0, got %lu\n", size); @@ -458,9 +400,8 @@ static void test_MsiSourceListGetInfo(void) /* INSTALLPROPERTY_LASTUSEDSOURCE, source is empty */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, ""), "Expected \"\", got \"%s\"\n", value); ok(size == 0, "Expected 0, got %lu\n", size); @@ -472,9 +413,8 @@ static void test_MsiSourceListGetInfo(void) /* INSTALLPROPERTY_LASTUSEDSOURCE */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "source"), "Expected \"source\", got \"%s\"\n", value); ok(size == 6, "Expected 6, got %lu\n", size); @@ -482,9 +422,8 @@ static void test_MsiSourceListGetInfo(void) /* INSTALLPROPERTY_LASTUSEDSOURCE, size is too short */ size = 4; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got \"%s\"\n", value); ok(size == 6, "Expected 6, got %lu\n", size); @@ -492,116 +431,100 @@ static void test_MsiSourceListGetInfo(void) /* INSTALLPROPERTY_LASTUSEDSOURCE, size is exactly 6 */ size = 6; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got \"%s\"\n", value); ok(size == 6, "Expected 6, got %lu\n", size); data = "a;source"; - res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, - (const BYTE *)data, lstrlenA(data) + 1); + res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, (const BYTE *)data, lstrlenA(data) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* INSTALLPROPERTY_LASTUSEDSOURCE, one semi-colon */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "source"), "Expected \"source\", got \"%s\"\n", value); ok(size == 6, "Expected 6, got %lu\n", size); data = "a:source"; - res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, - (const BYTE *)data, lstrlenA(data) + 1); + res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, (const BYTE *)data, lstrlenA(data) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* INSTALLPROPERTY_LASTUSEDSOURCE, one colon */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "a:source"), "Expected \"a:source\", got \"%s\"\n", value); ok(size == 8, "Expected 8, got %lu\n", size); /* INSTALLPROPERTY_LASTUSEDTYPE, invalid source format */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, ""), "Expected \"\", got \"%s\"\n", value); ok(size == 0, "Expected 0, got %lu\n", size); data = "x;y;z"; - res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, - (const BYTE *)data, lstrlenA(data) + 1); + res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, (const BYTE *)data, lstrlenA(data) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* INSTALLPROPERTY_LASTUSEDTYPE, invalid source format */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, ""), "Expected \"\", got \"%s\"\n", value); ok(size == 0, "Expected 0, got %lu\n", size); data = "n;y;z"; - res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, - (const BYTE *)data, lstrlenA(data) + 1); + res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, (const BYTE *)data, lstrlenA(data) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* INSTALLPROPERTY_LASTUSEDTYPE */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "n"), "Expected \"n\", got \"%s\"\n", value); ok(size == 1, "Expected 1, got %lu\n", size); data = "negatory"; - res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, - (const BYTE *)data, lstrlenA(data) + 1); + res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, (const BYTE *)data, lstrlenA(data) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* INSTALLPROPERTY_LASTUSEDTYPE */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "n"), "Expected \"n\", got \"%s\"\n", value); ok(size == 1, "Expected 1, got %lu\n", size); data = "megatron"; - res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, - (const BYTE *)data, lstrlenA(data) + 1); + res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, (const BYTE *)data, lstrlenA(data) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* INSTALLPROPERTY_LASTUSEDTYPE */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "m"), "Expected \"m\", got \"%s\"\n", value); ok(size == 1, "Expected 1, got %lu\n", size); data = "useless"; - res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, - (const BYTE *)data, lstrlenA(data) + 1); + res = RegSetValueExA(hkey, "LastUsedSource", 0, REG_SZ, (const BYTE *)data, lstrlenA(data) + 1); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* INSTALLPROPERTY_LASTUSEDTYPE */ size = MAX_PATH; - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, - value, &size); + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDTYPEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "u"), "Expected \"u\", got \"%s\"\n", value); ok(size == 1, "Expected 1, got %lu\n", size); @@ -620,7 +543,7 @@ static void test_MsiSourceListGetInfo(void) /* try a patch */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PATCH, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); ok(size == MAX_PATH, "Expected %d, got %lu\n", MAX_PATH, size); @@ -637,7 +560,7 @@ static void test_MsiSourceListGetInfo(void) */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PATCH, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); ok(size == MAX_PATH, "Expected %d, got %lu\n", MAX_PATH, size); @@ -649,7 +572,7 @@ static void test_MsiSourceListGetInfo(void) /* SourceList key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListGetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PATCH, INSTALLPROPERTY_PACKAGENAMEA, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, ""), "Expected \"\", got \"%s\"\n", value); @@ -662,13 +585,6 @@ static void test_MsiSourceListGetInfo(void) LocalFree(usersid); } -static LONG delete_key( HKEY key, LPCSTR subkey, REGSAM access ) -{ - if (pRegDeleteKeyExA) - return pRegDeleteKeyExA( key, subkey, access, 0 ); - return RegDeleteKeyA( key, subkey ); -} - static void test_MsiSourceListAddSourceEx(void) { CHAR prodcode[MAX_PATH]; @@ -682,11 +598,6 @@ static void test_MsiSourceListAddSourceEx(void) DWORD size; REGSAM access = KEY_ALL_ACCESS; - if (!pMsiSourceListAddSourceExA) - { - win_skip("Skipping MsiSourceListAddSourceExA tests\n"); - return; - } if (!is_process_elevated()) { skip("process is limited\n"); @@ -706,36 +617,35 @@ static void test_MsiSourceListAddSourceEx(void) /* GetLastError is not set by the function */ /* NULL szProductCodeOrPatchCode */ - r = pMsiSourceListAddSourceExA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* empty szProductCodeOrPatchCode */ - r = pMsiSourceListAddSourceExA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* garbage szProductCodeOrPatchCode */ - r = pMsiSourceListAddSourceExA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid without brackets */ - r = pMsiSourceListAddSourceExA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", usersid, + r = MsiSourceListAddSourceExA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid with brackets */ - r = pMsiSourceListAddSourceExA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", usersid, + r = MsiSourceListAddSourceExA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* MSIINSTALLCONTEXT_USERUNMANAGED */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); @@ -746,8 +656,7 @@ static void test_MsiSourceListAddSourceEx(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* user product key exists */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); @@ -756,8 +665,7 @@ static void test_MsiSourceListAddSourceEx(void) RegCloseKey(url); /* SourceList key exists */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -771,8 +679,7 @@ static void test_MsiSourceListAddSourceEx(void) ok(size == 11, "Expected 11, got %lu\n", size); /* add another source, index 0 */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "another", 0); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -789,8 +696,7 @@ static void test_MsiSourceListAddSourceEx(void) ok(size == 9, "Expected 9, got %lu\n", size); /* add another source, index 1 */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "third/", 1); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -813,8 +719,7 @@ static void test_MsiSourceListAddSourceEx(void) ok(size == 9, "Expected 9, got %lu\n", size); /* add another source, index > N */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "last/", 5); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -843,8 +748,7 @@ static void test_MsiSourceListAddSourceEx(void) ok(size == 6, "Expected 6, got %lu\n", size); /* just MSISOURCETYPE_NETWORK */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSISOURCETYPE_NETWORK, "source", 0); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -858,8 +762,7 @@ static void test_MsiSourceListAddSourceEx(void) ok(size == 8, "Expected 8, got %lu\n", size); /* just MSISOURCETYPE_URL */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSISOURCETYPE_URL, "source", 0); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -894,8 +797,7 @@ static void test_MsiSourceListAddSourceEx(void) ok(size == 8, "Expected 8, got %lu\n", size); /* NULL szUserSid */ - r = pMsiSourceListAddSourceExA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSISOURCETYPE_NETWORK, "nousersid", 0); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -912,32 +814,27 @@ static void test_MsiSourceListAddSourceEx(void) ok(size == 11, "Expected 11, got %lu\n", size); /* invalid options, must have source type */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, "source", 0); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PATCH, "source", 0); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* NULL szSource */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSISOURCETYPE_URL, NULL, 1); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* empty szSource */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSISOURCETYPE_URL, "", 1); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* MSIINSTALLCONTEXT_USERMANAGED, non-NULL szUserSid */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); @@ -954,8 +851,7 @@ static void test_MsiSourceListAddSourceEx(void) } /* product key exists */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); @@ -964,8 +860,7 @@ static void test_MsiSourceListAddSourceEx(void) RegCloseKey(hkey); /* SourceList exists */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -982,8 +877,7 @@ static void test_MsiSourceListAddSourceEx(void) /* MSIINSTALLCONTEXT_USERMANAGED, NULL szUserSid */ - r = pMsiSourceListAddSourceExA(prodcode, NULL, - MSIINSTALLCONTEXT_USERMANAGED, + r = MsiSourceListAddSourceExA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, MSICODE_PRODUCT | MSISOURCETYPE_URL, "another", 0); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -1009,13 +903,11 @@ static void test_MsiSourceListAddSourceEx(void) machine_tests: /* szUserSid must be NULL for MSIINSTALLCONTEXT_MACHINE */ - r = pMsiSourceListAddSourceExA(prodcode, usersid, - MSIINSTALLCONTEXT_MACHINE, + r = MsiSourceListAddSourceExA(prodcode, usersid, MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - r = pMsiSourceListAddSourceExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, + r = MsiSourceListAddSourceExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); @@ -1031,8 +923,7 @@ machine_tests: } /* product key exists */ - r = pMsiSourceListAddSourceExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, + r = MsiSourceListAddSourceExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); @@ -1041,8 +932,7 @@ machine_tests: RegCloseKey(hkey); /* SourceList exists */ - r = pMsiSourceListAddSourceExA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, + r = MsiSourceListAddSourceExA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0); if (r == ERROR_ACCESS_DENIED) skip("MsiSourceListAddSourceEx (insufficient privileges)\n"); @@ -1079,12 +969,6 @@ static void test_MsiSourceListEnumSources(void) DWORD size; REGSAM access = KEY_ALL_ACCESS; - if (!pMsiSourceListEnumSourcesA) - { - win_skip("MsiSourceListEnumSourcesA is not available\n"); - return; - } - create_test_guid(prodcode, prod_squashed); if (!(usersid = get_user_sid())) { @@ -1099,38 +983,38 @@ static void test_MsiSourceListEnumSources(void) /* NULL szProductCodeOrPatchCode */ size = 0xdeadbeef; - r = pMsiSourceListEnumSourcesA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(size == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", size); /* empty szProductCodeOrPatchCode */ size = 0xdeadbeef; - r = pMsiSourceListEnumSourcesA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(size == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", size); /* garbage szProductCodeOrPatchCode */ size = 0xdeadbeef; - r = pMsiSourceListEnumSourcesA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(size == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", size); /* guid without brackets */ size = 0xdeadbeef; - r = pMsiSourceListEnumSourcesA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(size == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", size); /* guid with brackets */ size = 0xdeadbeef; - r = pMsiSourceListEnumSourcesA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(size == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", size); @@ -1138,9 +1022,8 @@ static void test_MsiSourceListEnumSources(void) size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1154,9 +1037,8 @@ static void test_MsiSourceListEnumSources(void) /* user product key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1167,9 +1049,8 @@ static void test_MsiSourceListEnumSources(void) /* SourceList key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1180,9 +1061,8 @@ static void test_MsiSourceListEnumSources(void) /* URL key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1199,9 +1079,8 @@ static void test_MsiSourceListEnumSources(void) /* sources exist */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); @@ -1209,60 +1088,52 @@ static void test_MsiSourceListEnumSources(void) /* try index 0 again */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); /* both szSource and pcchSource are NULL, index 0 */ - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, NULL, NULL); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* both szSource and pcchSource are NULL, index 1 */ - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 1, NULL, NULL); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 1, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* size is exactly 5 */ size = 5; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); /* szSource is non-NULL while pcchSource is NULL */ lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, NULL); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got %s\n", value); /* try index 1 after failure */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 1, value, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 1, value, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected \"aaa\", got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); /* reset the enumeration */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); @@ -1270,9 +1141,8 @@ static void test_MsiSourceListEnumSources(void) /* try index 1 */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 1, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 1, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "second"), "Expected \"second\", got %s\n", value); ok(size == 6, "Expected 6, got %lu\n", size); @@ -1280,20 +1150,17 @@ static void test_MsiSourceListEnumSources(void) /* try index 1 again */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 1, value, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 1, value, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); /* try index 2 */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 2, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 2, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1301,20 +1168,17 @@ static void test_MsiSourceListEnumSources(void) /* try index < 0 */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, -1, value, &size); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, -1, value, &size); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); /* NULL szUserSid */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); @@ -1322,9 +1186,8 @@ static void test_MsiSourceListEnumSources(void) /* invalid dwOptions, must be one of MSICODE_ and MSISOURCETYPE_ */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, value, &size); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1332,9 +1195,8 @@ static void test_MsiSourceListEnumSources(void) /* invalid dwOptions, must be one of MSICODE_ and MSISOURCETYPE_ */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PATCH, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PATCH, 0, value, &size); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1342,10 +1204,8 @@ static void test_MsiSourceListEnumSources(void) /* invalid dwOptions, must be one of MSICODE_ and MSISOURCETYPE_ */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSICODE_PATCH | MSISOURCETYPE_URL, - 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSICODE_PATCH | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1353,10 +1213,8 @@ static void test_MsiSourceListEnumSources(void) /* invalid dwOptions, must be one of MSICODE_ and MSISOURCETYPE_ */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK | MSISOURCETYPE_URL, - 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1370,9 +1228,8 @@ static void test_MsiSourceListEnumSources(void) /* SourceList key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1383,9 +1240,8 @@ static void test_MsiSourceListEnumSources(void) /* Net key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1396,9 +1252,8 @@ static void test_MsiSourceListEnumSources(void) /* sources exist */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); @@ -1415,9 +1270,8 @@ static void test_MsiSourceListEnumSources(void) size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1437,9 +1291,8 @@ static void test_MsiSourceListEnumSources(void) /* user product key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1450,9 +1303,8 @@ static void test_MsiSourceListEnumSources(void) /* SourceList key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1463,9 +1315,8 @@ static void test_MsiSourceListEnumSources(void) /* URL key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1476,9 +1327,8 @@ static void test_MsiSourceListEnumSources(void) /* sources exist */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); @@ -1486,23 +1336,21 @@ static void test_MsiSourceListEnumSources(void) /* NULL szUserSid */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); RegDeleteValueA(url, "1"); - delete_key(url, "", access); + RegDeleteKeyExA(url, "", access, 0); RegCloseKey(url); /* SourceList key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1513,9 +1361,8 @@ static void test_MsiSourceListEnumSources(void) /* Net key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1526,19 +1373,18 @@ static void test_MsiSourceListEnumSources(void) /* sources exist */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); RegDeleteValueA(net, "1"); - delete_key(net, "", access); + RegDeleteKeyExA(net, "", access, 0); RegCloseKey(net); - delete_key(source, "", access); + RegDeleteKeyExA(source, "", access, 0); RegCloseKey(source); - delete_key(userkey, "", access); + RegDeleteKeyExA(userkey, "", access, 0); RegCloseKey(userkey); /* MSIINSTALLCONTEXT_MACHINE */ @@ -1547,9 +1393,8 @@ machine_tests: /* szUserSid is non-NULL */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, usersid, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, usersid, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1557,9 +1402,8 @@ machine_tests: /* szUserSid is NULL */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1578,9 +1422,8 @@ machine_tests: /* user product key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1591,9 +1434,8 @@ machine_tests: /* SourceList key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1604,9 +1446,8 @@ machine_tests: /* URL key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1617,9 +1458,8 @@ machine_tests: /* sources exist */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); @@ -1627,23 +1467,21 @@ machine_tests: /* NULL szUserSid */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT | MSISOURCETYPE_URL, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); RegDeleteValueA(url, "1"); - delete_key(url, "", access); + RegDeleteKeyExA(url, "", access, 0); RegCloseKey(url); /* SourceList key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1654,9 +1492,8 @@ machine_tests: /* Net key exists */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(!lstrcmpA(value, "aaa"), "Expected value to be unchanged, got %s\n", value); ok(size == MAX_PATH, "Expected MAX_PATH, got %lu\n", size); @@ -1667,19 +1504,18 @@ machine_tests: /* sources exist */ size = MAX_PATH; lstrcpyA(value, "aaa"); - r = pMsiSourceListEnumSourcesA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); + r = MsiSourceListEnumSourcesA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, 0, value, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(value, "first"), "Expected \"first\", got %s\n", value); ok(size == 5, "Expected 5, got %lu\n", size); RegDeleteValueA(net, "1"); - delete_key(net, "", access); + RegDeleteKeyExA(net, "", access, 0); RegCloseKey(net); - delete_key(source, "", access); + RegDeleteKeyExA(source, "", access, 0); RegCloseKey(source); - delete_key(prodkey, "", access); + RegDeleteKeyExA(prodkey, "", access, 0); RegCloseKey(prodkey); LocalFree(usersid); } @@ -1696,11 +1532,6 @@ static void test_MsiSourceListSetInfo(void) UINT r; REGSAM access = KEY_ALL_ACCESS; - if (!pMsiSourceListSetInfoA) - { - win_skip("MsiSourceListSetInfoA is not available\n"); - return; - } if (!is_process_elevated()) { skip("process is limited\n"); @@ -1720,87 +1551,71 @@ static void test_MsiSourceListSetInfo(void) /* GetLastError is not set by the function */ /* NULL szProductCodeOrPatchCode */ - r = pMsiSourceListSetInfoA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* empty szProductCodeOrPatchCode */ - r = pMsiSourceListSetInfoA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* garbage szProductCodeOrPatchCode */ - r = pMsiSourceListSetInfoA("garbage", usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid without brackets */ - r = pMsiSourceListSetInfoA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid with brackets */ - r = pMsiSourceListSetInfoA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiSourceListSetInfoA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* dwOptions is MSICODE_PRODUCT */ - r = pMsiSourceListSetInfoA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* dwOptions is MSICODE_PATCH */ - r = pMsiSourceListSetInfoA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PATCH, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + r = MsiSourceListSetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PATCH, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); /* dwOptions is both MSICODE_PRODUCT and MSICODE_PATCH */ - r = pMsiSourceListSetInfoA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSICODE_PATCH | MSISOURCETYPE_URL, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + r = MsiSourceListSetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSICODE_PATCH | MSISOURCETYPE_URL, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); ok(r == ERROR_UNKNOWN_PATCH, "Expected ERROR_UNKNOWN_PATCH, got %d\n", r); /* dwOptions has both MSISOURCETYPE_NETWORK and MSISOURCETYPE_URL */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK | MSISOURCETYPE_URL, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK | MSISOURCETYPE_URL, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* LastUsedSource and dwOptions has both * MSISOURCETYPE_NETWORK and MSISOURCETYPE_URL */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK | MSISOURCETYPE_URL, - INSTALLPROPERTY_LASTUSEDSOURCEA, "path"); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK | MSISOURCETYPE_URL, + INSTALLPROPERTY_LASTUSEDSOURCEA, "path"); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* LastUsedSource and dwOptions has no source type */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_LASTUSEDSOURCEA, "path"); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_LASTUSEDSOURCEA, "path"); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* MSIINSTALLCONTEXT_USERUNMANAGED */ @@ -1811,19 +1626,16 @@ static void test_MsiSourceListSetInfo(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* user product key exists */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyA(userkey, "SourceList", &source); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* SourceList key exists, no source type */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* Media key is created by MsiSourceListSetInfo */ @@ -1832,91 +1644,71 @@ static void test_MsiSourceListSetInfo(void) CHECK_REG_STR(media, "MediaPackage", "path"); /* set the info again */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path2"); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path2"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(media, "MediaPackage", "path2"); /* NULL szProperty */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - NULL, "path"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + NULL, "path"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* empty szProperty */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - "", "path"); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + "", "path"); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); /* NULL szValue */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, NULL); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, NULL); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); /* empty szValue */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, ""); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, ""); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(media, "MediaPackage", ""); /* INSTALLPROPERTY_MEDIAPACKAGEPATH, MSISOURCETYPE_NETWORK */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* INSTALLPROPERTY_MEDIAPACKAGEPATH, MSISOURCETYPE_URL */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* INSTALLPROPERTY_DISKPROMPT */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_DISKPROMPTA, "prompt"); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_DISKPROMPTA, "prompt"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(media, "DiskPrompt", "prompt"); /* INSTALLPROPERTY_DISKPROMPT, MSISOURCETYPE_NETWORK */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - INSTALLPROPERTY_DISKPROMPTA, "prompt"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + INSTALLPROPERTY_DISKPROMPTA, "prompt"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* INSTALLPROPERTY_DISKPROMPT, MSISOURCETYPE_URL */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, - INSTALLPROPERTY_DISKPROMPTA, "prompt"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, + INSTALLPROPERTY_DISKPROMPTA, "prompt"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* INSTALLPROPERTY_LASTUSEDSOURCE */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_LASTUSEDSOURCEA, "source"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_LASTUSEDSOURCEA, "source"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* INSTALLPROPERTY_LASTUSEDSOURCE, MSISOURCETYPE_NETWORK */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - INSTALLPROPERTY_LASTUSEDSOURCEA, "source"); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + INSTALLPROPERTY_LASTUSEDSOURCEA, "source"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* Net key is created by MsiSourceListSetInfo */ @@ -1926,20 +1718,18 @@ static void test_MsiSourceListSetInfo(void) CHECK_REG_STR(source, "LastUsedSource", "n;1;source"); /* source has forward slash */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - INSTALLPROPERTY_LASTUSEDSOURCEA, "source/"); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + INSTALLPROPERTY_LASTUSEDSOURCEA, "source/"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(net, "1", "source\\"); CHECK_REG_STR(net, "2", "source/\\"); CHECK_REG_STR(source, "LastUsedSource", "n;2;source/"); /* INSTALLPROPERTY_LASTUSEDSOURCE, MSISOURCETYPE_URL */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, - INSTALLPROPERTY_LASTUSEDSOURCEA, "source"); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, + INSTALLPROPERTY_LASTUSEDSOURCEA, "source"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* URL key is created by MsiSourceListSetInfo */ @@ -1949,59 +1739,47 @@ static void test_MsiSourceListSetInfo(void) CHECK_REG_STR(source, "LastUsedSource", "u;1;source"); /* source has backslash */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, - INSTALLPROPERTY_LASTUSEDSOURCEA, "source\\"); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, + INSTALLPROPERTY_LASTUSEDSOURCEA, "source\\"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(url, "1", "source/"); CHECK_REG_STR(url, "2", "source\\/"); CHECK_REG_STR(source, "LastUsedSource", "u;2;source\\"); /* INSTALLPROPERTY_LASTUSEDSOURCE, MSISOURCETYPE_MEDIA */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_MEDIA, - INSTALLPROPERTY_LASTUSEDSOURCEA, "source"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_MEDIA, + INSTALLPROPERTY_LASTUSEDSOURCEA, "source"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* INSTALLPROPERTY_PACKAGENAME */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_PACKAGENAMEA, "name"); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_PACKAGENAMEA, "name"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(source, "PackageName", "name"); /* INSTALLPROPERTY_PACKAGENAME, MSISOURCETYPE_NETWORK */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - INSTALLPROPERTY_PACKAGENAMEA, "name"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + INSTALLPROPERTY_PACKAGENAMEA, "name"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* INSTALLPROPERTY_PACKAGENAME, MSISOURCETYPE_URL */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, - INSTALLPROPERTY_PACKAGENAMEA, "name"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, + INSTALLPROPERTY_PACKAGENAMEA, "name"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* INSTALLPROPERTY_LASTUSEDTYPE */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_LASTUSEDTYPEA, "type"); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_LASTUSEDTYPEA, "type"); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); /* definitely unknown property */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, - "unknown", "val"); - ok(r == ERROR_UNKNOWN_PROPERTY, - "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSICODE_PRODUCT, + "unknown", "val"); + ok(r == ERROR_UNKNOWN_PROPERTY, "Expected ERROR_UNKNOWN_PROPERTY, got %d\n", r); RegDeleteValueA(net, "1"); RegDeleteKeyA(net, ""); @@ -2034,19 +1812,16 @@ static void test_MsiSourceListSetInfo(void) } /* user product key exists */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyExA(userkey, "SourceList", 0, NULL, 0, access, NULL, &source, NULL); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* SourceList key exists, no source type */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_USERMANAGED, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_USERMANAGED, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* Media key is created by MsiSourceListSetInfo */ @@ -2055,11 +1830,11 @@ static void test_MsiSourceListSetInfo(void) CHECK_REG_STR(media, "MediaPackage", "path"); RegDeleteValueA(media, "MediaPackage"); - delete_key(media, "", access); + RegDeleteKeyExA(media, "", access, 0); RegCloseKey(media); - delete_key(source, "", access); + RegDeleteKeyExA(source, "", access, 0); RegCloseKey(source); - delete_key(userkey, "", access); + RegDeleteKeyExA(userkey, "", access, 0); RegCloseKey(userkey); /* MSIINSTALLCONTEXT_MACHINE */ @@ -2077,19 +1852,16 @@ machine_tests: } /* user product key exists */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyExA(prodkey, "SourceList", 0, NULL, 0, access, NULL, &source, NULL); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* SourceList key exists, no source type */ - r = pMsiSourceListSetInfoA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + r = MsiSourceListSetInfoA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); if (r == ERROR_ACCESS_DENIED) { skip("MsiSourceListSetInfo (insufficient privileges)\n"); @@ -2103,19 +1875,17 @@ machine_tests: CHECK_REG_STR(media, "MediaPackage", "path"); /* szUserSid is non-NULL */ - r = pMsiSourceListSetInfoA(prodcode, usersid, - MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT, - INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListSetInfoA(prodcode, usersid, MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT, + INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); RegDeleteValueA(media, "MediaPackage"); - delete_key(media, "", access); + RegDeleteKeyExA(media, "", access, 0); RegCloseKey(media); done: - delete_key(source, "", access); + RegDeleteKeyExA(source, "", access, 0); RegCloseKey(source); - delete_key(prodkey, "", access); + RegDeleteKeyExA(prodkey, "", access, 0); RegCloseKey(prodkey); LocalFree(usersid); } @@ -2132,11 +1902,6 @@ static void test_MsiSourceListAddMediaDisk(void) UINT r; REGSAM access = KEY_ALL_ACCESS; - if (!pMsiSourceListAddMediaDiskA) - { - win_skip("MsiSourceListAddMediaDiskA is not available\n"); - return; - } if (!is_process_elevated()) { skip("process is limited\n"); @@ -2156,60 +1921,52 @@ static void test_MsiSourceListAddMediaDisk(void) /* GetLastError is not set by the function */ /* NULL szProductCodeOrPatchCode */ - r = pMsiSourceListAddMediaDiskA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "label", "prompt"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListAddMediaDiskA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "label", "prompt"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* empty szProductCodeOrPatchCode */ - r = pMsiSourceListAddMediaDiskA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "label", "prompt"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListAddMediaDiskA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "label", "prompt"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* garbage szProductCodeOrPatchCode */ - r = pMsiSourceListAddMediaDiskA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "label", "prompt"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListAddMediaDiskA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "label", "prompt"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid without brackets */ - r = pMsiSourceListAddMediaDiskA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "label", "prompt"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListAddMediaDiskA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "label", "prompt"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid with brackets */ - r = pMsiSourceListAddMediaDiskA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "label", "prompt"); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiSourceListAddMediaDiskA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "label", "prompt"); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* dwOptions has MSISOURCETYPE_NETWORK */ - r = pMsiSourceListAddMediaDiskA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - 1, "label", "prompt"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListAddMediaDiskA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + 1, "label", "prompt"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* dwOptions has MSISOURCETYPE_URL */ - r = pMsiSourceListAddMediaDiskA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, - 1, "label", "prompt"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListAddMediaDiskA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, + 1, "label", "prompt"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* dwOptions has MSISOURCETYPE_MEDIA */ - r = pMsiSourceListAddMediaDiskA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_MEDIA, - 1, "label", "prompt"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListAddMediaDiskA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_MEDIA, + 1, "label", "prompt"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* MSIINSTALLCONTEXT_USERUNMANAGED */ @@ -2220,19 +1977,16 @@ static void test_MsiSourceListAddMediaDisk(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* user product key exists */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "label", "prompt"); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "label", "prompt"); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyA(userkey, "SourceList", &source); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* SourceList key exists */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "label", "prompt"); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "label", "prompt"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* Media subkey is created by MsiSourceListAddMediaDisk */ @@ -2242,18 +1996,16 @@ static void test_MsiSourceListAddMediaDisk(void) CHECK_REG_STR(media, "1", "label;prompt"); /* dwDiskId is random */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 42, "label42", "prompt42"); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 42, "label42", "prompt42"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(media, "1", "label;prompt"); CHECK_REG_STR(media, "42", "label42;prompt42"); /* dwDiskId is 0 */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, "label0", "prompt0"); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, "label0", "prompt0"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(media, "0", "label0;prompt0"); @@ -2261,9 +2013,8 @@ static void test_MsiSourceListAddMediaDisk(void) CHECK_REG_STR(media, "42", "label42;prompt42"); /* dwDiskId is < 0 */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, -1, "label-1", "prompt-1"); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, -1, "label-1", "prompt-1"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(media, "-1", "label-1;prompt-1"); @@ -2272,9 +2023,8 @@ static void test_MsiSourceListAddMediaDisk(void) CHECK_REG_STR(media, "42", "label42;prompt42"); /* update dwDiskId 1 */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "newlabel", "newprompt"); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "newlabel", "newprompt"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(media, "-1", "label-1;prompt-1"); @@ -2283,9 +2033,8 @@ static void test_MsiSourceListAddMediaDisk(void) CHECK_REG_STR(media, "42", "label42;prompt42"); /* update dwDiskId 1, szPrompt is NULL */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "etiqueta", NULL); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "etiqueta", NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(media, "-1", "label-1;prompt-1"); @@ -2294,16 +2043,13 @@ static void test_MsiSourceListAddMediaDisk(void) CHECK_REG_STR(media, "42", "label42;prompt42"); /* update dwDiskId 1, szPrompt is empty */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "etikett", ""); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "etikett", ""); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* update dwDiskId 1, szVolumeLabel is NULL */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, NULL, "provocar"); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, NULL, "provocar"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(media, "-1", "label-1;prompt-1"); @@ -2312,16 +2058,13 @@ static void test_MsiSourceListAddMediaDisk(void) CHECK_REG_STR(media, "42", "label42;prompt42"); /* update dwDiskId 1, szVolumeLabel is empty */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, "", "provoquer"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, "", "provoquer"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* szUserSid is NULL */ - r = pMsiSourceListAddMediaDiskA(prodcode, NULL, - MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, NULL, "provoquer"); + r = MsiSourceListAddMediaDiskA(prodcode, NULL, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, NULL, "provoquer"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(media, "-1", "label-1;prompt-1"); @@ -2355,19 +2098,16 @@ static void test_MsiSourceListAddMediaDisk(void) } /* user product key exists */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT, 1, "label", "prompt"); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT, 1, "label", "prompt"); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyExA(userkey, "SourceList", 0, NULL, 0, access, NULL, &source, NULL); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* SourceList key exists */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT, 1, "label", "prompt"); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT, 1, "label", "prompt"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* Media subkey is created by MsiSourceListAddMediaDisk */ @@ -2377,11 +2117,11 @@ static void test_MsiSourceListAddMediaDisk(void) CHECK_REG_STR(media, "1", "label;prompt"); RegDeleteValueA(media, "1"); - delete_key(media, "", access); + RegDeleteKeyExA(media, "", access, 0); RegCloseKey(media); - delete_key(source, "", access); + RegDeleteKeyExA(source, "", access, 0); RegCloseKey(source); - delete_key(userkey, "", access); + RegDeleteKeyExA(userkey, "", access, 0); RegCloseKey(userkey); /* MSIINSTALLCONTEXT_MACHINE */ @@ -2399,19 +2139,16 @@ machine_tests: } /* machine product key exists */ - r = pMsiSourceListAddMediaDiskA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT, 1, "label", "prompt"); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + r = MsiSourceListAddMediaDiskA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT, 1, "label", "prompt"); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyExA(prodkey, "SourceList", 0, NULL, 0, access, NULL, &source, NULL); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* SourceList key exists */ - r = pMsiSourceListAddMediaDiskA(prodcode, NULL, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT, 1, "label", "prompt"); + r = MsiSourceListAddMediaDiskA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT, 1, "label", "prompt"); if (r == ERROR_ACCESS_DENIED) { skip("MsiSourceListAddMediaDisk (insufficient privileges)\n"); @@ -2426,19 +2163,17 @@ machine_tests: CHECK_REG_STR(media, "1", "label;prompt"); /* szUserSid is non-NULL */ - r = pMsiSourceListAddMediaDiskA(prodcode, usersid, - MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT, 1, "label", "prompt"); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListAddMediaDiskA(prodcode, usersid, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT, 1, "label", "prompt"); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); RegDeleteValueA(media, "1"); - delete_key(media, "", access); + RegDeleteKeyExA(media, "", access, 0); RegCloseKey(media); done: - delete_key(source, "", access); + RegDeleteKeyExA(source, "", access, 0); RegCloseKey(source); - delete_key(prodkey, "", access); + RegDeleteKeyExA(prodkey, "", access, 0); RegCloseKey(prodkey); LocalFree(usersid); } @@ -2457,12 +2192,6 @@ static void test_MsiSourceListEnumMediaDisks(void) UINT r; REGSAM access = KEY_ALL_ACCESS; - if (!pMsiSourceListEnumMediaDisksA) - { - win_skip("MsiSourceListEnumMediaDisksA is not available\n"); - return; - } - create_test_guid(prodcode, prod_squashed); if (!(usersid = get_user_sid())) { @@ -2478,78 +2207,62 @@ static void test_MsiSourceListEnumMediaDisks(void) /* NULL szProductCodeOrPatchCode */ labelsz = sizeof(label); promptsz = sizeof(prompt); - r = pMsiSourceListEnumMediaDisksA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(NULL, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* empty szProductCodeOrPatchCode */ labelsz = sizeof(label); promptsz = sizeof(prompt); - r = pMsiSourceListEnumMediaDisksA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumMediaDisksA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* garbage szProductCodeOrPatchCode */ labelsz = sizeof(label); promptsz = sizeof(prompt); - r = pMsiSourceListEnumMediaDisksA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumMediaDisksA("garbage", usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid without brackets */ labelsz = sizeof(label); promptsz = sizeof(prompt); - r = pMsiSourceListEnumMediaDisksA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumMediaDisksA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid with brackets */ labelsz = sizeof(label); promptsz = sizeof(prompt); - r = pMsiSourceListEnumMediaDisksA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", - usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_UNKNOWN_PRODUCT, - "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); + r = MsiSourceListEnumMediaDisksA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", + usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* dwOptions has MSISOURCETYPE_NETWORK */ labelsz = sizeof(label); promptsz = sizeof(prompt); - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, - 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_NETWORK, + 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* dwOptions has MSISOURCETYPE_URL */ labelsz = sizeof(label); promptsz = sizeof(prompt); - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT | MSISOURCETYPE_URL, - 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT | MSISOURCETYPE_URL, + 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* dwIndex is non-zero */ labelsz = sizeof(label); promptsz = sizeof(prompt); - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* MSIINSTALLCONTEXT_USERUNMANAGED */ @@ -2562,11 +2275,9 @@ static void test_MsiSourceListEnumMediaDisks(void) /* user product key exists */ labelsz = sizeof(label); promptsz = sizeof(prompt); - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyA(userkey, "SourceList", &source); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); @@ -2577,11 +2288,9 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = 0xdeadbeef; lstrcpyA(prompt, "bbb"); promptsz = 0xdeadbeef; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_NO_MORE_ITEMS, - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", labelsz); @@ -2597,11 +2306,9 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = 0xdeadbeef; lstrcpyA(prompt, "bbb"); promptsz = 0xdeadbeef; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_NO_MORE_ITEMS, - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", labelsz); @@ -2617,9 +2324,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(label, "label"), "Expected \"label\", got \"%s\"\n", label); @@ -2634,9 +2340,8 @@ static void test_MsiSourceListEnumMediaDisks(void) id = 0; labelsz = MAX_PATH; promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, &id, NULL, &labelsz, - NULL, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, &id, NULL, &labelsz, NULL, &promptsz); ok(r == ERROR_SUCCESS || r == ERROR_INVALID_PARAMETER, "Expected ERROR_SUCCESS or ERROR_INVALID_PARAMETER, got %d\n", r); if (r == ERROR_SUCCESS) @@ -2652,9 +2357,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS || r == ERROR_INVALID_PARAMETER, "Expected ERROR_SUCCESS or ERROR_INVALID_PARAMETER, got %d\n", r); if (r == ERROR_SUCCESS) @@ -2683,9 +2387,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(label, "label"), "Expected \"label\", got \"%s\"\n", label); @@ -2699,9 +2402,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 2, "Expected 2, got %lu\n", id); ok(!lstrcmpA(label, "one"), "Expected \"one\", got \"%s\"\n", label); @@ -2715,9 +2417,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 2, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 2, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 4, "Expected 4, got %lu\n", id); ok(!lstrcmpA(label, "three"), "Expected \"three\", got \"%s\"\n", label); @@ -2731,11 +2432,9 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 3, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_NO_MORE_ITEMS, - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 3, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == MAX_PATH, "Expected MAX_PATH, got %lu\n", labelsz); @@ -2748,9 +2447,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(label, "label"), "Expected \"label\", got \"%s\"\n", label); @@ -2764,9 +2462,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(label, "label"), "Expected \"label\", got \"%s\"\n", label); @@ -2780,9 +2477,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 2, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 2, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); @@ -2796,9 +2492,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 2, "Expected 2, got %lu\n", id); ok(!lstrcmpA(label, "one"), "Expected \"one\", got \"%s\"\n", label); @@ -2812,9 +2507,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 1, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 1, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); @@ -2827,9 +2521,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, NULL, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, NULL, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(label, "label"), "Expected \"label\", got \"%s\"\n", label); ok(labelsz == 5, "Expected 5, got %lu\n", labelsz); @@ -2841,9 +2534,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, NULL, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, NULL, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS || r == ERROR_INVALID_PARAMETER, "Expected ERROR_SUCCESS or ERROR_INVALID_PARAMETER, got %d\n", r); if (r == ERROR_SUCCESS) @@ -2858,9 +2550,8 @@ static void test_MsiSourceListEnumMediaDisks(void) id = 0; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, NULL, NULL, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, NULL, NULL, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(prompt, "prompt"), "Expected \"prompt\", got \"%s\"\n", prompt); @@ -2871,9 +2562,8 @@ static void test_MsiSourceListEnumMediaDisks(void) lstrcpyA(label, "aaa"); lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, NULL, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, NULL, prompt, &promptsz); ok(r == ERROR_SUCCESS || r == ERROR_INVALID_PARAMETER, "Expected ERROR_SUCCESS or ERROR_INVALID_PARAMETER, got %d\n", r); if (r == ERROR_SUCCESS) @@ -2889,9 +2579,8 @@ static void test_MsiSourceListEnumMediaDisks(void) lstrcpyA(label, "aaa"); labelsz = MAX_PATH; promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - NULL, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, NULL, &promptsz); ok(r == ERROR_SUCCESS || r == ERROR_INVALID_PARAMETER, "Expected ERROR_SUCCESS, got %d\n", r); if (r == ERROR_SUCCESS) { @@ -2905,9 +2594,8 @@ static void test_MsiSourceListEnumMediaDisks(void) id = 0; lstrcpyA(label, "aaa"); labelsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - NULL, NULL); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(label, "label"), "Expected \"label\", got \"%s\"\n", label); @@ -2918,11 +2606,9 @@ static void test_MsiSourceListEnumMediaDisks(void) lstrcpyA(label, "aaa"); labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, NULL); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, NULL); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == MAX_PATH, "Expected MAX_PATH, got %lu\n", labelsz); @@ -2931,18 +2617,16 @@ static void test_MsiSourceListEnumMediaDisks(void) /* pcchVolumeLabel, szDiskPrompt and pcchDiskPrompt are NULL */ id = 0; lstrcpyA(label, "aaa"); - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, NULL, - NULL, NULL); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, NULL, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(id == 1, "Expected 1, got %lu\n", id); /* szVolumeLabel, pcchVolumeLabel, szDiskPrompt and pcchDiskPrompt are NULL */ id = 0; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, NULL, NULL, - NULL, NULL); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, NULL, NULL, NULL, NULL); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); @@ -2951,9 +2635,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = 5; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, NULL, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, NULL, label, &labelsz, prompt, &promptsz); ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == 5, "Expected 5, got %lu\n", labelsz); @@ -2965,9 +2648,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = 6; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, NULL, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, NULL, label, &labelsz, prompt, &promptsz); ok(r == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got %d\n", r); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == 5, "Expected 5, got %lu\n", labelsz); @@ -2983,9 +2665,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(label, "label"), "Expected \"label\", got \"%s\"\n", label); @@ -3002,9 +2683,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(label, "label"), "Expected \"label\", got \"%s\"\n", label); @@ -3021,9 +2701,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(label, ""), "Expected \"\", got \"%s\"\n", label); @@ -3040,9 +2719,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(label, ""), "Expected \"\", got \"%s\"\n", label); @@ -3060,9 +2738,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERUNMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 1, "Expected 1, got %lu\n", id); ok(!lstrcmpA(label, "#42"), "Expected \"#42\", got \"%s\"\n", label); @@ -3095,11 +2772,9 @@ static void test_MsiSourceListEnumMediaDisks(void) } /* user product key exists */ - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyExA(userkey, "SourceList", 0, NULL, 0, access, NULL, &source, NULL); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); @@ -3110,11 +2785,9 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = 0xdeadbeef; lstrcpyA(prompt, "bbb"); promptsz = 0xdeadbeef; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_NO_MORE_ITEMS, - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", labelsz); @@ -3130,11 +2803,9 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = 0xdeadbeef; lstrcpyA(prompt, "bbb"); promptsz = 0xdeadbeef; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_NO_MORE_ITEMS, - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", labelsz); @@ -3150,9 +2821,8 @@ static void test_MsiSourceListEnumMediaDisks(void) labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_USERMANAGED, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 2, "Expected 2, got %lu\n", id); ok(!lstrcmpA(label, "label"), "Expected \"label\", got \"%s\"\n", label); @@ -3161,11 +2831,11 @@ static void test_MsiSourceListEnumMediaDisks(void) ok(promptsz == 6, "Expected 6, got %lu\n", promptsz); RegDeleteValueA(media, "2"); - delete_key(media, "", access); + RegDeleteKeyExA(media, "", access, 0); RegCloseKey(media); - delete_key(source, "", access); + RegDeleteKeyExA(source, "", access, 0); RegCloseKey(source); - delete_key(userkey, "", access); + RegDeleteKeyExA(userkey, "", access, 0); RegCloseKey(userkey); /* MSIINSTALLCONTEXT_MACHINE */ @@ -3183,11 +2853,9 @@ machine_tests: } /* machine product key exists */ - r = pMsiSourceListEnumMediaDisksA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_BAD_CONFIGURATION, - "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyExA(prodkey, "SourceList", 0, NULL, 0, access, NULL, &source, NULL); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); @@ -3198,11 +2866,9 @@ machine_tests: labelsz = 0xdeadbeef; lstrcpyA(prompt, "bbb"); promptsz = 0xdeadbeef; - r = pMsiSourceListEnumMediaDisksA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_NO_MORE_ITEMS, - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", labelsz); @@ -3218,11 +2884,9 @@ machine_tests: labelsz = 0xdeadbeef; lstrcpyA(prompt, "bbb"); promptsz = 0xdeadbeef; - r = pMsiSourceListEnumMediaDisksA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_NO_MORE_ITEMS, - "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == 0xdeadbeef, "Expected 0xdeadbeef, got %lu\n", labelsz); @@ -3238,9 +2902,8 @@ machine_tests: labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); + r = MsiSourceListEnumMediaDisksA(prodcode, NULL, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); ok(id == 2, "Expected 2, got %lu\n", id); ok(!lstrcmpA(label, "label"), "Expected \"label\", got \"%s\"\n", label); @@ -3254,11 +2917,9 @@ machine_tests: labelsz = MAX_PATH; lstrcpyA(prompt, "bbb"); promptsz = MAX_PATH; - r = pMsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_MACHINE, - MSICODE_PRODUCT, 0, &id, label, &labelsz, - prompt, &promptsz); - ok(r == ERROR_INVALID_PARAMETER, - "Expected ERROR_INVALID_PARAMETER, got %d\n", r); + r = MsiSourceListEnumMediaDisksA(prodcode, usersid, MSIINSTALLCONTEXT_MACHINE, + MSICODE_PRODUCT, 0, &id, label, &labelsz, prompt, &promptsz); + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); ok(id == 0xbeef, "Expected 0xbeef, got %lu\n", id); ok(!lstrcmpA(label, "aaa"), "Expected \"aaa\", got \"%s\"\n", label); ok(labelsz == MAX_PATH, "Expected MAX_PATH, got %lu\n", labelsz); @@ -3266,11 +2927,11 @@ machine_tests: ok(promptsz == MAX_PATH, "Expected MAX_PATH, got %lu\n", promptsz); RegDeleteValueA(media, "2"); - delete_key(media, "", access); + RegDeleteKeyExA(media, "", access, 0); RegCloseKey(media); - delete_key(source, "", access); + RegDeleteKeyExA(source, "", access, 0); RegCloseKey(source); - delete_key(prodkey, "", access); + RegDeleteKeyExA(prodkey, "", access, 0); RegCloseKey(prodkey); LocalFree(usersid); } @@ -3288,11 +2949,6 @@ static void test_MsiSourceListAddSource(void) DWORD size; REGSAM access = KEY_ALL_ACCESS; - if (!pMsiSourceListAddSourceA) - { - win_skip("Skipping MsiSourceListAddSourceA tests\n"); - return; - } if (!is_process_elevated()) { skip("process is limited\n"); @@ -3317,40 +2973,40 @@ static void test_MsiSourceListAddSource(void) /* GetLastError is not set by the function */ /* NULL szProduct */ - r = pMsiSourceListAddSourceA(NULL, username, 0, "source"); + r = MsiSourceListAddSourceA(NULL, username, 0, "source"); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* empty szProduct */ - r = pMsiSourceListAddSourceA("", username, 0, "source"); + r = MsiSourceListAddSourceA("", username, 0, "source"); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* garbage szProduct */ - r = pMsiSourceListAddSourceA("garbage", username, 0, "source"); + r = MsiSourceListAddSourceA("garbage", username, 0, "source"); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid without brackets */ - r = pMsiSourceListAddSourceA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", username, 0, "source"); + r = MsiSourceListAddSourceA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA", username, 0, "source"); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* guid with brackets */ - r = pMsiSourceListAddSourceA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", username, 0, "source"); + r = MsiSourceListAddSourceA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}", username, 0, "source"); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); /* dwReserved is not 0 */ - r = pMsiSourceListAddSourceA(prodcode, username, 42, "source"); + r = MsiSourceListAddSourceA(prodcode, username, 42, "source"); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* szSource is NULL */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, NULL); + r = MsiSourceListAddSourceA(prodcode, username, 0, NULL); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* szSource is empty */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, ""); + r = MsiSourceListAddSourceA(prodcode, username, 0, ""); ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); /* MSIINSTALLCONTEXT_USERMANAGED */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, username, 0, "source"); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\"); @@ -3366,14 +3022,14 @@ static void test_MsiSourceListAddSource(void) } /* user product key exists */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, username, 0, "source"); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyExA(userkey, "SourceList", 0, NULL, 0, access, NULL, &source, NULL); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* SourceList key exists */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, username, 0, "source"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* Net key is created */ @@ -3387,14 +3043,14 @@ static void test_MsiSourceListAddSource(void) CHECK_REG_STR(net, "1", "source\\"); RegDeleteValueA(net, "1"); - delete_key(net, "", access); + RegDeleteKeyExA(net, "", access, 0); RegCloseKey(net); res = RegSetValueExA(source, "LastUsedSource", 0, REG_SZ, (LPBYTE)"blah", 5); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* LastUsedSource value exists */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, username, 0, "source"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* Net key is created */ @@ -3405,14 +3061,14 @@ static void test_MsiSourceListAddSource(void) CHECK_REG_STR(net, "1", "source\\"); RegDeleteValueA(net, "1"); - delete_key(net, "", access); + RegDeleteKeyExA(net, "", access, 0); RegCloseKey(net); res = RegSetValueExA(source, "LastUsedSource", 0, REG_SZ, (LPBYTE)"5", 2); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* LastUsedSource is an integer */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, username, 0, "source"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* Net key is created */ @@ -3423,7 +3079,7 @@ static void test_MsiSourceListAddSource(void) CHECK_REG_STR(net, "1", "source\\"); /* Add a second source, has trailing backslash */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, "another\\"); + r = MsiSourceListAddSourceA(prodcode, username, 0, "another\\"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(source, "LastUsedSource", "5"); @@ -3434,7 +3090,7 @@ static void test_MsiSourceListAddSource(void) ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* LastUsedSource is in the source list */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, "third/"); + r = MsiSourceListAddSourceA(prodcode, username, 0, "third/"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(source, "LastUsedSource", "2"); @@ -3445,17 +3101,17 @@ static void test_MsiSourceListAddSource(void) RegDeleteValueA(net, "1"); RegDeleteValueA(net, "2"); RegDeleteValueA(net, "3"); - delete_key(net, "", access); + RegDeleteKeyExA(net, "", access, 0); RegCloseKey(net); - delete_key(source, "", access); + RegDeleteKeyExA(source, "", access, 0); RegCloseKey(source); - delete_key(userkey, "", access); + RegDeleteKeyExA(userkey, "", access, 0); RegCloseKey(userkey); /* MSIINSTALLCONTEXT_USERUNMANAGED */ userunmanaged_tests: - r = pMsiSourceListAddSourceA(prodcode, username, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, username, 0, "source"); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); lstrcpyA(keypath, "Software\\Microsoft\\Installer\\Products\\"); @@ -3469,14 +3125,14 @@ userunmanaged_tests: } /* user product key exists */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, username, 0, "source"); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyA(userkey, "SourceList", &source); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* SourceList key exists */ - r = pMsiSourceListAddSourceA(prodcode, username, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, username, 0, "source"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* Net key is created */ @@ -3496,7 +3152,7 @@ userunmanaged_tests: /* MSIINSTALLCONTEXT_MACHINE */ machine_tests: - r = pMsiSourceListAddSourceA(prodcode, NULL, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, NULL, 0, "source"); ok(r == ERROR_UNKNOWN_PRODUCT, "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r); lstrcpyA(keypath, "Software\\Classes\\Installer\\Products\\"); @@ -3511,14 +3167,14 @@ machine_tests: } /* machine product key exists */ - r = pMsiSourceListAddSourceA(prodcode, NULL, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, NULL, 0, "source"); ok(r == ERROR_BAD_CONFIGURATION, "Expected ERROR_BAD_CONFIGURATION, got %d\n", r); res = RegCreateKeyExA(prodkey, "SourceList", 0, NULL, 0, access, NULL, &source, NULL); ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %ld\n", res); /* SourceList key exists */ - r = pMsiSourceListAddSourceA(prodcode, NULL, 0, "source"); + r = MsiSourceListAddSourceA(prodcode, NULL, 0, "source"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); /* Net key is created */ @@ -3533,7 +3189,7 @@ machine_tests: CHECK_REG_STR(net, "1", "source\\"); /* empty szUserName */ - r = pMsiSourceListAddSourceA(prodcode, "", 0, "another"); + r = MsiSourceListAddSourceA(prodcode, "", 0, "another"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); CHECK_REG_STR(net, "1", "source\\"); @@ -3541,13 +3197,13 @@ machine_tests: RegDeleteValueA(net, "2"); RegDeleteValueA(net, "1"); - delete_key(net, "", access); + RegDeleteKeyExA(net, "", access, 0); RegCloseKey(net); done: - delete_key(source, "", access); + RegDeleteKeyExA(source, "", access, 0); RegCloseKey(source); - delete_key(prodkey, "", access); + RegDeleteKeyExA(prodkey, "", access, 0); RegCloseKey(prodkey); LocalFree(usersid); } @@ -3556,10 +3212,7 @@ START_TEST(source) { if (!is_process_elevated()) restart_as_admin_elevated(); - init_functionpointers(); - - if (pIsWow64Process) - pIsWow64Process(GetCurrentProcess(), &is_wow64); + IsWow64Process(GetCurrentProcess(), &is_wow64); test_MsiSourceListGetInfo(); test_MsiSourceListAddSourceEx(); diff --git a/include/msi.h b/include/msi.h index c1ca99771a4..4012d365579 100644 --- a/include/msi.h +++ b/include/msi.h @@ -602,7 +602,7 @@ USERINFOSTATE WINAPI MsiGetUserInfoA(LPCSTR, LPSTR, LPDWORD, LPSTR, LPDWORD, LPS USERINFOSTATE WINAPI MsiGetUserInfoW(LPCWSTR, LPWSTR, LPDWORD, LPWSTR, LPDWORD, LPWSTR, LPDWORD); #define MsiGetUserInfo WINELIB_NAME_AW(MsiGetUserInfo) -UINT WINAPI MsiProvidedComponentA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPDWORD); +UINT WINAPI MsiProvideComponentA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPDWORD); UINT WINAPI MsiProvideComponentW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPDWORD); #define MsiProvideComponent WINELIB_NAME_AW(MsiProvideComponent)