# MacroExecuteString

Структура `MacroExecuteString` используется в функции MacroControl для передачи исполняемого скрипта в Far Manager.

    struct MacroExecuteString
    {
      size_t StructSize;
      unsigned __int64 Flags;
      const wchar_t *SequenceText;
      size_t InCount;
      struct FarMacroValue *InValues;
      size_t OutCount;
      const struct FarMacroValue *OutValues;
    };

### Элементы

StructSize
Это поле должно содержать размер структуры `MacroExecuteString`. Перед использованием структуры плагин должен заполнить поле.
Flags
Комбинация флагов (тип `FARKEYMACROFLAGS`, используются только KMFLAGS_SILENTCHECK, KMFLAGS_LUA и KMFLAGS_MOONSCRIPT):

Флаг | Описание
--- | ---
KMFLAGS_ENABLEOUTPUT | Отображать на экране результат работы каждой клавиши.
KMFLAGS_NOSENDKEYSTOPLUGINS | Не передавать клавиши редакторным плагинам (плагинам, экспортирующим функцию ProcessEditorInputW).
KMFLAGS_SILENTCHECK | Не отображать на экране результат проверки макропоследовательности.
KMFLAGS_LANGMASK | Трёхбитовая область, в которой задаётся язык макропоследовательности.
KMFLAGS_LUA | Язык макропоследовательности - Lua (значение по умолчанию).
KMFLAGS_MOONSCRIPT | Язык макропоследовательности - MoonScript.
KMFLAGS_NONE | Нулевой флаг.

SequenceText
Скрипт в текстовом виде. Если начинается символом `@`, то последующая часть интерпретируется как имя файла-скрипта (допустимо использование переменных окружения).
InCount
Количество аргументов для передачи скрипту. Если аргументов нет, установите в ноль.
InValues
Указатель на массив аргументов скрипта.
OutCount
Количество элементов, возвращённых скриптом (значение устанавливает Far Manager).
OutValues
Указатель на массив элементов, возвращённых скриптом (значение устанавливает Far Manager).

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

1. Скрипт не должен вызывать функции, перечисленные в статье "Ограничения в использовании некоторых функций" в macroapi_manual.ru.chm.
2. Массив `OutValues` может использоваться плагином только до следующего вызова функции `MacroControl`, либо до возвращения управления Far Manager (более раннее из этих событий). Если предполагается использовать элементы массива и далее, плагин должен скопировать их в свою память.

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