An application can display topics in secondary windows instead of in the Windows Help main window. Secondary windows are useful whenever the user does not need the full capabilities of Windows Help.
To display help in a secondary window, the application specifies the name of the secondary window along with the name of the help file. The following example displays the topic having the context identifier IDM_FILE_SAVE in the secondary window named "wnd_menu":
WinHelp(hwnd, "myhelp.hlp>wnd_menu", HELP_CONTEXT, IDM_FILE_SAVE);
The name and characteristics of the secondary window must be defined in the [WINDOWS] section of the project file, as in the following example:
[WINDOWS]
wnd_menu = "Menus", (128, 128, 256, 256), 0
Windows Help displays the secondary window with the initial size and position specified in the [WINDOWS] section. However, an application can set a new size and position by specifying the HELP_SETWINPOS value in the WinHelp function. In this case, the application sets the members in a HELPWININFO structure to specify the window size and position. The following examples sets the secondary window wnd_menu to a new size and position:
HANDLE hhwi;
LPHELPWININFO lphwi;
WORD wSize;
char *szWndName = "wnd_menu";
wSize = sizeof(HELPWININFO) + lstrlen(szWndName);
hhwi = GlobalAlloc(GHND, wSize);
lphwi = (LPHELPWININFO)GlobalLock(hhwi);
lphwi->wStructSize = wSize;
lphwi->x = 256;
lphwi->y = 256;
lphwi->dx = 767;
lphwi->dy = 512;
lphwi->wMax = 0;
lstrcpy(lphwi->rgchMember, szWndName);
WinHelp(hwnd, "myhelp.hlp", HELP_SETWINPOS, lphwi);
GlobalUnlock(hhwi);
GlobalFree(hhwi);