def PeekConsoleInput( hConsoleInput )
if @@m_PeekConsoleInput == nil
@@m_PeekConsoleInput = Win32API.new( "kernel32", "PeekConsoleInput",
['l', 'p', 'l', 'p'], 'l' )
end
lpNumberOfEventsRead = ' ' * 4
lpBuffer = ' ' * 20
nLength = 20
@@m_PeekConsoleInput.call( hConsoleInput, lpBuffer, nLength,
lpNumberOfEventsRead )
type = lpBuffer.unpack('s')[0]
case type
when KEY_EVENT
return lpBuffer.unpack('sSSSSCS')
when MOUSE_EVENT
return lpBuffer.unpack('sSSSS')
when WINDOW_BUFFER_SIZE_EVENT
return lpBuffer.unpack('sS')
when MENU_EVENT
return lpBuffer.unpack('sS')
when FOCUS_EVENT
return lpBuffer.unpack('sS')
else
return []
end
end