https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bd55105c8a01db4a1d4cb…
commit bd55105c8a01db4a1d4cbdce59dd9354b3efc410
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Fri Dec 14 20:06:57 2018 +0900
Commit: GitHub <noreply(a)github.com>
CommitDate: Fri Dec 14 20:06:57 2018 +0900
[CPL] Properly set display icons of control panel applets (#1129)
CORE-15445
---
dll/cpl/access/access.c | 21 +++++++++++++++++++--
dll/cpl/appwiz/createlink.c | 21 ++++++++++++++++++++-
dll/cpl/console/console.c | 20 +++++++++++++++++++-
dll/cpl/desk/desk.c | 22 ++++++++++++++++++++--
dll/cpl/hdwwiz/hdwwiz.c | 21 ++++++++++++++++++++-
dll/cpl/inetcpl/inetcpl.c | 8 ++++++--
dll/cpl/input/input.c | 22 +++++++++++++++++++---
dll/cpl/intl/generalp.c | 21 +++++++++++++++++++--
dll/cpl/intl/intl.c | 22 ++++++++++++++++++++--
dll/cpl/main/keyboard.c | 21 +++++++++++++++++++--
dll/cpl/main/mouse.c | 22 ++++++++++++++++++++--
dll/cpl/mmsys/mmsys.c | 23 ++++++++++++++++++++---
dll/cpl/openglcfg/openglcfg.c | 22 ++++++++++++++++++++--
dll/cpl/powercfg/powercfg.c | 21 +++++++++++++++++++--
dll/cpl/sysdm/sysdm.c | 23 ++++++++++++++++++++---
dll/cpl/timedate/timedate.c | 21 +++++++++++++++++++--
dll/cpl/usrmgr/usrmgr.c | 21 +++++++++++++++++++--
dll/cpl/wined3dcfg/wined3dcfg.c | 22 ++++++++++++++++++++--
18 files changed, 338 insertions(+), 36 deletions(-)
diff --git a/dll/cpl/access/access.c b/dll/cpl/access/access.c
index 9bd028c64f..86a1f06907 100644
--- a/dll/cpl/access/access.c
+++ b/dll/cpl/access/access.c
@@ -165,6 +165,22 @@ InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc,
PGLOBAL_DATA
psp->lParam = (LPARAM)pGlobalData;
}
+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(hApplet, MAKEINTRESOURCEW(IDI_CPLACCESS));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
/* First Applet */
@@ -191,14 +207,15 @@ SystemApplet(VOID)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPSHEETPAGE;
+ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hCPLWindow;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLACCESS));
+ psh.pszIcon = MAKEINTRESOURCEW(IDI_CPLACCESS);
psh.pszCaption = Caption;
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.ppsp = psp;
+ psh.pfnCallback = PropSheetProc;
InitPropSheetPage(&psp[0], IDD_PROPPAGEKEYBOARD, KeyboardPageProc, pGlobalData);
InitPropSheetPage(&psp[1], IDD_PROPPAGESOUND, SoundPageProc, pGlobalData);
diff --git a/dll/cpl/appwiz/createlink.c b/dll/cpl/appwiz/createlink.c
index 4788cc878b..c3a3c1055c 100644
--- a/dll/cpl/appwiz/createlink.c
+++ b/dll/cpl/appwiz/createlink.c
@@ -381,6 +381,23 @@ FinishDlgProc(HWND hwndDlg,
return FALSE;
}
+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(hApplet, MAKEINTRESOURCEW(IDI_APPINETICO));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
+
LONG CALLBACK
ShowCreateShortcutWizard(HWND hwndCPl, LPWSTR szPath)
{
@@ -447,13 +464,15 @@ ShowCreateShortcutWizard(HWND hwndCPl, LPWSTR szPath)
/* Create the property sheet */
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_WIZARD97 | PSH_WATERMARK;
+ psh.dwFlags = PSH_WIZARD97 | PSH_WATERMARK | PSH_USEICONID | PSH_USECALLBACK;
psh.hInstance = hApplet;
+ psh.pszIcon = MAKEINTRESOURCEW(IDI_APPINETICO);
psh.hwndParent = NULL;
psh.nPages = nPages;
psh.nStartPage = 0;
psh.phpage = ahpsp;
psh.pszbmWatermark = MAKEINTRESOURCEW(IDB_SHORTCUT);
+ psh.pfnCallback = PropSheetProc;
/* Display the wizard */
PropertySheet(&psh);
diff --git a/dll/cpl/console/console.c b/dll/cpl/console/console.c
index d2cd2d7caa..d39253a0c6 100644
--- a/dll/cpl/console/console.c
+++ b/dll/cpl/console/console.c
@@ -133,6 +133,23 @@ Done:
return;
}
+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(hApplet, MAKEINTRESOURCEW(IDC_CPLICON));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
+
/* First Applet */
static LONG
APIENTRY
@@ -218,7 +235,7 @@ InitApplet(HANDLE hSectionOrWnd)
/* Initialize the property sheet structure */
ZeroMemory(&psh, sizeof(psh));
psh.dwSize = sizeof(psh);
- psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE | /* PSH_USEHICON */ PSH_USEICONID |
PSH_NOAPPLYNOW;
+ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE | /* PSH_USEHICON */ PSH_USEICONID |
PSH_NOAPPLYNOW | PSH_USECALLBACK;
if (ConInfo->ConsoleTitle[0] != UNICODE_NULL)
{
@@ -249,6 +266,7 @@ InitApplet(HANDLE hSectionOrWnd)
psh.nPages = ARRAYSIZE(psp);
psh.nStartPage = 0;
psh.ppsp = psp;
+ psh.pfnCallback = PropSheetProc;
InitPropSheetPage(&psp[i++], IDD_PROPPAGEOPTIONS, OptionsProc);
InitPropSheetPage(&psp[i++], IDD_PROPPAGEFONT , FontProc );
diff --git a/dll/cpl/desk/desk.c b/dll/cpl/desk/desk.c
index 2cf27a7026..0277e7f264 100644
--- a/dll/cpl/desk/desk.c
+++ b/dll/cpl/desk/desk.c
@@ -118,6 +118,23 @@ static const struct
{ IDD_SETTINGS, SettingsPageProc, SettingsPageCallbackProc, L"Settings" },
};
+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(hApplet, MAKEINTRESOURCEW(IDC_DESK_ICON));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
+
/* Display Applet */
static LONG APIENTRY
DisplayApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
@@ -180,14 +197,15 @@ DisplayApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_USECALLBACK | PSH_PROPTITLE;
+ psh.dwFlags = PSH_USECALLBACK | PSH_PROPTITLE | PSH_USEICONID;
psh.hwndParent = hCPLWindow;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_DESK_ICON));
+ psh.pszIcon = MAKEINTRESOURCEW(IDC_DESK_ICON);
psh.pszCaption = Caption;
psh.nPages = 0;
psh.nStartPage = 0;
psh.phpage = hpsp;
+ psh.pfnCallback = PropSheetProc;
/* Allow shell extensions to replace the background page */
hpsxa = SHCreatePropSheetExtArray(HKEY_LOCAL_MACHINE, REGSTR_PATH_CONTROLSFOLDER
TEXT("\\Desk"), MAX_DESK_PAGES - psh.nPages);
diff --git a/dll/cpl/hdwwiz/hdwwiz.c b/dll/cpl/hdwwiz/hdwwiz.c
index 5038b1c57e..0b1daccf34 100644
--- a/dll/cpl/hdwwiz/hdwwiz.c
+++ b/dll/cpl/hdwwiz/hdwwiz.c
@@ -776,6 +776,23 @@ ProgressPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM
lParam)
return FALSE;
}
+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(hApplet, MAKEINTRESOURCEW(IDI_CPLICON));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
+
static VOID
HardwareWizardInit(HWND hwnd)
{
@@ -888,14 +905,16 @@ HardwareWizardInit(HWND hwnd)
/* Create the property sheet */
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_WIZARD97 | PSH_WATERMARK | PSH_HEADER;
+ psh.dwFlags = PSH_WIZARD97 | PSH_WATERMARK | PSH_HEADER | PSH_USEICONID |
PSH_USECALLBACK;
psh.hInstance = hApplet;
+ psh.pszIcon = MAKEINTRESOURCEW(IDI_CPLICON);
psh.hwndParent = hwnd;
psh.nPages = nPages;
psh.nStartPage = 0;
psh.phpage = ahpsp;
psh.pszbmWatermark = MAKEINTRESOURCE(IDB_WATERMARK);
psh.pszbmHeader = MAKEINTRESOURCE(IDB_HEADER);
+ psh.pfnCallback = PropSheetProc;
/* Create title font */
hTitleFont = CreateTitleFont();
diff --git a/dll/cpl/inetcpl/inetcpl.c b/dll/cpl/inetcpl/inetcpl.c
index 9f220164db..b4d5a14037 100644
--- a/dll/cpl/inetcpl/inetcpl.c
+++ b/dll/cpl/inetcpl/inetcpl.c
@@ -77,13 +77,17 @@ HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline)
*/
static int CALLBACK propsheet_callback(HWND hwnd, UINT msg, LPARAM lparam)
{
-
+ // NOTE: This callback is needed to set large icon correctly.
+ HICON hIcon;
TRACE("(%p, 0x%08x/%d, 0x%lx)\n", hwnd, msg, msg, lparam);
switch (msg)
{
case PSCB_INITIALIZED:
- SendMessageW(hwnd, WM_SETICON, ICON_BIG, (LPARAM) LoadIconW(hcpl,
MAKEINTRESOURCEW(ICO_MAIN)));
+ {
+ hIcon = LoadIconW(hcpl, MAKEINTRESOURCEW(ICO_MAIN));
+ SendMessageW(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
break;
+ }
}
return 0;
}
diff --git a/dll/cpl/input/input.c b/dll/cpl/input/input.c
index d794dc830f..c9788769dc 100644
--- a/dll/cpl/input/input.c
+++ b/dll/cpl/input/input.c
@@ -38,6 +38,22 @@ InitPropSheetPage(PROPSHEETPAGEW *page, WORD idDlg, DLGPROC DlgProc)
page->pfnDlgProc = DlgProc;
}
+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(hApplet, MAKEINTRESOURCEW(IDI_CPLSYSTEM));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
/* First Applet */
static LONG CALLBACK
@@ -52,15 +68,15 @@ SystemApplet(VOID)
ZeroMemory(&header, sizeof(header));
header.dwSize = sizeof(header);
- header.dwFlags = PSH_PROPSHEETPAGE;
+ header.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_USECALLBACK;
header.hwndParent = hCPLWindow;
header.hInstance = hApplet;
- header.hIcon = LoadIconW(hApplet, MAKEINTRESOURCEW(IDI_CPLSYSTEM));
+ header.pszIcon = MAKEINTRESOURCEW(IDI_CPLSYSTEM);
header.pszCaption = szCaption;
header.nPages = ARRAYSIZE(page);
header.nStartPage = 0;
header.ppsp = page;
- header.pfnCallback = NULL;
+ header.pfnCallback = PropSheetProc;
/* Settings */
InitPropSheetPage(&page[0], IDD_PROPPAGESETTINGS, SettingsPageProc);
diff --git a/dll/cpl/intl/generalp.c b/dll/cpl/intl/generalp.c
index bee911bc8b..8055e89edd 100644
--- a/dll/cpl/intl/generalp.c
+++ b/dll/cpl/intl/generalp.c
@@ -1324,6 +1324,22 @@ InitPropSheetPage(
psp->lParam = (LPARAM)pGlobalData;
}
+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(hApplet, MAKEINTRESOURCEW(IDC_CPLICON));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
INT_PTR
APIENTRY
@@ -1339,14 +1355,15 @@ CustomizeLocalePropertySheet(
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USECALLBACK;
+ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hwndDlg;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON));
+ psh.pszIcon = MAKEINTRESOURCE(IDC_CPLICON);
psh.pszCaption = Caption;
psh.nPages = (sizeof(PsPage) / sizeof(PROPSHEETPAGE)) - 1;
psh.nStartPage = 0;
psh.ppsp = PsPage;
+ psh.pfnCallback = PropSheetProc;
InitPropSheetPage(&PsPage[0], IDD_NUMBERSPAGE, NumbersPageProc, pGlobalData);
InitPropSheetPage(&PsPage[1], IDD_CURRENCYPAGE, CurrencyPageProc, pGlobalData);
diff --git a/dll/cpl/intl/intl.c b/dll/cpl/intl/intl.c
index 440e34469a..13ec00906a 100644
--- a/dll/cpl/intl/intl.c
+++ b/dll/cpl/intl/intl.c
@@ -149,6 +149,23 @@ ParseSetupInf(VOID)
SetupCloseInfFile(hSetupInf);
}
+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(hApplet, MAKEINTRESOURCEW(IDC_CPLICON));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
+
static LONG APIENTRY
Applet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
{
@@ -174,14 +191,15 @@ Applet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPSHEETPAGE;
+ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hCPLWindow;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON));
+ psh.pszIcon = MAKEINTRESOURCEW(IDC_CPLICON);
psh.pszCaption = Caption;
psh.nPages = 0; //sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.ppsp = psp;
+ psh.pfnCallback = PropSheetProc;
InitIntlPropSheetPage(&psp[0], IDD_GENERALPAGE, GeneralPageProc,
(LPARAM)pGlobalData);
psh.nPages++;
diff --git a/dll/cpl/main/keyboard.c b/dll/cpl/main/keyboard.c
index 165d66824f..5cf39b89bc 100644
--- a/dll/cpl/main/keyboard.c
+++ b/dll/cpl/main/keyboard.c
@@ -282,6 +282,22 @@ KeybHardwareProc(IN HWND hwndDlg,
return FALSE;
}
+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(hApplet, MAKEINTRESOURCEW(IDC_CPLICON_2));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
LONG APIENTRY
KeyboardApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
@@ -301,13 +317,14 @@ KeyboardApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPTITLE;
+ psh.dwFlags = PSH_PROPTITLE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hwnd;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON_2));
+ psh.pszIcon = MAKEINTRESOURCE(IDC_CPLICON_2);
psh.pszCaption = szCaption;
psh.nStartPage = 0;
psh.phpage = hpsp;
+ psh.pfnCallback = PropSheetProc;
/* Load additional pages provided by shell extensions */
hpsxa = SHCreatePropSheetExtArray(HKEY_LOCAL_MACHINE, REGSTR_PATH_CONTROLSFOLDER
TEXT("\\Keyboard"), MAX_CPL_PAGES - psh.nPages);
diff --git a/dll/cpl/main/mouse.c b/dll/cpl/main/mouse.c
index a17d1795ed..4614e6ebc1 100644
--- a/dll/cpl/main/mouse.c
+++ b/dll/cpl/main/mouse.c
@@ -1794,6 +1794,23 @@ WheelProc(IN HWND hwndDlg,
return FALSE;
}
+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(hApplet, MAKEINTRESOURCEW(IDC_CPLICON_1));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
+
static const struct
{
WORD idDlg;
@@ -1827,13 +1844,14 @@ MouseApplet(HWND hwnd, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPTITLE;
+ psh.dwFlags = PSH_PROPTITLE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hwnd;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON_1));
+ psh.pszIcon = MAKEINTRESOURCEW(IDC_CPLICON_1);
psh.pszCaption = Caption;
psh.nStartPage = 0;
psh.phpage = hpsp;
+ psh.pfnCallback = PropSheetProc;
/* Load additional pages provided by shell extensions */
hpsxa = SHCreatePropSheetExtArray(HKEY_LOCAL_MACHINE, REGSTR_PATH_CONTROLSFOLDER
TEXT("\\Mouse"), MAX_CPL_PAGES - psh.nPages);
diff --git a/dll/cpl/mmsys/mmsys.c b/dll/cpl/mmsys/mmsys.c
index e2e21bc8dd..e2d7c8e539 100644
--- a/dll/cpl/mmsys/mmsys.c
+++ b/dll/cpl/mmsys/mmsys.c
@@ -689,6 +689,23 @@ HardwareDlgProc(HWND hwndDlg,
return FALSE;
}
+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(hApplet, MAKEINTRESOURCEW(IDI_CPLICON));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
+
LONG APIENTRY
MmSysApplet(HWND hwnd,
UINT uMsg,
@@ -706,15 +723,15 @@ MmSysApplet(HWND hwnd,
LoadString(hApplet, IDS_CPLNAME, Caption, _countof(Caption));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE;
+ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hwnd;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet,
- MAKEINTRESOURCE(IDI_CPLICON));
+ psh.pszIcon = MAKEINTRESOURCEW(IDI_CPLICON);
psh.pszCaption = Caption;
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.ppsp = psp;
+ psh.pfnCallback = PropSheetProc;
InitPropSheetPage(&psp[0], IDD_VOLUME,VolumeDlgProc);
InitPropSheetPage(&psp[1], IDD_SOUNDS,SoundsDlgProc);
diff --git a/dll/cpl/openglcfg/openglcfg.c b/dll/cpl/openglcfg/openglcfg.c
index 8a142fdf40..281d1b23ec 100644
--- a/dll/cpl/openglcfg/openglcfg.c
+++ b/dll/cpl/openglcfg/openglcfg.c
@@ -4,6 +4,23 @@
HINSTANCE hApplet = 0;
+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(hApplet, MAKEINTRESOURCEW(IDI_CPLICON));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
+
LONG CALLBACK AppletInit(HWND hWnd)
{
PROPSHEETPAGEW psp;
@@ -21,14 +38,15 @@ LONG CALLBACK AppletInit(HWND hWnd)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPSHEETPAGE;
+ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hWnd;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLICON));
+ psh.pszIcon = MAKEINTRESOURCEW(IDI_CPLICON);
psh.pszCaption = szCaption;
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.ppsp = &psp;
+ psh.pfnCallback = PropSheetProc;
return (LONG)(PropertySheet(&psh) != -1);
}
diff --git a/dll/cpl/powercfg/powercfg.c b/dll/cpl/powercfg/powercfg.c
index fd820cc6d2..61a910cabf 100644
--- a/dll/cpl/powercfg/powercfg.c
+++ b/dll/cpl/powercfg/powercfg.c
@@ -67,6 +67,22 @@ InitPropSheetPage(PROPSHEETHEADER *ppsh, WORD idDlg, DLGPROC DlgProc)
return FALSE;
}
+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(hApplet, MAKEINTRESOURCEW(IDC_CPLICON_1));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
/* First Applet */
static LONG APIENTRY
@@ -88,14 +104,15 @@ Applet1(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPTITLE;
+ psh.dwFlags = PSH_PROPTITLE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hwnd;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON_1));
+ psh.pszIcon = MAKEINTRESOURCEW(IDC_CPLICON_1);
psh.pszCaption = Caption;
psh.nPages = 0;
psh.nStartPage = 0;
psh.phpage = hpsp;
+ psh.pfnCallback = PropSheetProc;
InitPropSheetPage(&psh, IDD_PROPPAGEPOWERSCHEMES, PowerSchemesDlgProc);
if (GetPwrCapabilities(&spc))
diff --git a/dll/cpl/sysdm/sysdm.c b/dll/cpl/sysdm/sysdm.c
index 36bd5f5114..8ce26a2a44 100644
--- a/dll/cpl/sysdm/sysdm.c
+++ b/dll/cpl/sysdm/sysdm.c
@@ -121,6 +121,23 @@ Fail:
return hMod;
}
+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(hApplet, MAKEINTRESOURCEW(IDI_CPLSYSTEM));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
+
/* First Applet */
LONG CALLBACK
SystemApplet(VOID)
@@ -137,15 +154,15 @@ SystemApplet(VOID)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPTITLE;
+ psh.dwFlags = PSH_PROPTITLE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hCPLWindow;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
+ psh.pszIcon = MAKEINTRESOURCEW(IDI_CPLSYSTEM);
psh.pszCaption = MAKEINTRESOURCE(IDS_CPLSYSTEMNAME);
psh.nPages = 0;
psh.nStartPage = 0;
psh.phpage = hpsp;
- psh.pfnCallback = NULL;
+ psh.pfnCallback = PropSheetProc;
InitPropSheetPage(&psh, IDD_PROPPAGEGENERAL, GeneralPageProc);
hNetIdDll = AddNetIdPage(&psh);
diff --git a/dll/cpl/timedate/timedate.c b/dll/cpl/timedate/timedate.c
index 3bf0d7e57d..52a03f41fe 100644
--- a/dll/cpl/timedate/timedate.c
+++ b/dll/cpl/timedate/timedate.c
@@ -67,6 +67,22 @@ InitPropSheetPage(PROPSHEETPAGEW *psp, WORD idDlg, DLGPROC DlgProc)
psp->pfnDlgProc = DlgProc;
}
+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(hApplet, MAKEINTRESOURCEW(IDC_CPLICON));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
static LONG APIENTRY
Applet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
@@ -87,14 +103,15 @@ Applet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
ZeroMemory(&psh, sizeof(PROPSHEETHEADERW));
psh.dwSize = sizeof(PROPSHEETHEADERW);
- psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE;
+ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE | PSH_USEICONID |
PSH_USECALLBACK;
psh.hwndParent = hwnd;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCEW(IDC_CPLICON));
+ psh.pszIcon = MAKEINTRESOURCEW(IDC_CPLICON);
psh.pszCaption = Caption;
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGEW);
psh.nStartPage = 0;
psh.ppsp = psp;
+ psh.pfnCallback = PropSheetProc;
InitPropSheetPage(&psp[0], IDD_DATETIMEPAGE, DateTimePageProc);
InitPropSheetPage(&psp[1], IDD_TIMEZONEPAGE, TimeZonePageProc);
diff --git a/dll/cpl/usrmgr/usrmgr.c b/dll/cpl/usrmgr/usrmgr.c
index dd3bbbb470..508e6594e4 100644
--- a/dll/cpl/usrmgr/usrmgr.c
+++ b/dll/cpl/usrmgr/usrmgr.c
@@ -38,6 +38,22 @@ InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
psp->pfnDlgProc = DlgProc;
}
+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(hApplet, MAKEINTRESOURCEW(IDI_USRMGR_ICON));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
/* Display Applet */
static LONG APIENTRY
@@ -55,14 +71,15 @@ UsrmgrApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPSHEETPAGE;
+ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hwnd;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_USRMGR_ICON));
+ psh.pszIcon = MAKEINTRESOURCEW(IDI_USRMGR_ICON);
psh.pszCaption = Caption;
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.ppsp = psp;
+ psh.pfnCallback = PropSheetProc;
InitPropSheetPage(&psp[0], IDD_USERS, UsersPageProc);
InitPropSheetPage(&psp[1], IDD_GROUPS, GroupsPageProc);
diff --git a/dll/cpl/wined3dcfg/wined3dcfg.c b/dll/cpl/wined3dcfg/wined3dcfg.c
index 7740d6c119..8046bb2a3e 100644
--- a/dll/cpl/wined3dcfg/wined3dcfg.c
+++ b/dll/cpl/wined3dcfg/wined3dcfg.c
@@ -4,6 +4,23 @@
HINSTANCE hApplet = 0;
+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(hApplet, MAKEINTRESOURCEW(IDI_CPLICON));
+ SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ break;
+ }
+ }
+ return 0;
+}
+
LONG CALLBACK AppletInit(HWND hWnd)
{
PROPSHEETPAGEW psp;
@@ -21,14 +38,15 @@ LONG CALLBACK AppletInit(HWND hWnd)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
- psh.dwFlags = PSH_PROPSHEETPAGE;
+ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_USECALLBACK;
psh.hwndParent = hWnd;
psh.hInstance = hApplet;
- psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLICON));
+ psh.pszIcon = MAKEINTRESOURCEW(IDI_CPLICON);
psh.pszCaption = szCaption;
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.ppsp = &psp;
+ psh.pfnCallback = PropSheetProc;
return (LONG)(PropertySheet(&psh) != -1);
}