ShowHelp
Функция
ShowHelp
показывает заданный топик из hlf-файла.
BOOL WINAPI ShowHelp( const wchar_t *ModuleName, const wchar_t *HelpTopic, FARHELPFLAGS Flags );
Параметры
ModuleName
Полное имя плагина. Его вы получаете в функции SetStartupInfoW.
HelpTopic
Тема помощи. Если параметр
HelpTopic = NULL
, то будет показана тема со стандартным именем "Contents".Flags
Может быть одним из следующий значений (перечисление FARHELPFLAGS):
Константа | Описание |
---|---|
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);
Смотрите также: