Hola a todos tengo la siguiente duda:
Tengo la función:
CitarReadConsoleInput function
BOOL WINAPI ReadConsoleInput(
__in HANDLE hConsoleInput,
__out PINPUT_RECORD lpBuffer,
__in DWORD nLength,
__out LPDWORD lpNumberOfEventsRead
);
lpBuffer [out]
A pointer to an array of
INPUT_RECORD structures that receives the input buffer data.
Pero dentro de esta estructura en msdn encuentro lo siguiente:
CitarINPUT_RECORD structure
typedef struct _INPUT_RECORD {
WORD EventType;
union {
KEY_EVENT_RECORD KeyEvent;
MOUSE_EVENT_RECORD MouseEvent;
WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
MENU_EVENT_RECORD MenuEvent;
FOCUS_EVENT_RECORD FocusEvent;
} Event;
} INPUT_RECORD;
Como se ve, se puede especificar el tipo de evento a capturar (filtrar), los cuales pueden ser (FOCUS_EVENT, KEY_EVENT, MENU_EVENT, etc.)
Mi pregunta es como llamo a
ReadConsoleInput especificando el tipo de evento dentro de la estructura
INPUT_RECORD junto con los demás parámetros?, ya que yo solo se llamar a la función.
Les pido que sean claros y sencillos, ya que estoy recién aprendiendo a programar (llevo 1 día con lo de las API).
Saludos y gracias
En la misma MSDN hay un ejemplo
http://msdn.microsoft.com/en-us/library/windows/desktop/ms685035(v=vs.85).aspx
No los filtras en realidad, se capturan todos los eventos, luego procesas los que te interesen.
Solucionado:
El mismo libro que me estoy leyendo explica como definir estructuras....
Ejemplo estructura COORD:
COORD STRUCT
X WORD ?
Y WORD ?
COORD ENDS
Si queremos utilizar SetConsoleCursorPosition de MS Wndows, debemos pasarle el manejador de slida de la consola y el puntero a la estructura COORD
.data
posXY COORD <10,5>
manejadorConsola HANDLE 0
.code
INVOKE GetStdHandle, STD_OUTPUT_HANDLE
mov manejadorConsola,eax
INVOKE SetConsoleCursorPosition, manejadorConsola, posXY
<10,5> indica los valores inicializados dentro de la estructura 10 (X) e 5 (Y).
Saludos