Commit 61cc5106 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

winhelp: Now use the icon out of hlpfile if any.

parent c631bb0b
...@@ -1534,6 +1534,15 @@ static BOOL HLPFILE_SystemCommands(HLPFILE* hlpfile) ...@@ -1534,6 +1534,15 @@ static BOOL HLPFILE_SystemCommands(HLPFILE* hlpfile)
*m = macro; *m = macro;
break; break;
case 5:
if (GET_USHORT(ptr, 4 + 4) != 1)
WINE_FIXME("More than one icon, picking up first\n");
/* 0x16 is sizeof(CURSORICONDIR), see user32/user_private.h */
hlpfile->hIcon = CreateIconFromResourceEx(ptr + 4 + 0x16,
GET_USHORT(ptr, 2) - 0x16, TRUE,
0x30000, 0, 0, 0);
break;
case 6: case 6:
if (GET_USHORT(ptr, 2) != 90) {WINE_WARN("system6\n");break;} if (GET_USHORT(ptr, 2) != 90) {WINE_WARN("system6\n");break;}
...@@ -2261,6 +2270,7 @@ void HLPFILE_FreeHlpFile(HLPFILE* hlpfile) ...@@ -2261,6 +2270,7 @@ void HLPFILE_FreeHlpFile(HLPFILE* hlpfile)
HLPFILE_DeletePage(hlpfile->first_page); HLPFILE_DeletePage(hlpfile->first_page);
HLPFILE_DeleteMacro(hlpfile->first_macro); HLPFILE_DeleteMacro(hlpfile->first_macro);
DestroyIcon(hlpfile->hIcon);
if (hlpfile->numWindows) HeapFree(GetProcessHeap(), 0, hlpfile->windows); if (hlpfile->numWindows) HeapFree(GetProcessHeap(), 0, hlpfile->windows);
HeapFree(GetProcessHeap(), 0, hlpfile->Context); HeapFree(GetProcessHeap(), 0, hlpfile->Context);
HeapFree(GetProcessHeap(), 0, hlpfile->Map); HeapFree(GetProcessHeap(), 0, hlpfile->Map);
......
...@@ -162,6 +162,7 @@ typedef struct tagHlpFileFile ...@@ -162,6 +162,7 @@ typedef struct tagHlpFileFile
unsigned numWindows; unsigned numWindows;
HLPFILE_WINDOWINFO* windows; HLPFILE_WINDOWINFO* windows;
HICON hIcon;
} HLPFILE; } HLPFILE;
/* /*
......
...@@ -530,6 +530,7 @@ BOOL WINHELP_CreateHelpWindow(WINHELP_WNDPAGE* wpage, int nCmdShow, BOOL remembe ...@@ -530,6 +530,7 @@ BOOL WINHELP_CreateHelpWindow(WINHELP_WNDPAGE* wpage, int nCmdShow, BOOL remembe
WINHELP_WINDOW* win = NULL; WINHELP_WINDOW* win = NULL;
BOOL bPrimary, bPopup, bReUsed = FALSE; BOOL bPrimary, bPopup, bReUsed = FALSE;
LPSTR name; LPSTR name;
HICON hIcon;
bPrimary = !lstrcmpi(wpage->wininfo->name, "main"); bPrimary = !lstrcmpi(wpage->wininfo->name, "main");
bPopup = !bPrimary && (wpage->wininfo->win_style & WS_POPUP); bPopup = !bPrimary && (wpage->wininfo->win_style & WS_POPUP);
...@@ -633,6 +634,10 @@ BOOL WINHELP_CreateHelpWindow(WINHELP_WNDPAGE* wpage, int nCmdShow, BOOL remembe ...@@ -633,6 +634,10 @@ BOOL WINHELP_CreateHelpWindow(WINHELP_WNDPAGE* wpage, int nCmdShow, BOOL remembe
0, 0, 0, 0, win->hMainWnd, (HMENU)CTL_ID_TEXT, Globals.hInstance, win); 0, 0, 0, 0, win->hMainWnd, (HMENU)CTL_ID_TEXT, Globals.hInstance, win);
} }
hIcon = (wpage->page) ? wpage->page->file->hIcon : NULL;
if (!hIcon) hIcon = LoadIcon(Globals.hInstance, MAKEINTRESOURCE(IDI_WINHELP));
SendMessage(win->hMainWnd, WM_SETICON, ICON_SMALL, (DWORD_PTR)hIcon);
/* Initialize file specific pushbuttons */ /* Initialize file specific pushbuttons */
if (!(wpage->wininfo->win_style & WS_POPUP) && wpage->page) if (!(wpage->wininfo->win_style & WS_POPUP) && wpage->page)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment