From 5816f9e2585822f7b6140fddc405d30f2a4b381d Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Thu, 30 Jul 2020 12:23:11 -0600 Subject: WIXFEAT:5843 Use MSFTEDIT_CLASS for Rich Edit controls when available. --- src/dutil/thmutil.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src') 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; static ULONG_PTR vgdiHookToken = 0; static HMODULE vhHyperlinkRegisteredModule = NULL; static HMODULE vhPanelRegisteredModule = NULL; +static HMODULE vhModuleMsftEdit = NULL; static HMODULE vhModuleRichEd = NULL; static HCURSOR vhCursorHand = NULL; @@ -454,6 +455,12 @@ LExit: DAPI_(void) ThemeUninitialize() { + if (vhModuleMsftEdit) + { + ::FreeLibrary(vhModuleMsftEdit); + vhModuleMsftEdit = NULL; + } + if (vhModuleRichEd) { ::FreeLibrary(vhModuleRichEd); @@ -5049,12 +5056,17 @@ static HRESULT LoadControls( break; case THEME_CONTROL_TYPE_RICHEDIT: - if (!vhModuleRichEd) + if (!vhModuleMsftEdit && !vhModuleRichEd) { - hr = LoadSystemLibrary(L"Riched20.dll", &vhModuleRichEd); - ThmExitOnFailure(hr, "Failed to load Rich Edit control library."); + hr = LoadSystemLibrary(L"Msftedit.dll", &vhModuleMsftEdit); + if (FAILED(hr)) + { + hr = LoadSystemLibrary(L"Riched20.dll", &vhModuleRichEd); + ThmExitOnFailure(hr, "Failed to load Rich Edit control library."); + } } - wzWindowClass = RICHEDIT_CLASSW; + + wzWindowClass = vhModuleMsftEdit ? MSFTEDIT_CLASS : RICHEDIT_CLASSW; dwWindowBits |= ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL | ES_READONLY; break; -- cgit v1.2.3-55-g6feb