WIXFEAT:5843 Use MSFTEDIT_CLASS for Rich Edit controls when available.
Sean Hall committed
Jul 30, 2020 at 12:23 UTC
5816f9e2585822f7b6140fddc405d30f2a4b381d
1 file changed
+16
-4
src/dutil/thmutil.cpp
+16
-4
@@ -47,6 +47,7 @@ static ULONG_PTR vgdiToken = 0;
47
static ULONG_PTR vgdiHookToken = 0;
48
static HMODULE vhHyperlinkRegisteredModule = NULL;
49
static HMODULE vhPanelRegisteredModule = NULL;
50
+static HMODULE vhModuleMsftEdit = NULL;
51
static HMODULE vhModuleRichEd = NULL;
52
static HCURSOR vhCursorHand = NULL;
53
@@ -454,6 +455,12 @@ LExit:
455
456
DAPI_(void) ThemeUninitialize()
457
{
458
+ if (vhModuleMsftEdit)
459
+ {
460
+ ::FreeLibrary(vhModuleMsftEdit);
461
+ vhModuleMsftEdit = NULL;
462
+ }
463
+
464
if (vhModuleRichEd)
465
{
466
::FreeLibrary(vhModuleRichEd);
@@ -5049,12 +5056,17 @@ static HRESULT LoadControls(
5056
break;
5057
5058
case THEME_CONTROL_TYPE_RICHEDIT:
5052
- if (!vhModuleRichEd)
5059
+ if (!vhModuleMsftEdit && !vhModuleRichEd)
5060
{
5054
- hr = LoadSystemLibrary(L"Riched20.dll", &vhModuleRichEd);
5055
- ThmExitOnFailure(hr, "Failed to load Rich Edit control library.");
5061
+ hr = LoadSystemLibrary(L"Msftedit.dll", &vhModuleMsftEdit);
5062
+ if (FAILED(hr))
5063
+ {
5064
+ hr = LoadSystemLibrary(L"Riched20.dll", &vhModuleRichEd);
5065
+ ThmExitOnFailure(hr, "Failed to load Rich Edit control library.");
5066
+ }
5067
}
5057
- wzWindowClass = RICHEDIT_CLASSW;
5068
+
5069
+ wzWindowClass = vhModuleMsftEdit ? MSFTEDIT_CLASS : RICHEDIT_CLASSW;
5070
dwWindowBits |= ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL | ES_READONLY;
5071
break;
5072