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; // скорректируем адрес в локальной структуре
      ...
      }
    } 
Смотрите также: