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. В случае, если Far Manager вызывает данную функцию после удачного выполнения AnalyseW, и плагин желает обработать файл без создания панели, верните 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;
}