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).
Замечания
- Скрипт не должен вызывать функции, перечисленные в статье "Ограничения в использовании некоторых функций" в macroapi_manual.ru.chm.
- Массив
OutValues
может использоваться плагином только до следующего вызова функцииMacroControl
, либо до возвращения управления Far Manager (более раннее из этих событий). Если предполагается использовать элементы массива и далее, плагин должен скопировать их в свою память.
Смотрите также: