diff --git a/debugger/editline.c b/debugger/editline.c index 04573190465..a904619c70c 100644 --- a/debugger/editline.c +++ b/debugger/editline.c @@ -30,6 +30,7 @@ #include #include "windef.h" +#include "winbase.h" #include "wincon.h" #include "debugger.h" diff --git a/dlls/kernel/kernel32.spec b/dlls/kernel/kernel32.spec index 75d09f00640..2b23718170b 100644 --- a/dlls/kernel/kernel32.spec +++ b/dlls/kernel/kernel32.spec @@ -776,9 +776,9 @@ debug_channels (comm debugstr dll int resource stress thunk toolhelp win32) @ stdcall WriteConsoleInputA(long ptr long ptr) WriteConsoleInputA @ stdcall WriteConsoleInputW(long ptr long ptr) WriteConsoleInputW @ stdcall WriteConsoleOutputA(long ptr long long ptr) WriteConsoleOutputA -@ stub WriteConsoleOutputAttribute -@ stub WriteConsoleOutputCharacterA -@ stub WriteConsoleOutputCharacterW +@ stdcall WriteConsoleOutputAttribute(long ptr long long ptr) WriteConsoleOutputAttribute +@ stdcall WriteConsoleOutputCharacterA(long ptr long long ptr) WriteConsoleOutputCharacterA +@ stdcall WriteConsoleOutputCharacterW(long ptr long long ptr) WriteConsoleOutputCharacterW @ stdcall WriteConsoleOutputW(long ptr long long ptr) WriteConsoleOutputW @ stdcall WriteConsoleW(long ptr long ptr ptr) WriteConsoleW @ stdcall WriteFile(long ptr long ptr ptr) WriteFile diff --git a/include/wincon.h b/include/wincon.h index 19fcfc52ff3..279cca77c39 100644 --- a/include/wincon.h +++ b/include/wincon.h @@ -191,4 +191,54 @@ BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE hConsoleOutput, BOOL WINAPI SetConsoleScreenBufferSize(HANDLE hConsoleOutput, COORD dwSize); +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( HANDLER_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) + #endif /* __WINE_WINCON_H */ diff --git a/win32/console.c b/win32/console.c index 960df02772c..fcafa2af5e5 100644 --- a/win32/console.c +++ b/win32/console.c @@ -1701,3 +1701,83 @@ BOOL WINAPI SetConsoleInputExeNameA( LPCSTR name ) SetLastError(ERROR_CALL_NOT_IMPLEMENTED); return TRUE; } + +/****************************************************************************** + * WriteConsoleOutputAttribute [KERNEL32.@] Sets attributes for some cells in + * the console screen buffer + * + * PARAMS + * hConsoleOutput [I] Handle to screen buffer + * lpAttribute [I] Pointer to buffer with write attributes + * nLength [I] Number of cells to write to + * dwCoord [I] Coords of first cell + * lpNumAttrsWritten [O] Pointer to number of cells written + * + * RETURNS + * Success: TRUE + * Failure: FALSE + * + * BUGS + * Unimplemented + */ +BOOL WINAPI WriteConsoleOutputAttribute( HANDLE hConsoleOutput, + CONST WORD *lpAttribute, DWORD nLength, COORD dwCoord, + LPDWORD lpNumAttrsWritten) +{ + FIXME("(%d,%p,%ld,%dx%d,%p): stub\n", hConsoleOutput, + lpAttribute,nLength,dwCoord.X,dwCoord.Y,lpNumAttrsWritten); + *lpNumAttrsWritten = nLength; + return TRUE; +} + +/****************************************************************************** + * WriteConsoleOutputCharacterA [KERNEL32.@] Copies character to consecutive + * cells in the console screen buffer + * + * PARAMS + * hConsoleOutput [I] Handle to screen buffer + * lpCharacter [I] Pointer to buffer with chars to write + * nLength [I] Number of cells to write to + * dwCoord [I] Coords of first cell + * lpNumCharsWritten [O] Pointer to number of cells written + * + * BUGS + * Unimplemented + */ +BOOL WINAPI WriteConsoleOutputCharacterA( HANDLE hConsoleOutput, + LPCSTR lpCharacter, DWORD nLength, COORD dwCoord, + LPDWORD lpNumCharsWritten) +{ + FIXME("(%d,%p,%ld,%dx%d,%p): stub\n", hConsoleOutput, + lpCharacter,nLength,dwCoord.X,dwCoord.Y,lpNumCharsWritten); + *lpNumCharsWritten = nLength; + return TRUE; +} + +/****************************************************************************** + * WriteConsoleOutputCharacterW [KERNEL32.@] Copies character to consecutive + * cells in the console screen buffer + * + * PARAMS + * hConsoleOutput [I] Handle to screen buffer + * lpCharacter [I] Pointer to buffer with chars to write + * nLength [I] Number of cells to write to + * dwCoord [I] Coords of first cell + * lpNumCharsWritten [O] Pointer to number of cells written + * + * RETURNS + * Success: TRUE + * Failure: FALSE + * + * BUGS + * Unimplemented + */ +BOOL WINAPI WriteConsoleOutputCharacterW( HANDLE hConsoleOutput, + LPCWSTR lpCharacter, DWORD nLength, COORD dwCoord, + LPDWORD lpNumCharsWritten) +{ + FIXME("(%d,%p,%ld,%dx%d,%p): stub\n", hConsoleOutput, + lpCharacter,nLength,dwCoord.X,dwCoord.Y,lpNumCharsWritten); + *lpNumCharsWritten = nLength; + return TRUE; +}