Zebediah Figura : msi: Make MsiViewClose() RPC-compatible.
Alexandre Julliard
julliard at winehq.org
Fri Apr 20 17:55:41 CDT 2018
Module: wine
Branch: master
Commit: 9ab15d4edea1ab0c80f9d3ea15d9855aba2f4880
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9ab15d4edea1ab0c80f9d3ea15d9855aba2f4880
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Thu Apr 19 23:44:13 2018 -0500
msi: Make MsiViewClose() RPC-compatible.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msi/msiquery.c | 16 ++++++++++++++--
dlls/msi/tests/custom.c | 3 +++
dlls/msi/winemsi.idl | 1 +
3 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/msiquery.c b/dlls/msi/msiquery.c
index 6eddf7a..682881e 100644
--- a/dlls/msi/msiquery.c
+++ b/dlls/msi/msiquery.c
@@ -440,8 +440,15 @@ UINT WINAPI MsiViewClose(MSIHANDLE hView)
TRACE("%d\n", hView );
query = msihandle2msiinfo( hView, MSIHANDLETYPE_VIEW );
- if( !query )
- return ERROR_INVALID_HANDLE;
+ if (!query)
+ {
+ MSIHANDLE remote;
+
+ if (!(remote = msi_get_remote(hView)))
+ return ERROR_INVALID_HANDLE;
+
+ return remote_ViewClose(remote);
+ }
ret = MSI_ViewClose( query );
msiobj_release( &query->hdr );
@@ -1055,6 +1062,11 @@ MSICONDITION WINAPI MsiDatabaseIsTablePersistentW(
return r;
}
+UINT __cdecl remote_ViewClose(MSIHANDLE view)
+{
+ return MsiViewClose(view);
+}
+
UINT __cdecl remote_ViewExecute(MSIHANDLE view, struct wire_record *remote_rec)
{
MSIHANDLE rec = 0;
diff --git a/dlls/msi/tests/custom.c b/dlls/msi/tests/custom.c
index 479cb93..3d7ebb9 100644
--- a/dlls/msi/tests/custom.c
+++ b/dlls/msi/tests/custom.c
@@ -316,6 +316,9 @@ static void test_db(MSIHANDLE hinst)
ok(hinst, r == ERROR_NO_MORE_ITEMS, "got %u\n", r);
ok(hinst, !rec2, "got %u\n", rec2);
+ r = MsiViewClose(view);
+ ok(hinst, !r, "got %u\n", r);
+
r = MsiCloseHandle(view);
ok(hinst, !r, "got %u\n", r);
diff --git a/dlls/msi/winemsi.idl b/dlls/msi/winemsi.idl
index b892f34..74b5923 100644
--- a/dlls/msi/winemsi.idl
+++ b/dlls/msi/winemsi.idl
@@ -56,6 +56,7 @@ struct wire_record {
]
interface IWineMsiRemote
{
+ UINT remote_ViewClose( [in] MSIHANDLE view );
UINT remote_ViewExecute( [in] MSIHANDLE view, [in, unique] struct wire_record *record );
UINT remote_ViewFetch( [in] MSIHANDLE view, [out] struct wire_record **record );
More information about the wine-cvs
mailing list