Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
03.06.2014
Размер:
2.63 Mб
Скачать

Заменить драйвер событий

Функция 14h аналогична функции 0Ch, однако ее основное назначение - временная замена драйвера событий. Например, подпрограмма в начале своей работы может установить свой драйвер событий, а перед завершением - активизировать драйвер, использовавшийся ранее.

Регистры на входе:

AX = 0014h

CX = маска вызова;

ES:DX = адрес подключаемого драйвера событий

Регистры на выходе:

CX = маска предыдущего драйвера событий;

ES:DX = адрес предыдущего (заменяемого)драйвера событий

Определить размер буфера состояния драйвера

Если вам требуется временно сохранить состояние драйвера мыши, а затем восстановить его, вы можете воспользоваться специально предназначенными для этого функциями 16h и 17h. Для этих функций требуется буфер, в котором будет храниться состояние драйвера. Размер буфера можно определить с помощью функции 15h.

Регистры на входе:

AX = 0015h

Регистры на выходе:

BX = размер буфера, требующийся для хранения состояния драйвера мыши

Когда может потребоваться запоминание и восстановление состояния драйвера? Например, при использовании мыши резидентными (TSR) программами желательно сохранить состояние драйвера перед началом работы TSR-программы и восстановить его перед завершением работы TSR-программы.

Сохранить состояние драйвера

Функция 16h позволяет записать состояние драйвера в буфер, размер которого должен быть определен с помощью функции 15h.

Регистры на входе:

AX = 0016h

ES:DX = адрес буфера для записи состояния драйвера

Регистры на выходе:

Регистры не используются

Восстановить состояние драйвера

Функция 17h позволяет восстановить состояние драйвера из буфера, в который оно было записано при помощи функции 16h.

Регистры на входе:

AX = 0017h

ES:DX = адрес буфера, содержащего состояние драйвера

Регистры на выходе:

Регистры не используются

Установить альтернативный драйвер событий

Функция 18h предназначена для установки альтернативного драйвера событий:

Регистры на входе:

AX = 0018h

CX = маска вызова;

ES:DX = адрес подключаемого драйвера событий

Регистры на выходе:

AX = результат установки:

0018h - драйвер успешно установлен;

FFFFh - ошибка при установке драйвера

По сравнению с функцией 0Ch эта функция обеспечивает дополнительные возможности:

  • проверка состояния клавиш <Shift>,<Control>,<Alt>во время нажатия на клавиши мыши;

  • возможность одновременной установки до трех драйверов событий, каждый из которых использует свою маску событий, задаваемых в регистре CX.

При попытке установить два драйвера с одной и той же маской событий функция возвращает в регистре AX код ошибки FFFFh. В этом случае вы можете использовать функцию 19h для получения адреса предыдущего установленного драйвера событий, отключить его и повторить попытку подключения своего драйвера.

Функция 18h может применяться для отключения драйвера событий, если в регистрах ES:DX указать его адрес и при этом задать в регистре CX значение маски, равное 0.

Получить адрес альтернативного драйвера событий

Функция 19h предназначена для получения адреса драйвера событий с заданной маской событий. Получив адрес, вы можете установить новый драйвер, использующий эту же маску.

Регистры на входе:

AX = 0019h

CX = маска событий, для которой требуется получить адрес драйвера

Регистры на выходе:

CX = маска событий или 0000h, если заданной маске не соответствует ни один установленный драйвер событий;

ES:DX = адрес драйвера событий, использующий заданную маску событий

Соседние файлы в папке несколько программ