Duda: ¿Como especificar parámetros dentro de estructuras de una función?

Iniciado por .:UND3R:., 12 Mayo 2012, 18:41 PM

0 Miembros y 1 Visitante están viendo este tema.

.:UND3R:.

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

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

_Enko

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.

.:UND3R:.

Solucionado:

El mismo libro que me estoy leyendo explica como definir estructuras....

Ejemplo estructura COORD:

Código (asm) [Seleccionar]
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

Código (asm) [Seleccionar]
.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

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)