diff --git a/include/winbase.h b/include/winbase.h
index df5a771e17a7e7a0796d1cdf9e4bde51f1cdb919..3855bad0665a1c9f7281e040f3f462d6d012733e 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -1038,7 +1038,6 @@ BOOL        WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPIN
 BOOL        WINAPI AdjustTokenPrivileges(HANDLE,BOOL,LPVOID,DWORD,LPVOID,LPDWORD);
 BOOL        WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *);
 BOOL        WINAPI AllocateLocallyUniqueId(PLUID);
-BOOL      WINAPI AllocConsole(void);
 BOOL      WINAPI AreFileApisANSI(void);
 BOOL        WINAPI BackupEventLogA(HANDLE,LPCSTR);
 BOOL        WINAPI BackupEventLogW(HANDLE,LPCWSTR);
@@ -1152,13 +1151,11 @@ BOOL      WINAPI FindCloseChangeNotification(HANDLE);
 HRSRC     WINAPI FindResourceExA(HMODULE,LPCSTR,LPCSTR,WORD);
 HRSRC     WINAPI FindResourceExW(HMODULE,LPCWSTR,LPCWSTR,WORD);
 #define     FindResourceEx WINELIB_NAME_AW(FindResourceEx)
-BOOL      WINAPI FlushConsoleInputBuffer(HANDLE);
 BOOL      WINAPI FlushFileBuffers(HANDLE);
 BOOL      WINAPI FlushViewOfFile(LPCVOID, DWORD);
 DWORD       WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR,DWORD,va_list*);
 DWORD       WINAPI FormatMessageW(DWORD,LPCVOID,DWORD,DWORD,LPWSTR,DWORD,va_list*);
 #define     FormatMessage WINELIB_NAME_AW(FormatMessage)
-BOOL      WINAPI FreeConsole(void);
 BOOL      WINAPI FreeEnvironmentStringsA(LPSTR);
 BOOL      WINAPI FreeEnvironmentStringsW(LPWSTR);
 #define     FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings)
@@ -1176,12 +1173,6 @@ LPWSTR      WINAPI GetCommandLineW(void);
 BOOL      WINAPI GetComputerNameA(LPSTR,LPDWORD);
 BOOL      WINAPI GetComputerNameW(LPWSTR,LPDWORD);
 #define     GetComputerName WINELIB_NAME_AW(GetComputerName)
-UINT      WINAPI GetConsoleCP(void);
-BOOL      WINAPI GetConsoleMode(HANDLE,LPDWORD);
-UINT      WINAPI GetConsoleOutputCP(void);
-DWORD       WINAPI GetConsoleTitleA(LPSTR,DWORD);
-DWORD       WINAPI GetConsoleTitleW(LPWSTR,DWORD);
-#define     GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle)
 HANDLE      WINAPI GetCurrentProcess(void);
 HANDLE      WINAPI GetCurrentThread(void);
 BOOL        WINAPI GetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,LPDWORD);
@@ -1213,8 +1204,6 @@ DWORD       WINAPI GetLogicalDrives(void);
 DWORD       WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
 DWORD       WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
 #define     GetLongPathName WINELIB_NAME_AW(GetLongPathName)
-BOOL      WINAPI GetNumberOfConsoleInputEvents(HANDLE,LPDWORD);
-BOOL      WINAPI GetNumberOfConsoleMouseButtons(LPDWORD);
 BOOL        WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD);
 BOOL        WINAPI GetOldestEventLogRecord(HANDLE,PDWORD);
 DWORD       WINAPI GetPriorityClass(HANDLE);
@@ -1324,9 +1313,6 @@ DWORD       WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD);
 #define     QueryDosDevice WINELIB_NAME_AW(QueryDosDevice)
 BOOL        WINAPI QueryPerformanceCounter(LARGE_INTEGER*);
 BOOL        WINAPI QueryPerformanceFrequency(LARGE_INTEGER*);
-BOOL        WINAPI ReadConsoleA(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID);
-BOOL        WINAPI ReadConsoleW(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID);
-#define     ReadConsole WINELIB_NAME_AW(ReadConsole)
 BOOL        WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *);
 BOOL        WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *);
 #define     ReadEventLog WINELIB_NAME_AW(ReadEventLog)
@@ -1354,10 +1340,6 @@ BOOL        WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
 BOOL      WINAPI SetComputerNameA(LPCSTR);
 BOOL      WINAPI SetComputerNameW(LPCWSTR);
 #define     SetComputerName WINELIB_NAME_AW(SetComputerName)
