GetMsg
Функция
GetMsg
возвращает строку сообщения из языкового файла.
Настоятельно рекомендуется использовать эту функцию вместо предопределённого текста в ваших программах, поскольку это позволит локализовать ваш плагин и переключать языки в Far Manager и плагине одновременно.
const wchar_t* WINAPI GetMsg( const GUID *PluginId, intptr_t MsgId );
Параметры
PluginId
Указатель на GUID плагина (для вашего плагина, GUID должен быть таким же, что и в поле
GlobalInfo.Guid
функции GetGlobalInfoW).MsgId
Номер строки сообщения в файле сообщений.
Возвращаемое значение
Эта функция возвращает адрес запрашиваемой строки сообщения.
ВНИМАНИЕ!
- Не сохраняйте у себя этот адрес, всегда запрашивайте его заново. Если пользователь сменит язык интерфейса, адрес станет недействительным, со всеми вытекающими последствиями.
Примечание
Все
*.lng
файлы в каталоге с плагином являются языковыми файлами. Far Manager выбирает необходимый *.lng
файл в соответствии с установленным языком.
При первом использования функции GetMsg
все сообщения загружаются в память, поэтому при последующих вызовах этой функции доступ к сообщениям производится быстрее и вам
не надо сохранять полученные строки сообщений в промежуточные буферы.
Пример
Во всех примерах, как вы могли заметить, используется следующая функция:
// {B076F0B0-90AE-408c-AD09-491606F09435} DEFINE_GUID(MainGuid, 0xb076f0b0, 0x90ae, 0x408c, 0xad, 0x9, 0x49, 0x16, 0x6, 0xf0, 0x94, 0x35); const wchar_t *GetMsg(intptr_t MsgId) { return(Info.GetMsg(&MainGuid;,MsgId)); }Причём,
Info
определяется как глобальная переменная:
struct PluginStartupInfo Info
;
...а инициализируется она в функции SetStartupInfoW:
void WINAPI SetStartupInfoW(struct PluginStartupInfo *Info) { ... ::Info=*Info; ... }
Смотрите также: