/**
*.Name         ms_querp
*.Title        Определение состояния мыши при нажатии на клавишу
*
*.Descr        Эта функция определяет координаты курсора мыши
*              и состояние клавиш в момент нажатия на заранее
*              заданную клавишу.
*              Определенное состояние записывается в структуру
*              MOUSE_STATE, описанную в файле sysp.h:
*
*                 typedef struct _MOUSE_STATE_ {
*                       unsigned bottoms;
*                       unsigned x;
*                       unsigned y;
*                 } MOUSE_STATE;
*
*              Адрес структуры передается функции в качестве параметра.
*
*.Proto        int ms_querp(MOUSE_STATE *mstate, int bottom);
*
*.Params       MOUSE_STATE *mstate - указатель на структуру,
*                                    описывающую состояние мыши.
*
*              int bottom - параметр определяет клавишу, при нажатии
*                           на которую необходимо запомнить состояние:
*                             0 - левая клавиша,
*                             1 - правая клавиша,
*                             2 - средняя клавиша.
*
*.Return       Функция возвращает количество нажатий на заданную
*              клавишу с момента последнего вызова этой функции.
*
*.Sample       ms_samp3.c
**/

#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include "sysp.h"


union REGS reg;

int ms_querp(MOUSE_STATE *state, int bottom) {

	reg.x.ax = 5;
	reg.x.bx = bottom;
	int86(0x33,&reg,&reg);

	state->bottoms = reg.x.ax;
	state->x       = reg.x.cx;
	state->y       = reg.x.dx;

	return(reg.x.bx);
}
