aboutsummaryrefslogtreecommitdiff
path: root/src/ca/PrintEula.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ca/PrintEula.cpp')
-rw-r--r--src/ca/PrintEula.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/ca/PrintEula.cpp b/src/ca/PrintEula.cpp
index 770a082c..b19de9a6 100644
--- a/src/ca/PrintEula.cpp
+++ b/src/ca/PrintEula.cpp
@@ -32,6 +32,7 @@ static void ShowErrorMessage(__in HRESULT hr);
32//Global variables 32//Global variables
33PRINTDLGEXW* vpPrintDlg = NULL; //Parameters for print (needed on both sides of WndProc callbacks) 33PRINTDLGEXW* vpPrintDlg = NULL; //Parameters for print (needed on both sides of WndProc callbacks)
34LPSTR vpszEulaText = NULL; 34LPSTR vpszEulaText = NULL;
35LPCWSTR vwzRichEditClass = NULL;
35HRESULT vhr = S_OK; //Global hr, used by the functions called from WndProc to set errorcode 36HRESULT vhr = S_OK; //Global hr, used by the functions called from WndProc to set errorcode
36 37
37 38
@@ -72,8 +73,18 @@ extern "C" UINT __stdcall PrintEula(MSIHANDLE hInstall)
72 ExitOnFailure(hr, "failed to read Eula text from MSI database"); 73 ExitOnFailure(hr, "failed to read Eula text from MSI database");
73 74
74 // Have to load Rich Edit since we'll be creating a Rich Edit control in the window 75 // Have to load Rich Edit since we'll be creating a Rich Edit control in the window
75 hr = LoadSystemLibrary(L"Riched20.dll", &hRichEdit); 76 hr = LoadSystemLibrary(L"Msftedit.dll", &hRichEdit);
76 ExitOnFailure(hr, "failed to load rich edit 2.0 library"); 77 if (SUCCEEDED(hr))
78 {
79 vwzRichEditClass = MSFTEDIT_CLASS;
80 }
81 else
82 {
83 hr = LoadSystemLibrary(L"Riched20.dll", &hRichEdit);
84 ExitOnFailure(hr, "failed to load rich edit 2.0 library");
85
86 vwzRichEditClass = RICHEDIT_CLASSW;
87 }
77 88
78 hr = CreateRichTextWindow(&hWndMain, &fRegisteredClass); 89 hr = CreateRichTextWindow(&hWndMain, &fRegisteredClass);
79 ExitOnFailure(hr, "failed to create rich text window for printing"); 90 ExitOnFailure(hr, "failed to create rich text window for printing");
@@ -113,6 +124,7 @@ LExit:
113 ::UnregisterClassW(WINDOW_CLASS, NULL); 124 ::UnregisterClassW(WINDOW_CLASS, NULL);
114 } 125 }
115 126
127 vwzRichEditClass = NULL;
116 if (NULL != hRichEdit) 128 if (NULL != hRichEdit)
117 { 129 {
118 ::FreeLibrary(hRichEdit); 130 ::FreeLibrary(hRichEdit);
@@ -242,7 +254,7 @@ LRESULT CALLBACK WndProc(
242 switch (message) 254 switch (message)
243 { 255 {
244 case WM_CREATE: 256 case WM_CREATE:
245 hWndRichEdit = ::CreateWindowExW(WS_EX_CLIENTEDGE, RICHEDIT_CLASSW, L"", ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_VSCROLL, CONTROL_X_COORDINATE, CONTROL_Y_COORDINATE, CONTROL_WIDTH, CONTROL_HEIGHT, hWnd, NULL, NULL, NULL); 257 hWndRichEdit = ::CreateWindowExW(WS_EX_CLIENTEDGE, vwzRichEditClass, L"", ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_VSCROLL, CONTROL_X_COORDINATE, CONTROL_Y_COORDINATE, CONTROL_WIDTH, CONTROL_HEIGHT, hWnd, NULL, NULL, NULL);
246 break; 258 break;
247 case WM_COMMAND: 259 case WM_COMMAND:
248 wmId = LOWORD(wParam); 260 wmId = LOWORD(wParam);