[WINESYNC] msi: Return MSIDBSTATE_ERROR when MsiGetDatabaseState() is called from a custom action.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46812
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 60b1fd7e8764ab63d79382c1805d4c007a6be332 by Zebediah Figura <z.figura12@gmail.com>
This commit is contained in:
winesync 2022-03-13 01:19:31 +01:00 committed by Mark Jansen
parent f7e42b9b96
commit 72c4091cef
No known key found for this signature in database
GPG Key ID: B39240EE84BEAE8B
2 changed files with 4 additions and 12 deletions

View File

@ -1993,16 +1993,8 @@ MSIDBSTATE WINAPI MsiGetDatabaseState( MSIHANDLE handle )
TRACE("%d\n", handle);
db = msihandle2msiinfo( handle, MSIHANDLETYPE_DATABASE );
if( !db )
{
MSIHANDLE remote_database = msi_get_remote(handle);
if ( !remote_database )
return MSIDBSTATE_ERROR;
WARN("MsiGetDatabaseState not allowed during a custom action!\n");
return MSIDBSTATE_READ;
}
if (!(db = msihandle2msiinfo( handle, MSIHANDLETYPE_DATABASE )))
return MSIDBSTATE_ERROR;
if (db->mode != MSIDBOPEN_READONLY )
ret = MSIDBSTATE_WRITE;

View File

@ -1119,7 +1119,7 @@ static void test_invalid_functions(MSIHANDLE hinst)
UINT r;
r = MsiGetDatabaseState(hinst);
todo_wine ok(hinst, r == MSIDBSTATE_ERROR, "got %u\n", r);
ok(hinst, r == MSIDBSTATE_ERROR, "got %u\n", r);
db = MsiGetActiveDatabase(hinst);
ok(hinst, db, "MsiGetActiveDatabase failed\n");
@ -1147,7 +1147,7 @@ static void test_invalid_functions(MSIHANDLE hinst)
ok(hinst, r == ERROR_INVALID_HANDLE, "got %u\n", r);
r = MsiGetDatabaseState(db);
todo_wine ok(hinst, r == MSIDBSTATE_ERROR, "got %u\n", r);
ok(hinst, r == MSIDBSTATE_ERROR, "got %u\n", r);
r = MsiEnableUIPreview(db, &preview);
todo_wine ok(hinst, r == ERROR_INVALID_HANDLE, "got %u\n", r);