- Remove the Advanced page for non-admin users.
- Disable the 'complex script' and 'east asian language' checkboxes for non-admin users.

svn path=/trunk/; revision=70571
This commit is contained in:
Eric Kohl 2016-01-10 21:12:23 +00:00
parent 24c45ac2f1
commit b83fd18555
3 changed files with 23 additions and 2 deletions

View file

@ -168,6 +168,7 @@ Applet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
return FALSE; return FALSE;
pGlobalData->SystemLCID = GetSystemDefaultLCID(); pGlobalData->SystemLCID = GetSystemDefaultLCID();
pGlobalData->bIsUserAdmin = IsUserAdmin();
LoadString(hApplet, IDS_CPLNAME, Caption, sizeof(Caption) / sizeof(TCHAR)); LoadString(hApplet, IDS_CPLNAME, Caption, sizeof(Caption) / sizeof(TCHAR));
@ -178,13 +179,20 @@ Applet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
psh.hInstance = hApplet; psh.hInstance = hApplet;
psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON)); psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON));
psh.pszCaption = Caption; psh.pszCaption = Caption;
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE); psh.nPages = 0; //sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0; psh.nStartPage = 0;
psh.ppsp = psp; psh.ppsp = psp;
InitPropSheetPage(&psp[0], IDD_GENERALPAGE, GeneralPageProc, (LPARAM)pGlobalData); InitPropSheetPage(&psp[0], IDD_GENERALPAGE, GeneralPageProc, (LPARAM)pGlobalData);
psh.nPages++;
InitPropSheetPage(&psp[1], IDD_LANGUAGESPAGE, LanguagesPageProc, (LPARAM)pGlobalData); InitPropSheetPage(&psp[1], IDD_LANGUAGESPAGE, LanguagesPageProc, (LPARAM)pGlobalData);
InitPropSheetPage(&psp[2], IDD_ADVANCEDPAGE, AdvancedPageProc, (LPARAM)pGlobalData); psh.nPages++;
if (pGlobalData->bIsUserAdmin)
{
InitPropSheetPage(&psp[2], IDD_ADVANCEDPAGE, AdvancedPageProc, (LPARAM)pGlobalData);
psh.nPages++;
}
ret = (LONG)(PropertySheet(&psh) != -1); ret = (LONG)(PropertySheet(&psh) != -1);

View file

@ -116,6 +116,8 @@ typedef struct _GLOBALDATA
GEOID geoid; GEOID geoid;
BOOL fGeoIdChanged; BOOL fGeoIdChanged;
/* Misc */
BOOL bIsUserAdmin;
} GLOBALDATA, *PGLOBALDATA; } GLOBALDATA, *PGLOBALDATA;
typedef struct typedef struct

View file

@ -10,10 +10,21 @@ LanguagesPageProc(HWND hwndDlg,
LPARAM lParam) LPARAM lParam)
{ {
SHELLEXECUTEINFOW shInputDll; SHELLEXECUTEINFOW shInputDll;
PGLOBALDATA pGlobalData;
pGlobalData = (PGLOBALDATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: 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; break;
case WM_COMMAND: case WM_COMMAND: