ShowHelp показывает заданный топик из hlf-файла.
BOOL WINAPI ShowHelp( const wchar_t *ModuleName, const wchar_t *HelpTopic, FARHELPFLAGS Flags );
HelpTopic = NULL, то будет показана тема со стандартным именем "Contents".| Константа | Описание |
|---|---|
| FHELP_SELFHELP | Трактовать параметр ModuleName как Info.ModuleName и показать тему из файла помощи вызвавшего плагина. Если HelpTopic начинается с символа ':', то будет показана тема из основного файла помощи Far Manager (в этом случае параметр ModuleName игнорируется). |
| FHELP_FARHELP | Параметр ModuleName игнорируется и будет показана тема из основного файла помощи Far Manager. При этом в параметре HelpTopic не надо указывать первым символом ':'. |
| FHELP_CUSTOMFILE | Трактовать параметр ModuleName как указатель на имя HLF-файла (c:\path\filename). |
| FHELP_CUSTOMPATH | Трактовать параметр ModuleName как указатель на путь (c:\path), а файл выберется автоматически, исходя из текущих настроек языка. |
| FHELP_GUID | Трактовать параметр ModuleName как указатель на GUID плагина, "существующий в этой сессии Far Manager". Файл выберется автоматически, исходя из текущих настроек языка.
Если параметр ModuleName пустая строка ("") или равен GUID {00000000-0000-0000-0000-000000000000}, то будет показана тема из основного файла помощи Far Manager. |
| FHELP_USECONTENTS | Если требуемая тема HelpTopic не найдена, то попытаться отобразить тему "Contents". Флаг может комбинироваться с другими флагами. |
| FHELP_NOSHOWERROR | Не выводить сообщения об ошибках в случае, если требуемая тема или файл помощи не найдены. Флаг может комбинироваться с другими флагами. |
| FHELP_NONE | Нулевой флаг. |
TRUE - удалось передать параметры в Менеджер Помощи.FALSE - ошибка:
Flags содержит неверное значение,
ModuleName = NULL для случаев, отличных от FHELP_FARHELP
void ShowHelp(const wchar_t *HelpTopic)
{
Info.ShowHelp(Info.ModuleName,HelpTopic,0);
}
Причём, Info определяется как глобальная переменная...
struct PluginStartupInfo Info;
...а инициализируется она в функции
SetStartupInfoW:
void WINAPI SetStartupInfoW(const struct PluginStartupInfo *Info)
{
. . .
::Info=*Info;
. . .
}
Пример вызова темы создания линков из плагина FarCmds:
bool StrToGuid(const wchar_t *Value,GUID *Guid)
{
return UuidFromString(reinterpret_cast<unsigned short*>((void*)Value), Guid) == RPC_S_OK;
}
GUID FindGuid;
if (StrToGuid(L"3A2AF458-43E2-4715-AFEA-93D33D56C0C2",&FindGuid))
Info.ShowHelp((const wchar_t*)&FindGuid,L"Link",FHELP_GUID);