# ProcessEditorEventInfo

Структура `ProcessEditorEventInfo` содержит информацию о событии, поступающем в функцию ProcessEditorEventW.

    struct ProcessEditorEventInfo
    {
      size_t StructSize;
      intptr_t Event;
      void *Param;
      intptr_t EditorID;
    };

### Элементы

StructSize
Это поле содержит размер структуры `ProcessEditorEventInfo`.
Event
Тип события.
Может быть одной из следующих величин (перечисление EDITOR_EVENTS):

Событие | Описание
--- | ---
EE_CLOSE | Одно из окон редактора закрывается. Плагин может использовать это сообщение для освобождения внутренних структур данных. Заметьте, что несколько окон редактора могут работать одновременно. EditorID может быть получен ранее с использованием ECTL_GETINFO команды EditorControl. Но плагин не должен вызывать `EditorControl` при обработке этого сообщения потому что редактор уже закрыт. `Param = NULL`. Функция ProcessEditorEventW должна вернуть `0`. Замечание. В `EE_CLOSE` допускается использовать только ECTL_GETINFO и ECTL_GETBOOKMARKS.
EE_READ | Новый файл загружен в редактор. Плагин может использовать команды функции EditorControl для модификации считанных данных. `Param = NULL`. Функция ProcessEditorEventW должна вернуть `0`.
EE_SAVE | Отредактированный файл собираются сохранять. Плагин может использовать команды функции EditorControl для модификации данных перед сохранением. `Param` указывает на структуру EditorSaveFile. Функция ProcessEditorEventW должна вернуть `0`.
EE_REDRAW | Редактор собирается перерисовать экран. `Param` указывает на константу `EEREDRAW_ALL`. Функция ProcessEditorEventW должна вернуть `0`.
EE_KILLFOCUS | Редактор потерял фокус ввода. `Param` указывает на переменную, содержащую значение EditorID редактора, теряющего фокус. Функция ProcessEditorEventW должна вернуть `0`.
EE_GOTFOCUS | Редактор получил фокус ввода. `Param` указывает на переменную, содержащую значение EditorID редактора, получающего фокус. Функция ProcessEditorEventW должна вернуть `0`.
EE_CHANGE | В редакторе изменился текст. `Param` указывает на переменную, типа EditorChange. Функция ProcessEditorEventW должна вернуть `0`. Плагин должен подписаться на это событие, чтоб получать его. Замечание. EditorControl вызванная из `EE_CHANGE` вернет `FALSE`.

Внимание!

- При обработке `EE_REDRAW` и `EE_GOTFOCUS` НЕЖЕЛАТЕЛЬНО ИСПОЛЬЗОВАТЬ Info.Message, Info.Menu, Info.DialogRun, Info.ShowHelp. Вызов этих функций приводит к рекурсивному вызову `EE_REDRAW` и `EE_GOTFOCUS` соответственно.

Param
Значение указателя зависит от типа события. Смотрите описание событий для уточнения информации.
EditorID
Идентификатор редактора, вызвавшей функцию ProcessEditorEventW.

### Замечания

- `EE_READ` вызывается только один раз для файла.
- `EE_SAVE` вызывается при каждом нажатии `F2` или `Shift`+`F2`.
- `EE_REDRAW` вызывается при любой перерисовке экрана (в частности, при движении курсора)
Смотрите также:
Структуры, ProcessEditorEventW