https://git.reactos.org/?p=reactos.git;a=commitdiff;h=72c4091cef278b10423d1…
commit 72c4091cef278b10423d151560f330c579e5ee56
Author: winesync <ros-dev(a)reactos.org>
AuthorDate: Sun Mar 13 01:19:31 2022 +0100
Commit: Mark Jansen <mark.jansen(a)reactos.org>
CommitDate: Sun Mar 20 19:28:16 2022 +0100
[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(a)gmail.com>
Signed-off-by: Hans Leidekker <hans(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
wine commit id 60b1fd7e8764ab63d79382c1805d4c007a6be332 by Zebediah Figura
<z.figura12(a)gmail.com>
---
dll/win32/msi/database.c | 12 ++----------
modules/rostests/winetests/msi/custom.c | 4 ++--
2 files changed, 4 insertions(+), 12 deletions(-)
diff --git a/dll/win32/msi/database.c b/dll/win32/msi/database.c
index 8e2d1bcf035..19926619225 100644
--- a/dll/win32/msi/database.c
+++ b/dll/win32/msi/database.c
@@ -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;
diff --git a/modules/rostests/winetests/msi/custom.c
b/modules/rostests/winetests/msi/custom.c
index 6ae5bfc30a9..9e9e2bf938a 100644
--- a/modules/rostests/winetests/msi/custom.c
+++ b/modules/rostests/winetests/msi/custom.c
@@ -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);