Class Kernel32

java.lang.Object
org.fusesource.jansi.internal.Kernel32

@JniClass(conditional="defined(_WIN32) || defined(_WIN64)") public class Kernel32 extends Object
Interface to access Win32 base APIs.
  • Field Details

    • 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
  • Constructor Details

    • Kernel32

      public Kernel32()
  • Method Details

    • 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) 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 IOException
      Return console input events.
      Parameters:
      handle -
      count - requested number of events
      Returns:
      null on read errors
      Throws:
      IOException
    • readConsoleKeyInput

      public static Kernel32.INPUT_RECORD[] readConsoleKeyInput(long handle, int count, boolean peek) throws IOException
      Return console input key events (discard other events).
      Parameters:
      count - requested number of events
      Returns:
      array possibly of size smaller then count
      Throws:
      IOException