В данной работе используется только одна структура данных (определённая в «mouse.cpp»), испольуемая для работы с «мышью». Общий формат такой структуры выглядит так:
Struct MOSE_STATE
{
char buttons; /* байт состояния / индикации кнопок «мыши» */
int hor_position; /* горизонтальная координата курсора */
int ver_position; /* вертикальная координата курсора */
};
Приведём текст СИ-функции определения текущих координат курсора и числа нажатий кнопки «мыши»:
/* Заполняет структурную переменную по шаблону MOUSE_STATE, на которую указывает current_state, информацией о текущей позиции курсора «мыши». Возвращает число нажатий кнопки. Поле buttons структурной переменной и передаваемая переменная number указывают кнопку, о состоянии которой делается запрос (number==0 – запрос о левой кнопке, number==1 – запрос о правой кнопке). */
#include <dos.h>
Struct MOSE_STATE
{
char buttons; /* байт состояния / индикации кнопок «мыши» */
int hor_position; /* горизонтальная координата курсора */
int ver_position; /* вертикальная координата курсора */
};
int ms_release(struct MOSE_STATE * current_state, int number)
{
struct REGPACK r;
r.r_ax = 6;
r.r_bx = number;
intr(0x33, &r);
current_state -> hor_position = r.r_cx;
current_state -> ver_position = r.r_dx;
return r.r_bx;
}
6. Описание глобальных переменных.
Используются две глобальные переменные типа int класса static:
static int i,j;
Эти две переменные используются для организации циклов как в главном теле программы (функция main), так и в определениях функций, используемых в теле main. А также эти переменные используются для промежуточной пересылки данных во всех функциях.