Для разработчиков
При загрузке библиотеки команда LoadLibrary пытается найти в dll функцию Autorun_PluginInit и, если такая будет найдена, предоставляет возможность разработчику задать команды и переменные. В функцию передается структура AutorunInterface, содержащая различные полезные данные, которые можно в дальнейшем использовать в плагине, а также указатель на единую функцию-адаптер. Для работы с функциями необходимо присвоить этот указатель глобальной переменной Adapter, определенной в заголовочном файле. После этого становятся доступными функции:
function AddFunc(AName: PWideChar; AAddr: Pointer; AFlags: integer): integer;
Добавляет пользовательскую команду в Autorun.
function ParseNext(AParamStr: PWideChar; ABuffer: PWideChar; ABufSize: DWORD): integer;
Возвращает следующий параметр из переданной строки с помощью парсера Autorun. Избавляет разработчика от самостоятельного выполнения этой работы.
function GetVar(AVarName: PWideChar; Buffer: PWideChar; nBufferSize: DWORD): integer;
Получает значение переменной по передаваемому имени.
function SetVar(const AName, AValue: PWideChar; AFlags: integer): integer;
Добавляет пользовательскую переменную в Autorun.
function SetVarMacro(const AName: PWideChar; AFuncAddr: Pointer): integer;
Добавляет пользовательскую макро-переменную в Autorun.
function ExpandVars(const AText: PWideChar; ABuffer: PWideChar; ABufSize: DWORD): integer;
Разворачивает переменные окружения и внутренние переменные в переданной строке.
function ReportError(MsgID: integer; const AParam: PWideChar): integer; overload;
Выводит стандартное сообщение об ошибке (ID — в языковом файле Autorun). Если сообщение требует параметр, он передается в параметре AParam.
function ReportError(const AParam: PWideChar): integer; overload;
Выводит нестандартное сообщение об ошибке.
function CallCommand(const ACmdLine: PWideChar; AResult: PWideChar; AResultSize: DWORD): integer; function CallCommand(const ACmdLine: PWideChar): integer;
Вызывает встроенную команду Autorun.
function GetAutorunValue(AValueType: integer; const AValueName: PWideChar; ABuffer: Pointer; nBufSize, AFlags: DWORD): integer;
Получает различные значения Autorun, которые могут быть полезны при написании плагинов.
Подробнее смотрите в заголовочных файлах, находящихся в архиве с примером тестового плагина.