Прототип функции 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 |