[PATCH 6/6] msi: Make MsiGetSummaryInformation() RPC-compatible.
Zebediah Figura
z.figura12 at gmail.com
Thu Apr 19 23:44:18 CDT 2018
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/msi/database.c | 5 ++---
dlls/msi/suminfo.c | 17 +++++------------
dlls/msi/tests/custom.c | 11 ++++++++++-
dlls/msi/winemsi.idl | 2 +-
4 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/dlls/msi/database.c b/dlls/msi/database.c
index 7c0c4a9..4a05593 100644
--- a/dlls/msi/database.c
+++ b/dlls/msi/database.c
@@ -1922,10 +1922,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)
diff --git a/dlls/msi/suminfo.c b/dlls/msi/suminfo.c
index 782ad6e..288ba40 100644
--- a/dlls/msi/suminfo.c
+++ b/dlls/msi/suminfo.c
@@ -523,23 +523,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;
}
}
diff --git a/dlls/msi/tests/custom.c b/dlls/msi/tests/custom.c
index cdefefd..e782311 100644
--- a/dlls/msi/tests/custom.c
+++ b/dlls/msi/tests/custom.c
@@ -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);
}
diff --git a/dlls/msi/winemsi.idl b/dlls/msi/winemsi.idl
index 28c3ab1..7613fd3 100644
--- a/dlls/msi/winemsi.idl
+++ b/dlls/msi/winemsi.idl
@@ -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 );
--
2.7.4
More information about the wine-devel
mailing list