CALLBACK функции
5. Форматы функций библиотеки
Все вызываемые функции библиотеки можно разделить на две группы:
1. Функции общего назначения – те функции, которые не приводят к непосредственному взаимодействию с устройством (см. п. 7.1.).
2. Функции, действие которых приводит к взаимодействию библиотеки с устройством.
Рассмотрим формат деклараций функций второй группы:
int CALLBACK dllFunction(HWND hwnd,void (CALLBACK *Fn),LPARAM UI,…)
Параметры функции:
HWND hwnd – в вызове функции вместо этого параметра ставится NULL (данный параметр используется только для совместимости с предыдущими версиями библиотеки)
void (CALLBACK *Fn) – в качестве этого параметра указывается функция, определение которой разработчик помещает в свое приложение. Именно эту функцию вызывает библиотека после того, как устройство завершает выполнение команды. Формат декларации данной функции будет рассмотрен ниже.
LPARAM UI - в вызове функции вместо этого параметра ставится 0L (данный параметр используется только для совместимости с предыдущими версиями библиотеки).
Остальные входные параметры зависят от действий, которые выполняет конкретная функции и рассматриваются в главе 7 при описании каждой функции.
Если после обработки входных параметров, библиотека убедилась в их корректности, то результатом выполнения dllFunction будет 0, в противном случае -1.
Вид CALLBACK функции, вызываемой из библиотеки после завершения выполнения команды устройством:
Формат в Borland C++ Builder:
void CALLBACK _export PrinterResults(struct RetData far &rtd)
{
…
…
}
Формат в Delphi:
procedure PrinterResults(const rtd:RetData )stdcall;
begin
…
…
end;
Пожалуста, как будет выглядеть декларация
int CALLBACK dllFunction(HWND hwnd,void (CALLBACK *Fn),LPARAM UI,…)
в Делфи.