Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы

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

Содержание раздела