Как подключить HTML Help в Cbuilder 6
Не могу разобраться с HTML Help.
Работал в BDS2006 делал помощь HTML Help, когда-то тоже были проблемы. Но вроде разобрался, всё работает.
Теперь возникла необходимость сделать помощь в среде CBuilder 6.
И не могу запустить!
Делаю как в BDS2006:
файл Main.h
Код:
#include <htmlhelp.h>
//---------------------------------------------------------------------------
typedef HWND WINAPI (*THtmlHelpRun) (HWND, LPCSTR, UINT, DWORD);
.............................
..............................
private: // User declarations
THtmlHelpRun HtmlHelpRun; //Указатель на функцию
HMODULE HelpLib; //Библиотечный модуль hhctrl.ocx
public: // User declarations
__fastcall TFormMain(TComponent* Owner);
__fastcall ~TFormMain();
};
файл Main.cpp
Код:
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
: TForm(Owner)
{
//Загружаем библиотеку
HtmlHelpRun=NULL;
HelpLib=LoadLibrary("hhctrl.ocx");
if(HelpLib)
{
FARPROC proc=GetProcAddress(HelpLib,"HtmlHelpA");
HtmlHelpRun= (THtmlHelpRun)proc;
}
if(!HtmlHelpRun)
{
FreeLibrary(HelpLib);
}
}
//---------------------------------------------------------------------------
__fastcall TFormMain::~TFormMain()
{
//Выгружаем библиотеку
if(HelpLib)
{
HelpLib=NULL;
FreeLibrary(HelpLib);
}
}
//---------------------------------------------------------------------------
// Запуск помоши кнопкой. Главный топик.
void __fastcall TFormMain::Button1Click(TObject *Sender)
{
HtmlHelpRun(Application->Handle,"help.chm", HH_DISPLAY_TOPIC, NULL);
}
//---------------------------------------------------------------------------
bool __fastcall TFormMain::FormHelp(WORD Command, int Data, bool &CallHelp)
{
//Обработчик события OnHelp
HtmlHelpRun(NULL, "help.chm", HH_HELP_CONTEXT, Data);
if(!HtmlHelpRun)
{
ShowMessage("Помощь не запускается!");
CallHelp=false;
return false;
}
if(Command!=HELP_CONTEXT)
{
ShowMessage("HELP_CONTEXT не обнаружен!");
CallHelp=false;
return false;
}
return true;
}
В различных элементах формы прописаны свойства HELP_CONTEXT.
Запуск от кнопки работает без проблем
Код:
HtmlHelpRun(Application->Handle,"help.chm", HH_DISPLAY_TOPIC, NULL);
А вот контекстная справка работать не хочет. При нажатии F1 ничего не происходит. Но после выхода из программы выдаётся сообщение обработчика OnHelp
ShowMeКод:
ssage("HELP_CONTEXT не обнаружен!");
Где я ошибаюся? Или может вообще на 6 билдере не должно работать?
В BDS2006 были проблемы, пока я не прописал:
Код:
#include "HTMLHelpViewer.hpp"
#pragma link "HTMLHelpViewer"
В BC6 этого нет, а
Код:
#include "WinHelpViewer.hpp"
#pragma link "WinHelpViewer"
не помогает.
Подскажите, пожалуйчта, как с BC6 сделать контекстную справку.