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_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 (более раннее из этих событий). Если предполагается использовать элементы массива и далее, плагин должен скопировать их в свою память.
Смотрите также:
структуры