-BOOL      WINAPI SetConsoleMode(HANDLE,DWORD);
-BOOL      WINAPI SetConsoleTitleA(LPCSTR);
-BOOL      WINAPI SetConsoleTitleW(LPCWSTR);
-#define     SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle)
 BOOL        WINAPI SetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,DWORD);
 BOOL        WINAPI SetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,DWORD);
 #define     SetDefaultCommConfig WINELIB_NAME_AW(SetDefaultCommConfig)
@@ -1424,9 +1406,6 @@ DWORD       WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
 BOOL        WINAPI WaitNamedPipeA(LPCSTR,DWORD);
 BOOL        WINAPI WaitNamedPipeW(LPCWSTR,DWORD);
 #define     WaitNamedPipe WINELIB_NAME_AW(WaitNamedPipe)
-BOOL      WINAPI WriteConsoleA(HANDLE,LPCVOID,DWORD,LPDWORD,LPVOID);
-BOOL      WINAPI WriteConsoleW(HANDLE,LPCVOID,DWORD,LPDWORD,LPVOID);
-#define     WriteConsole WINELIB_NAME_AW(WriteConsole)
 BOOL      WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
 BOOL        WINAPI WriteFileEx(HANDLE,LPCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
 DWORD       WINAPI WriteTapemark(HANDLE,DWORD,DWORD,BOOL);
diff --git a/include/wincon.h b/include/wincon.h
index 99589890405f6489376fd43215c69adafda2883b..016e0d10020d409271674d60e5a3cd43545ff02b 100644
--- a/include/wincon.h
+++ b/include/wincon.h
@@ -1,24 +1,28 @@
 #ifndef __WINE_WINCON_H
 #define __WINE_WINCON_H
 
-#define CTRL_C_EVENT 0
-#define CTRL_BREAK_EVENT 1
-#define CTRL_CLOSE_EVENT 2
-#define CTRL_LOGOFF_EVENT 5
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define CTRL_C_EVENT        0
+#define CTRL_BREAK_EVENT    1
+#define CTRL_CLOSE_EVENT    2
+#define CTRL_LOGOFF_EVENT   5
 #define CTRL_SHUTDOWN_EVENT 6
 
 /* Console Mode flags */
-#define ENABLE_PROCESSED_INPUT	0x01
-#define ENABLE_LINE_INPUT	0x02
-#define ENABLE_ECHO_INPUT	0x04
-#define ENABLE_WINDOW_INPUT	0x08
-#define ENABLE_MOUSE_INPUT	0x10
+#define ENABLE_PROCESSED_INPUT 0x01
+#define ENABLE_LINE_INPUT      0x02
+#define ENABLE_ECHO_INPUT      0x04
+#define ENABLE_WINDOW_INPUT    0x08
+#define ENABLE_MOUSE_INPUT     0x10
 
-#define ENABLE_PROCESSED_OUTPUT 0x01
+#define ENABLE_PROCESSED_OUTPUT   0x01
 #define ENABLE_WRAP_AT_EOL_OUTPUT 0x02
 
 
-typedef BOOL (WINAPI *PHANDLER_ROUTINE)(DWORD);
+typedef BOOL (WINAPI *PHANDLER_ROUTINE)(DWORD dwCtrlType);
 
 /* Attributes flags: */
 
@@ -77,7 +81,7 @@ typedef struct tagKEY_EVENT_RECORD
     WORD	wVirtualScanCode;	/* 0C */
     union				/* 0E */
 	{
-	WCHAR UniCodeChar;		/* 0E */
+	WCHAR UnicodeChar;		/* 0E */
 	CHAR AsciiChar;			/* 0E */
 	} uChar;
     DWORD	dwControlKeyState;	/* 10 */
@@ -102,6 +106,16 @@ typedef struct tagMOUSE_EVENT_RECORD
     DWORD	dwEventFlags;
 } MOUSE_EVENT_RECORD,*LPMOUSE_EVENT_RECORD;
 
