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