Class Kernel32


  • @JniClass(conditional="defined(_WIN32) || defined(_WIN64)")
    public class Kernel32
    extends java.lang.Object
    Interface to access Win32 base APIs.
    Author:
    Hiram Chirino
    • Field Detail

      • 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 Detail

      • Kernel32

        public Kernel32()
    • Method Detail

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