Alexandre Julliard : shell32: Load the application icon for the control panel window.
Alexandre Julliard
julliard at winehq.org
Wed May 5 11:08:36 CDT 2010
Module: wine
Branch: master
Commit: 3f5136ce3a1d60d7a532b36bbf8c57959a910f6a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3f5136ce3a1d60d7a532b36bbf8c57959a910f6a
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed May 5 11:00:38 2010 +0200
shell32: Load the application icon for the control panel window.
---
dlls/shell32/control.c | 12 ++++++++----
dlls/shell32/shresdef.h | 2 ++
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/dlls/shell32/control.c b/dlls/shell32/control.c
index 730f8a6..898e0ed 100644
--- a/dlls/shell32/control.c
+++ b/dlls/shell32/control.c
@@ -475,10 +475,12 @@ static LRESULT WINAPI Control_WndProc(HWND hWnd, UINT wMsg,
case IDM_CPANEL_ABOUT:
{
WCHAR appName[MAX_STRING_LEN];
+ HICON icon = LoadImageW((HINSTANCE)GetWindowLongPtrW(hWnd, GWLP_HINSTANCE),
+ MAKEINTRESOURCEW(IDI_APPICON), IMAGE_ICON, 48, 48, LR_SHARED);
LoadStringW(shell32_hInstance, IDS_CPANEL_TITLE, appName,
sizeof(appName) / sizeof(appName[0]));
- ShellAboutW(hWnd, appName, NULL, NULL);
+ ShellAboutW(hWnd, appName, NULL, icon);
return 0;
}
@@ -612,7 +614,7 @@ static LRESULT WINAPI Control_WndProc(HWND hWnd, UINT wMsg,
static void Control_DoInterface(CPanel* panel, HWND hWnd, HINSTANCE hInst)
{
- WNDCLASSW wc;
+ WNDCLASSEXW wc;
MSG msg;
WCHAR appName[MAX_STRING_LEN];
const WCHAR className[] = {'S','h','e','l','l','_','C','o','n','t','r','o',
@@ -625,13 +627,15 @@ static void Control_DoInterface(CPanel* panel, HWND hWnd, HINSTANCE hInst)
wc.cbClsExtra = 0;
wc.cbWndExtra = sizeof(CPlApplet*);
wc.hInstance = panel->hInst = hInst;
- wc.hIcon = 0;
+ wc.hIcon = LoadIconW( hInst, MAKEINTRESOURCEW(IDI_APPICON) );
wc.hCursor = LoadCursorW( 0, (LPWSTR)IDC_ARROW );
wc.hbrBackground = GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = className;
+ wc.hIconSm = LoadImageW( hInst, MAKEINTRESOURCEW(IDI_APPICON), IMAGE_ICON,
+ GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_SHARED);
- if (!RegisterClassW(&wc)) return;
+ if (!RegisterClassExW(&wc)) return;
CreateWindowExW(0, wc.lpszClassName, appName,
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
diff --git a/dlls/shell32/shresdef.h b/dlls/shell32/shresdef.h
index 88c93c8..93fb518 100644
--- a/dlls/shell32/shresdef.h
+++ b/dlls/shell32/shresdef.h
@@ -178,6 +178,8 @@
#define IDI_SHELL_CONFIRM_DELETE 161
#define IDI_SHELL_MY_DOCUMENTS 235
+#define IDI_APPICON 101
+
/*
AVI resources, windows shell32 has 14 of them: 150-152 and 160-170
FIXME: Need to add them, but for now just let them use the same: searching.avi
More information about the wine-cvs
mailing list