https://git.reactos.org/?p=reactos.git;a=commitdiff;h=636f46adb643cee540e1d1bcbcb94f7d5b24d7ba

commit 636f46adb643cee540e1d1bcbcb94f7d5b24d7ba
Author:     winesync <[email protected]>
AuthorDate: Sat Mar 12 23:57:39 2022 +0100
Commit:     Mark Jansen <[email protected]>
CommitDate: Sun Mar 20 19:28:01 2022 +0100

    [WINESYNC] msi: Handle the remote case in MsiSummaryInfoSetProperty.
    
    Signed-off-by: Dmitry Timoshkov <[email protected]>
    Signed-off-by: Hans Leidekker <[email protected]>
    Signed-off-by: Alexandre Julliard <[email protected]>
    
    wine commit id 190ef475fa3164d2f468d5b09c58c8150d30f129 by Dmitry Timoshkov 
<[email protected]>
---
 dll/win32/msi/suminfo.c                 | 20 ++++++++++++++++++++
 modules/rostests/winetests/msi/custom.c |  4 +++-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/dll/win32/msi/suminfo.c b/dll/win32/msi/suminfo.c
index 3295a6a5e7d..b3d605400f3 100644
--- a/dll/win32/msi/suminfo.c
+++ b/dll/win32/msi/suminfo.c
@@ -851,7 +851,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;
@@ -882,7 +892,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/modules/rostests/winetests/msi/custom.c 
b/modules/rostests/winetests/msi/custom.c
index 1cf24536d04..0ba5f10c88d 100644
--- a/modules/rostests/winetests/msi/custom.c
+++ b/modules/rostests/winetests/msi/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);

Reply via email to