SetStartupInfoW
Функция SetStartupInfoW
вызывается один раз, после загрузки DLL-модуля в память. Far Manager передаёт плагину информацию, необходимую для дальнейшей работы.
void WINAPI SetStartupInfoW(
const struct PluginStartupInfo *Info
);
Параметры
Info
Указатель на структуру
PluginStartupInfo.
В начале функции проверьте, что поле
PluginStartupInfo.StructSize >= sizeof(PluginStartupInfo)
.
Возвращаемое значение
Нет.
Замечания
- Эта функция вызывается сразу же после вызова функции GetGlobalInfoW.
- Указатель
Info
действителен только в области видимости данной функции (до выхода из функции), так что структура должна копироваться во внутреннюю переменную плагина для дальнейшего использования:
static struct PluginStartupInfo Info;
...
void WINAPI SetStartupInfoW(const struct PluginStartupInfo *Info)
{
if (Info->StructSize >= sizeof(PluginStartupInfo))
::Info=*Info;
...
}
- Если в плагине используются стандартные функции из структуры 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; // скорректируем адрес в локальной структуре
...
}
}
Смотрите также: