win32 console

Michael Stefaniuc mstefani at redhat.de
Wed Apr 11 20:21:55 CDT 2001


Hello,

This patch add stubs for WriteConsoleOutputAttribute,
WriteConsoleOutputCharacter{A,W} and updates wincon.h .
The patch is based on:
http://msdn.microsoft.com/library/psdk/winbase/conchar_3vg3.htm
Due to the updated wincon.h debugger/editline.c needs to include
winbase.h .

ChangeLog:
	- added stub's for three console functions
	- updated wincon.h
	- debugger/editline.c needs to include winbase.h

Modified:
	dlls/kernel/kernel32.spec
	win32/console.c
	include/wincon.h
	debugger/editline.c

bye
	michael
-- 
Michael Stefaniuc               Tel.: +49-711-96437-199
System Administration           Fax.: +49-711-96437-111
Red Hat GmbH                    Email: mstefani at redhat.de
Hauptstaetterstr. 58            http://www.redhat.de/
D-70178 Stuttgart
-------------- next part --------------
Index: debugger/editline.c
===================================================================
RCS file: /home/wine/wine/debugger/editline.c,v
retrieving revision 1.10
diff -u -r1.10 editline.c
--- debugger/editline.c	2000/05/03 17:48:21	1.10
+++ debugger/editline.c	2001/04/12 00:40:08
@@ -30,6 +30,7 @@
 #include <string.h>
 
 #include "windef.h"
+#include "winbase.h"
 #include "wincon.h"
 #include "debugger.h"
 
Index: dlls/kernel/kernel32.spec
===================================================================
RCS file: /home/wine/wine/dlls/kernel/kernel32.spec,v
retrieving revision 1.32
diff -u -r1.32 kernel32.spec
--- dlls/kernel/kernel32.spec	2001/04/09 18:34:50	1.32
+++ dlls/kernel/kernel32.spec	2001/04/12 00:40:09
@@ -776,9 +776,9 @@
 @ 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
Index: include/wincon.h
===================================================================
RCS file: /home/wine/wine/include/wincon.h,v
retrieving revision 1.10
diff -u -r1.10 wincon.h
--- include/wincon.h	2000/11/25 21:46:31	1.10
+++ include/wincon.h	2001/04/12 00:40:11
@@ -191,4 +191,54 @@
 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 */
Index: win32/console.c
===================================================================
RCS file: /home/wine/wine/win32/console.c,v
retrieving revision 1.74
diff -u -r1.74 console.c
--- win32/console.c	2001/03/22 19:35:27	1.74
+++ win32/console.c	2001/04/12 00:40:13
@@ -1701,3 +1701,83 @@
     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;
+}


More information about the wine-patches mailing list