2 * Win32 kernel functions
4 * Copyright 1995 Martin von Loewis and Cameron Heide
17 static CONSOLE_SCREEN_BUFFER_INFO dummyinfo =
26 /***********************************************************************
27 * SetConsoleCtrlHandler (KERNEL32.459)
29 BOOL32 SetConsoleCtrlHandler(HANDLER_ROUTINE * func, BOOL32 a)
34 /***********************************************************************
35 * GetConsoleScreenBufferInfo (KERNEL32.190)
37 BOOL32 GetConsoleScreenBufferInfo( HANDLE32 hConsoleOutput,
38 LPCONSOLE_SCREEN_BUFFER_INFO csbi )
42 csbi->dwCursorPosition.x = 0;
43 csbi->dwCursorPosition.y = 0;
44 csbi->wAttributes = 0;
45 csbi->srWindow.Left = 0;
46 csbi->srWindow.Right = 79;
47 csbi->srWindow.Top = 0;
48 csbi->srWindow.Bottom = 23;
49 csbi->dwMaximumWindowSize.x = 80;
50 csbi->dwMaximumWindowSize.y = 24;
54 /***********************************************************************
55 * GetLargestConsoleWindowSize (KERNEL32.226)
57 DWORD GetLargestConsoleWindowSize( HANDLE32 hConsoleOutput )
59 return (DWORD)MAKELONG(dummyinfo.dwMaximumWindowSize.x,dummyinfo.dwMaximumWindowSize.y);
62 /***********************************************************************
63 * GetConsoleCP (KERNEL32.226)
65 UINT32 GetConsoleCP(VOID)
70 /***********************************************************************
71 * GetConsoleOutputCP (KERNEL32.189)
73 UINT32 GetConsoleOutputCP(VOID)
75 return GetConsoleCP();
78 /***********************************************************************
79 * GetConsoleMode (KERNEL32.188)
81 BOOL32 GetConsoleMode(HANDLE32 hcon,LPDWORD mode)
83 *mode = ENABLE_PROCESSED_INPUT |
91 /***********************************************************************
92 * SetConsoleMode (KERNEL32.188)
94 BOOL32 SetConsoleMode(HANDLE32 hcon,DWORD mode)
96 fprintf(stdnimp,"SetConsoleMode(%08x,%08lx)\n",hcon,mode);
100 /***********************************************************************
101 * GetConsoleTitleA (KERNEL32.191)
103 DWORD GetConsoleTitle32A(LPSTR title,DWORD size)
105 lstrcpyn32A(title,"Console",size);
106 return strlen("Console");
109 /***********************************************************************
110 * GetConsoleTitleW (KERNEL32.192)
112 DWORD GetConsoleTitle32W(LPWSTR title,DWORD size)
114 lstrcpynAtoW(title,"Console",size);
115 return strlen("Console");
118 /***********************************************************************
119 * WriteConsoleA (KERNEL32.567)
121 BOOL32 WriteConsole32A(
122 HANDLE32 hConsoleOutput,
124 DWORD nNumberOfCharsToWrite,
125 LPDWORD lpNumberOfCharsWritten,
128 LPSTR buf = (LPSTR)xmalloc(nNumberOfCharsToWrite+1);
130 lstrcpyn32A(buf,lpBuffer,nNumberOfCharsToWrite);
131 buf[nNumberOfCharsToWrite]=0;
132 fprintf(stderr,"%s",buf);
134 *lpNumberOfCharsWritten=nNumberOfCharsToWrite;
138 /***********************************************************************
139 * WriteConsoleW (KERNEL32.577)
141 BOOL32 WriteConsole32W(
142 HANDLE32 hConsoleOutput,
144 DWORD nNumberOfCharsToWrite,
145 LPDWORD lpNumberOfCharsWritten,
148 LPSTR buf = (LPSTR)xmalloc(2*nNumberOfCharsToWrite+1);
150 lstrcpynWtoA(buf,lpBuffer,nNumberOfCharsToWrite);
151 buf[nNumberOfCharsToWrite]=0;
152 fprintf(stderr,"%s",buf);
154 *lpNumberOfCharsWritten=nNumberOfCharsToWrite;
158 /***********************************************************************
159 * ReadConsoleA (KERNEL32.419)
161 BOOL32 ReadConsole32A(
162 HANDLE32 hConsoleInput,
164 DWORD nNumberOfCharsToRead,
165 LPDWORD lpNumberOfCharsRead,
168 fgets(lpBuffer,nNumberOfCharsToRead,stdin);
169 *lpNumberOfCharsRead = strlen(lpBuffer);
173 /***********************************************************************
174 * ReadConsoleW (KERNEL32.427)
176 BOOL32 ReadConsole32W(
177 HANDLE32 hConsoleInput,
179 DWORD nNumberOfCharsToRead,
180 LPDWORD lpNumberOfCharsRead,
183 LPSTR buf = (LPSTR)xmalloc(nNumberOfCharsToRead);
185 fgets(buf,nNumberOfCharsToRead,stdin);
186 lstrcpynAtoW(lpBuffer,buf,nNumberOfCharsToRead);
187 *lpNumberOfCharsRead = strlen(buf);
191 /***********************************************************************
192 * SetConsoleTitle32A (KERNEL32.476)
194 BOOL32 SetConsoleTitle32A(LPCSTR title)
196 fprintf(stderr,"SetConsoleTitle(%s)\n",title);
200 /***********************************************************************
201 * SetConsoleTitle32W (KERNEL32.477)
203 BOOL32 SetConsoleTitle32W( LPCWSTR title )
205 LPSTR titleA = HEAP_strdupWtoA( GetProcessHeap(), 0, title );
206 fprintf(stderr,"SetConsoleTitle(%s)\n",titleA);
207 HeapFree( GetProcessHeap(), 0, titleA );
211 /***********************************************************************
212 * FlushConsoleInputBuffer (KERNEL32.132)
214 BOOL32 FlushConsoleInputBuffer(HANDLE32 hConsoleInput){
215 fprintf(stderr,"FlushConsoleInputBuffer(%d)\n",hConsoleInput);