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;
...
}
Смотрите также: