[WINHTTP] Sync with Wine Staging 3.9. CORE-14656
[reactos.git] / dll / cpl / intl / languages.c
index 28323d7..6056a12 100644 (file)
@@ -1,5 +1,7 @@
 #include "intl.h"
 
+#include <shellapi.h>
+
 /* Property page dialog callback */
 INT_PTR CALLBACK
 LanguagesPageProc(HWND hwndDlg,
@@ -7,11 +9,22 @@ LanguagesPageProc(HWND hwndDlg,
                   WPARAM wParam,
                   LPARAM lParam)
 {
-    SHELLEXECUTEINFO shInputDll;
+    SHELLEXECUTEINFOW shInputDll;
+    PGLOBALDATA pGlobalData;
+
+    pGlobalData = (PGLOBALDATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
 
     switch (uMsg)
     {
         case WM_INITDIALOG:
+            pGlobalData = (PGLOBALDATA)((LPPROPSHEETPAGE)lParam)->lParam;
+            SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
+
+            if (!pGlobalData->bIsUserAdmin)
+            {
+                EnableWindow(GetDlgItem(hwndDlg, IDC_INST_FILES_FOR_RTOL_LANG), FALSE);
+                EnableWindow(GetDlgItem(hwndDlg, IDC_INST_FILES_FOR_ASIAN), FALSE);
+            }
             break;
 
         case WM_COMMAND:
@@ -21,18 +34,15 @@ LanguagesPageProc(HWND hwndDlg,
                 case IDC_DETAIL_BUTTON:
                     if (HIWORD(wParam) == BN_CLICKED)
                     {
-                        memset(&shInputDll, 0x0, sizeof(SHELLEXECUTEINFO));
+                        memset(&shInputDll, 0x0, sizeof(SHELLEXECUTEINFOW));
                         shInputDll.cbSize = sizeof(shInputDll);
                         shInputDll.hwnd = hwndDlg;
-                        shInputDll.lpVerb = _T("open");
-                        shInputDll.lpFile = _T("RunDll32.exe");
-                        shInputDll.lpParameters = _T("shell32.dll,Control_RunDLL input.dll");
-                        if (ShellExecuteEx(&shInputDll) == 0)
+                        shInputDll.lpVerb = L"open";
+                        shInputDll.lpFile = L"RunDll32.exe";
+                        shInputDll.lpParameters = L"shell32.dll,Control_RunDLL input.dll";
+                        if (ShellExecuteExW(&shInputDll) == 0)
                         {
-                            MessageBox(NULL,
-                                       _T("Can't start input.dll"),
-                                       _T("Error"),
-                                       MB_OK | MB_ICONERROR);
+                            PrintErrorMsgBox(IDS_ERROR_INPUT_DLL);
                         }
                     }
                     break;