Package org.fusesource.jansi.internal
Class Kernel32
- java.lang.Object
-
- org.fusesource.jansi.internal.Kernel32
-
@JniClass(conditional="defined(_WIN32) || defined(_WIN64)") public class Kernel32 extends java.lang.Object
Interface to access Win32 base APIs.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Kernel32.CHAR_INFO
see: https://msdn.microsoft.com/en-us/library/windows/desktop/ms682013(v=vs.85).aspxstatic class
Kernel32.CONSOLE_SCREEN_BUFFER_INFO
http://msdn.microsoft.com/en-us/library/ms682093%28VS.85%29.aspxstatic class
Kernel32.COORD
static class
Kernel32.FOCUS_EVENT_RECORD
see: http://msdn.microsoft.com/en-us/library/ms683149(v=VS.85).aspxstatic class
Kernel32.INPUT_RECORD
see: http://msdn.microsoft.com/en-us/library/ms683499(v=VS.85).aspxstatic class
Kernel32.KEY_EVENT_RECORD
see: http://msdn.microsoft.com/en-us/library/ms684166(v=VS.85).aspxstatic class
Kernel32.MENU_EVENT_RECORD
see: http://msdn.microsoft.com/en-us/library/ms684213(v=VS.85).aspxstatic class
Kernel32.MOUSE_EVENT_RECORD
see: http://msdn.microsoft.com/en-us/library/ms684239(v=VS.85).aspxstatic class
Kernel32.SMALL_RECT
http://msdn.microsoft.com/en-us/library/ms686311%28VS.85%29.aspxstatic class
Kernel32.WINDOW_BUFFER_SIZE_RECORD
see: http://msdn.microsoft.com/en-us/library/ms687093(v=VS.85).aspx
-
Field Summary
Fields Modifier and Type Field Description static short
BACKGROUND_BLUE
static short
BACKGROUND_GREEN
static short
BACKGROUND_INTENSITY
static short
BACKGROUND_RED
static short
COMMON_LVB_GRID_HORIZONTAL
static short
COMMON_LVB_GRID_LVERTICAL
static short
COMMON_LVB_GRID_RVERTICAL
static short
COMMON_LVB_LEADING_BYTE
static short
COMMON_LVB_REVERSE_VIDEO
static short
COMMON_LVB_TRAILING_BYTE
static short
COMMON_LVB_UNDERSCORE
static short
FOREGROUND_BLUE
static short
FOREGROUND_GREEN
static short
FOREGROUND_INTENSITY
static short
FOREGROUND_RED
static int
FORMAT_MESSAGE_FROM_SYSTEM
static int
INVALID_HANDLE_VALUE
private static org.fusesource.hawtjni.runtime.Library
LIBRARY
static int
STD_ERROR_HANDLE
static int
STD_INPUT_HANDLE
static int
STD_OUTPUT_HANDLE
-
Constructor Summary
Constructors Constructor Description Kernel32()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
_getch()
see: http://msdn.microsoft.com/en-us/library/078sfkak(VS.80).aspxstatic int
CloseHandle(long handle)
see: http://msdn.microsoft.com/en-us/library/ms724211%28VS.85%29.aspxstatic int
FillConsoleOutputAttribute(long consoleOutput, short attribute, int length, Kernel32.COORD writeCoord, int[] numberOfAttrsWritten)
see: https://msdn.microsoft.com/en-us/library/ms682662%28VS.85%29.aspxstatic int
FillConsoleOutputCharacterW(long consoleOutput, char character, int length, Kernel32.COORD writeCoord, int[] numberOfCharsWritten)
see: http://msdn.microsoft.com/en-us/library/ms682663%28VS.85%29.aspxstatic int
FlushConsoleInputBuffer(long handle)
see: http://msdn.microsoft.com/en-us/library/ms683147(v=VS.85).aspxstatic int
FormatMessageW(int flags, long source, int messageId, int languageId, byte[] buffer, int size, long[] args)
static void
free(long ptr)
static int
GetConsoleMode(long handle, int[] mode)
see: http://msdn.microsoft.com/en-us/library/ms683167%28VS.85%29.aspxstatic int
GetConsoleOutputCP()
see: http://msdn.microsoft.com/en-us/library/ms683169(v=VS.85).aspxstatic int
GetConsoleScreenBufferInfo(long consoleOutput, Kernel32.CONSOLE_SCREEN_BUFFER_INFO consoleScreenBufferInfo)
See: http://msdn.microsoft.com/en-us/library/ms683171%28VS.85%29.aspxstatic int
GetLastError()
see: http://msdn.microsoft.com/en-us/library/ms679360(VS.85).aspxstatic int
GetNumberOfConsoleInputEvents(long handle, int[] numberOfEvents)
see: http://msdn.microsoft.com/en-us/library/ms683207(v=VS.85).aspxstatic long
GetStdHandle(int stdHandle)
see: http://msdn.microsoft.com/en-us/library/ms683231%28VS.85%29.aspxprivate static void
init()
static long
malloc(long size)
private static int
PeekConsoleInputW(long handle, long inputRecord, int length, int[] eventsCount)
see: http://msdn.microsoft.com/en-us/library/ms684344(v=VS.85).aspxstatic Kernel32.INPUT_RECORD[]
readConsoleInputHelper(long handle, int count, boolean peek)
Return console input events.private static int
ReadConsoleInputW(long handle, long inputRecord, int length, int[] eventsCount)
see: http://msdn.microsoft.com/en-us/library/ms684961(v=VS.85).aspxstatic Kernel32.INPUT_RECORD[]
readConsoleKeyInput(long handle, int count, boolean peek)
Return console input key events (discard other events).static int
ScrollConsoleScreenBuffer(long consoleOutput, Kernel32.SMALL_RECT scrollRectangle, Kernel32.SMALL_RECT clipRectangle, Kernel32.COORD destinationOrigin, Kernel32.CHAR_INFO fill)
see: https://msdn.microsoft.com/en-us/library/windows/desktop/ms685107(v=vs.85).aspxstatic int
SetConsoleCursorPosition(long consoleOutput, Kernel32.COORD cursorPosition)
http://msdn.microsoft.com/en-us/library/ms686025%28VS.85%29.aspxstatic int
SetConsoleMode(long handle, int mode)
see: http://msdn.microsoft.com/en-us/library/ms686033%28VS.85%29.aspxstatic int
SetConsoleOutputCP(int codePageID)
see: http://msdn.microsoft.com/en-us/library/ms686036(v=VS.85).aspxstatic int
SetConsoleTextAttribute(long consoleOutput, short attributes)
see http://msdn.microsoft.com/en-us/library/ms686047%28VS.85%29.aspxstatic int
SetConsoleTitle(java.lang.String title)
see: http://msdn.microsoft.com/en-us/library/ms686050%28VS.85%29.aspxstatic int
WaitForSingleObject(long hHandle, int dwMilliseconds)
static int
WriteConsoleW(long consoleOutput, char[] buffer, int numberOfCharsToWrite, int[] numberOfCharsWritten, long reserved)
see: http://msdn.microsoft.com/en-us/library/ms687401(v=VS.85).aspx
-
-
-
Field Detail
-
LIBRARY
private static final org.fusesource.hawtjni.runtime.Library LIBRARY
-
FOREGROUND_BLUE
@JniField(flags=CONSTANT) public static short FOREGROUND_BLUE
-
FOREGROUND_GREEN
@JniField(flags=CONSTANT) public static short FOREGROUND_GREEN
-
FOREGROUND_RED
@JniField(flags=CONSTANT) public static short FOREGROUND_RED
-
FOREGROUND_INTENSITY
@JniField(flags=CONSTANT) public static short FOREGROUND_INTENSITY
-
BACKGROUND_BLUE
@JniField(flags=CONSTANT) public static short BACKGROUND_BLUE
-
BACKGROUND_GREEN
@JniField(flags=CONSTANT) public static short BACKGROUND_GREEN
-
BACKGROUND_RED
@JniField(flags=CONSTANT) public static short BACKGROUND_RED
-
BACKGROUND_INTENSITY
@JniField(flags=CONSTANT) public static short BACKGROUND_INTENSITY
-
COMMON_LVB_LEADING_BYTE
@JniField(flags=CONSTANT) public static short COMMON_LVB_LEADING_BYTE
-
COMMON_LVB_TRAILING_BYTE
@JniField(flags=CONSTANT) public static short COMMON_LVB_TRAILING_BYTE
-
COMMON_LVB_GRID_HORIZONTAL
@JniField(flags=CONSTANT) public static short COMMON_LVB_GRID_HORIZONTAL
-
COMMON_LVB_GRID_LVERTICAL
@JniField(flags=CONSTANT) public static short COMMON_LVB_GRID_LVERTICAL
-
COMMON_LVB_GRID_RVERTICAL
@JniField(flags=CONSTANT) public static short COMMON_LVB_GRID_RVERTICAL
-
COMMON_LVB_REVERSE_VIDEO
@JniField(flags=CONSTANT) public static short COMMON_LVB_REVERSE_VIDEO
-
COMMON_LVB_UNDERSCORE
@JniField(flags=CONSTANT) public static short COMMON_LVB_UNDERSCORE
-
FORMAT_MESSAGE_FROM_SYSTEM
@JniField(flags=CONSTANT) public static int FORMAT_MESSAGE_FROM_SYSTEM
-
STD_INPUT_HANDLE
@JniField(flags=CONSTANT) public static int STD_INPUT_HANDLE
-
STD_OUTPUT_HANDLE
@JniField(flags=CONSTANT) public static int STD_OUTPUT_HANDLE
-
STD_ERROR_HANDLE
@JniField(flags=CONSTANT) public static int STD_ERROR_HANDLE
-
INVALID_HANDLE_VALUE
@JniField(flags=CONSTANT) public static int INVALID_HANDLE_VALUE
-
-
Method Detail
-
init
@JniMethod(flags=CONSTANT_INITIALIZER) private static final void init()
-
malloc
@JniMethod(cast="void *") public static final long malloc(@JniArg(cast="size_t") long size)
-
free
public static final void free(@JniArg(cast="void *") long ptr)
-
SetConsoleTextAttribute
public static final int SetConsoleTextAttribute(@JniArg(cast="HANDLE") long consoleOutput, short attributes)
see http://msdn.microsoft.com/en-us/library/ms686047%28VS.85%29.aspx- Parameters:
consoleOutput
-attributes
-- Returns:
-
WaitForSingleObject
public static final int WaitForSingleObject(@JniArg(cast="HANDLE") long hHandle, int dwMilliseconds)
-
CloseHandle
public static final int CloseHandle(@JniArg(cast="HANDLE") long handle)
see: http://msdn.microsoft.com/en-us/library/ms724211%28VS.85%29.aspx- Parameters:
handle
-- Returns:
-
GetLastError
public static final int GetLastError()
see: http://msdn.microsoft.com/en-us/library/ms679360(VS.85).aspx- Returns:
-
FormatMessageW
public static final int FormatMessageW(int flags, @JniArg(cast="void *") long source, int messageId, int languageId, @JniArg(cast="void *",flags={NO_IN,CRITICAL}) byte[] buffer, int size, @JniArg(cast="void *",flags={NO_IN,CRITICAL,SENTINEL}) long[] args)
- Parameters:
flags
-source
-messageId
-languageId
-buffer
-size
-args
-- Returns:
-
GetConsoleScreenBufferInfo
public static final int GetConsoleScreenBufferInfo(@JniArg(cast="HANDLE",flags=POINTER_ARG) long consoleOutput, @JniArg(flags=NO_IN) Kernel32.CONSOLE_SCREEN_BUFFER_INFO consoleScreenBufferInfo)
See: http://msdn.microsoft.com/en-us/library/ms683171%28VS.85%29.aspx- Parameters:
consoleOutput
-consoleScreenBufferInfo
-- Returns:
-
GetStdHandle
@JniMethod(cast="HANDLE", flags=POINTER_RETURN) public static final long GetStdHandle(int stdHandle)
see: http://msdn.microsoft.com/en-us/library/ms683231%28VS.85%29.aspx- Parameters:
stdHandle
-- Returns:
-
SetConsoleCursorPosition
public static final int SetConsoleCursorPosition(@JniArg(cast="HANDLE",flags=POINTER_ARG) long consoleOutput, @JniArg(flags={BY_VALUE,NO_OUT}) Kernel32.COORD cursorPosition)
http://msdn.microsoft.com/en-us/library/ms686025%28VS.85%29.aspx- Parameters:
consoleOutput
-cursorPosition
-- Returns:
-
FillConsoleOutputCharacterW
public static final int FillConsoleOutputCharacterW(@JniArg(cast="HANDLE",flags=POINTER_ARG) long consoleOutput, char character, int length, @JniArg(flags={BY_VALUE,NO_OUT}) Kernel32.COORD writeCoord, @JniArg(flags=NO_IN) int[] numberOfCharsWritten)
see: http://msdn.microsoft.com/en-us/library/ms682663%28VS.85%29.aspx- Parameters:
consoleOutput
-character
-length
-writeCoord
-numberOfCharsWritten
-- Returns:
-
FillConsoleOutputAttribute
public static final int FillConsoleOutputAttribute(@JniArg(cast="HANDLE",flags=POINTER_ARG) long consoleOutput, short attribute, int length, @JniArg(flags={BY_VALUE,NO_OUT}) Kernel32.COORD writeCoord, @JniArg(flags=NO_IN) int[] numberOfAttrsWritten)
see: https://msdn.microsoft.com/en-us/library/ms682662%28VS.85%29.aspx- Parameters:
consoleOutput
-attribute
-length
-writeCoord
-numberOfAttrsWritten
-- Returns:
-
WriteConsoleW
public static final int WriteConsoleW(@JniArg(cast="HANDLE",flags=POINTER_ARG) long consoleOutput, @JniArg(flags=NO_OUT) char[] buffer, int numberOfCharsToWrite, @JniArg(flags=NO_IN) int[] numberOfCharsWritten, @JniArg(cast="LPVOID",flags=POINTER_ARG) long reserved)
see: http://msdn.microsoft.com/en-us/library/ms687401(v=VS.85).aspx- Parameters:
consoleOutput
-buffer
-numberOfCharsToWrite
-numberOfCharsWritten
-reserved
- must be null- Returns:
-
GetConsoleMode
public static final int GetConsoleMode(@JniArg(cast="HANDLE",flags=POINTER_ARG) long handle, @JniArg(flags=NO_IN) int[] mode)
see: http://msdn.microsoft.com/en-us/library/ms683167%28VS.85%29.aspx- Parameters:
handle
-mode
-- Returns:
-
SetConsoleMode
public static final int SetConsoleMode(@JniArg(cast="HANDLE",flags=POINTER_ARG) long handle, int mode)
see: http://msdn.microsoft.com/en-us/library/ms686033%28VS.85%29.aspx- Parameters:
handle
-mode
-- Returns:
-
_getch
public static final int _getch()
see: http://msdn.microsoft.com/en-us/library/078sfkak(VS.80).aspx- Returns:
-
SetConsoleTitle
public static final int SetConsoleTitle(@JniArg(flags=UNICODE) java.lang.String title)
see: http://msdn.microsoft.com/en-us/library/ms686050%28VS.85%29.aspx- Parameters:
title
-- Returns:
- 0 if title was set successfully
-
GetConsoleOutputCP
public static final int GetConsoleOutputCP()
see: http://msdn.microsoft.com/en-us/library/ms683169(v=VS.85).aspx- Returns:
- the current output code page
-
SetConsoleOutputCP
public static final int SetConsoleOutputCP(int codePageID)
see: http://msdn.microsoft.com/en-us/library/ms686036(v=VS.85).aspx- Parameters:
codePageID
-- Returns:
- non 0 if code page was set
-
ScrollConsoleScreenBuffer
public static final int ScrollConsoleScreenBuffer(@JniArg(cast="HANDLE",flags=POINTER_ARG) long consoleOutput, @JniArg(flags=NO_OUT) Kernel32.SMALL_RECT scrollRectangle, @JniArg(flags=NO_OUT) Kernel32.SMALL_RECT clipRectangle, @JniArg(flags={BY_VALUE,NO_OUT}) Kernel32.COORD destinationOrigin, @JniArg(flags=NO_OUT) Kernel32.CHAR_INFO fill)
see: https://msdn.microsoft.com/en-us/library/windows/desktop/ms685107(v=vs.85).aspx
-
ReadConsoleInputW
private static final int ReadConsoleInputW(@JniArg(cast="HANDLE",flags=POINTER_ARG) long handle, @JniArg(cast="PINPUT_RECORD",flags=POINTER_ARG) long inputRecord, int length, @JniArg(flags=NO_IN) int[] eventsCount)
see: http://msdn.microsoft.com/en-us/library/ms684961(v=VS.85).aspx- Parameters:
handle
-length
-eventsCount
-- Returns:
-
PeekConsoleInputW
private static final int PeekConsoleInputW(@JniArg(cast="HANDLE",flags=POINTER_ARG) long handle, @JniArg(cast="PINPUT_RECORD",flags=POINTER_ARG) long inputRecord, int length, @JniArg(flags=NO_IN) int[] eventsCount)
see: http://msdn.microsoft.com/en-us/library/ms684344(v=VS.85).aspx- Parameters:
handle
-length
-eventsCount
-- Returns:
-
GetNumberOfConsoleInputEvents
public static final int GetNumberOfConsoleInputEvents(@JniArg(cast="HANDLE",flags=POINTER_ARG) long handle, @JniArg(flags=NO_IN) int[] numberOfEvents)
see: http://msdn.microsoft.com/en-us/library/ms683207(v=VS.85).aspx- Parameters:
handle
-numberOfEvents
- number of unread input records in the console's input buffer- Returns:
-
FlushConsoleInputBuffer
public static final int FlushConsoleInputBuffer(@JniArg(cast="HANDLE",flags=POINTER_ARG) long handle)
see: http://msdn.microsoft.com/en-us/library/ms683147(v=VS.85).aspx- Parameters:
handle
-- Returns:
-
readConsoleInputHelper
public static Kernel32.INPUT_RECORD[] readConsoleInputHelper(long handle, int count, boolean peek) throws java.io.IOException
Return console input events.- Parameters:
handle
-count
- requested number of events- Returns:
- null on read errors
- Throws:
java.io.IOException
-
readConsoleKeyInput
public static Kernel32.INPUT_RECORD[] readConsoleKeyInput(long handle, int count, boolean peek) throws java.io.IOException
Return console input key events (discard other events).- Parameters:
count
- requested number of events- Returns:
- array possibly of size smaller then count
- Throws:
java.io.IOException
-
-