#ifndef NOGDI typedef struct _CONSOLE_GRAPHICS_BUFFER_INFO { DWORD dwBitMapInfoLength; LPBITMAPINFO lpBitMapInfo; DWORD dwUsage; HANDLE hMutex; PVOID lpBitMap; } CONSOLE_GRAPHICS_BUFFER_INFO, *PCONSOLE_GRAPHICS_BUFFER_INFO; #endif // NOGDI #define CONSOLE_GRAPHICS_BUFFER 2 BOOL WINAPI InvalidateConsoleDIBits( HANDLE hConsoleOutput, PSMALL_RECT lpRect ); #define SYSTEM_ROOT_CONSOLE_EVENT 3 VOID WINAPI SetLastConsoleEventActive( VOID ); #define VDM_HIDE_WINDOW 1 #define VDM_IS_ICONIC 2 #define VDM_CLIENT_RECT 3 #define VDM_CLIENT_TO_SCREEN 4 #define VDM_SCREEN_TO_CLIENT 5 BOOL WINAPI VDMConsoleOperation( DWORD iFunction, LPVOID lpData ); typedef struct _CONSOLE_FONT_INFO { DWORD nFont; COORD dwFontSize; } CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO; BOOL WINAPI SetConsoleFont( HANDLE hConsoleOutput, DWORD nFont ); BOOL WINAPI GetCurrentConsoleFont( HANDLE hConsoleOutput, BOOL bMaximumWindow, PCONSOLE_FONT_INFO lpConsoleCurrentFont ); COORD WINAPI GetConsoleFontSize( HANDLE hConsoleOutput, DWORD nFont ); DWORD WINAPI GetConsoleFontInfo( HANDLE hConsoleOutput, BOOL bMaximumWindow, DWORD nLength, PCONSOLE_FONT_INFO lpConsoleFontInfo ); DWORD WINAPI GetNumberOfConsoleFonts( VOID ); BOOL WINAPI SetConsoleCursor( HANDLE hConsoleOutput, HCURSOR hCursor ); int WINAPI ShowConsoleCursor( HANDLE hConsoleOutput, BOOL bShow ); HMENU ConsoleMenuControl( HANDLE hConsoleOutput, UINT dwCommandIdLow, UINT dwCommandIdHigh ); BOOL SetConsolePalette( HANDLE hConsoleOutput, HPALETTE hPalette, UINT dwUsage ); #define CONSOLE_FULLSCREEN_MODE 1 #define CONSOLE_WINDOWED_MODE 2 BOOL SetConsoleDisplayMode( HANDLE hConsoleOutput, DWORD dwFlags, PCOORD lpNewScreenBufferDimensions ); BOOL RegisterConsoleVDM( IN BOOL bRegister, IN HANDLE hStartHardwareEvent, IN HANDLE hEndHardwareEvent, IN LPWSTR lpStateSectionName, IN DWORD dwStateSectionNameLength, OUT LPDWORD lpStateLength, OUT PVOID *lpState, IN LPWSTR lpVDMBufferSectionName, IN DWORD dwVDMBufferSectionNameLength, COORD VDMBufferSize OPTIONAL, OUT PVOID *lpVDMBuffer ); BOOL GetConsoleHardwareState( HANDLE hConsoleOutput, PCOORD lpResolution, PCOORD lpFontSize ); BOOL SetConsoleHardwareState( HANDLE hConsoleOutput, COORD dwResolution, COORD dwFontSize ); #define CONSOLE_FULLSCREEN 1 // fullscreen console #define CONSOLE_FULLSCREEN_HARDWARE 2 // console owns the hardware BOOL GetConsoleDisplayMode( LPDWORD lpModeFlags ); // // aliasing apis // BOOL AddConsoleAliasA( IN LPSTR Source, IN LPSTR Target, IN LPSTR ExeName ); BOOL AddConsoleAliasW( IN LPWSTR Source, IN LPWSTR Target, IN LPWSTR ExeName ); #ifdef UNICODE #define AddConsoleAlias AddConsoleAliasW #else #define AddConsoleAlias AddConsoleAliasA #endif // !UNICODE DWORD GetConsoleAliasA( IN LPSTR Source, OUT LPSTR TargetBuffer, IN DWORD TargetBufferLength, IN LPSTR ExeName ); DWORD GetConsoleAliasW( IN LPWSTR Source, OUT LPWSTR TargetBuffer, IN DWORD TargetBufferLength, IN LPWSTR ExeName ); #ifdef UNICODE #define GetConsoleAlias GetConsoleAliasW #else #define GetConsoleAlias GetConsoleAliasA #endif // !UNICODE DWORD GetConsoleAliasesLengthA( IN LPSTR ExeName ); DWORD GetConsoleAliasesLengthW( IN LPWSTR ExeName ); #ifdef UNICODE #define GetConsoleAliasesLength GetConsoleAliasesLengthW #else #define GetConsoleAliasesLength GetConsoleAliasesLengthA #endif // !UNICODE DWORD GetConsoleAliasExesLengthA( VOID ); DWORD GetConsoleAliasExesLengthW( VOID ); #ifdef UNICODE #define GetConsoleAliasExesLength GetConsoleAliasExesLengthW #else #define GetConsoleAliasExesLength GetConsoleAliasExesLengthA #endif // !UNICODE DWORD GetConsoleAliasesA( OUT LPSTR AliasBuffer, IN DWORD AliasBufferLength, IN LPSTR ExeName ); DWORD GetConsoleAliasesW( OUT LPWSTR AliasBuffer, IN DWORD AliasBufferLength, IN LPWSTR ExeName ); #ifdef UNICODE #define GetConsoleAliases GetConsoleAliasesW #else #define GetConsoleAliases GetConsoleAliasesA #endif // !UNICODE DWORD GetConsoleAliasExesA( OUT LPSTR ExeNameBuffer, IN DWORD ExeNameBufferLength ); DWORD GetConsoleAliasExesW( OUT LPWSTR ExeNameBuffer, IN DWORD ExeNameBufferLength ); #ifdef UNICODE #define GetConsoleAliasExes GetConsoleAliasExesW #else #define GetConsoleAliasExes GetConsoleAliasExesA #endif // !UNICODE VOID ExpungeConsoleCommandHistoryA( IN LPSTR ExeName ); VOID ExpungeConsoleCommandHistoryW( IN LPWSTR ExeName ); #ifdef UNICODE #define ExpungeConsoleCommandHistory ExpungeConsoleCommandHistoryW #else #define ExpungeConsoleCommandHistory ExpungeConsoleCommandHistoryA #endif // !UNICODE BOOL SetConsoleNumberOfCommandsA( IN DWORD Number, IN LPSTR ExeName ); BOOL SetConsoleNumberOfCommandsW( IN DWORD Number, IN LPWSTR ExeName ); #ifdef UNICODE #define SetConsoleNumberOfCommands SetConsoleNumberOfCommandsW #else #define SetConsoleNumberOfCommands SetConsoleNumberOfCommandsA #endif // !UNICODE DWORD GetConsoleCommandHistoryLengthA( IN LPSTR ExeName ); DWORD GetConsoleCommandHistoryLengthW( IN LPWSTR ExeName ); #ifdef UNICODE #define GetConsoleCommandHistoryLength GetConsoleCommandHistoryLengthW #else #define GetConsoleCommandHistoryLength GetConsoleCommandHistoryLengthA #endif // !UNICODE DWORD GetConsoleCommandHistoryA( OUT LPSTR Commands, IN DWORD CommandBufferLength, IN LPSTR ExeName ); DWORD GetConsoleCommandHistoryW( OUT LPWSTR Commands, IN DWORD CommandBufferLength, IN LPWSTR ExeName ); #ifdef UNICODE #define GetConsoleCommandHistory GetConsoleCommandHistoryW #else #define GetConsoleCommandHistory GetConsoleCommandHistoryA #endif // !UNICODE #define CONSOLE_OVERSTRIKE 1 BOOL SetConsoleCommandHistoryMode( IN DWORD Flags ); #define CONSOLE_NOSHORTCUTKEY 0 /* no shortcut key */ #define CONSOLE_ALTTAB 1 /* Alt + Tab */ #define CONSOLE_ALTESC (1 << 1) /* Alt + Escape */ #define CONSOLE_ALTSPACE (1 << 2) /* Alt + Space */ #define CONSOLE_ALTENTER (1 << 3) /* Alt + Enter */ #define CONSOLE_ALTPRTSC (1 << 4) /* Alt Print screen */ #define CONSOLE_PRTSC (1 << 5) /* Print screen */ #define CONSOLE_CTRLESC (1 << 6) /* Ctrl + Escape */ typedef struct _APPKEY { WORD Modifier; WORD ScanCode; } APPKEY, *LPAPPKEY; #define CONSOLE_MODIFIER_RSHIFT 0x0001 // Right shift key #define CONSOLE_MODIFIER_LSHIFT 0x0002 // Left shift key #define CONSOLE_MODIFIER_CONTROL 0x0004 // Either Control shift key #define CONSOLE_MODIFIER_ALT 0x0008 // Either Alt shift key #define CONSOLE_MODIFIER_SCRLOCK 0x0010 // Scroll lock active #define CONSOLE_MODIFIER_NUMLOCK 0x0020 // Num lock active #define CONSOLE_MODIFIER_CAPSLOCK 0x0040 // Caps lock active #define CONSOLE_MODIFIER_INSERT 0x0080 // Insert active #define CONSOLE_MODIFIER_EXTENDED 0x0100 // Extended K/B shift #define CONSOLE_MODIFIER_HOLD 0x0200 // Ctrl-Num-Lock/Pause active #define CONSOLE_MODIFIER_LALT 0x0400 // Left Alt key is down #define CONSOLE_MODIFIER_RALT 0x0800 // Right Alt key is down #define CONSOLE_MODIFIER_LCTRL 0x1000 // Left Ctrl key is down #define CONSOLE_MODIFIER_RCTRL 0x2000 // Right Ctrl key is down BOOL SetConsoleKeyShortcuts( BOOL bSet, BYTE bReserveKeys, LPAPPKEY lpAppKeys, DWORD dwNumAppKeys ); BOOL SetConsoleMenuClose( BOOL bEnable ); #define CONSOLE_ADD_SUBST 1 #define CONSOLE_REMOVE_SUBST 2 #define CONSOLE_QUERY_SUBST 3 BOOL ConsoleSubst( IN DWORD dwDriveNumber, IN DWORD dwFlag, IN OUT LPWSTR lpPhysicalDriveBuffer, IN DWORD dwPhysicalDriveBufferLength ); BOOL WINAPI WriteConsoleInputVDMA( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsWritten ); BOOL WINAPI WriteConsoleInputVDMW( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsWritten ); #ifdef UNICODE #define WriteConsoleInputVDM WriteConsoleInputVDMW #else #define WriteConsoleInputVDM WriteConsoleInputVDMA #endif // !UNICODE