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>
oldstable
Zebediah Figura 2018-04-19 23:44:13 -05:00 committed by Alexandre Julliard
parent 2ca4c8360f
commit 9ab15d4ede
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

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

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