[PATCH 1/3] msi: Add a missing UI message in the ExecuteAction action.
Zebediah Figura
z.figura12 at gmail.com
Wed Sep 20 23:53:49 CDT 2017
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/msi/action.c | 19 ++++++++++++++++++-
dlls/msi/tests/package.c | 2 +-
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index ed9dfeb9e1..915ff173e9 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -5571,8 +5571,9 @@ static UINT ACTION_ExecuteAction(MSIPACKAGE *package)
{'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ','`','_','P','r','o','p','e','r','t','y','`',0};
WCHAR *productname;
WCHAR *action;
+ WCHAR *info_template;
MSIQUERY *view;
- MSIRECORD *uirow;
+ MSIRECORD *uirow, *uirow_info;
UINT rc;
/* Send COMMONDATA and INFO messages. */
@@ -5586,6 +5587,22 @@ static UINT ACTION_ExecuteAction(MSIPACKAGE *package)
MSI_ProcessMessageVerbatim(package, INSTALLMESSAGE_COMMONDATA, uirow);
/* FIXME: send INSTALLMESSAGE_PROGRESS */
MSI_ProcessMessageVerbatim(package, INSTALLMESSAGE_COMMONDATA, uirow);
+
+ if (!(needs_ui_sequence(package) && ui_sequence_exists(package)))
+ {
+ uirow_info = MSI_CreateRecord(0);
+ if (!uirow_info)
+ {
+ msiobj_release(&uirow->hdr);
+ return ERROR_OUTOFMEMORY;
+ }
+ info_template = msi_get_error_message(package->db, MSIERR_INFO_LOGGINGSTART);
+ MSI_RecordSetStringW(uirow_info, 0, info_template);
+ msi_free(info_template);
+ MSI_ProcessMessage(package, INSTALLMESSAGE_INFO|MB_ICONHAND, uirow_info);
+ msiobj_release(&uirow_info->hdr);
+ }
+
MSI_ProcessMessage(package, INSTALLMESSAGE_COMMONDATA, uirow);
productname = msi_dup_property(package->db, INSTALLPROPERTY_PRODUCTNAMEW);
diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c
index f7dbb58743..78ec1ccd62 100644
--- a/dlls/msi/tests/package.c
+++ b/dlls/msi/tests/package.c
@@ -9519,7 +9519,7 @@ static void test_top_level_action(void)
/* test INSTALL */
r = MsiDoActionA(hpkg, "INSTALL");
ok(r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r);
- ok_sequence(toplevel_install_sequence, "INSTALL (no UI)", TRUE);
+ ok_sequence(toplevel_install_sequence, "INSTALL (no UI)", FALSE);
/* test INSTALL with reduced+ UI */
/* for some reason we need to re-open the package to change the internal UI */
--
2.14.1
More information about the wine-patches
mailing list