com.sun.jna.platform.win32.Wincon Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jna-platform Show documentation
Show all versions of jna-platform Show documentation
Java Native Access Platform
/* Copyright (c) 2007 Timothy Wall, All Rights Reserved
*
* The contents of this file is dual-licensed under 2
* alternative Open Source/Free licenses: LGPL 2.1 or later and
* Apache License 2.0. (starting with JNA version 4.0.0).
*
* You can freely decide which license you want to apply to
* the project.
*
* You may obtain a copy of the LGPL License at:
*
* http://www.gnu.org/licenses/licenses.html
*
* A copy is also included in the downloadable source code package
* containing JNA, in file "LGPL2.1".
*
* You may obtain a copy of the Apache License at:
*
* http://www.apache.org/licenses/
*
* A copy is also included in the downloadable source code package
* containing JNA, in file "AL2.0".
*/
package com.sun.jna.platform.win32;
import com.sun.jna.Native;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.ptr.IntByReference;
/**
* Ported from Wincon.h.
* @author lgoldstein
*/
public interface Wincon {
/**
* Allocates a new console for the calling process.
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see AllocConsole documentation
*/
boolean AllocConsole();
/**
* Detaches the calling process from its console
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see FreeConsole documentation
*/
boolean FreeConsole();
int ATTACH_PARENT_PROCESS=(-1);
/**
* Attaches the calling process to the console of the specified process
* @param dwProcessId The identifier of the process whose console is to
* be used. Can be either the process ID or the special {@link #ATTACH_PARENT_PROCESS}
* value to indicate the console of the parent of the current process.
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see AttachConsole documentation
*/
boolean AttachConsole(int dwProcessId);
/**
* Flushes the console input buffer. All input records currently in the input
* buffer are discarded.
* @param hConsoleInput A handle to the console input buffer. The handle must
* have the GENERIC_WRITE access right.
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see FlushConsoleInputBuffer documentation
*/
boolean FlushConsoleInputBuffer(HANDLE hConsoleInput);
/* Events to be sent by GenerateConsoleCtrlEvent */
int CTRL_C_EVENT=0;
int CTRL_BREAK_EVENT=1;
/**
* Sends a specified signal to a console process group that shares the console
* associated with the calling process.
* @param dwCtrlEvent The type of signal to be generated.
* @param dwProcessGroupId The identifier of the process group to receive the signal
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see GenerateConsoleCtrlEvent documentation
*/
boolean GenerateConsoleCtrlEvent(int dwCtrlEvent, int dwProcessGroupId);
/**
* @return Code that identifies the code page
* @see Code page identifiers
*/
int GetConsoleCP();
/**
* @param wCodePageID The identifier of the code page to be set
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see SetConsoleCP documentation
*/
boolean SetConsoleCP(int wCodePageID);
/**
* @return Retrieves the output code page used by the console associated with the calling process.
* @see Code page identifiers
*/
int GetConsoleOutputCP();
/**
* @param wCodePageID The output code page used by the console associated with the calling process.
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see SetConsoleOutputCP documentation
*/
boolean SetConsoleOutputCP(int wCodePageID);
/**
* @return The window handle used by the console associated with the calling process
*/
HWND GetConsoleWindow();
/**
* @param hConsoleInput A handle to the console input buffer. The handle must
* have the GENERIC_READ access right
* @param lpcNumberOfEvents A pointer to a variable that receives the number
* of unread input records in the console's input buffer
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see GetNumberOfConsoleInputEvents documentation
*/
boolean GetNumberOfConsoleInputEvents(HANDLE hConsoleInput, IntByReference lpcNumberOfEvents);
/**
* @param lpNumberOfMouseButtons A pointer to a variable that receives the number
* of mouse buttons
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see GetNumberOfConsoleMouseButtons documentation
*/
boolean GetNumberOfConsoleMouseButtons(IntByReference lpNumberOfMouseButtons);
/* The values to use for Get/SetStdHandle */
int STD_INPUT_HANDLE=(-10);
int STD_OUTPUT_HANDLE=(-11);
int STD_ERROR_HANDLE=(-12);
/**
* @param nStdHandle The standard device identifier
* @return A handle to the specified standard device (standard input, output, or error)
*/
HANDLE GetStdHandle(int nStdHandle);
/**
* @param nStdHandle The standard device identifier
* @param hHandle The handle for the standard device
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see SetStdHandle documentation
*/
boolean SetStdHandle(int nStdHandle, HANDLE hHandle);
/* console mode values */
int CONSOLE_FULLSCREEN=1;
int CONSOLE_FULLSCREEN_HARDWARE=2;
/**
* Retrieves the display mode of the current console
* @param lpModeFlags The display mode of the console
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see GetConsoleDisplayMode documentation
*/
boolean GetConsoleDisplayMode(IntByReference lpModeFlags);
/* console modes used by Get/SetConsoleMode */
int ENABLE_PROCESSED_INPUT=0x0001;
int ENABLE_LINE_INPUT=0x0002;
int ENABLE_ECHO_INPUT=0x0004;
int ENABLE_WINDOW_INPUT=0x0008;
int ENABLE_MOUSE_INPUT=0x0010;
int ENABLE_INSERT_MODE=0x0020;
int ENABLE_QUICK_EDIT_MODE=0x0040;
int ENABLE_EXTENDED_FLAGS=0x0080;
/* If the hConsoleHandle parameter is a screen buffer handle, the mode
* can be one or more of the following values
*/
int ENABLE_PROCESSED_OUTPUT=0x0001;
int ENABLE_WRAP_AT_EOL_OUTPUT=0x0002;
/**
* @param hConsoleHandle A handle to the console input buffer or the console
* screen buffer. The handle must have the GENERIC_READ access right
* @param lpMode A pointer to a variable that receives the current mode of
* the specified buffer
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see GetConsoleMode documentation
*/
boolean GetConsoleMode(HANDLE hConsoleHandle, IntByReference lpMode);
/**
* @param hConsoleHandle A handle to the console input buffer or a
* console screen buffer. The handle must have the GENERIC_READ access right
* @param dwMode The input or output mode mask to be set
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see SetConsoleMode documentation
*/
boolean SetConsoleMode(HANDLE hConsoleHandle, int dwMode);
int MAX_CONSOLE_TITLE_LENGTH=64 * 1024;
/**
* @param lpConsoleTitle A pointer to a buffer that receives a null-terminated
* string containing the title. If the buffer is too small to store the title,
* the function stores as many characters of the title as will fit in the buffer,
* ending with a null terminator. Note: use {@link Native#toString(char[])}
* to convert it to a {@link String} value
* @param nSize The size of the buffer pointed to by the lpConsoleTitle parameter,
* in characters.
* @return If the function succeeds, the return value is the length of the console
* window's title, in characters. If the function fails, the return value is zero
* and {@code GetLastError} returns the error code.
* @see GetConsoleTitle documentation
*/
int GetConsoleTitle(char[] lpConsoleTitle, int nSize);
/**
* @param lpConsoleTitle A pointer to a buffer that receives a null-terminated
* string containing the original title. Note: use {@link Native#toString(char[])}
* to convert it to a {@link String} value
* @param nSize The size of the lpConsoleTitle buffer, in characters
* @return If the function succeeds, the return value is the length of the
* string copied to the buffer, in characters. If the buffer is not large enough
* to store the title, the return value is zero and {@code GetLastError} returns
* {@code ERROR_SUCCESS}. If the function fails, the return value is zero
* and {@code GetLastError} returns the error code.
* @see GetConsoleOriginalTitle documentation
*/
int GetConsoleOriginalTitle(char[] lpConsoleTitle, int nSize);
/**
* @param lpConsoleTitle The string to be displayed in the title bar of the console window.
* The total size must be less than {@link #MAX_CONSOLE_TITLE_LENGTH}.
* @return {@code true} if successful - if {@code false} then use
* {@code GetLastError()} to get extended error information
* @see SetConsoleTitle documentation
*/
boolean SetConsoleTitle(String lpConsoleTitle);
}