From 980ce9db3fa5566bd79251a0ea228b5868e4294b Mon Sep 17 00:00:00 2001 From: winesync Date: Sat, 12 Mar 2022 23:50:35 +0100 Subject: [PATCH] [WINESYNC] msi: Use msi_get_package_code in msi_publish_product_properties. Signed-off-by: Hans Leidekker Signed-off-by: Alexandre Julliard wine commit id ddf762a82f2c578cd3b0d4ff0c13c8a08641a666 by Hans Leidekker --- dll/win32/msi/action.c | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/dll/win32/msi/action.c b/dll/win32/msi/action.c index bfecf68f5cc..f53e6f317ee 100644 --- a/dll/win32/msi/action.c +++ b/dll/win32/msi/action.c @@ -4288,10 +4288,8 @@ static UINT msi_publish_product_properties(MSIPACKAGE *package, HKEY hkey) static const WCHAR szClients[] = {'C','l','i','e','n','t','s',0}; static const WCHAR szColon[] = {':',0}; - MSIHANDLE hdb, suminfo; - WCHAR *buffer, *ptr, guids[MAX_PATH], packcode[SQUASHED_GUID_SIZE]; - DWORD langid, size; - UINT r; + WCHAR *buffer, *ptr, *guids, packcode[SQUASHED_GUID_SIZE]; + DWORD langid; buffer = msi_dup_property(package->db, INSTALLPROPERTY_PRODUCTNAMEW); msi_reg_set_val_str(hkey, INSTALLPROPERTY_PRODUCTNAMEW, buffer); @@ -4325,28 +4323,12 @@ static UINT msi_publish_product_properties(MSIPACKAGE *package, HKEY hkey) msi_reg_set_val_dword(hkey, INSTALLPROPERTY_INSTANCETYPEW, 0); msi_reg_set_val_str(hkey, szClients, szColon); - hdb = alloc_msihandle(&package->db->hdr); - if (!hdb) - return ERROR_NOT_ENOUGH_MEMORY; - - r = MsiGetSummaryInformationW(hdb, NULL, 0, &suminfo); - MsiCloseHandle(hdb); - if (r != ERROR_SUCCESS) - goto done; - - size = MAX_PATH; - r = MsiSummaryInfoGetPropertyW(suminfo, PID_REVNUMBER, NULL, NULL, - NULL, guids, &size); - if (r != ERROR_SUCCESS) - goto done; - - ptr = strchrW(guids, ';'); - if (ptr) *ptr = 0; + if (!(guids = msi_get_package_code(package->db))) return ERROR_OUTOFMEMORY; + if ((ptr = strchrW(guids, ';'))) *ptr = 0; squash_guid(guids, packcode); + msi_free( guids); msi_reg_set_val_str(hkey, INSTALLPROPERTY_PACKAGECODEW, packcode); -done: - MsiCloseHandle(suminfo); return ERROR_SUCCESS; }