# OpenInfo

Структура `OpenInfo` используется для возвращения Far Manager'ом информации о плагине в функцию OpenW.

    struct OpenInfo
    {
      size_t StructSize;
      enum OPENFROM OpenFrom;
      const GUID *Guid;
      intptr_t Data;
    };

### Элементы

StructSize
Это поле содержит размер структуры `OpenInfo`.
OpenFrom
Идентификатор, определяющий, откуда был вызван плагин. Может принимать одно из следующих значений (перечисление OPENFROM):

Константа | Описание
--- | ---
OPEN_LEFTDISKMENU | Открыт из левого меню "Сменить диск" (`Alt`+`F1`).
OPEN_PLUGINSMENU | Открыт из меню "Команды внешних модулей" (`F11`).
OPEN_FINDLIST | Открыт из диалога "Поиск файла". Этот идентификатор плагин получит только в том случае, если он экспортирует функцию SetFindListW. Последующий вызов функции SetFindListW произойдёт только в том случае, если функция `OpenW` вернёт значение отличное от `NULL`.
OPEN_SHORTCUT | Открыт через ссылку на папку в меню "Команды" - "Ссылки на папки".
OPEN_COMMANDLINE | Был открыт из командной строки. Этот параметр может использоваться, только если плагин определил вызывающий префикс в функции GetPluginInfoW и этот префикс, с двоеточием после него, был указан в командной строке.
OPEN_EDITOR | Открыт из редактора.
OPEN_VIEWER | Открыт из встроенной программы просмотра.
OPEN_FILEPANEL | Открыт из панелей.
OPEN_DIALOG | Открыт из диалога.
OPEN_ANALYSE | Открыт после анализа содержимого файла (например, архива)
OPEN_RIGHTDISKMENU | Открыт из правого меню "Сменить диск" (`Alt`+`F2`).
OPEN_FROMMACRO | Открыт из макрокоманды макрофункцией Plugin.Call.
OPEN_LUAMACRO | Открыт для проверки или исполнения Lua-макроскрипта.

Guid
GUID выбранного элемента в списке пунктов, экспортированном данным плагином в меню "Диск", "Команды внешних модулей".
Data
Интерпретация параметра зависит от `OpenFrom`:

Константа | Описание
--- | ---
OPEN_LEFTDISKMENU | Этот параметр всегда равен `0`.
OPEN_PLUGINSMENU | Этот параметр всегда равен `0`.
OPEN_FINDLIST | Этот параметр всегда равен `0`.
OPEN_SHORTCUT | Этот параметр равен адресу структуры OpenShortcutInfo, данные в момент сохранения горячей клавиши.
OPEN_COMMANDLINE | Этот параметр равен адресу структуры OpenCommandLineInfo, данные о командной строке.
OPEN_EDITOR | Этот параметр всегда равен `0`.
OPEN_VIEWER | Этот параметр всегда равен `0`.
OPEN_FILEPANEL | Этот параметр всегда равен `0`.
OPEN_DIALOG | Этот параметр равен адресу структуры OpenDlgPluginData, данные о диалоге.
OPEN_ANALYSE | Этот параметр равен адресу структуры OpenAnalyseInfo, данные о файле-контейнере. Вы должны освободить их так, как будто бы получили их в CloseAnalyseW
OPEN_RIGHTDISKMENU | Этот параметр всегда равен `0`.
OPEN_FROMMACRO | Этот параметр равен адресу структуры OpenMacroInfo.

Смотрите также:
структуры