OpenW

Функция OpenW вызывается Far Manager'ом для запуска плагина.
HANDLE WINAPI OpenW(
  const struct OpenInfo *Info
);

Параметры

Info
Указатель на структуру OpenInfo, Far Manager передает служебную информацию об открытом плагине.
В начале функции проверьте, что поле OpenInfo.StructSize >= sizeof(OpenInfo).

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

Eсли функция завершается успешно, то возвращаемое значение - описатель плагина. Этот описатель позже будет передаваться другим функциям плагина для того, чтобы позволить им различать различные копии загруженного плагина. Формат и содержание описателя не важны для Far Manager'а - они могут быть, к примеру, адресом внутреннего объекта плагина, или адресом структуры с данными плагина, или любым другим уникальным идентификатором, отличным от нуля.
В случае неудачного завершения функции, возвращаемое значение должно равняться NULL.

Замечание для OpenW Внимание!

Замечания

  1. Вы можете использовать эту функцию для реализации плагинов, работающих без создания файловых панелей. Просто выполните все необходимые действия и верните NULL.
  2. В случае, если плагин вызывает функцию после удачного выполнения AnalyseW и желает монопольно обработать файл (т.е. другие плагины не будут опрошены Far Manager'ом) без создания панели, то верните в функции PANEL_STOP.

Пример

Пример из плагина "ProcList".
HANDLE WINAPI OpenW(const struct OpenInfo *OInfo)
{
  Plist* hPlugin = new Plist();

  if (OInfo->OpenFrom == OPEN_COMMANDLINE && (NORM_M_PREFIX(reinterpret_cast< LPCWSTR >(OInfo->Data))))
  {
    if (!hPlugin->Connect((wchar_t*)OInfo->Data))
    {
      delete hPlugin;
      hPlugin = nullptr;
    }
  }

  return hPlugin;
}