+#define FROM_LEFT_1ST_BUTTON_PRESSED    0x0001
+#define RIGHTMOST_BUTTON_PRESSED        0x0002
+#define FROM_LEFT_2ND_BUTTON_PRESSED    0x0004
+#define FROM_LEFT_3RD_BUTTON_PRESSED    0x0008
+#define FROM_LEFT_4TH_BUTTON_PRESSED    0x0010
+
+#define MOUSE_MOVED                     0x0001
+#define DOUBLE_CLICK                    0x0002
+#define MOUSE_WHEELED                   0x0004
+
 typedef struct tagWINDOW_BUFFER_SIZE_RECORD
 {
     COORD	dwSize;
@@ -137,6 +151,8 @@ typedef struct tagINPUT_RECORD
 #define MENU_EVENT			0x08
 #define FOCUS_EVENT 			0x10
 
+#define CONSOLE_TEXTMODE_BUFFER  1
+
 #ifdef __i386__
 /* Note: this should return a COORD, but calling convention for returning
  * structures is different between Windows and gcc on i386. */
@@ -153,92 +169,92 @@ inline static COORD __wine_GetLargestConsoleWindowSize_wrapper(HANDLE h)
 COORD WINAPI GetLargestConsoleWindowSize(HANDLE);
 #endif  /* __i386__ */
 
-BOOL        WINAPI ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD,COORD,LPDWORD);
-BOOL        WINAPI ReadConsoleOutputCharacterW(HANDLE,LPWSTR,DWORD,COORD,LPDWORD);
-#define     ReadConsoleOutputCharacter WINELIB_NAME_AW(ReadConsoleOutputCharacter)
-BOOL        WINAPI SetConsoleCursorPosition(HANDLE,COORD);
-
-BOOL WINAPI WriteConsoleOutputA( HANDLE hConsoleOutput, LPCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, LPSMALL_RECT lpWriteRegion);
-BOOL WINAPI WriteConsoleOutputW( HANDLE hConsoleOutput, LPCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, LPSMALL_RECT lpWriteRegion);
-#define WriteConsoleOutput WINELIB_NAME_AW(WriteConsoleOutput)
-BOOL WINAPI WriteConsoleInputA( HANDLE handle, INPUT_RECORD *buffer,
-                                    DWORD count, LPDWORD written );
-BOOL WINAPI WriteConsoleInputW( HANDLE handle, INPUT_RECORD *buffer,
-                                    DWORD count, LPDWORD written );
-#define WriteConsoleInput WINELIB_NAME_AW(WriteConsoleInput)
-BOOL WINAPI PeekConsoleInputA( HANDLE handle, LPINPUT_RECORD buffer,
-                                   DWORD count, LPDWORD read );
-BOOL WINAPI PeekConsoleInputW( HANDLE handle, LPINPUT_RECORD buffer,
-                                   DWORD count, LPDWORD read );
-#define PeekConsoleInput WINELIB_NAME_AW(PeekConsoleInput)
-BOOL WINAPI ReadConsoleA(	HANDLE hConsoleInput, LPVOID lpBuffer,
-				DWORD nNumberOfCharsToRead,
-	  			LPDWORD lpNumberOfCharsRead, LPVOID lpReserved);
-BOOL WINAPI ReadConsoleW(	HANDLE hConsoleInput, LPVOID lpBuffer,
-				DWORD nNumberOfCharsToRead,
-	  			LPDWORD lpNumberOfCharsRead, LPVOID lpReserved);
-#define ReadConsole WINELIB_NAME_AW(ReadConsole)
-BOOL WINAPI ReadConsoleInputA(HANDLE hConsoleInput,
-				  LPINPUT_RECORD lpBuffer, DWORD nLength,
-				  LPDWORD lpNumberOfEventsRead);
-BOOL WINAPI ReadConsoleInputW(HANDLE hConsoleInput,
-				  LPINPUT_RECORD lpBuffer, DWORD nLength,
-				  LPDWORD lpNumberOfEventsRead);
-#define ReadConsoleInput WINELIB_NAME_AW(ReadConsoleInput)
-
-BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE hConsoleOutput,
-					   LPCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
-BOOL WINAPI SetConsoleScreenBufferSize(HANDLE hConsoleOutput,
-					   COORD dwSize);
-
-BOOL WINAPI AllocConsole(VOID);
+BOOL WINAPI   AllocConsole(VOID);
 HANDLE WINAPI CreateConsoleScreenBuffer( DWORD dwDesiredAccess, DWORD dwShareMode,
-			    LPSECURITY_ATTRIBUTES sa, DWORD dwFlags, LPVOID lpScreenBufferData);
-BOOL WINAPI FillConsoleOutputAttribute( HANDLE hConsoleOutput, WORD wAttribute,
-			    DWORD nLength, COORD dwCoord, LPDWORD lpNumAttrsWritten);
-BOOL WINAPI FillConsoleOutputCharacterA( HANDLE hConsoleOutput, BYTE cCharacter,
-			    DWORD nLength, COORD dwCoord, LPDWORD lpNumCharsWritten);
-BOOL WINAPI FillConsoleOutputCharacterW( HANDLE hConsoleOutput, WCHAR cCharacter,
-			    DWORD nLength, COORD dwCoord, LPDWORD lpNumCharsWritten);
-#define FillConsoleOutputCharacter WINELIB_NAME_AW(FillConsoleOutputCharacter)
-BOOL WINAPI FlushConsoleInputBuffer( HANDLE handle);
-BOOL WINAPI FreeConsole(VOID);
-BOOL WINAPI GenerateConsoleCtrlEvent( DWORD dwCtrlEvent, DWORD dwProcessGroupID);
-UINT WINAPI GetConsoleCP(VOID);
-BOOL WINAPI GetConsoleCursorInfo( HANDLE hcon, LPCONSOLE_CURSOR_INFO cinfo);
-BOOL WINAPI GetConsoleMode( HANDLE hcon,LPDWORD mode);
-UINT WINAPI GetConsoleOutputCP(VOID);
-DWORD WINAPI GetConsoleTitleA(LPSTR title,DWORD size);
-DWORD WINAPI GetConsoleTitleW( LPWSTR title, DWORD size);
-#define GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle)
-BOOL WINAPI GetNumberOfConsoleInputEvents( HANDLE hcon,LPDWORD nrofevents);
-BOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD nrofbuttons);
-BOOL WINAPI ReadConsoleOutputAttribute( HANDLE hConsoleOutput, LPWORD lpAttribute,
-			    DWORD nLength, COORD dwReadCoord, LPDWORD lpNumberOfAttrsRead);
-BOOL WINAPI ScrollConsoleScreenBufferA( HANDLE hConsoleOutput, LPSMALL_RECT lpScrollRect,
-			    LPSMALL_RECT lpClipRect, COORD dwDestOrigin, LPCHAR_INFO lpFill);
-BOOL WINAPI ScrollConsoleScreenBufferW( HANDLE hConsoleOutput, LPSMALL_RECT lpScrollRect,
-			    LPSMALL_RECT lpClipRect, COORD dwDestOrigin, LPCHAR_INFO lpFill);
-#define ScrollConsoleScreenBuffer WINELIB_NAME_AW(ScrollConsoleScreenBuffer)
-BOOL WINAPI SetConsoleActiveScreenBuffer( HANDLE hConsoleOutput);
-BOOL WINAPI SetConsoleCP(UINT cp);
-BOOL WINAPI SetConsoleCtrlHandler( PHANDLER_ROUTINE func, BOOL add);
-BOOL WINAPI SetConsoleCursorInfo( HANDLE hcon, LPCONSOLE_CURSOR_INFO cinfo);
-BOOL WINAPI SetConsoleMode( HANDLE hcon, DWORD mode);
-BOOL WINAPI SetConsoleOutputCP(UINT cp);
-BOOL WINAPI SetConsoleTextAttribute( HANDLE hConsoleOutput,WORD wAttr);
-BOOL WINAPI SetConsoleTitleA(LPCSTR title);
-BOOL WINAPI SetConsoleTitleW(LPCWSTR title);
-#define SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle)
-BOOL WINAPI SetConsoleWindowInfo( HANDLE hcon, BOOL bAbsolute, LPSMALL_RECT window);
-
-BOOL WINAPI WriteConsoleOutputAttribute( HANDLE hConsoleOutput, CONST WORD *lpAttribute,
-			    DWORD nLength, COORD dwCoord, LPDWORD lpNumAttrsWritten);
-
-BOOL WINAPI WriteConsoleOutputCharacterA( HANDLE hConsoleOutput, LPCSTR lpCharacter,
-			    DWORD nLength, COORD dwCoord, LPDWORD lpNumCharsWritten);
-BOOL WINAPI WriteConsoleOutputCharacterW( HANDLE hConsoleOutput, LPCWSTR lpCharacter,
-			    DWORD nLength, COORD dwCoord, LPDWORD lpNumCharsWritten);
-#define WriteConsoleOutputCharacter WINELIB_NAME_AW(WriteConsoleOutputCharacter)
+                                         LPSECURITY_ATTRIBUTES sa, DWORD dwFlags,
+                                         LPVOID lpScreenBufferData);
+BOOL WINAPI   FillConsoleOutputAttribute( HANDLE hConsoleOutput, WORD wAttribute, DWORD nLength,
+                                          COORD dwCoord, LPDWORD lpNumAttrsWritten);
+BOOL WINAPI   FillConsoleOutputCharacterA( HANDLE hConsoleOutput, BYTE cCharacter, DWORD nLength,
+                                           COORD dwCoord, LPDWORD lpNumCharsWritten);
+BOOL WINAPI   FillConsoleOutputCharacterW( HANDLE hConsoleOutput, WCHAR cCharacter, DWORD nLength,
+                                           COORD dwCoord, LPDWORD lpNumCharsWritten);
+#define       FillConsoleOutputCharacter WINELIB_NAME_AW(FillConsoleOutputCharacter)
+BOOL WINAPI   FlushConsoleInputBuffer( HANDLE handle);
+BOOL WINAPI   FreeConsole(VOID);
+BOOL WINAPI   GenerateConsoleCtrlEvent( DWORD dwCtrlEvent, DWORD dwProcessGroupID);
+UINT WINAPI   GetConsoleCP(VOID);
+BOOL WINAPI   GetConsoleCursorInfo( HANDLE hcon, LPCONSOLE_CURSOR_INFO cinfo);
+BOOL WINAPI   GetConsoleMode( HANDLE hcon,LPDWORD mode);
+UINT WINAPI   GetConsoleOutputCP(VOID);
+BOOL WINAPI   GetConsoleScreenBufferInfo(HANDLE hConsoleOutput,
+                                         LPCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
+DWORD WINAPI  GetConsoleTitleA(LPSTR title,DWORD size);
+DWORD WINAPI  GetConsoleTitleW(LPWSTR title, DWORD size);
+#define       GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle)
+BOOL WINAPI   GetNumberOfConsoleInputEvents( HANDLE hcon,LPDWORD nrofevents);
+BOOL WINAPI   GetNumberOfConsoleMouseButtons(LPDWORD nrofbuttons);
+BOOL WINAPI   PeekConsoleInputA( HANDLE handle, LPINPUT_RECORD buffer, DWORD count, LPDWORD read );
+BOOL WINAPI   PeekConsoleInputW( HANDLE handle, LPINPUT_RECORD buffer, DWORD count, LPDWORD read );
+#define       PeekConsoleInput WINELIB_NAME_AW(PeekConsoleInput)
+BOOL WINAPI   ReadConsoleA(HANDLE hConsoleInput, LPVOID lpBuffer, DWORD nNumberOfCharsToRead,
+                           LPDWORD lpNumberOfCharsRead, LPVOID lpReserved);
+BOOL WINAPI   ReadConsoleW(HANDLE hConsoleInput, LPVOID lpBuffer, DWORD nNumberOfCharsToRead,
+                           LPDWORD lpNumberOfCharsRead, LPVOID lpReserved);
+#define       ReadConsole WINELIB_NAME_AW(ReadConsole)
+BOOL WINAPI   ReadConsoleInputA(HANDLE hConsoleInput, LPINPUT_RECORD lpBuffer, DWORD nLength,
+                                LPDWORD lpNumberOfEventsRead);
+BOOL WINAPI   ReadConsoleInputW(HANDLE hConsoleInput, LPINPUT_RECORD lpBuffer, DWORD nLength,
+                                LPDWORD lpNumberOfEventsRead);
+#define       ReadConsoleInput WINELIB_NAME_AW(ReadConsoleInput)
+BOOL WINAPI   ReadConsoleOutputA( HANDLE hConsoleOutput, LPCHAR_INFO lpBuffer, COORD dwBufferSize,
+                                  COORD dwBufferCoord, LPSMALL_RECT lpReadRegion );
+BOOL WINAPI   ReadConsoleOutputW( HANDLE hConsoleOutput, LPCHAR_INFO lpBuffer, COORD dwBufferSize,
+                                  COORD dwBufferCoord, LPSMALL_RECT lpReadRegion );
+#define       ReadConsoleOutput WINELIB_NAME_AW(ReadConsoleOutput)
+BOOL WINAPI   ReadConsoleOutputAttribute( HANDLE hConsoleOutput, LPWORD lpAttribute, DWORD nLength,
+                                          COORD dwReadCoord, LPDWORD lpNumberOfAttrsRead);
+BOOL WINAPI   ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD,COORD,LPDWORD);
+BOOL WINAPI   ReadConsoleOutputCharacterW(HANDLE,LPWSTR,DWORD,COORD,LPDWORD);
+#define       ReadConsoleOutputCharacter WINELIB_NAME_AW(ReadConsoleOutputCharacter)
+BOOL WINAPI   ScrollConsoleScreenBufferA( HANDLE hConsoleOutput, LPSMALL_RECT lpScrollRect,
+                                          LPSMALL_RECT lpClipRect, COORD dwDestOrigin,
+                                          LPCHAR_INFO lpFill);
+BOOL WINAPI   ScrollConsoleScreenBufferW( HANDLE hConsoleOutput, LPSMALL_RECT lpScrollRect,
+                                          LPSMALL_RECT lpClipRect, COORD dwDestOrigin,
+                                          LPCHAR_INFO lpFill);
+#define       ScrollConsoleScreenBuffer WINELIB_NAME_AW(ScrollConsoleScreenBuffer)
+BOOL WINAPI   SetConsoleActiveScreenBuffer( HANDLE hConsoleOutput);
+BOOL WINAPI   SetConsoleCP(UINT cp);
+BOOL WINAPI   SetConsoleCtrlHandler( PHANDLER_ROUTINE func, BOOL add);
+BOOL WINAPI   SetConsoleCursorInfo( HANDLE hcon, LPCONSOLE_CURSOR_INFO cinfo);
+BOOL WINAPI   SetConsoleCursorPosition(HANDLE,COORD);
+BOOL WINAPI   SetConsoleMode( HANDLE hcon, DWORD mode);
+BOOL WINAPI   SetConsoleOutputCP(UINT cp);
+BOOL WINAPI   SetConsoleScreenBufferSize(HANDLE hConsoleOutput, COORD dwSize);
+BOOL WINAPI   SetConsoleTextAttribute( HANDLE hConsoleOutput,WORD wAttr);
+BOOL WINAPI   SetConsoleTitleA(LPCSTR title);
+BOOL WINAPI   SetConsoleTitleW(LPCWSTR title);
+#define       SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle)
+BOOL WINAPI   SetConsoleWindowInfo( HANDLE hcon, BOOL bAbsolute, LPSMALL_RECT window);
+BOOL WINAPI   WriteConsoleA(HANDLE,CONST VOID *,DWORD,LPDWORD,LPVOID);
+BOOL WINAPI   WriteConsoleW(HANDLE, CONST VOID *lpBuffer, DWORD,LPDWORD,LPVOID);
+#define       WriteConsole WINELIB_NAME_AW(WriteConsole)
+BOOL WINAPI   WriteConsoleInputA( HANDLE handle, INPUT_RECORD *buffer, DWORD, LPDWORD );
+BOOL WINAPI   WriteConsoleInputW( HANDLE handle, INPUT_RECORD *buffer, DWORD, LPDWORD );
+#define       WriteConsoleInput WINELIB_NAME_AW(WriteConsoleInput)
+BOOL WINAPI   WriteConsoleOutputA( HANDLE hConsoleOutput, LPCHAR_INFO lpBuffer, COORD dwBufferSize,
+                                   COORD dwBufferCoord, LPSMALL_RECT lpWriteRegion);
+BOOL WINAPI   WriteConsoleOutputW( HANDLE hConsoleOutput, LPCHAR_INFO lpBuffer, COORD dwBufferSize,
+                                   COORD dwBufferCoord, LPSMALL_RECT lpWriteRegion);
+#define       WriteConsoleOutput WINELIB_NAME_AW(WriteConsoleOutput)
+BOOL WINAPI   WriteConsoleOutputAttribute(HANDLE,CONST WORD *,DWORD,COORD,LPDWORD);
+BOOL WINAPI   WriteConsoleOutputCharacterA(HANDLE,LPCSTR,DWORD,COORD,LPDWORD);
+BOOL WINAPI   WriteConsoleOutputCharacterW(HANDLE,LPCWSTR,DWORD,COORD,LPDWORD);
+#define       WriteConsoleOutputCharacter WINELIB_NAME_AW(WriteConsoleOutputCharacter)
+
+#ifdef __cplusplus
+}
+#endif
 
 #endif  /* __WINE_WINCON_H */