# SetStartupInfoW

Функция `SetStartupInfoW` вызывается один раз, после загрузки DLL-модуля в память. Far Manager передаёт плагину информацию, необходимую для дальнейшей работы.

    void WINAPI SetStartupInfoW(
      const struct PluginStartupInfo *Info
    );

### Параметры

Info
Указатель на структуру PluginStartupInfo. В начале функции проверьте, что поле `PluginStartupInfo.StructSize >= sizeof(PluginStartupInfo)`.

### Возвращаемое значение

Нет.

### Замечания

1. Эта функция вызывается сразу же после вызова функции GetGlobalInfoW.
2. Указатель `Info` действителен только в области видимости данной функции (до выхода из функции), так что структура должна копироваться во внутреннюю переменную плагина для дальнейшего использования:

       static struct PluginStartupInfo Info;
       ...
       void WINAPI SetStartupInfoW(const struct PluginStartupInfo *Info)
       {
         if (Info->StructSize >= sizeof(PluginStartupInfo))
           ::Info=*Info;
         ...
       }

3. Если в плагине используются стандартные функции из структуры FarStandardFunctions, то член PluginStartupInfo.FSF также должен быть сохранён в локальное пространство плагина:

       static struct PluginStartupInfo Info;
       static struct FarStandardFunctions FSF;

       void WINAPI SetStartupInfoW(const struct PluginStartupInfo *Info)
       {
         if (Info->StructSize >= sizeof(PluginStartupInfo))
         {
           ::Info=*Info;
            FSF=*Info->FSF;
            ::Info.FSF=&FSF; // скорректируем адрес в локальной структуре
         ...
         }
       }

Смотрите также: