Dmitry Timoshkov : msi: Handle the remote case in MsiSummaryInfoSetProperty.

Alexandre Julliard julliard at winehq.org
Mon Sep 10 16:01:07 CDT 2018


Module: wine
Branch: master
Commit: 190ef475fa3164d2f468d5b09c58c8150d30f129
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=190ef475fa3164d2f468d5b09c58c8150d30f129

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Sat Sep  8 11:45:15 2018 +0800

msi: Handle the remote case in MsiSummaryInfoSetProperty.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msi/suminfo.c      | 20 ++++++++++++++++++++
 dlls/msi/tests/custom.c |  4 +++-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/dlls/msi/suminfo.c b/dlls/msi/suminfo.c
index e796a69..8c844a6 100644
--- a/dlls/msi/suminfo.c
+++ b/dlls/msi/suminfo.c
@@ -836,7 +836,17 @@ UINT WINAPI MsiSummaryInfoSetPropertyW( MSIHANDLE handle, UINT uiProperty, UINT
         return ERROR_INVALID_PARAMETER;
 
     if (!(si = msihandle2msiinfo( handle, MSIHANDLETYPE_SUMMARYINFO )))
+    {
+        MSIHANDLE remote;
+
+        if ((remote = msi_get_remote( handle )))
+        {
+            WARN("MsiSummaryInfoSetProperty not allowed during a custom action!\n");
+            return ERROR_FUNCTION_FAILED;
+        }
+
         return ERROR_INVALID_HANDLE;
+    }
 
     str.unicode = TRUE;
     str.str.w = szValue;
@@ -867,7 +877,17 @@ UINT WINAPI MsiSummaryInfoSetPropertyA( MSIHANDLE handle, UINT uiProperty, UINT
         return ERROR_INVALID_PARAMETER;
 
     if (!(si = msihandle2msiinfo( handle, MSIHANDLETYPE_SUMMARYINFO )))
+    {
+        MSIHANDLE remote;
+
+        if ((remote = msi_get_remote( handle )))
+        {
+            WARN("MsiSummaryInfoSetProperty not allowed during a custom action!\n");
+            return ERROR_FUNCTION_FAILED;
+        }
+
         return ERROR_INVALID_HANDLE;
+    }
 
     str.unicode = FALSE;
     str.str.a = szValue;
diff --git a/dlls/msi/tests/custom.c b/dlls/msi/tests/custom.c
index 1cf2453..0ba5f10 100644
--- a/dlls/msi/tests/custom.c
+++ b/dlls/msi/tests/custom.c
@@ -499,7 +499,9 @@ todo_wine
     ok(hinst, !lstrcmpA(buffer, "deadbeef"), "got %s\n", buffer);
 
     r = MsiSummaryInfoSetPropertyA(suminfo, PID_CODEPAGE, VT_I2, 1252, &ft, "");
-todo_wine
+    ok(hinst, r == ERROR_FUNCTION_FAILED, "got %u\n", r);
+
+    r = MsiSummaryInfoSetPropertyW(suminfo, PID_CODEPAGE, VT_I2, 1252, &ft, NULL);
     ok(hinst, r == ERROR_FUNCTION_FAILED, "got %u\n", r);
 
     r = MsiCloseHandle(suminfo);




More information about the wine-cvs mailing list