[PATCH 0/3] MR5477: msi/tests: Try restarting tests elevated.
Wine starts processes non-elevated since e92ba2de43d7afbe0704b11b29f7c30f44dfaeca which means that many tests are skipped now. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5477
From: Hans Leidekker <hans(a)codeweavers.com> --- dlls/msi/tests/automation.c | 85 +------------------ dlls/msi/tests/db.c | 73 ++++------------- dlls/msi/tests/package.c | 158 +++++++++--------------------------- dlls/msi/tests/patch.c | 68 ++-------------- 4 files changed, 65 insertions(+), 319 deletions(-) diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c index d61ee82b1a2..1139571f32a 100644 --- a/dlls/msi/tests/automation.c +++ b/dlls/msi/tests/automation.c @@ -32,6 +32,7 @@ #include <oaidl.h> #include "wine/test.h" +#include "utils.h" static BOOL is_wow64; @@ -42,7 +43,6 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); static const char *msifile = "winetest-automation.msi"; static FILETIME systemtime; -static CHAR CURR_DIR[MAX_PATH]; static EXCEPINFO excepinfo; /* @@ -152,13 +152,6 @@ static const CHAR registry_dat[] = "Registry\tRoot\tKey\tName\tValue\tComponent_ "regdata\t1\tSOFTWARE\\Wine\\msitest\tblah\tbad\tdangler\n" "OrderTest\t1\tSOFTWARE\\Wine\\msitest\tOrderTestName\tOrderTestValue\tcomponent\n"; -typedef struct _msi_table -{ - const CHAR *filename; - const CHAR *data; - int size; -} msi_table; - #define ADD_TABLE(x) {#x".idt", x##_dat, sizeof(x##_dat)} static const msi_table tables[] = @@ -214,42 +207,6 @@ static void init_functionpointers(void) #undef GET_PROC } -static BOOL is_process_limited(void) -{ - SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY}; - PSID Group = NULL; - BOOL IsInGroup; - HANDLE token; - - if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, - DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &Group) || - !CheckTokenMembership(NULL, Group, &IsInGroup)) - { - trace("Could not check if the current user is an administrator\n"); - FreeSid(Group); - return FALSE; - } - FreeSid(Group); - - if (!IsInGroup) - { - /* Only administrators have enough privileges for these tests */ - return TRUE; - } - - if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token)) - { - BOOL ret; - TOKEN_ELEVATION_TYPE type = TokenElevationTypeDefault; - DWORD size; - - ret = GetTokenInformation(token, TokenElevationType, &type, sizeof(type), &size); - CloseHandle(token); - return (ret && type == TokenElevationTypeLimited); - } - return FALSE; -} - static LONG delete_key_portable( HKEY key, LPCSTR subkey, REGSAM access ) { if (pRegDeleteKeyExA) @@ -297,8 +254,8 @@ static void write_msi_summary_info(MSIHANDLE db, const msi_summary_info *info, i MsiCloseHandle(summary); } -static void create_database(const CHAR *name, const msi_table *tables, int num_tables, - const msi_summary_info *info, int num_info) +static void create_database_suminfo(const CHAR *name, const msi_table *tables, int num_tables, + const msi_summary_info *info, int num_info) { MSIHANDLE db; UINT r; @@ -339,7 +296,7 @@ static BOOL create_package(LPWSTR path) DWORD len; /* Prepare package */ - create_database(msifile, tables, ARRAY_SIZE(tables), summary_info, ARRAY_SIZE(summary_info)); + create_database_suminfo(msifile, tables, ARRAY_SIZE(tables), summary_info, ARRAY_SIZE(summary_info)); len = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, CURR_DIR, -1, path, MAX_PATH); @@ -355,8 +312,6 @@ static BOOL create_package(LPWSTR path) * Installation helpers */ -static char PROG_FILES_DIR[MAX_PATH]; - static BOOL get_program_files_dir(LPSTR buf) { HKEY hkey; @@ -374,24 +329,6 @@ static BOOL get_program_files_dir(LPSTR buf) return TRUE; } -static void create_file(const CHAR *name, DWORD size) -{ - HANDLE file; - DWORD written, left; - - file = CreateFileA(name, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); - ok(file != INVALID_HANDLE_VALUE, "Failure to open file %s\n", name); - WriteFile(file, name, strlen(name), &written, NULL); - WriteFile(file, "\n", strlen("\n"), &written, NULL); - - left = size - lstrlenA(name) - 1; - - SetFilePointer(file, left, NULL, FILE_CURRENT); - SetEndOfFile(file); - - CloseHandle(file); -} - static void create_test_files(void) { CreateDirectoryA("msitest", NULL); @@ -407,20 +344,6 @@ static void create_test_files(void) create_file("msitest\\filename", 100); } -static BOOL delete_pf(const CHAR *rel_path, BOOL is_file) -{ - CHAR path[MAX_PATH]; - - lstrcpyA(path, PROG_FILES_DIR); - lstrcatA(path, "\\"); - lstrcatA(path, rel_path); - - if (is_file) - return DeleteFileA(path); - else - return RemoveDirectoryA(path); -} - static void delete_test_files(void) { DeleteFileA("msitest\\cabout\\new\\five.txt"); diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c index 22fe92688ad..56fff94c5df 100644 --- a/dlls/msi/tests/db.c +++ b/dlls/msi/tests/db.c @@ -29,6 +29,7 @@ #include <msiquery.h> #include "wine/test.h" +#include "utils.h" static const char *msifile = "winetest-db.msi"; static const char *msifile2 = "winetst2-db.msi"; @@ -212,22 +213,6 @@ static UINT do_query(MSIHANDLE hdb, const char *query, MSIHANDLE *phrec) return ret; } -static UINT run_query( MSIHANDLE hdb, MSIHANDLE hrec, const char *query ) -{ - MSIHANDLE hview = 0; - UINT r; - - r = MsiDatabaseOpenViewA(hdb, query, &hview); - if( r != ERROR_SUCCESS ) - return r; - - r = MsiViewExecute(hview, hrec); - if( r == ERROR_SUCCESS ) - r = MsiViewClose(hview); - MsiCloseHandle(hview); - return r; -} - static UINT run_queryW( MSIHANDLE hdb, MSIHANDLE hrec, const WCHAR *query ) { MSIHANDLE hview = 0; @@ -1502,29 +1487,6 @@ static void test_longstrings(void) DeleteFileA(msifile); } -static void create_file_data(LPCSTR name, LPCSTR data, DWORD size) -{ - HANDLE file; - DWORD written; - - file = CreateFileA(name, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); - if (file == INVALID_HANDLE_VALUE) - return; - - WriteFile(file, data, strlen(data), &written, NULL); - WriteFile(file, "\n", strlen("\n"), &written, NULL); - - if (size) - { - SetFilePointer(file, size, NULL, FILE_BEGIN); - SetEndOfFile(file); - } - - CloseHandle(file); -} - -#define create_file(name) create_file_data(name, name, 0) - static void test_streamtable(void) { MSIHANDLE hdb = 0, rec, view, hsi; @@ -1607,7 +1569,7 @@ static void test_streamtable(void) MsiCloseHandle( view ); /* insert a file into the _Streams table */ - create_file( "test.txt" ); + create_file( "test.txt", 0 ); rec = MsiCreateRecord( 2 ); MsiRecordSetStringA( rec, 1, "data" ); @@ -1629,7 +1591,7 @@ static void test_streamtable(void) MsiCloseHandle( view ); /* insert another one */ - create_file( "test1.txt" ); + create_file( "test1.txt", 0 ); rec = MsiCreateRecord( 2 ); MsiRecordSetStringA( rec, 1, "data1" ); @@ -1651,7 +1613,7 @@ static void test_streamtable(void) MsiCloseHandle( view ); /* try again */ - create_file( "test1.txt" ); + create_file( "test1.txt", 0 ); rec = MsiCreateRecord( 2 ); MsiRecordSetStringA( rec, 1, "data1" ); @@ -1691,7 +1653,7 @@ static void test_streamtable(void) memset(buf, 0, MAX_PATH); r = MsiRecordReadStream( rec, 2, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r); - ok( !lstrcmpA(buf, "test.txt\n"), "Expected 'test.txt\\n', got %s\n", buf); + ok( !lstrcmpA(buf, "test.txt"), "Expected 'test.txt', got %s\n", buf); MsiCloseHandle( rec ); MsiViewClose( view ); @@ -1716,14 +1678,14 @@ static void test_streamtable(void) memset(buf, 0, MAX_PATH); r = MsiRecordReadStream( rec, 2, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r); - ok( !lstrcmpA(buf, "test1.txt\n"), "Expected 'test1.txt\\n', got %s\n", buf); + ok( !lstrcmpA(buf, "test1.txt"), "Expected 'test1.txt', got %s\n", buf); MsiCloseHandle( rec ); MsiViewClose( view ); MsiCloseHandle( view ); /* perform an update */ - create_file( "test2.txt" ); + create_file( "test2.txt", 0 ); rec = MsiCreateRecord( 1 ); r = MsiRecordSetStreamA( rec, 1, "test2.txt" ); @@ -1761,7 +1723,7 @@ static void test_streamtable(void) memset(buf, 0, MAX_PATH); r = MsiRecordReadStream( rec, 2, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r); - ok( !lstrcmpA(buf, "test2.txt\n"), "Expected 'test2.txt\\n', got %s\n", buf); + ok( !lstrcmpA(buf, "test2.txt"), "Expected 'test2.txt', got %s\n", buf); MsiCloseHandle( rec ); MsiViewClose( view ); @@ -1773,7 +1735,7 @@ static void test_streamtable(void) r = MsiOpenDatabaseW(msifileW, MSIDBOPEN_CREATEDIRECT, &hdb); ok(r == ERROR_SUCCESS, "Failed to create database\n"); ok( hdb, "failed to create db\n"); - create_file( "test.txt" ); + create_file( "test.txt", 0 ); rec = MsiCreateRecord( 2 ); MsiRecordSetStringA( rec, 1, "data" ); r = MsiRecordSetStreamA( rec, 2, "test.txt" ); @@ -1809,7 +1771,7 @@ static void test_streamtable(void) memset(buf, 0, MAX_PATH); r = MsiRecordReadStream( rec, 2, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r); - ok( !lstrcmpA(buf, "test.txt\n"), "Expected 'test.txt\\n', got '%s' (%lu)\n", buf, size); + ok( !lstrcmpA(buf, "test.txt"), "Expected 'test.txt', got '%s' (%lu)\n", buf, size); MsiCloseHandle( rec ); /* open a handle to the "data" stream (and keep it open during removal) */ @@ -1865,7 +1827,7 @@ static void test_binary(void) r = run_query( hdb, 0, query ); ok( r == ERROR_SUCCESS, "Cannot create Binary table: %d\n", r ); - create_file( "test.txt" ); + create_file( "test.txt", 0 ); rec = MsiCreateRecord( 1 ); r = MsiRecordSetStreamA( rec, 1, "test.txt" ); ok( r == ERROR_SUCCESS, "Failed to add stream data to the record: %d\n", r); @@ -1892,7 +1854,7 @@ static void test_binary(void) r = run_query( hdb, 0, query ); ok( r == ERROR_SUCCESS, "Cannot create Binary table: %d\n", r ); - create_file( "test.txt" ); + create_file( "test.txt", 0 ); rec = MsiCreateRecord( 1 ); r = MsiRecordSetStreamA( rec, 1, "test.txt" ); ok( r == ERROR_SUCCESS, "Failed to add stream data to the record: %d\n", r ); @@ -1932,7 +1894,7 @@ static void test_binary(void) memset( buf, 0, MAX_PATH ); r = MsiRecordReadStream( rec, 2, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r ); - ok( !lstrcmpA(buf, "test.txt\n"), "Expected 'test.txt\\n', got %s\n", buf ); + ok( !lstrcmpA(buf, "test.txt"), "Expected 'test.txt', got %s\n", buf ); r = MsiCloseHandle( rec ); ok( r == ERROR_SUCCESS , "Failed to close record handle\n" ); @@ -1951,7 +1913,7 @@ static void test_binary(void) memset( buf, 0, MAX_PATH ); r = MsiRecordReadStream( rec, 3, buf, &size ); ok( r == ERROR_SUCCESS, "Failed to get stream: %d\n", r ); - ok( !lstrcmpA(buf, "test.txt\n"), "Expected 'test.txt\\n', got %s\n", buf ); + ok( !lstrcmpA(buf, "test.txt"), "Expected 'test.txt', got %s\n", buf ); r = MsiCloseHandle( rec ); ok( r == ERROR_SUCCESS , "Failed to close record handle\n" ); @@ -2178,8 +2140,6 @@ static void test_where(void) DeleteFileA(msifile); } -static CHAR CURR_DIR[MAX_PATH]; - static const CHAR test_data[] = "FirstPrimaryColumn\tSecondPrimaryColumn\tShortInt\tShortIntNullable\tLongInt\tLongIntNullable\tString\tLocalizableString\tLocalizableStringNullable\n" "s255\ti2\ti2\tI2\ti4\tI4\tS255\tS0\ts0\n" "TestTable\tFirstPrimaryColumn\n" @@ -7992,7 +7952,7 @@ static void test_dbmerge(void) r = run_query(href, 0, query); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - create_file("binary.dat"); + create_file("binary.dat", 0); hrec = MsiCreateRecord(1); MsiRecordSetStreamA(hrec, 1, "binary.dat"); @@ -8017,8 +7977,7 @@ static void test_dbmerge(void) ZeroMemory(buf, MAX_PATH); r = MsiRecordReadStream(hrec, 2, buf, &size); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - ok(!lstrcmpA(buf, "binary.dat\n"), - "Expected \"binary.dat\\n\", got \"%s\"\n", buf); + ok(!lstrcmpA(buf, "binary.dat"), "Expected \"binary.dat\", got \"%s\"\n", buf); MsiCloseHandle(hrec); diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c index 228fd91ef43..adc85d54b18 100644 --- a/dlls/msi/tests/package.c +++ b/dlls/msi/tests/package.c @@ -32,11 +32,11 @@ #include <sddl.h> #include "wine/test.h" +#include "utils.h" static BOOL is_wow64; static const char msifile[] = "winetest-package.msi"; static const WCHAR msifileW[] = L"winetest-package.msi"; -static char CURR_DIR[MAX_PATH]; static INSTALLSTATE (WINAPI *pMsiGetComponentPathExA)(LPCSTR, LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPSTR, LPDWORD); @@ -68,54 +68,6 @@ static void init_functionpointers(void) #undef GET_PROC } -static BOOL is_process_limited(void) -{ - SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY}; - PSID Group = NULL; - BOOL IsInGroup; - HANDLE token; - - if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, - DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &Group) || - !CheckTokenMembership(NULL, Group, &IsInGroup)) - { - trace("Could not check if the current user is an administrator\n"); - FreeSid(Group); - return FALSE; - } - FreeSid(Group); - - if (!IsInGroup) - { - if (!AllocateAndInitializeSid(&NtAuthority, 2, - SECURITY_BUILTIN_DOMAIN_RID, - DOMAIN_ALIAS_RID_POWER_USERS, - 0, 0, 0, 0, 0, 0, &Group) || - !CheckTokenMembership(NULL, Group, &IsInGroup)) - { - trace("Could not check if the current user is a power user\n"); - return FALSE; - } - if (!IsInGroup) - { - /* Only administrators and power users can be powerful */ - return TRUE; - } - } - - if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token)) - { - BOOL ret; - TOKEN_ELEVATION_TYPE type = TokenElevationTypeDefault; - DWORD size; - - ret = GetTokenInformation(token, TokenElevationType, &type, sizeof(type), &size); - CloseHandle(token); - return (ret && type == TokenElevationTypeLimited); - } - return FALSE; -} - static LONG delete_key( HKEY key, LPCSTR subkey, REGSAM access ) { if (pRegDeleteKeyExA) @@ -402,25 +354,9 @@ static UINT do_query(MSIHANDLE hdb, const char *query, MSIHANDLE *phrec) return ret; } -static UINT run_query( MSIHANDLE hdb, const char *query ) -{ - MSIHANDLE hview = 0; - UINT r; - - r = MsiDatabaseOpenViewA(hdb, query, &hview); - if( r != ERROR_SUCCESS ) - return r; - - r = MsiViewExecute(hview, 0); - if( r == ERROR_SUCCESS ) - r = MsiViewClose(hview); - MsiCloseHandle(hview); - return r; -} - static UINT create_component_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `Component` ( " "`Component` CHAR(72) NOT NULL, " "`ComponentId` CHAR(38), " @@ -435,7 +371,7 @@ static UINT create_component_table( MSIHANDLE hdb ) static UINT create_feature_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `Feature` ( " "`Feature` CHAR(38) NOT NULL, " "`Feature_Parent` CHAR(38), " @@ -452,7 +388,7 @@ static UINT create_feature_table( MSIHANDLE hdb ) static UINT create_feature_components_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `FeatureComponents` ( " "`Feature_` CHAR(38) NOT NULL, " "`Component_` CHAR(72) NOT NULL " @@ -463,7 +399,7 @@ static UINT create_feature_components_table( MSIHANDLE hdb ) static UINT create_file_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `File` (" "`File` CHAR(72) NOT NULL, " "`Component_` CHAR(72) NOT NULL, " @@ -480,7 +416,7 @@ static UINT create_file_table( MSIHANDLE hdb ) static UINT create_remove_file_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `RemoveFile` (" "`FileKey` CHAR(72) NOT NULL, " "`Component_` CHAR(72) NOT NULL, " @@ -494,7 +430,7 @@ static UINT create_remove_file_table( MSIHANDLE hdb ) static UINT create_appsearch_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `AppSearch` (" "`Property` CHAR(72) NOT NULL, " "`Signature_` CHAR(72) NOT NULL " @@ -505,7 +441,7 @@ static UINT create_appsearch_table( MSIHANDLE hdb ) static UINT create_reglocator_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `RegLocator` (" "`Signature_` CHAR(72) NOT NULL, " "`Root` SHORT NOT NULL, " @@ -519,7 +455,7 @@ static UINT create_reglocator_table( MSIHANDLE hdb ) static UINT create_signature_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `Signature` (" "`Signature` CHAR(72) NOT NULL, " "`FileName` CHAR(255) NOT NULL, " @@ -537,7 +473,7 @@ static UINT create_signature_table( MSIHANDLE hdb ) static UINT create_launchcondition_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `LaunchCondition` (" "`Condition` CHAR(255) NOT NULL, " "`Description` CHAR(255) NOT NULL " @@ -548,7 +484,7 @@ static UINT create_launchcondition_table( MSIHANDLE hdb ) static UINT create_property_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `Property` (" "`Property` CHAR(72) NOT NULL, " "`Value` CHAR(0) " @@ -559,7 +495,7 @@ static UINT create_property_table( MSIHANDLE hdb ) static UINT create_install_execute_sequence_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `InstallExecuteSequence` (" "`Action` CHAR(72) NOT NULL, " "`Condition` CHAR(255), " @@ -571,7 +507,7 @@ static UINT create_install_execute_sequence_table( MSIHANDLE hdb ) static UINT create_install_ui_sequence_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `InstallUISequence` (" "`Action` CHAR(72) NOT NULL, " "`Condition` CHAR(255), " @@ -583,7 +519,7 @@ static UINT create_install_ui_sequence_table( MSIHANDLE hdb ) static UINT create_media_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `Media` (" "`DiskId` SHORT NOT NULL, " "`LastSequence` SHORT NOT NULL, " @@ -598,7 +534,7 @@ static UINT create_media_table( MSIHANDLE hdb ) static UINT create_ccpsearch_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `CCPSearch` (" "`Signature_` CHAR(72) NOT NULL " "PRIMARY KEY `Signature_`)" ); @@ -608,7 +544,7 @@ static UINT create_ccpsearch_table( MSIHANDLE hdb ) static UINT create_drlocator_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `DrLocator` (" "`Signature_` CHAR(72) NOT NULL, " "`Parent` CHAR(72), " @@ -621,7 +557,7 @@ static UINT create_drlocator_table( MSIHANDLE hdb ) static UINT create_complocator_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `CompLocator` (" "`Signature_` CHAR(72) NOT NULL, " "`ComponentId` CHAR(38) NOT NULL, " @@ -633,7 +569,7 @@ static UINT create_complocator_table( MSIHANDLE hdb ) static UINT create_inilocator_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `IniLocator` (" "`Signature_` CHAR(72) NOT NULL, " "`FileName` CHAR(255) NOT NULL, " @@ -648,7 +584,7 @@ static UINT create_inilocator_table( MSIHANDLE hdb ) static UINT create_custom_action_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `CustomAction` (" "`Action` CHAR(72) NOT NULL, " "`Type` SHORT NOT NULL, " @@ -661,7 +597,7 @@ static UINT create_custom_action_table( MSIHANDLE hdb ) static UINT create_dialog_table( MSIHANDLE hdb ) { - UINT r = run_query(hdb, + UINT r = run_query(hdb, 0, "CREATE TABLE `Dialog` (" "`Dialog` CHAR(72) NOT NULL, " "`HCentering` SHORT NOT NULL, " @@ -680,7 +616,7 @@ static UINT create_dialog_table( MSIHANDLE hdb ) static UINT create_control_table( MSIHANDLE hdb ) { - UINT r = run_query(hdb, + UINT r = run_query(hdb, 0, "CREATE TABLE `Control` (" "`Dialog_` CHAR(72) NOT NULL, " "`Control` CHAR(50) NOT NULL, " @@ -701,7 +637,7 @@ static UINT create_control_table( MSIHANDLE hdb ) static UINT create_controlevent_table( MSIHANDLE hdb ) { - UINT r = run_query(hdb, + UINT r = run_query(hdb, 0, "CREATE TABLE `ControlEvent` (" "`Dialog_` CHAR(72) NOT NULL, " "`Control_` CHAR(50) NOT NULL, " @@ -716,7 +652,7 @@ static UINT create_controlevent_table( MSIHANDLE hdb ) static UINT create_actiontext_table( MSIHANDLE hdb ) { - UINT r = run_query(hdb, + UINT r = run_query(hdb, 0, "CREATE TABLE `ActionText` (" "`Action` CHAR(72) NOT NULL, " "`Description` CHAR(64) LOCALIZABLE, " @@ -728,7 +664,7 @@ static UINT create_actiontext_table( MSIHANDLE hdb ) static UINT create_upgrade_table( MSIHANDLE hdb ) { - UINT r = run_query( hdb, + UINT r = run_query( hdb, 0, "CREATE TABLE `Upgrade` (" "`UpgradeCode` CHAR(38) NOT NULL, " "`VersionMin` CHAR(20), " @@ -750,7 +686,7 @@ static inline UINT add_entry(const char *file, int line, const char *type, MSIHA sz = strlen(values) + strlen(insert) + 1; query = malloc(sz); sprintf(query, insert, values); - r = run_query(hdb, query); + r = run_query(hdb, 0, query); free(query); ok_(file, line)(r == ERROR_SUCCESS, "failed to insert into %s table: %u\n", type, r); return r; @@ -867,7 +803,7 @@ static UINT add_reglocator_entry( MSIHANDLE hdb, const char *sig, UINT root, con sz = strlen( sig ) + 10 + strlen( path ) + strlen( name ) + 10 + sizeof( insert ); query = malloc( sz ); sprintf( query, insert, sig, root, path, name, type ); - r = run_query( hdb, query ); + r = run_query( hdb, 0, query ); free( query ); ok(r == ERROR_SUCCESS, "failed to insert into reglocator table: %u\n", r); \ return r; @@ -937,7 +873,7 @@ static MSIHANDLE create_package_db(void) res = set_summary_info(hdb); ok( res == ERROR_SUCCESS, "Expected ERROR_SUCCESS got %d\n", res); - res = run_query( hdb, + res = run_query( hdb, 0, "CREATE TABLE `Directory` ( " "`Directory` CHAR(255) NOT NULL, " "`Directory_Parent` CHAR(255), " @@ -973,25 +909,9 @@ static UINT package_from_db(MSIHANDLE hdb, MSIHANDLE *handle) return ERROR_SUCCESS; } -static void create_file_data(LPCSTR name, LPCSTR data) -{ - HANDLE file; - DWORD written; - - file = CreateFileA(name, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); - ok(file != INVALID_HANDLE_VALUE, "Failure to open file %s\n", name); - if (file == INVALID_HANDLE_VALUE) - return; - - WriteFile(file, data, strlen(data), &written, NULL); - WriteFile(file, "\n", strlen("\n"), &written, NULL); - - CloseHandle(file); -} - static void create_test_file(const CHAR *name) { - create_file_data(name, name); + create_file_data(name, name, strlen(name)); } typedef struct _tagVS_VERSIONINFO @@ -2393,7 +2313,7 @@ static void test_property_table(void) query = "CREATE TABLE `_Property` ( " "`foo` INT NOT NULL, `bar` INT LOCALIZABLE PRIMARY KEY `foo`)"; - r = run_query(hdb, query); + r = run_query(hdb, 0, query); ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r); MsiCloseHandle(hdb); @@ -2405,19 +2325,19 @@ static void test_property_table(void) query = "CREATE TABLE `_Property` ( " "`foo` INT NOT NULL, `bar` INT LOCALIZABLE PRIMARY KEY `foo`)"; - r = run_query(hdb, query); + r = run_query(hdb, 0, query); ok(r == ERROR_SUCCESS, "failed to create table\n"); query = "ALTER `_Property` ADD `foo` INTEGER"; - r = run_query(hdb, query); + r = run_query(hdb, 0, query); ok(r == ERROR_BAD_QUERY_SYNTAX, "failed to add column\n"); query = "ALTER TABLE `_Property` ADD `foo` INTEGER"; - r = run_query(hdb, query); + r = run_query(hdb, 0, query); ok(r == ERROR_BAD_QUERY_SYNTAX, "failed to add column\n"); query = "ALTER TABLE `_Property` ADD `extra` INTEGER"; - r = run_query(hdb, query); + r = run_query(hdb, 0, query); ok(r == ERROR_SUCCESS, "failed to add column\n"); sprintf(package, "#%lu", hdb); @@ -7995,7 +7915,7 @@ static void test_MsiGetProductProperty(void) r = set_summary_info(hdb); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - r = run_query(hdb, + r = run_query(hdb, 0, "CREATE TABLE `Directory` ( " "`Directory` CHAR(255) NOT NULL, " "`Directory_Parent` CHAR(255), " @@ -9125,13 +9045,13 @@ static void test_externalui_message(void) hdb = create_package_db(); ok(hdb, "failed to create database\n"); - create_file_data("forcecodepage.idt", "\r\n\r\n1252\t_ForceCodepage\r\n"); + create_file_data("forcecodepage.idt", "\r\n\r\n1252\t_ForceCodepage\r\n", sizeof("\r\n\r\n1252\t_ForceCodepage\r\n") - 1); r = MsiDatabaseImportA(hdb, CURR_DIR, "forcecodepage.idt"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); - r = run_query(hdb, "CREATE TABLE `Error` (`Error` SHORT NOT NULL, `Message` CHAR(0) PRIMARY KEY `Error`)"); + r = run_query(hdb, 0, "CREATE TABLE `Error` (`Error` SHORT NOT NULL, `Message` CHAR(0) PRIMARY KEY `Error`)"); ok(r == ERROR_SUCCESS, "Failed to create Error table: %u\n", r); - r = run_query(hdb, "INSERT INTO `Error` (`Error`, `Message`) VALUES (5, 'internal error')"); + r = run_query(hdb, 0, "INSERT INTO `Error` (`Error`, `Message`) VALUES (5, 'internal error')"); ok(r == ERROR_SUCCESS, "Failed to insert into Error table: %u\n", r); create_actiontext_table(hdb); @@ -9342,7 +9262,7 @@ static void test_controlevent(void) hdb = create_package_db(); ok(hdb, "failed to create database\n"); - create_file_data("forcecodepage.idt", "\r\n\r\n1252\t_ForceCodepage\r\n"); + create_file_data("forcecodepage.idt", "\r\n\r\n1252\t_ForceCodepage\r\n", sizeof("\r\n\r\n1252\t_ForceCodepage\r\n") - 1); r = MsiDatabaseImportA(hdb, CURR_DIR, "forcecodepage.idt"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); @@ -9565,7 +9485,7 @@ static void test_top_level_action(void) hdb = create_package_db(); ok(hdb, "failed to create database\n"); - create_file_data("forcecodepage.idt", "\r\n\r\n1252\t_ForceCodepage\r\n"); + create_file_data("forcecodepage.idt", "\r\n\r\n1252\t_ForceCodepage\r\n", sizeof("\r\n\r\n1252\t_ForceCodepage\r\n") -1 ); r = MsiDatabaseImportA(hdb, CURR_DIR, "forcecodepage.idt"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r); diff --git a/dlls/msi/tests/patch.c b/dlls/msi/tests/patch.c index 9d46f493e08..0dbb8451ca3 100644 --- a/dlls/msi/tests/patch.c +++ b/dlls/msi/tests/patch.c @@ -30,6 +30,7 @@ #include <wtypes.h> #include "wine/test.h" +#include "utils.h" static UINT (WINAPI *pMsiApplyPatchA)( LPCSTR, LPCSTR, INSTALLTYPE, LPCSTR ); static UINT (WINAPI *pMsiGetPatchInfoExA)( LPCSTR, LPCSTR, LPCSTR, MSIINSTALLCONTEXT, @@ -42,10 +43,6 @@ static const char *mspfile = "winetest-patch.msp"; static const WCHAR msifileW[] = L"winetest-patch.msi"; static const WCHAR mspfileW[] = L"winetest-patch.msp"; -static char CURR_DIR[MAX_PATH]; -static char PROG_FILES_DIR[MAX_PATH]; -static char COMMON_FILES_DIR[MAX_PATH]; - /* msi database data */ static const char property_dat[] = @@ -136,8 +133,6 @@ struct msi_table int size; }; -#define ADD_TABLE( x ) { #x".idt", x##_dat, sizeof(x##_dat) } - static const struct msi_table tables[] = { ADD_TABLE( directory ), @@ -167,23 +162,6 @@ static void init_function_pointers( void ) #undef GET_PROC } -static BOOL is_process_limited(void) -{ - HANDLE token; - - if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token)) - { - BOOL ret; - TOKEN_ELEVATION_TYPE type = TokenElevationTypeDefault; - DWORD size; - - ret = GetTokenInformation(token, TokenElevationType, &type, sizeof(type), &size); - CloseHandle(token); - return (ret && type == TokenElevationTypeLimited); - } - return FALSE; -} - static BOOL get_program_files_dir( char *buf, char *buf2 ) { HKEY hkey; @@ -209,40 +187,6 @@ static BOOL get_program_files_dir( char *buf, char *buf2 ) return TRUE; } -static void create_file_data( const char *filename, const char *data, DWORD size ) -{ - HANDLE file; - DWORD written; - - file = CreateFileA( filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL ); - if (file == INVALID_HANDLE_VALUE) - return; - - WriteFile( file, data, strlen( data ), &written, NULL ); - if (size) - { - SetFilePointer( file, size, NULL, FILE_BEGIN ); - SetEndOfFile( file ); - } - CloseHandle( file ); -} - -#define create_file( name, size ) create_file_data( name, name, size ) - -static BOOL delete_pf( const char *rel_path, BOOL is_file ) -{ - char path[MAX_PATH]; - - strcpy( path, PROG_FILES_DIR ); - strcat( path, "\\" ); - strcat( path, rel_path ); - - if (is_file) - return DeleteFileA( path ); - else - return RemoveDirectoryA( path ); -} - static DWORD get_pf_file_size( const char *filename ) { char path[MAX_PATH]; @@ -313,7 +257,7 @@ static void set_suminfo( const WCHAR *filename ) ok( r == ERROR_SUCCESS, "failed to close database %u\n", r ); } -static void create_database( const char *filename, const struct msi_table *tables, UINT num_tables ) +static void create_database_suminfo( const char *filename, const struct msi_table *tables, UINT num_tables ) { MSIHANDLE hdb; UINT r, i; @@ -761,7 +705,7 @@ static void test_simple_patch( void ) CreateDirectoryA( "msitest", NULL ); create_file( "msitest\\patch.txt", 1000 ); - create_database( msifile, tables, ARRAY_SIZE(tables) ); + create_database_suminfo( msifile, tables, ARRAY_SIZE(tables) ); create_patch( mspfile ); MsiSetInternalUI( INSTALLUILEVEL_NONE, NULL ); @@ -962,7 +906,7 @@ static void test_MsiOpenDatabase( void ) MsiCloseHandle( hdb ); DeleteFileA( mspfile ); - create_database( msifile, tables, ARRAY_SIZE(tables) ); + create_database_suminfo( msifile, tables, ARRAY_SIZE(tables) ); create_patch( mspfile ); r = MsiOpenDatabaseW( msifileW, MSIDBOPEN_READONLY + MSIDBOPEN_PATCHFILE, &hdb ); @@ -1100,7 +1044,7 @@ static void test_system_tables( void ) CreateDirectoryA( "msitest", NULL ); create_file( "msitest\\patch.txt", 1000 ); - create_database( msifile, tables, ARRAY_SIZE(tables) ); + create_database_suminfo( msifile, tables, ARRAY_SIZE(tables) ); create_patch( mspfile ); MsiSetInternalUI( INSTALLUILEVEL_NONE, NULL ); @@ -1290,7 +1234,7 @@ static void test_patch_registration( void ) CreateDirectoryA( "msitest", NULL ); create_file( "msitest\\patch.txt", 1000 ); - create_database( msifile, tables, ARRAY_SIZE(tables) ); + create_database_suminfo( msifile, tables, ARRAY_SIZE(tables) ); create_patch( mspfile ); MsiSetInternalUI( INSTALLUILEVEL_NONE, NULL ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5477
From: Hans Leidekker <hans(a)codeweavers.com> Wine starts processes non-elevated since e92ba2de43d7afbe0704b11b29f7c30f44dfaeca which means that many tests are skipped now. --- dlls/msi/tests/action.c | 105 ++++++++++++++++++++++++---------- dlls/msi/tests/automation.c | 4 +- dlls/msi/tests/install.c | 111 +++++++++++++++--------------------- dlls/msi/tests/msi.c | 26 +++++---- dlls/msi/tests/package.c | 6 +- dlls/msi/tests/patch.c | 8 ++- dlls/msi/tests/source.c | 10 ++-- dlls/msi/tests/utils.h | 3 +- 8 files changed, 153 insertions(+), 120 deletions(-) diff --git a/dlls/msi/tests/action.c b/dlls/msi/tests/action.c index e5c862e206c..715555f5207 100644 --- a/dlls/msi/tests/action.c +++ b/dlls/msi/tests/action.c @@ -2669,7 +2669,7 @@ static void test_register_product(void) static const CHAR userugkey[] = "Software\\Microsoft\\Installer\\UpgradeCodes" "\\51AAE0C44620A5E4788506E91F249BD2"; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3052,7 +3052,7 @@ static void test_publish_product(void) BOOL old_installer = FALSE; REGSAM access = KEY_ALL_ACCESS; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3283,7 +3283,7 @@ static void test_publish_features(void) CHAR keypath[MAX_PATH]; REGSAM access = KEY_ALL_ACCESS; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3467,7 +3467,7 @@ static void test_register_user(void) "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\" "UserData\\%s\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB"; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3563,7 +3563,7 @@ static void test_process_components(void) CHAR program_files_maximus[MAX_PATH]; REGSAM access = KEY_ALL_ACCESS; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3700,7 +3700,7 @@ static void test_publish(void) win_skip("MsiQueryFeatureStateExA is not available\n"); return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4297,7 +4297,7 @@ static void test_publish_sourcelist(void) win_skip("MsiSourceListEnumSourcesA and/or MsiSourceListGetInfoA are not available\n"); return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4495,7 +4495,7 @@ static void test_remove_files(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4630,7 +4630,7 @@ static void test_move_files(void) UINT r; char props[4 * MAX_PATH + 74]; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4776,7 +4776,7 @@ static void test_duplicate_files(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4819,7 +4819,7 @@ static void test_write_registry_values(void) LONG res; UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4987,7 +4987,7 @@ static void test_envvar(void) HKEY env, env2; LONG res; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5102,7 +5102,7 @@ static void test_create_remove_folder(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5274,7 +5274,7 @@ static void test_delete_services(void) SC_HANDLE manager, service; DWORD error; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5348,7 +5348,7 @@ static void test_install_services(void) HKEY hKey; DWORD err_control, err_controlsize, err_controltype; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5424,7 +5424,7 @@ static void test_self_registration(void) HKEY key; UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5472,7 +5472,7 @@ static void test_register_font(void) UINT r; REGSAM access = KEY_ALL_ACCESS; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5523,7 +5523,7 @@ static void test_validate_product_id(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5577,7 +5577,7 @@ static void test_install_remove_odbc(void) WORD len; UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5660,7 +5660,7 @@ static void test_register_typelib(void) HRESULT hr; UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5710,7 +5710,7 @@ static void test_create_remove_shortcut(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5759,7 +5759,7 @@ static void test_publish_components(void) BYTE *data; DWORD size; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5843,7 +5843,7 @@ static void test_remove_duplicate_files(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5893,7 +5893,7 @@ static void test_find_related_products(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5937,7 +5937,7 @@ static void test_ini_values(void) HANDLE file; BOOL ret; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5998,7 +5998,7 @@ static void test_register_class_info(void) LONG res; HKEY hkey; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -6063,7 +6063,7 @@ static void test_register_extension_info(void) LONG res; HKEY hkey; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -6115,7 +6115,7 @@ static void test_register_progid_info(void) LONG res; HKEY hkey; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -6241,7 +6241,7 @@ static void test_register_mime_info(void) LONG res; HKEY hkey; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -6340,7 +6340,7 @@ static void test_publish_assemblies(void) const char *path; int access; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -6504,7 +6504,7 @@ static void test_remove_existing_products(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -6536,6 +6536,47 @@ error: DeleteFileA(msifile); } +static HANDLE get_admin_token(void) +{ + TOKEN_ELEVATION_TYPE type; + TOKEN_LINKED_TOKEN linked; + DWORD size; + + if (!GetTokenInformation(GetCurrentThreadEffectiveToken(), TokenElevationType, &type, sizeof(type), &size) + || type == TokenElevationTypeFull) + return NULL; + + if (!GetTokenInformation(GetCurrentThreadEffectiveToken(), TokenLinkedToken, &linked, sizeof(linked), &size)) + return NULL; + return linked.LinkedToken; +} + +void restart_as_admin_elevated(void) +{ + HANDLE token; + PROCESS_INFORMATION pi; + STARTUPINFOW si; + + if (!(token = get_admin_token())) return; + + memset(&si, 0, sizeof(si)); + si.cb = sizeof(si); + if (CreateProcessAsUserW(token, NULL, GetCommandLineW(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) + { + DWORD exit_code; + + trace("restarting\n"); + WaitForSingleObject(pi.hProcess, INFINITE); + GetExitCodeProcess(pi.hProcess, &exit_code); + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + ExitProcess(exit_code); + } + else trace("failed to restart as admin %lu\n", GetLastError()); + + CloseHandle(token); +} + START_TEST(action) { DWORD len; @@ -6543,6 +6584,8 @@ START_TEST(action) STATEMGRSTATUS status; BOOL ret = FALSE; + if (!is_process_elevated()) restart_as_admin_elevated(); + init_functionpointers(); subtest("custom"); diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c index 1139571f32a..2766933bcc5 100644 --- a/dlls/msi/tests/automation.c +++ b/dlls/msi/tests/automation.c @@ -2309,7 +2309,7 @@ static void test_Installer_InstallProduct(void) IDispatch *pStringList = NULL; REGSAM access = KEY_ALL_ACCESS; - if (is_process_limited()) + if (!is_process_elevated()) { /* In fact InstallProduct would succeed but then Windows XP * would not allow us to clean up the registry! @@ -2626,6 +2626,8 @@ START_TEST(automation) init_functionpointers(); + if (!is_process_elevated()) restart_as_admin_elevated(); + if (pIsWow64Process) pIsWow64Process(GetCurrentProcess(), &is_wow64); diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c index a7388a917d8..23b5a858ece 100644 --- a/dlls/msi/tests/install.c +++ b/dlls/msi/tests/install.c @@ -2251,40 +2251,17 @@ static void init_functionpointers(void) #undef GET_PROC } -BOOL is_process_limited(void) +BOOL is_process_elevated(void) { - SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY}; - PSID Group = NULL; - BOOL IsInGroup; HANDLE token; + TOKEN_ELEVATION_TYPE type = TokenElevationTypeDefault; + DWORD size; + BOOL ret; - if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, - DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &Group) || - !CheckTokenMembership(NULL, Group, &IsInGroup)) - { - trace("Could not check if the current user is an administrator\n"); - FreeSid(Group); - return FALSE; - } - FreeSid(Group); - - if (!IsInGroup) - { - /* Only administrators have enough privileges for these tests */ - return TRUE; - } - - if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token)) - { - BOOL ret; - TOKEN_ELEVATION_TYPE type = TokenElevationTypeDefault; - DWORD size; - - ret = GetTokenInformation(token, TokenElevationType, &type, sizeof(type), &size); - CloseHandle(token); - return (ret && type == TokenElevationTypeLimited); - } - return FALSE; + if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token)) return FALSE; + ret = GetTokenInformation(token, TokenElevationType, &type, sizeof(type), &size); + CloseHandle(token); + return (ret && type == TokenElevationTypeFull); } static BOOL check_record(MSIHANDLE rec, UINT field, LPCSTR val) @@ -2771,7 +2748,7 @@ static void test_MsiInstallProduct(void) DWORD num, size, type; REGSAM access = KEY_ALL_ACCESS; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3116,7 +3093,7 @@ static void test_continuouscabs(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3309,7 +3286,7 @@ static void test_mixedmedia(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3429,7 +3406,7 @@ static void test_readonlyfile(void) HANDLE file; CHAR path[MAX_PATH]; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3478,7 +3455,7 @@ static void test_readonlyfile_cab(void) CHAR path[MAX_PATH]; CHAR buf[16]; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3535,7 +3512,7 @@ static void test_setdirproperty(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3568,7 +3545,7 @@ static void test_cabisextracted(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3809,7 +3786,7 @@ static void test_transformprop(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3857,7 +3834,7 @@ static void test_currentworkingdir(void) CHAR drive[MAX_PATH], path[MAX_PATH + 12]; LPSTR ptr; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4015,7 +3992,7 @@ static void test_adminprops(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4066,7 +4043,7 @@ static void test_missingcab(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4136,7 +4113,7 @@ static void test_sourcefolder(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4239,7 +4216,7 @@ static void test_customaction51(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4272,7 +4249,7 @@ static void test_installstate(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4758,7 +4735,7 @@ static void test_missingcomponent(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4814,7 +4791,7 @@ static void test_sourcedirprop(void) UINT r; CHAR props[MAX_PATH + 18]; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4865,7 +4842,7 @@ static void test_adminimage(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4936,7 +4913,7 @@ static void test_propcase(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5042,7 +5019,7 @@ static void test_shortcut(void) UINT r; HRESULT hr; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5089,7 +5066,7 @@ static void test_preselected(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5145,7 +5122,7 @@ static void test_installed_prop(void) static const char prodcode[] = "{7df88a48-996f-4ec8-a022-bf956f9b2cbb}"; UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5184,7 +5161,7 @@ static void test_allusers_prop(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5345,7 +5322,7 @@ static void test_file_in_use(void) HKEY hkey; char path[MAX_PATH]; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5404,7 +5381,7 @@ static void test_file_in_use_cab(void) HKEY hkey; char path[MAX_PATH]; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5465,7 +5442,7 @@ static void test_feature_override(void) UINT r; REGSAM access = KEY_ALL_ACCESS; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5545,7 +5522,7 @@ static void test_icon_table(void) CHAR path[MAX_PATH]; static const char prodcode[] = "{7DF88A49-996F-4EC8-A022-BF956F9B2CBB}"; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5623,7 +5600,7 @@ static void test_package_validation(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5814,7 +5791,7 @@ static void test_upgrade_code(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5850,7 +5827,7 @@ static void test_mixed_package(void) char value[MAX_PATH]; DWORD size; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -5999,7 +5976,7 @@ static void test_volume_props(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -6025,7 +6002,7 @@ static void test_shared_component(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -6074,7 +6051,7 @@ static void test_remove_upgrade_code(void) DWORD type, size; char buf[1]; - if (is_process_limited()) + if (!is_process_elevated()) { skip( "process is limited\n" ); return; @@ -6120,7 +6097,7 @@ static void test_feature_tree(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip( "process is limited\n" ); return; @@ -6197,7 +6174,7 @@ static void test_wow64(void) return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -6250,7 +6227,7 @@ static void test_source_resolution(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip( "process is limited\n" ); return; @@ -6282,6 +6259,8 @@ START_TEST(install) STATEMGRSTATUS status; BOOL ret = FALSE; + if (!is_process_elevated()) restart_as_admin_elevated(); + init_functionpointers(); subtest("custom"); diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c index fcdcd60a9f8..d00b8b53fcc 100644 --- a/dlls/msi/tests/msi.c +++ b/dlls/msi/tests/msi.c @@ -3382,7 +3382,7 @@ static void test_MsiProvideComponent(void) DWORD len, len2; UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3472,7 +3472,7 @@ static void test_MsiProvideQualifiedComponentEx(void) HKEY hkey, hkey2, hkey3, hkey4, hkey5; LONG res; - if (is_process_limited()) + if (!is_process_elevated()) { skip( "process is limited\n" ); return; @@ -13102,7 +13102,7 @@ static void test_MsiEnumProducts(void) HKEY key1, key2, key3; REGSAM access = KEY_ALL_ACCESS; - if (is_process_limited()) + if (!is_process_elevated()) { skip( "process is limited\n" ); return; @@ -13417,7 +13417,7 @@ static void test_MsiEnumComponents(void) char *usersid = get_user_sid(); HKEY key1 = NULL, key2 = NULL; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -13496,7 +13496,7 @@ static void test_MsiEnumComponentsEx(void) win_skip( "MsiEnumComponentsExA not implemented\n" ); return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -13592,7 +13592,7 @@ static void test_MsiConfigureProductEx(void) CHAR keypath[MAX_PATH * 2], localpackage[MAX_PATH], packagename[MAX_PATH]; REGSAM access = KEY_ALL_ACCESS; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -13875,7 +13875,7 @@ static void test_MsiSetFeatureAttributes(void) char path[MAX_PATH]; MSIHANDLE package; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -13957,7 +13957,7 @@ static void test_MsiGetFeatureInfo(void) char title[32], help[32], path[MAX_PATH]; DWORD attrs, title_len, help_len; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -14254,7 +14254,7 @@ static void test_setpropertyfolder(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -14309,7 +14309,7 @@ static void test_sourcedir_props(void) { UINT r; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -14373,7 +14373,7 @@ static void test_concurrentinstall(void) UINT r; CHAR path[MAX_PATH]; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -14425,7 +14425,7 @@ static void test_command_line_parsing(void) UINT r; const char *cmd; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -14585,6 +14585,8 @@ START_TEST(msi) DWORD len; char temp_path[MAX_PATH], prev_path[MAX_PATH]; + if (!is_process_elevated()) restart_as_admin_elevated(); + init_functionpointers(); if (pIsWow64Process) diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c index adc85d54b18..8bb57be71e9 100644 --- a/dlls/msi/tests/package.c +++ b/dlls/msi/tests/package.c @@ -2995,7 +2995,7 @@ static void test_states(void) char value[MAX_PATH]; DWORD size; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -4055,7 +4055,7 @@ static void test_appsearch_complocator(void) if (!(usersid = get_user_sid())) return; - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -9564,6 +9564,8 @@ START_TEST(package) BOOL ret = FALSE; DWORD len; + if (!is_process_elevated()) restart_as_admin_elevated(); + init_functionpointers(); if (pIsWow64Process) diff --git a/dlls/msi/tests/patch.c b/dlls/msi/tests/patch.c index 0dbb8451ca3..a0dee596c15 100644 --- a/dlls/msi/tests/patch.c +++ b/dlls/msi/tests/patch.c @@ -696,7 +696,7 @@ static void test_simple_patch( void ) win_skip("MsiApplyPatchA is not available\n"); return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -1035,7 +1035,7 @@ static void test_system_tables( void ) win_skip("MsiApplyPatchA is not available\n"); return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -1225,7 +1225,7 @@ static void test_patch_registration( void ) win_skip("required functions not available\n"); return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -1322,6 +1322,8 @@ START_TEST(patch) DWORD len; char temp_path[MAX_PATH], prev_path[MAX_PATH]; + if (!is_process_elevated()) restart_as_admin_elevated(); + init_function_pointers(); GetCurrentDirectoryA( MAX_PATH, prev_path ); diff --git a/dlls/msi/tests/source.c b/dlls/msi/tests/source.c index 1e794caaf5a..df3134eb488 100644 --- a/dlls/msi/tests/source.c +++ b/dlls/msi/tests/source.c @@ -687,7 +687,7 @@ static void test_MsiSourceListAddSourceEx(void) win_skip("Skipping MsiSourceListAddSourceExA tests\n"); return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -1701,7 +1701,7 @@ static void test_MsiSourceListSetInfo(void) win_skip("MsiSourceListSetInfoA is not available\n"); return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -2137,7 +2137,7 @@ static void test_MsiSourceListAddMediaDisk(void) win_skip("MsiSourceListAddMediaDiskA is not available\n"); return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3293,7 +3293,7 @@ static void test_MsiSourceListAddSource(void) win_skip("Skipping MsiSourceListAddSourceA tests\n"); return; } - if (is_process_limited()) + if (!is_process_elevated()) { skip("process is limited\n"); return; @@ -3554,6 +3554,8 @@ done: START_TEST(source) { + if (!is_process_elevated()) restart_as_admin_elevated(); + init_functionpointers(); if (pIsWow64Process) diff --git a/dlls/msi/tests/utils.h b/dlls/msi/tests/utils.h index 0880553863e..3bcc575f270 100644 --- a/dlls/msi/tests/utils.h +++ b/dlls/msi/tests/utils.h @@ -56,5 +56,6 @@ void delete_cab_files(void); BOOL delete_pf(const char *rel_path, BOOL is_file); BOOL file_exists(const char *file); BOOL pf_exists(const char *file); -BOOL is_process_limited(void); +BOOL is_process_elevated(void); UINT run_query(MSIHANDLE hdb, MSIHANDLE hrec, const char *query); +void restart_as_admin_elevated(void); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5477
From: Hans Leidekker <hans(a)codeweavers.com> --- 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 | 4144 +++++++++++++---------------------- 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, 2203 insertions(+), 4105 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 <msidefs.h> #include <msi.h> #include <fci.h> -#include <srrestoreptapi.h> #include <wtypes.h> #include <shellapi.h> #include <winsvc.h> @@ -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 <msi.h> #include <fci.h> #include <objidl.h> -#include <srrestoreptapi.h> #include <shlobj.h> #include <winsvc.h> #include <shellapi.h> @@ -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); - 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); + 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); /* 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); - 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); + 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); /* 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); - 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); + 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); /* 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); - 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); + 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); /* 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); - 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); + 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); /* 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); - 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); + 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); /* 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); - 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); + 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); /* 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); - 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); + 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); /* 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); - 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); + 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); /* 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); - 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); + 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(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); - 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); + 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(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); - 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); + 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(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) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5477
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=144864 Your paranoid android. === build (build log) === error: patch failed: dlls/msi/tests/automation.c:191 error: patch failed: dlls/msi/tests/package.c:38 error: patch failed: dlls/msi/tests/patch.c:32 Task: Patch failed to apply === debian11 (build log) === error: patch failed: dlls/msi/tests/automation.c:191 error: patch failed: dlls/msi/tests/package.c:38 error: patch failed: dlls/msi/tests/patch.c:32 Task: Patch failed to apply === debian11b (build log) === error: patch failed: dlls/msi/tests/automation.c:191 error: patch failed: dlls/msi/tests/package.c:38 error: patch failed: dlls/msi/tests/patch.c:32 Task: Patch failed to apply
participants (3)
-
Hans Leidekker -
Hans Leidekker (@hans) -
Marvin