Исходный текст приложения весьма прост и не содержит в себе каких-либо особенностей. Если вы желаете подробно изучить алгоритм работы приложения WebHelp, воспользуйтесь томом 24 серии “Библиотека системного программиста”. Единственное, что сейчас представляет для нас интерес, это то, как происходит запуск навигатора.
Когда вы выбираете из меню Help строку Web Help приложению поступает командное сообщение с идентификатором ID_HELP_WEBHELP. Это сообщение поступает в класс CWebHelpWindow и распределяется таблицей сообщений этого класса методу WebHelpCommand:
BEGIN_MESSAGE_MAP(CWebHelpWindow, CFrameWnd)
ON_COMMAND(ID_HELP_WEBHELP, WebHelpCommand)
...
END_MESSAGE_MAP()
Метод WebHelpCommand передает функции ShellExecute адрес страницы WWW, содержащей справочную информацию для приложения. Этот вызов запускает навигатор для просмотра информации по указанному адресу:
IRes = ShellExecute( NULL, // Индекс родительского окна
"open", // Код операции
"http://www.dials.ccas.ru/" // URL адрес страницы
"frolov/rwin/webhelp.htm",
NULL, // Строка параметров
NULL, // Путь текущего каталога
SW_SHOWNORMAL // Режим отображения
// окна навигатора
);
Мы не указываем функции ShellExecute индекс родительского окна и используем вместо него значение NULL. Нам надо открыть файл HTML, поэтому в качестве второго параметра передается строка "open". Строка URL адреса, в которой записан путь к справочному файлу, передается функции через третий параметр. Следующие два параметра - строка параметров и путь текущего каталога - не используются. В них указываются значения NULL.
В качестве кода операции используем строку "open". Она означает, что мы желаем открыть объект, адрес которого содержится в третьем параметре функции ShellExecute. В данном случае приложение WebHelp обращается на страницу WWW, расположенную по адресу http://www.dials.ccas.ru/frolov/rwin/webhelp.htm.