X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=dll%2Fwin32%2Fshell32%2Fdialogs%2Ffolder_options.cpp;h=527a359e0c8ffbcd7b7d4d9e141ae953a0e40ac9;hp=475a0bffae8eb80006e3675fa94c52da73efd06e;hb=235042a16ce95121f04d46cab90bf42621bb127c;hpb=44bb99cc8eaf7f0ad1cfc5760eef971ed5f8daf5 diff --git a/dll/win32/shell32/dialogs/folder_options.cpp b/dll/win32/shell32/dialogs/folder_options.cpp index 475a0bffae8..527a359e0c8 100644 --- a/dll/win32/shell32/dialogs/folder_options.cpp +++ b/dll/win32/shell32/dialogs/folder_options.cpp @@ -205,6 +205,23 @@ public: EXTERN_C HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj); +static int CALLBACK +PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam) +{ + // NOTE: This callback is needed to set large icon correctly. + HICON hIcon; + switch (uMsg) + { + case PSCB_INITIALIZED: + { + hIcon = LoadIconW(shell32_hInstance, MAKEINTRESOURCEW(IDI_SHELL_FOLDER_OPTIONS)); + SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon); + break; + } + } + return 0; +} + static VOID ShowFolderOptionsDialog(HWND hWnd, HINSTANCE hInst) { @@ -242,11 +259,13 @@ ShowFolderOptionsDialog(HWND hWnd, HINSTANCE hInst) memset(&pinfo, 0x0, sizeof(PROPSHEETHEADERW)); pinfo.dwSize = sizeof(PROPSHEETHEADERW); - pinfo.dwFlags = PSH_NOCONTEXTHELP; + pinfo.dwFlags = PSH_NOCONTEXTHELP | PSH_USEICONID | PSH_USECALLBACK; pinfo.hwndParent = stub; pinfo.nPages = num_pages; pinfo.phpage = hppages; + pinfo.pszIcon = MAKEINTRESOURCEW(IDI_SHELL_FOLDER_OPTIONS); pinfo.pszCaption = szOptions; + pinfo.pfnCallback = PropSheetProc; PropertySheetW(&pinfo);