[PATCH 2/5] msi: Handle the remote case in MsiSummaryInfoSetProperty.
Dmitry Timoshkov
dmitry at baikal.ru
Wed Aug 29 04:28:49 CDT 2018
Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
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 288ba402dc..347303acd5 100644
--- a/dlls/msi/suminfo.c
+++ b/dlls/msi/suminfo.c
@@ -826,7 +826,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;
@@ -857,7 +867,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 1cf24536d0..0ba5f10c88 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);
--
2.17.1
More information about the wine-devel
mailing list