[WINESYNC] msi: Make MsiViewClose() RPC-compatible.

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 9ab15d4edea1ab0c80f9d3ea15d9855aba2f4880 by Zebediah Figura <z.figura12@gmail.com>
This commit is contained in:
winesync 2022-03-12 15:11:54 +01:00 committed by Mark Jansen
parent 795da5286b
commit ae286278fc
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B
3 changed files with 18 additions and 2 deletions

View file

@ -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;

View file

@ -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 );

View file

@ -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);