[WINESYNC] msi: Make MsiGetSummaryInformation() 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 bf5589311de8ac2c74e3bd73bef32337a2ce8df2 by Zebediah Figura <z.figura12@gmail.com>
This commit is contained in:
winesync 2022-03-12 15:11:57 +01:00 committed by Mark Jansen
parent 9943fe3a65
commit 6f8e5d88d9
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B
4 changed files with 18 additions and 17 deletions

View file

@ -2033,10 +2033,9 @@ UINT __cdecl remote_DatabaseGetPrimaryKeys(MSIHANDLE db, LPCWSTR table, struct w
return r;
}
HRESULT __cdecl remote_DatabaseGetSummaryInformation(MSIHANDLE db, UINT updatecount, MSIHANDLE *suminfo)
UINT __cdecl remote_DatabaseGetSummaryInformation(MSIHANDLE db, UINT updatecount, MSIHANDLE *suminfo)
{
UINT r = MsiGetSummaryInformationW(db, NULL, updatecount, suminfo);
return HRESULT_FROM_WIN32(r);
return MsiGetSummaryInformationW(db, NULL, updatecount, suminfo);
}
UINT __cdecl remote_DatabaseOpenView(MSIHANDLE db, LPCWSTR query, MSIHANDLE *view)

View file

@ -538,23 +538,16 @@ UINT WINAPI MsiGetSummaryInformationW( MSIHANDLE hDatabase,
db = msihandle2msiinfo( hDatabase, MSIHANDLETYPE_DATABASE );
if( !db )
{
MSIHANDLE remote;
HRESULT hr;
MSIHANDLE remote, remote_suminfo;
if (!(remote = msi_get_remote(hDatabase)))
return ERROR_INVALID_HANDLE;
hr = remote_DatabaseGetSummaryInformation(remote, uiUpdateCount, pHandle);
ret = remote_DatabaseGetSummaryInformation(remote, uiUpdateCount, &remote_suminfo);
if (!ret)
*pHandle = alloc_msi_remote_handle(remote_suminfo);
if (FAILED(hr))
{
if (HRESULT_FACILITY(hr) == FACILITY_WIN32)
return HRESULT_CODE(hr);
return ERROR_FUNCTION_FAILED;
}
return ERROR_SUCCESS;
return ret;
}
}

View file

@ -67,7 +67,7 @@ interface IWineMsiRemote
MSICONDITION remote_DatabaseIsTablePersistent( [in] MSIHANDLE db, [in] LPCWSTR table );
UINT remote_DatabaseGetPrimaryKeys( [in] MSIHANDLE db, [in, string] LPCWSTR table, [out] struct wire_record **keys );
HRESULT remote_DatabaseGetSummaryInformation( [in] MSIHANDLE db, [in] UINT updatecount, [out] MSIHANDLE *suminfo );
UINT remote_DatabaseGetSummaryInformation( [in] MSIHANDLE db, [in] UINT updatecount, [out] MSIHANDLE *suminfo );
UINT remote_DatabaseOpenView( [in] MSIHANDLE db, [in, string] LPCWSTR query, [out] MSIHANDLE *view );
MSIHANDLE remote_GetActiveDatabase( [in] MSIHANDLE hinst );

View file

@ -243,7 +243,7 @@ static void test_props(MSIHANDLE hinst)
static void test_db(MSIHANDLE hinst)
{
MSIHANDLE hdb, view, rec, rec2;
MSIHANDLE hdb, view, rec, rec2, suminfo;
char buffer[10];
DWORD sz;
UINT r;
@ -413,6 +413,15 @@ static void test_db(MSIHANDLE hinst)
r = MsiCloseHandle(rec);
ok(hinst, !r, "got %u\n", r);
r = MsiGetSummaryInformationA(hdb, NULL, 1, NULL);
ok(hinst, r == ERROR_INVALID_PARAMETER, "got %u\n", r);
r = MsiGetSummaryInformationA(hdb, NULL, 1, &suminfo);
ok(hinst, !r, "got %u\n", r);
r = MsiCloseHandle(suminfo);
ok(hinst, !r, "got %u\n", r);
r = MsiCloseHandle(hdb);
ok(hinst, !r, "got %u\n", r);
}