Прототип функции WinHelp
Прототип функции WinHelp определен в файле windows.h:
BOOL WINAPI WinHelp( HWND hwndMain, // идентификатор окна LPCSTR lpszHelp, // путь к hlp-файлу UINT usCommand, // код операции DWORD ulData); // дополнительные данные
Параметр hwndMain перед вызовом функции должен содержать идентификатор окна, для которого вызывается справочная система.
Через параметр lpszHelp передается указатель на текстовую строку, закрытую двоичным нулем, в которой должен быть записан путь к hlp-файлу, содержащему нужную справочную систему.
Функция WinHelp может выполнять одну из нескольких операций в зависимости от значения параметра usCommand:
| Команда | Описание | 
| HELP_COMMAND0x0102 | Выполнение макрокоманды, заданной параметром ulData. Этот параметр должен содержать дальний указатель на текстовую строку, содержащую макрокоманду. Перед использованием команды HELP_COMMAND необходимо, чтобы было запущено приложение winhelp.exe и чтобы нужный hlp-файл был открыт | 
| HELP_CONTENTS0x0003 | Отображение раздела, выполняющего роль оглавления справочной системы. Параметр ulData для этой команды должен быть равен нулю | 
| HELP_CONTEXT0x0001 | Отображение содержимого раздела, заданного номером контекста, определенным в разделе MAP файла проекта справочной системы. Через параметр ulData передается номер контекста отображаемого раздела | 
| HELP_CONTEXTPOPUP0x0008 | Отображение содержимого раздела, заданного номером контекста, во временном окне. Номер контекста должен быть определен в секции MAP файла проекта справочной системы и указан в параметре ulData | 
| HELP_FORCEFILE0x0009 | Если в момент вызова функции WinHelp с этим кодом операции отображается правильный hlp-файл, функция отрабатывает вхолостую. В противном случае отображается раздел оглавления, заданный в секции CONTENTS файла проекта справочной системы. Параметр ulData для этой команды должен быть равен нулю | 
| HELP_HELPONHELP0x0004 | Отображение раздела оглавления справочной системы, содержащей информацию об использовании приложения winhelp.exe. Параметр ulData должен быть равен нулю | 
| HELP_INDEX0x0003 | Синоним HELP_CONTEXT, использовался раньше в функции WinHelp для Windows версии 3.0 | 
| HELP_KEY0x0101 | Отображение раздела справочной системы в соответствии с ключевым словом, передаваемым через параметр ulData. Этот параметр должен содержать дальний указатель на текстовую строку, содержащую ключевое слово | 
| HELP_MULTIKEY0x0201 | Аналогично предыдущему, но с использованием альтернативной таблицы ключей. Параметр ulData должен содержать дальний указатель на структуру MULTIKEYHELP, определяющую символ сноски для альтернативного ключа и ключевое слово | 
| HELP_POPUPID0x0104 | Отображение содержимого раздела, заданного номером контекста, во временном окне. Через параметр ulData передается номер контекста отображаемого раздела, определенный в разделе MAP файла проекта справочной системы. | 
| HELP_PARTIALKEY0x0105 | Аналогично HELP_KEY, однако отображаются разделы, для которых имеется неполное соответствие (несколько начальных символов ключевого слова) | 
| HELP_QUIT0x0002 | Завершение работы с hlp-файлом. Если ни одно другое приложение не выполняет никаких операций со справочной системой, приложение winhelp.exe завершает свою работу. Параметр ulData должен быть равен нулю | 
| HELP_SETCONTENTS0x0005 | Раздел, номер контекста которого указан в параметре ulData, будет выполнять функции оглавления справочной системы. Номер контекста раздела должен быть определен в секции MAP файла проекта справочной системы | 
| HELP_SETINDEX0x0005 | Синоним HELP_SETCONTEXT, использовался раньше в функции WinHelp для Windows версии 3.0 | 
| HELP_SETWINPOS0x0203 | Изменение размеров и расположения окна приложения winhelp.exe в соответствии со значениями, определенными в структуре HELPWININFO, указатель на которую передается через параметр ulData | 
Структура MULTIKEYHELP определена в файле windows.h следующим образом:
typedef struct tagMULTIKEYHELP { UINT mkSize; // размер структуры в байтах BYTE mkKeylist; // символ сноски BYTE szKeyphrase[1]; // текстовая строка, содержащая // ключевое слово } MULTIKEYHELP;
Текстовая строка szKeyphrase должна быть закрыта двоичным нулем.
Структура HELPWININFO (и указатели на нее) определена также в файле windows.h:
typedef struct { int wStructSize; // размер структуры в байтах int x; // X-координата верхнего левого угла окна int y; // Y-координата верхнего левого угла окна int dx; // ширина окна int dy; // высота окна int wMax; // стиль отображения окна char rgchMember[2]; // имя окна } HELPWININFO; typedef HELPWININFO NEAR* PHELPWININFO; typedef HELPWININFO FAR* LPHELPWININFO;
Для стиля отображения окна вы можете использовать константы с префиксом имени SW:
| Константа | Описание | 
| SW_HIDE | Скрыть окно | 
| SW_SHOWNORMAL | Активизировать окно и отобразить его в нормальном состоянии (не минимизированном или максимизированном) | 
| SW_SHOWMINIMIZED | Минимизировать окно | 
| SW_SHOWMAXIMIZED | Максимизировать окно | 
| SW_SHOWNOACTIVE | Использовать для окна старые размеры и расположение. Те окна, которые были активными на момент вызова функции, по-прежнему остаются активными | 
| SW_SHOW | Активизировать и отобразить окно, используя текущие размеры и расположение | 
| SW_MINIMIZE | Минимизировать окно, активизировав другое, расположенное в самом низу (т. е. окно нижнего уровня вдоль оси Z) | 
| SW_SHOWMINNOACTIVE | Отобразить окно как пиктограмму. Те окна, которые были активными на момент вызова функции, по-прежнему остаются активными | 
| SW_SHOWNA | Отобразить окно в текущем состоянии. Те окна, которые были активными на момент вызова функции, по-прежнему остаются активными | 
| SW_RESTORE | Синоним SW_SHOWNORMAL | 
