aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2020-07-30 12:23:11 -0600
committerSean Hall <r.sean.hall@gmail.com>2020-08-09 10:27:40 -0600
commit5816f9e2585822f7b6140fddc405d30f2a4b381d (patch)
tree9bdf4bdf80622f2441951010aa3e9334770c610f
parent89042ffee375d4e36521045405271f849ae8e951 (diff)
downloadwix-5816f9e2585822f7b6140fddc405d30f2a4b381d.tar.gz
wix-5816f9e2585822f7b6140fddc405d30f2a4b381d.tar.bz2
wix-5816f9e2585822f7b6140fddc405d30f2a4b381d.zip
WIXFEAT:5843 Use MSFTEDIT_CLASS for Rich Edit controls when available.
-rw-r--r--src/dutil/thmutil.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/dutil/thmutil.cpp b/src/dutil/thmutil.cpp
index 046bdc32..b9335469 100644
--- a/src/dutil/thmutil.cpp
+++ b/src/dutil/thmutil.cpp
@@ -47,6 +47,7 @@ static ULONG_PTR vgdiToken = 0;
47static ULONG_PTR vgdiHookToken = 0; 47static ULONG_PTR vgdiHookToken = 0;
48static HMODULE vhHyperlinkRegisteredModule = NULL; 48static HMODULE vhHyperlinkRegisteredModule = NULL;
49static HMODULE vhPanelRegisteredModule = NULL; 49static HMODULE vhPanelRegisteredModule = NULL;
50static HMODULE vhModuleMsftEdit = NULL;
50static HMODULE vhModuleRichEd = NULL; 51static HMODULE vhModuleRichEd = NULL;
51static HCURSOR vhCursorHand = NULL; 52static HCURSOR vhCursorHand = NULL;
52 53
@@ -454,6 +455,12 @@ LExit:
454 455
455DAPI_(void) ThemeUninitialize() 456DAPI_(void) ThemeUninitialize()
456{ 457{
458 if (vhModuleMsftEdit)
459 {
460 ::FreeLibrary(vhModuleMsftEdit);
461 vhModuleMsftEdit = NULL;
462 }
463
457 if (vhModuleRichEd) 464 if (vhModuleRichEd)
458 { 465 {
459 ::FreeLibrary(vhModuleRichEd); 466 ::FreeLibrary(vhModuleRichEd);
@@ -5049,12 +5056,17 @@ static HRESULT LoadControls(
5049 break; 5056 break;
5050 5057
5051 case THEME_CONTROL_TYPE_RICHEDIT: 5058 case THEME_CONTROL_TYPE_RICHEDIT:
5052 if (!vhModuleRichEd) 5059 if (!vhModuleMsftEdit && !vhModuleRichEd)
5053 { 5060 {
5054 hr = LoadSystemLibrary(L"Riched20.dll", &vhModuleRichEd); 5061 hr = LoadSystemLibrary(L"Msftedit.dll", &vhModuleMsftEdit);
5055 ThmExitOnFailure(hr, "Failed to load Rich Edit control library."); 5062 if (FAILED(hr))
5063 {
5064 hr = LoadSystemLibrary(L"Riched20.dll", &vhModuleRichEd);
5065 ThmExitOnFailure(hr, "Failed to load Rich Edit control library.");
5066 }
5056 } 5067 }
5057 wzWindowClass = RICHEDIT_CLASSW; 5068
5069 wzWindowClass = vhModuleMsftEdit ? MSFTEDIT_CLASS : RICHEDIT_CLASSW;
5058 dwWindowBits |= ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL | ES_READONLY; 5070 dwWindowBits |= ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL | ES_READONLY;
5059 break; 5071 break;
5060 5072