# 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;
      ...
    }

Смотрите также:
Языки и файлы помощи