- Timestamp:
- Jun 7, 1999, 10:58:22 PM (26 years ago)
- Location:
- trunk/src
- Files:
-
- 192 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/NTDLL/makefile
r30 r46 1 # $Id: makefile,v 1. 2 1999-06-01 21:52:15 phallerExp $1 # $Id: makefile,v 1.3 1999-06-07 20:57:55 sandervl Exp $ 2 2 3 3 # … … 28 28 sec.obj \ 29 29 sync.obj \ 30 initterm.obj \ 30 31 time.obj 31 32 … … 47 48 48 49 49 ntdll.obj: .\ntdll.c .\ntdll.h50 ntdll.obj: .\ntdll.cpp .\ntdll.h 50 51 51 file.obj: .\file.c .\ntdll.h52 file.obj: .\file.cpp .\ntdll.h 52 53 53 nt.obj: .\nt.c .\ntdll.h54 nt.obj: .\nt.cpp .\ntdll.h 54 55 55 om.obj: .\om.c .\ntdll.h56 om.obj: .\om.cpp .\ntdll.h 56 57 57 reg.obj: .\reg.c .\ntdll.h58 reg.obj: .\reg.cpp .\ntdll.h 58 59 59 rtl.obj: .\rtl.c .\ntdll.h60 rtl.obj: .\rtl.cpp .\ntdll.h 60 61 61 rtlstr.obj: .\rtlstr.c .\ntdll.h62 rtlstr.obj: .\rtlstr.cpp .\ntdll.h 62 63 63 sec.obj: .\sec.c .\ntdll.h64 sec.obj: .\sec.cpp .\ntdll.h 64 65 65 sync.obj: .\sync.c .\ntdll.h66 sync.obj: .\sync.cpp .\ntdll.h 66 67 67 time.obj: .\time.c .\ntdll.h68 time.obj: .\time.cpp .\ntdll.h 68 69 70 initterm.obj: .\initterm.cpp 69 71 70 72 -
trunk/src/capi2032/capi2032.cpp
r4 r46 1 /* $Id: capi2032.cpp,v 1.1 1999-05-24 20:19:34 ktk Exp $ */2 3 1 /* 4 2 * CAPI2032 implementation -
trunk/src/capi2032/capi2032.h
r4 r46 1 /* $Id: capi2032.h,v 1.1 1999-05-24 20:19:34 ktk Exp $ */2 3 1 /* 4 2 * CAPI2032 implementation -
trunk/src/capi2032/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:34 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 39 37 40 38 capi2032.obj: capi2032.cpp capi2032.h 41 initterm.obj: initterm.c 39 initterm.obj: initterm.cpp 42 40 43 41 clean: -
trunk/src/comctl32/comctl32.h
r44 r46 20 20 21 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 22 26 /* registers window classes inside this DLL */ 23 void RegisterCOMCTL32WindowClasses(unsigned long hinstDLL); 24 27 void CDECL RegisterCOMCTL32WindowClasses(unsigned long hinstDLL); 28 void CDECL UnregisterCOMCTL32WindowClasses(void); 29 #ifdef __cplusplus 30 } 31 #endif 25 32 26 33 -
trunk/src/comctl32/makefile
r44 r46 41 41 42 42 comctl32.obj: comctl32.c 43 initterm.obj: initterm.c 43 initterm.obj: initterm.cpp 44 44 progress.obj: progress.c 45 45 comctl32undoc.obj: comctl32undoc.c … … 58 58 header.obj: header.c 59 59 updown.obj: updown.c 60 rebar :obj: rebar.c60 rebar.obj: rebar.c 61 61 cache.obj: cache.c 62 62 trackbar.obj: trackbar.c -
trunk/src/comdlg32/comdlg32.cpp
r17 r46 1 /* $Id: comdlg32.cpp,v 1.2 1999-05-31 22:08:08 phaller Exp $ */2 3 1 /* 4 2 * COMDLG32 implementation … … 10 8 * 11 9 */ 10 #include <os2win.h> 12 11 #include <stdarg.h> 13 14 #include <os2win.h>15 12 #include <misc.h> 16 #include "wndproc.h"13 #include <wndproc.h> 17 14 18 15 //****************************************************************************** -
trunk/src/comdlg32/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:35 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 38 36 39 37 comdlg32.obj: comdlg32.cpp 40 initterm.obj: initterm.c 38 initterm.obj: initterm.cpp 41 39 42 40 clean: -
trunk/src/ddraw/OS2CLIPPER.CPP
r4 r46 1 /* $Id: OS2CLIPPER.CPP,v 1.1 1999-05-24 20:19:36 ktk Exp $ */2 3 1 /* 4 2 * DirectDraw Clipper Class -
trunk/src/ddraw/OS2CLIPPER.H
r4 r46 1 /* $Id: OS2CLIPPER.H,v 1.1 1999-05-24 20:19:36 ktk Exp $ */2 3 1 /* 4 2 * DirectDraw Clipper Class -
trunk/src/ddraw/OS2D3D.CPP
r4 r46 1 /* $Id: OS2D3D.CPP,v 1.1 1999-05-24 20:19:36 ktk Exp $ */2 3 1 //****************************************************************************** 4 2 //****************************************************************************** -
trunk/src/ddraw/OS2DDRAW.CPP
r4 r46 1 /* $Id: OS2DDRAW.CPP,v 1.1 1999-05-24 20:19:36 ktk Exp $ */2 3 1 /* 4 2 * DirectDraw main class -
trunk/src/ddraw/OS2DDRAW.H
r4 r46 1 /* $Id: OS2DDRAW.H,v 1.1 1999-05-24 20:19:36 ktk Exp $ */2 3 1 /* 4 2 * DirectDraw main class -
trunk/src/ddraw/OS2PALETTE.CPP
r4 r46 1 /* $Id: OS2PALETTE.CPP,v 1.1 1999-05-24 20:19:36 ktk Exp $ */2 3 1 /* 4 2 * DirectDraw Palette class -
trunk/src/ddraw/OS2PALETTE.H
r4 r46 1 /* $Id: OS2PALETTE.H,v 1.1 1999-05-24 20:19:37 ktk Exp $ */2 3 1 /* 4 2 * DirectDraw Palette class -
trunk/src/ddraw/OS2PALSET.CPP
r4 r46 1 /* $Id: OS2PALSET.CPP,v 1.1 1999-05-24 20:19:37 ktk Exp $ */2 3 1 /* 4 2 * OS/2 Palette functions -
trunk/src/ddraw/OS2PALSET.H
r4 r46 1 /* $Id: OS2PALSET.H,v 1.1 1999-05-24 20:19:37 ktk Exp $ */2 3 1 /* 4 2 * OS/2 Palette function definitions -
trunk/src/ddraw/OS2SURFACE.CPP
r4 r46 1 /* $Id: OS2SURFACE.CPP,v 1.1 1999-05-24 20:19:37 ktk Exp $ */2 3 1 /* 4 2 * DirectDraw Surface class -
trunk/src/ddraw/OS2SURFACE.H
r4 r46 1 /* $Id: OS2SURFACE.H,v 1.1 1999-05-24 20:19:37 ktk Exp $ */2 3 1 /* 4 2 * DirectDraw Surface class -
trunk/src/ddraw/OS2UTIL.CPP
r4 r46 1 /* $Id: OS2UTIL.CPP,v 1.1 1999-05-24 20:19:37 ktk Exp $ */2 3 1 /* 4 2 * OS/2 Utility functions -
trunk/src/ddraw/OS2UTIL.H
r4 r46 1 /* $Id: OS2UTIL.H,v 1.1 1999-05-24 20:19:37 ktk Exp $ */2 3 1 /* 4 2 * OS/2 Utility functions -
trunk/src/ddraw/asmutil.asm
r4 r46 1 ; $Id: asmutil.asm,v 1.1 1999-05-24 20:19:37 ktk Exp $2 3 1 ; asmutil.asm Color key bit blitting for DirectDraw 4 2 ; -
trunk/src/ddraw/asmutil.h
r4 r46 1 /* $Id: asmutil.h,v 1.1 1999-05-24 20:19:37 ktk Exp $ */2 3 1 /* 4 2 * asmutil.asm function definition -
trunk/src/ddraw/ddraw.CPP
r4 r46 1 /* $Id: ddraw.CPP,v 1.1 1999-05-24 20:19:37 ktk Exp $ */2 3 1 /* 4 2 * DirectDraw exported APIs -
trunk/src/ddraw/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:37 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 84 82 os2ddraw.h 85 83 86 initterm.obj: initterm.c 84 initterm.obj: initterm.cpp 87 85 88 86 asmutil.obj: asmutil.asm -
trunk/src/ddraw/misc.c
r4 r46 1 /* $Id: misc.c,v 1.1 1999-05-24 20:19:38 ktk Exp $ */2 3 1 /* 4 2 * Logging procedures -
trunk/src/ddraw/no.h
r4 r46 1 /* $Id: no.h,v 1.1 1999-05-24 20:19:38 ktk Exp $ */2 3 1 /* 4 2 * Window.h NO* defines for the ddraw module. -
trunk/src/dsound/DSOUND.CPP
r4 r46 1 /* $Id: DSOUND.CPP,v 1.1 1999-05-24 20:19:38 ktk Exp $ */2 3 1 /* 4 2 * DirectSound exported APIs -
trunk/src/dsound/OS2DSOUND.CPP
r4 r46 1 /* $Id: OS2DSOUND.CPP,v 1.1 1999-05-24 20:19:38 ktk Exp $ */2 3 1 /* 4 2 * DirectSound main class -
trunk/src/dsound/OS2DSOUND.H
r4 r46 1 /* $Id: OS2DSOUND.H,v 1.1 1999-05-24 20:19:38 ktk Exp $ */2 3 1 /* 4 2 * DirectSound main class -
trunk/src/dsound/OS2SNDBUFFER.CPP
r4 r46 1 /* $Id: OS2SNDBUFFER.CPP,v 1.1 1999-05-24 20:19:38 ktk Exp $ */2 3 1 /* 4 2 * DirectSound SoundBuffer class -
trunk/src/dsound/OS2SNDBUFFER.H
r4 r46 1 /* $Id: OS2SNDBUFFER.H,v 1.1 1999-05-24 20:19:38 ktk Exp $ */2 3 1 /* 4 2 * DirectSound SoundBuffer class -
trunk/src/dsound/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:38 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 58 56 $(PDWIN32_INCLUDE)\misc.h 59 57 60 initterm.obj: initterm.c 58 initterm.obj: initterm.cpp 61 59 62 60 -
trunk/src/dsound/misc.c
r4 r46 1 /* $Id: misc.c,v 1.1 1999-05-24 20:19:38 ktk Exp $ */2 3 1 /* 4 2 * Logging procedures -
trunk/src/dsound/no.h
r4 r46 1 /* $Id: no.h,v 1.1 1999-05-24 20:19:39 ktk Exp $ */2 3 1 /* 4 2 * Window.h NO* defines for the dsound module. -
trunk/src/gdi32/CALLBACK.CPP
r4 r46 1 /* $Id: CALLBACK.CPP,v 1.1 1999-05-24 20:19:39 ktk Exp $ */2 3 1 /* 4 2 * GDI32 support code for Line DDA callbacks -
trunk/src/gdi32/CALLBACK.H
r4 r46 1 /* $Id: CALLBACK.H,v 1.1 1999-05-24 20:19:39 ktk Exp $ */2 3 1 /* 4 2 * GDI32 support code for Line DDA callbacks -
trunk/src/gdi32/dibsect.cpp
r4 r46 1 /* $Id: dibsect.cpp,v 1.1 1999-05-24 20:19:39 ktk Exp $ */2 3 1 /* 4 2 * GDI32 DIB sections -
trunk/src/gdi32/dibsect.h
r4 r46 1 /* $Id: dibsect.h,v 1.1 1999-05-24 20:19:39 ktk Exp $ */2 3 1 /* 4 2 * GDI32 DIB sections -
trunk/src/gdi32/gdi32.cpp
r37 r46 1 /* $Id: gdi32.cpp,v 1. 2 1999-06-06 12:25:48 cbratschiExp $ */1 /* $Id: gdi32.cpp,v 1.3 1999-06-07 20:57:59 sandervl Exp $ */ 2 2 3 3 /* … … 43 43 } POLYTEXTW; 44 44 45 46 static ULONG QueryPaletteSize(BITMAPINFOHEADER *pBHdr) 47 { 48 ULONG cbPalette; 49 50 switch (pBHdr->biBitCount) 51 { 52 case 1: 53 case 4: 54 case 8: 55 cbPalette = (1 << pBHdr->biBitCount) * sizeof(RGBQUAD); 56 break; 57 58 case 16: 59 case 24: 60 case 32: 61 cbPalette = 0; 62 break; 63 64 default: 65 dprintf(("QueryPaletteSize: error pBHdr->biBitCount = %d", pBHdr->biBitCount)); 66 cbPalette = -1; 67 } 68 69 return cbPalette; 70 } 45 71 46 72 static ULONG CalcBitmapSize(ULONG cBits, LONG cx, LONG cy) … … 1876 1902 // Dont't like dirty pointers, but Open32 needs a bit help. 1877 1903 // Only tested with winmine. 1878 palsize = (1 << info->bmiHeader.biBitCount) * sizeof(RGBQUAD);1904 palsize = QueryPaletteSize((BITMAPINFOHEADER*)&info->bmiHeader); 1879 1905 imgsize = CalcBitmapSize(info->bmiHeader.biBitCount, 1880 1906 info->bmiHeader.biWidth, info->bmiHeader.biHeight); -
trunk/src/gdi32/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:40 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 55 53 $(PDWIN32_INCLUDE)\misc.h \ 56 54 57 initterm.obj: initterm.c 55 initterm.obj: initterm.cpp 58 56 59 57 -
trunk/src/gdi32/opengl.cpp
r4 r46 1 /* $Id: opengl.cpp,v 1.1 1999-05-24 20:19:40 ktk Exp $ */2 3 1 /* 4 2 * GDI32 OpenGl stubs -
trunk/src/kernel32/Fileio.cpp
r17 r46 1 /* $Id: Fileio.cpp,v 1.2 1999-05-31 22:08:11 phaller Exp $ */2 3 1 /* 4 2 * … … 17 15 #include <string.h> 18 16 #include "unicode.h" 19 #include "misc.h"20 21 22 17 #include "handlemanager.h" 23 18 #include "devio.h" -
trunk/src/kernel32/HandleManager.h
r4 r46 1 /* $Id: HandleManager.h,v 1.1 1999-05-24 20:19:41 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/KERNEL32.CPP
r4 r46 1 /* $Id: KERNEL32.CPP,v 1.1 1999-05-24 20:19:41 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/KERNEL32.DEF
r20 r46 5 5 6 6 IMPORTS 7 _Dos32QueryModFromEIP = DOSCALLS.360 8 Dos32QueryModFromEIP = DOSCALLS.360 9 _DosQueryModFromEIP = DOSCALLS.360 7 10 DosQueryModFromEIP = DOSCALLS.360 8 11 … … 123 126 AddAtomA = _AddAtomA@4 @50 124 127 AddAtomW = _AddAtomW@4 @102 125 ; AddConsoleAliasA = _ OS2AddConsoleAliasA@?? @2 ;NT126 ; AddConsoleAliasW = _ OS2AddConsoleAliasW@?? @3 ;NT127 AllocConsole = _ OS2AllocConsole@0 @103128 ; AddConsoleAliasA = _AddConsoleAliasA@?? @2 ;NT 129 ; AddConsoleAliasW = _AddConsoleAliasW@?? @3 ;NT 130 AllocConsole = _AllocConsole@0 @103 128 131 ; AllocLSCallback = _AllocLSCallback@?? @104 ;W95 129 132 ; AllocSLCallback = _AllocSLCallback@?? @105 ;W95 … … 163 166 ClearCommError = _ClearCommError@12 @136 164 167 CloseHandle = _CloseHandle@4 @137 165 ; CloseConsoleHandle = _ OS2CloseConsoleHandle@?? @22 ;NT168 ; CloseConsoleHandle = _CloseConsoleHandle@?? @22 ;NT 166 169 ; CloseProfileUserMapping = _CloseProfileUserMapping@?? @138 167 170 ; CloseSystemHandle = _CloseSystemHandle@?? @139 ;W95 … … 173 176 CompareStringW = _CompareStringW@24 @144 174 177 ConnectNamedPipe = _ConnectNamedPipe@8 @145 175 ; ConsoleMenuControl = _ OS2ConsoleMenuControl@?? @33 ;NT178 ; ConsoleMenuControl = _ConsoleMenuControl@?? @33 ;NT 176 179 ContinueDebugEvent = _ContinueDebugEvent@12 @146 177 180 ConvertDefaultLocale = _ConvertDefaultLocale@4 @147 … … 181 184 CopyFileExW = _CopyFileExW@24 @39 ;NT 182 185 CopyFileW = _CopyFileW@12 @150 183 CreateConsoleScreenBuffer = _ OS2CreateConsoleScreenBuffer@20 @151186 CreateConsoleScreenBuffer = _CreateConsoleScreenBuffer@20 @151 184 187 CreateDirectoryA = _CreateDirectoryA@8 @152 185 188 CreateDirectoryExA = _CreateDirectoryExA@12 @153 … … 227 230 DisconnectNamedPipe = _DisconnectNamedPipe@4 @190 228 231 DosDateTimeToFileTime = _DosDateTimeToFileTime@12 @191 229 ; DuplicateConsoleHandle = _ OS2DuplicateConsoleHandle@?? ;NT232 ; DuplicateConsoleHandle = _DuplicateConsoleHandle@?? ;NT 230 233 DuplicateHandle = _DuplicateHandle@28 @192 231 234 EndUpdateResourceA = _EndUpdateResourceA@8 @193 … … 255 258 ExpandEnvironmentStringsA = _ExpandEnvironmentStringsA@12 @216 256 259 ExpandEnvironmentStringsW = _ExpandEnvironmentStringsW@12 @217 257 ; ExpungeConsoleCommandHistoryA = _ OS2ExpungeConsoleCommandHistoryA@?? ;NT258 ; ExpungeConsoleCommandHistoryW = _ OS2ExpungeConsoleCommandHistoryW@?? ;NT260 ; ExpungeConsoleCommandHistoryA = _ExpungeConsoleCommandHistoryA@?? ;NT 261 ; ExpungeConsoleCommandHistoryW = _ExpungeConsoleCommandHistoryW@?? ;NT 259 262 ; ExtendVirtualBuffer = _ExtendVirtualBuffer@?? ;NT 260 263 ; FT_Exit0 = _FT_Exit0@?? @218 ;W95 … … 281 284 FileTimeToLocalFileTime = _FileTimeToLocalFileTime@8 @239 282 285 FileTimeToSystemTime = _FileTimeToSystemTime@8 @240 283 FillConsoleOutputAttribute = _ OS2FillConsoleOutputAttribute@20 @241284 FillConsoleOutputCharacterA = _ OS2FillConsoleOutputCharacterA@20 @242285 FillConsoleOutputCharacterW = _ OS2FillConsoleOutputCharacterW@20 @243286 FillConsoleOutputAttribute = _FillConsoleOutputAttribute@20 @241 287 FillConsoleOutputCharacterA = _FillConsoleOutputCharacterA@20 @242 288 FillConsoleOutputCharacterW = _FillConsoleOutputCharacterW@20 @243 286 289 FindAtomA = _FindAtomA@4 @244 287 290 FindAtomW = _FindAtomW@4 @245 … … 302 305 FindResourceExW = _FindResourceExW@16 @257 303 306 FindResourceW = _FindResourceW@12 @258 304 FlushConsoleInputBuffer = _ OS2FlushConsoleInputBuffer@4 @259307 FlushConsoleInputBuffer = _FlushConsoleInputBuffer@4 @259 305 308 FlushFileBuffers = _FlushFileBuffers@4 @260 306 309 FlushInstructionCache = _FlushInstructionCache@12 @261 … … 310 313 FormatMessageA = _FormatMessageA@28 @265 311 314 FormatMessageW = _FormatMessageW@28 @266 312 FreeConsole = _ OS2FreeConsole@0 @267315 FreeConsole = _FreeConsole@0 @267 313 316 FreeEnvironmentStringsA = _FreeEnvironmentStringsA@4 @268 314 317 FreeEnvironmentStringsW = _FreeEnvironmentStringsW@4 @269 … … 319 322 ; FreeSLCallback = _FreeSLCallback@?? @274 ;W95 320 323 ; FreeVirtualBuffer = _FreeVirtualBuffer@?? ;NT 321 GenerateConsoleCtrlEvent = _ OS2GenerateConsoleCtrlEvent@8 @275324 GenerateConsoleCtrlEvent = _GenerateConsoleCtrlEvent@8 @275 322 325 GetACP = _GetACP@0 @276 323 326 GetAtomNameA = _GetAtomNameA@12 @277 … … 339 342 GetComputerNameA = _GetComputerNameA@8 @293 340 343 GetComputerNameW = _GetComputerNameW@8 @294 341 ; GetConsoleAliasA = _ OS2GetConsoleAliasA@?? ;NT342 ; GetConsoleAliasExesA = _ OS2GetConsoleAliasExesA@?? ;NT343 ; GetConsoleAliasExesLengthA = _ OS2GetConsoleAliasExesLengthA@?? ;NT344 ; GetConsoleAliasExesLengthW = _ OS2GetConsoleAliasExesLengthW@?? ;NT345 ; GetConsoleAliasExesW = _ OS2GetConsoleAliasExesW@?? ;NT346 ; GetConsoleAliasW = _ OS2GetConsoleAliasW@?? ;NT347 ; GetConsoleAliasesA = _ OS2GetConsoleAliasesA@?? ;NT348 ; GetConsoleAliasesLengthA = _ OS2GetConsoleAliasesLengthA@?? ;NT349 ; GetConsoleAliasesLengthW = _ OS2GetConsoleAliasesLengthW@?? ;NT350 ; GetConsoleAliasesW = _ OS2GetConsoleAliasesW@?? ;NT351 GetConsoleCP = _ OS2GetConsoleCP@0 @295352 ; GetConsoleCommandHistoryA = _ OS2GetConsoleCommandHistoryA@?? ;NT353 ; GetConsoleCommandHistoryLengthA = _ OS2GetConsoleCommandHistoryLengthA@?? ;NT354 ; GetConsoleCommandHistoryLengthW = _ OS2GetConsoleCommandHistoryLengthW@?? ;NT355 ; GetConsoleCommandHistoryW = _ OS2GetConsoleCommandHistoryW@?? ;NT356 GetConsoleCursorInfo = _ OS2GetConsoleCursorInfo@8 @296357 ; GetConsoleDisplayMode = _ OS2GetConsoleDisplayMode@?? ;NT358 ; GetConsoleFontInfo = _ OS2GetConsoleFontInfo@?? ;NT359 ; GetConsoleFontSize = _ OS2GetConsoleFontSize@?? ;NT360 ; GetConsoleHardwareState = _ OS2GetConsoleHardwareState@?? ;NT361 ; GetConsoleInputExeNameA = _ OS2GetConsoleInputExeNameA@?? ;NT362 ; GetConsoleInputExeNameW = _ OS2GetConsoleInputExeNameW@?? ;NT363 ; GetConsoleInputWaitHandle = _ OS2GetConsoleInputWaitHandle@?? ;NT364 ; GetConsoleKeyboardLayoutNameA = _ OS2GetConsoleKeyboardLayoutNameA@?? ;NT365 ; GetConsoleKeyboardLayoutNameW = _ OS2GetConsoleKeyboardLayoutNameW@?? ;NT366 GetConsoleMode = _ OS2GetConsoleMode@8 @297367 GetConsoleOutputCP = _ OS2GetConsoleOutputCP@0 @298368 GetConsoleScreenBufferInfo = _ OS2GetConsoleScreenBufferInfo@8 @299369 GetConsoleTitleA = _ OS2GetConsoleTitleA@8 @300370 GetConsoleTitleW = _ OS2GetConsoleTitleW@8 @301344 ; GetConsoleAliasA = _GetConsoleAliasA@?? ;NT 345 ; GetConsoleAliasExesA = _GetConsoleAliasExesA@?? ;NT 346 ; GetConsoleAliasExesLengthA = _GetConsoleAliasExesLengthA@?? ;NT 347 ; GetConsoleAliasExesLengthW = _GetConsoleAliasExesLengthW@?? ;NT 348 ; GetConsoleAliasExesW = _GetConsoleAliasExesW@?? ;NT 349 ; GetConsoleAliasW = _GetConsoleAliasW@?? ;NT 350 ; GetConsoleAliasesA = _GetConsoleAliasesA@?? ;NT 351 ; GetConsoleAliasesLengthA = _GetConsoleAliasesLengthA@?? ;NT 352 ; GetConsoleAliasesLengthW = _GetConsoleAliasesLengthW@?? ;NT 353 ; GetConsoleAliasesW = _GetConsoleAliasesW@?? ;NT 354 GetConsoleCP = _GetConsoleCP@0 @295 355 ; GetConsoleCommandHistoryA = _GetConsoleCommandHistoryA@?? ;NT 356 ; GetConsoleCommandHistoryLengthA = _GetConsoleCommandHistoryLengthA@?? ;NT 357 ; GetConsoleCommandHistoryLengthW = _GetConsoleCommandHistoryLengthW@?? ;NT 358 ; GetConsoleCommandHistoryW = _GetConsoleCommandHistoryW@?? ;NT 359 GetConsoleCursorInfo = _GetConsoleCursorInfo@8 @296 360 ; GetConsoleDisplayMode = _GetConsoleDisplayMode@?? ;NT 361 ; GetConsoleFontInfo = _GetConsoleFontInfo@?? ;NT 362 ; GetConsoleFontSize = _GetConsoleFontSize@?? ;NT 363 ; GetConsoleHardwareState = _GetConsoleHardwareState@?? ;NT 364 ; GetConsoleInputExeNameA = _GetConsoleInputExeNameA@?? ;NT 365 ; GetConsoleInputExeNameW = _GetConsoleInputExeNameW@?? ;NT 366 ; GetConsoleInputWaitHandle = _GetConsoleInputWaitHandle@?? ;NT 367 ; GetConsoleKeyboardLayoutNameA = _GetConsoleKeyboardLayoutNameA@?? ;NT 368 ; GetConsoleKeyboardLayoutNameW = _GetConsoleKeyboardLayoutNameW@?? ;NT 369 GetConsoleMode = _GetConsoleMode@8 @297 370 GetConsoleOutputCP = _GetConsoleOutputCP@0 @298 371 GetConsoleScreenBufferInfo = _GetConsoleScreenBufferInfo@8 @299 372 GetConsoleTitleA = _GetConsoleTitleA@8 @300 373 GetConsoleTitleW = _GetConsoleTitleW@8 @301 371 374 GetCurrencyFormatA = _GetCurrencyFormatA@24 @302 372 375 GetCurrencyFormatW = _GetCurrencyFormatW@24 @303 373 ; GetCurrentConsoleFont = _ OS2GetCurrentConsoleFont@?? ;NT376 ; GetCurrentConsoleFont = _GetCurrentConsoleFont@?? ;NT 374 377 GetCurrentDirectoryA = _GetCurrentDirectoryA@8 @304 375 378 GetCurrentDirectoryW = _GetCurrentDirectoryW@8 @305 … … 407 410 ; GetLSCallbackTarget = _GetLSCallbackTarget@?? @337 ;W95 408 411 ; GetLSCallbackTemplate = _GetLSCallbackTemplate@?? @338 ;W95 409 GetLargestConsoleWindowSize = _ OS2GetLargestConsoleWindowSize@4 @339412 GetLargestConsoleWindowSize = _GetLargestConsoleWindowSize@4 @339 410 413 GetLastError = _GetLastError@0 @340 411 414 GetLocalTime = _GetLocalTime@4 @341 … … 426 429 GetNumberFormatA = _GetNumberFormatA@24 @355 427 430 GetNumberFormatW = _GetNumberFormatW@24 @356 428 ; GetNumberOfConsoleFonts = _ OS2GetNumberOfConsoleFonts@?? ;NT429 GetNumberOfConsoleInputEvents = _ OS2GetNumberOfConsoleInputEvents@8 @357430 GetNumberOfConsoleMouseButtons = _ OS2GetNumberOfConsoleMouseButtons@4 @358431 ; GetNumberOfConsoleFonts = _GetNumberOfConsoleFonts@?? ;NT 432 GetNumberOfConsoleInputEvents = _GetNumberOfConsoleInputEvents@8 @357 433 GetNumberOfConsoleMouseButtons = _GetNumberOfConsoleMouseButtons@4 @358 431 434 GetOEMCP = _GetOEMCP@0 @359 432 435 GetOverlappedResult = _GetOverlappedResult@16 @360 … … 543 546 ; HeapQueryTagsW = _HeapQueryTagsW@?? ;NT 544 547 ; HeapSetFlags = _HeapSetFlags@?? @466 545 "HeapSize" 548 "HeapSize" = _HeapSize@12 @467 ; reserved linker word 546 549 HeapUnlock = _HeapUnlock@4 @468 547 550 ; HeapUsage = _HeapUsage@?? ;NT … … 558 561 InterlockedIncrement = _InterlockedIncrement@4 @475 559 562 ; InvalidateNLSCache = _InvalidateNLSCache@?? @476 ;W95 560 ; InvalidateConsoleDIBits = _ OS2InvalidateConsoleDIBits@?? ;NT563 ; InvalidateConsoleDIBits = _InvalidateConsoleDIBits@?? ;NT 561 564 IsBadCodePtr = _IsBadCodePtr@4 @477 562 565 IsBadHugeReadPtr = _IsBadHugeReadPtr@8 @478 … … 621 624 MultiByteToWideChar = _MultiByteToWideChar@24 @534 622 625 ; NotifyNLSUserCache = _NotifyNLSUserCache@?? @535 ;W95 623 ; OpenConsoleW = _O S2OpenConsoleW@?? ;NT626 ; OpenConsoleW = _OpenConsoleW@?? ;NT 624 627 OpenEventA = _OpenEventA@12 @536 625 628 OpenEventW = _OpenEventW@12 @537 … … 638 641 OutputDebugStringA = _OutputDebugStringA@4 @548 639 642 OutputDebugStringW = _OutputDebugStringW@4 @549 640 PeekConsoleInputA = _ OS2PeekConsoleInputA@16 @550641 PeekConsoleInputW = _ OS2PeekConsoleInputW@16 @551643 PeekConsoleInputA = _PeekConsoleInputA@16 @550 644 PeekConsoleInputW = _PeekConsoleInputW@16 @551 642 645 PeekNamedPipe = _PeekNamedPipe@24 @552 643 646 PostQueuedCompletionStatus = _PostQueuedCompletionStatus@16 @553 … … 657 660 ; QueueUserAPC = _QueueUserAPC@?? @566 658 661 RaiseException = RaiseExceptionAsm @567 659 ReadConsoleA = _ OS2ReadConsoleA@20 @568660 ReadConsoleInputA = _ OS2ReadConsoleInputA@16 @569661 ; ReadConsoleInputExA = _ OS2ReadConsoleInputExA@?? ;NT662 ; ReadConsoleInputExW = _ OS2ReadConsoleInputExW@?? ;NT663 ReadConsoleInputW = _ OS2ReadConsoleInputW@16 @570664 ReadConsoleOutputA = _ OS2ReadConsoleOutputA@20 @571665 ReadConsoleOutputAttribute = _ OS2ReadConsoleOutputAttribute@20 @572666 ReadConsoleOutputCharacterA = _ OS2ReadConsoleOutputCharacterA@20 @573667 ReadConsoleOutputCharacterW = _ OS2ReadConsoleOutputCharacterW@20 @574668 ReadConsoleOutputW = _ OS2ReadConsoleOutputW@20 @575669 ReadConsoleW = _ OS2ReadConsoleW@20 @576662 ReadConsoleA = _ReadConsoleA@20 @568 663 ReadConsoleInputA = _ReadConsoleInputA@16 @569 664 ; ReadConsoleInputExA = _ReadConsoleInputExA@?? ;NT 665 ; ReadConsoleInputExW = _ReadConsoleInputExW@?? ;NT 666 ReadConsoleInputW = _ReadConsoleInputW@16 @570 667 ReadConsoleOutputA = _ReadConsoleOutputA@20 @571 668 ReadConsoleOutputAttribute = _ReadConsoleOutputAttribute@20 @572 669 ReadConsoleOutputCharacterA = _ReadConsoleOutputCharacterA@20 @573 670 ReadConsoleOutputCharacterW = _ReadConsoleOutputCharacterW@20 @574 671 ReadConsoleOutputW = _ReadConsoleOutputW@20 @575 672 ReadConsoleW = _ReadConsoleW@20 @576 670 673 ; ReadDirectoryChangesW = _ReadDirectoryChangesW@?? ;NT 671 674 ReadFile = _ReadFile@20 @577 … … 675 678 ; RegisterServiceProcess = _RegisterServiceProcess@?? @580 ;W95 676 679 ; ReinitializeCriticalSection = _ReinitializeCriticalSection@?? @581 ;W95 677 ; RegisterConsoleVDM = _ OS2RegisterConsoleVDM@?? ;NT680 ; RegisterConsoleVDM = _RegisterConsoleVDM@?? ;NT 678 681 ; RegisterWaitForInputIdle = _RegisterWaitForInputIdle@?? ;NT 679 682 ; RegisterWowBaseHandlers = _RegisterWowBaseHandlers@?? ;NT … … 709 712 ; SUnMapLS_IP_EBP_40 = _SUnMapLS_IP_EBP_40@?? @610 ;W95 710 713 ; SUnMapLS_IP_EBP_8 = _SUnMapLS_IP_EBP_8@?? @611 ;W95 711 ScrollConsoleScreenBufferA = _ OS2ScrollConsoleScreenBufferA@20 @612712 ScrollConsoleScreenBufferW = _ OS2ScrollConsoleScreenBufferW@20 @613714 ScrollConsoleScreenBufferA = _ScrollConsoleScreenBufferA@20 @612 715 ScrollConsoleScreenBufferW = _ScrollConsoleScreenBufferW@20 @613 713 716 SearchPathA = _SearchPathA@24 @614 714 717 SearchPathW = _SearchPathW@24 @615 … … 720 723 SetComputerNameA = _SetComputerNameA@4 @621 721 724 SetComputerNameW = _SetComputerNameW@4 @622 722 SetConsoleActiveScreenBuffer = _ OS2SetConsoleActiveScreenBuffer@4 @623723 SetConsoleCP = _ OS2SetConsoleCP@4 @624724 ; SetConsoleCommandHistoryMode = _ OS2SetConsoleCommandHistoryMode@?? ;NT725 SetConsoleCtrlHandler = _ OS2SetConsoleCtrlHandler@8 @625726 ; SetConsoleCursor = _ OS2SetConsoleCursor@?? ;NT727 SetConsoleCursorInfo = _ OS2SetConsoleCursorInfo@8 @626728 SetConsoleCursorPosition = _ OS2SetConsoleCursorPosition@8 @627729 ; SetConsoleDisplayMode = _ OS2SetConsoleDisplayMode@?? ;NT730 ; SetConsoleFont = _ OS2SetConsoleFont@?? ;NT731 ; SetConsoleHardwareState = _ OS2SetConsoleHardwareState@?? ;NT732 ; SetConsoleIcon = _ OS2SetConsoleIcon@?? ;NT733 ; SetConsoleInputExeNameA = _ OS2SetConsoleInputExeNameA@?? ;NT734 ; SetConsoleInputExeNameW = _ OS2SetConsoleInputExeNameW@?? ;NT735 ; SetConsoleKeyShortcuts = _ OS2SetConsoleKeyShortcuts@?? ;NT736 ; SetConsoleMaximumWindowSize = _ OS2SetConsoleMaximumWindowSize@?? ;NT737 ; SetConsoleMenuClose = _ OS2SetConsoleMenuClose@?? ;NT738 SetConsoleMode = _ OS2SetConsoleMode@8 @628739 ; SetConsoleNumberOfCommandsA = _ OS2SetConsoleNumberOfCommandsA@?? ;NT740 ; SetConsoleNumberOfCommandsW = _ OS2SetConsoleNumberOfCommandsW@?? ;NT741 SetConsoleOutputCP = _ OS2SetConsoleOutputCP@4 @629742 ; SetConsolePalette = _ OS2SetConsolePalette@?? ;NT743 SetConsoleScreenBufferSize = _ OS2SetConsoleScreenBufferSize@8 @630744 SetConsoleTextAttribute = _ OS2SetConsoleTextAttribute@8 @631745 SetConsoleTitleA = _ OS2SetConsoleTitleA@4 @632746 SetConsoleTitleW = _ OS2SetConsoleTitleW@4 @633747 SetConsoleWindowInfo = _ OS2SetConsoleWindowInfo@12 @634725 SetConsoleActiveScreenBuffer = _SetConsoleActiveScreenBuffer@4 @623 726 SetConsoleCP = _SetConsoleCP@4 @624 727 ; SetConsoleCommandHistoryMode = _SetConsoleCommandHistoryMode@?? ;NT 728 SetConsoleCtrlHandler = _SetConsoleCtrlHandler@8 @625 729 ; SetConsoleCursor = _SetConsoleCursor@?? ;NT 730 SetConsoleCursorInfo = _SetConsoleCursorInfo@8 @626 731 SetConsoleCursorPosition = _SetConsoleCursorPosition@8 @627 732 ; SetConsoleDisplayMode = _SetConsoleDisplayMode@?? ;NT 733 ; SetConsoleFont = _SetConsoleFont@?? ;NT 734 ; SetConsoleHardwareState = _SetConsoleHardwareState@?? ;NT 735 ; SetConsoleIcon = _SetConsoleIcon@?? ;NT 736 ; SetConsoleInputExeNameA = _SetConsoleInputExeNameA@?? ;NT 737 ; SetConsoleInputExeNameW = _SetConsoleInputExeNameW@?? ;NT 738 ; SetConsoleKeyShortcuts = _SetConsoleKeyShortcuts@?? ;NT 739 ; SetConsoleMaximumWindowSize = _SetConsoleMaximumWindowSize@?? ;NT 740 ; SetConsoleMenuClose = _SetConsoleMenuClose@?? ;NT 741 SetConsoleMode = _SetConsoleMode@8 @628 742 ; SetConsoleNumberOfCommandsA = _SetConsoleNumberOfCommandsA@?? ;NT 743 ; SetConsoleNumberOfCommandsW = _SetConsoleNumberOfCommandsW@?? ;NT 744 SetConsoleOutputCP = _SetConsoleOutputCP@4 @629 745 ; SetConsolePalette = _SetConsolePalette@?? ;NT 746 SetConsoleScreenBufferSize = _SetConsoleScreenBufferSize@8 @630 747 SetConsoleTextAttribute = _SetConsoleTextAttribute@8 @631 748 SetConsoleTitleA = _SetConsoleTitleA@4 @632 749 SetConsoleTitleW = _SetConsoleTitleW@4 @633 750 SetConsoleWindowInfo = _SetConsoleWindowInfo@12 @634 748 751 ; SetCriticalSectionSpinCount = _SetCriticalSectionSpinCount@?? ;NT 749 752 SetCurrentDirectoryA = _SetCurrentDirectoryA@4 @635 … … 766 769 SetHandleCount = _SetHandleCount@4 @652 767 770 SetHandleInformation = _SetHandleInformation@12 @653 768 ; SetLastConsoleEventActive = _ OS2SetLastConsoleEventActive@?? ;NT771 ; SetLastConsoleEventActive = _SetLastConsoleEventActive@?? ;NT 769 772 SetLastError = _SetLastError@4 @654 770 773 SetLocalTime = _SetLocalTime@4 @655 … … 797 800 ; SetWaitableTimer = _SetWaitableTimer@?? ;NT 798 801 SetupComm = _SetupComm@12 @677 799 ; ShowConsoleCursor = _ OS2ShowConsoleCursor@?? ;NT802 ; ShowConsoleCursor = _ShowConsoleCursor@?? ;NT 800 803 ; SignalObjectAndWait = _SignalObjectAndWait@?? ;NT 801 804 SizeofResource = _SizeofResource@8 @678 … … 834 837 UpdateResourceA = _UpdateResourceA@24 @707 835 838 UpdateResourceW = _UpdateResourceW@24 @708 836 ; VDMConsoleOperation = _ OS2VDMConsoleOperation@?? ;NT837 ; VDMOperationStarted = _ OS2VDMOperationStarted@?? ;NT839 ; VDMConsoleOperation = _VDMConsoleOperation@?? ;NT 840 ; VDMOperationStarted = _VDMOperationStarted@?? ;NT 838 841 VerLanguageNameA = _VerLanguageNameA@12 @709 839 842 VerLanguageNameW = _VerLanguageNameW@12 @710 840 ; VerifyConsoleToHandle = _ OS2VerifyConsoleToHandle@?? ;NT843 ; VerifyConsoleToHandle = _VerifyConsoleToHandle@?? ;NT 841 844 VirtualAlloc = _VirtualAlloc@16 @711 842 845 ; VirtualAllocEx = _VirtualAllocEx@?? ;NT … … 860 863 WideCharToMultiByte = _WideCharToMultiByte@32 @727 861 864 WinExec = _WinExec@8 @728 862 WriteConsoleA = _ OS2WriteConsoleA@20 @729863 WriteConsoleInputA = _ OS2WriteConsoleInputA@16 @730864 ; WriteConsoleInputVDMA = _ OS2WriteConsoleInputVDMA@?? ;NT865 ; WriteConsoleInputVDMW = _ OS2WriteConsoleInputVDMW@?? ;NT866 WriteConsoleInputW = _ OS2WriteConsoleInputW@16 @731867 WriteConsoleOutputA = _ OS2WriteConsoleOutputA@20 @732868 WriteConsoleOutputAttribute = _ OS2WriteConsoleOutputAttribute@20 @733869 WriteConsoleOutputCharacterA = _ OS2WriteConsoleOutputCharacterA@20 @734870 WriteConsoleOutputCharacterW = _ OS2WriteConsoleOutputCharacterW@20 @735871 WriteConsoleOutputW = _ OS2WriteConsoleOutputW@20 @736872 WriteConsoleW = _ OS2WriteConsoleW@20 @737865 WriteConsoleA = _WriteConsoleA@20 @729 866 WriteConsoleInputA = _WriteConsoleInputA@16 @730 867 ; WriteConsoleInputVDMA = _WriteConsoleInputVDMA@?? ;NT 868 ; WriteConsoleInputVDMW = _WriteConsoleInputVDMW@?? ;NT 869 WriteConsoleInputW = _WriteConsoleInputW@16 @731 870 WriteConsoleOutputA = _WriteConsoleOutputA@20 @732 871 WriteConsoleOutputAttribute = _WriteConsoleOutputAttribute@20 @733 872 WriteConsoleOutputCharacterA = _WriteConsoleOutputCharacterA@20 @734 873 WriteConsoleOutputCharacterW = _WriteConsoleOutputCharacterW@20 @735 874 WriteConsoleOutputW = _WriteConsoleOutputW@20 @736 875 WriteConsoleW = _WriteConsoleW@20 @737 873 876 WriteFile = _WriteFile@20 @738 874 877 WriteFileEx = _WriteFileEx@20 @739 … … 954 957 955 958 Win32QueryModuleName = Win32QueryModuleName @1225 959 960 GetFS = GetFS @1226 961 SetFS = SetFS @1227 -
trunk/src/kernel32/async.cpp
r4 r46 1 /* $Id: async.cpp,v 1.1 1999-05-24 20:19:43 ktk Exp $ */2 3 1 /* 4 2 * Win32 Asynchronous I/O Subsystem for OS/2 -
trunk/src/kernel32/atom.cpp
r17 r46 1 /* $Id: atom.cpp,v 1.2 1999-05-31 22:08:10 phaller Exp $ */2 3 1 /* 4 2 * Win32 ATOM api functions … … 12 10 #include <os2win.h> 13 11 #include "unicode.h" 14 #include "misc.h"15 16 12 17 13 //****************************************************************************** -
trunk/src/kernel32/cio.h
r21 r46 1 /* $Id: cio.h,v 1.2 1999-05-31 23:22:40 phaller Exp $ */2 3 1 /* Copyright (C) 1995 by Holger Veit (Holger.Veit@gmd.de) */ 4 2 /* Use at your own risk! No Warranty! The author is not responsible for … … 10 8 #define _CIO_H_ 11 9 10 #include <odin.h> 11 12 12 #ifdef __cplusplus 13 13 extern "C" { 14 14 #endif 15 15 16 #include <odin.h> 17 #include <builtin.h> 16 int CDECL io_init(void); 17 int CDECL io_exit(void); 18 18 19 extern int CDECL io_init(void);20 extern int CDECL io_exit(void);19 int CDECL io_init1(void); 20 int CDECL io_exit1(void); 21 21 22 extern int CDECL io_init1(void); 23 extern int CDECL io_exit1(void); 24 25 extern char CDECL c_inb(short); 26 extern short CDECL c_inw(short); 27 extern long CDECL c_inl(short); 28 extern void CDECL c_outb(short,char); 29 extern void CDECL c_outw(short,short); 30 extern void CDECL c_outl(short,long); 31 extern void CDECL c_readmsr(long, long *); 22 char CDECL c_inb(short); 23 short CDECL c_inw(short); 24 long CDECL c_inl(short); 25 void CDECL c_outb(short,char); 26 void CDECL c_outw(short,short); 27 void CDECL c_outl(short,long); 28 void CDECL c_readmsr(long, long *); 32 29 33 30 #ifdef __cplusplus -
trunk/src/kernel32/console.cpp
r17 r46 4 4 * 1998/02/10 Patrick Haller (haller@zebra.fh-weingarten.de) 5 5 * 6 * @(#) console.cpp 1.0.0 1998/02/10 PH Start from scratch 6 * @(#) console.cpp 1.0.0 1998/02/10 PH Start from scratch 7 * 8 * Project Odin Software License can be found in LICENSE.TXT 9 * 7 10 */ 8 11 … … 20 23 * Remark * 21 24 ***************************************************************************** 22 25 23 26 - DWORD HandlerRoutine (DWORD dwCtrlType) 24 27 basically an exception handler routine. handles a few signals / excpts. 25 28 should be somewhere near the exception handling code ... :) 26 29 27 30 Hmm, however as PM applications don't really get a ctrl-c signal, 28 31 I'll have to do this on my own ... 29 32 30 33 - supply unicode<->ascii conversions for all the _A and _W function pairs. 31 34 32 35 - problem: we can't prevent thread1 from blocking the message queue ? 33 36 what will happen if a WinTerminate() is issued there ? 34 37 will the message queue be closed and provide smooth tasking ? 35 38 how will open32 react on this ? 36 39 37 40 - ECHO_LINE_INPUT / ReadFile blocks till CR 38 41 39 42 - scrollbars 40 43 * do some flowchart to exactly determine WHEN to use WHICH setting 41 44 and perform WHAT action 42 45 43 46 - clipboard support 44 47 */ 45 48 46 49 47 50 /***************************************************************************** … … 62 65 #include <stdlib.h> 63 66 #include <string.h> 64 #include <odin.h>65 66 67 #include "win32type.h" 67 #include "unicode.h"68 68 #include "misc.h" 69 #include "HandleManager.h"70 69 #include "console.h" 71 70 #include "console2.h" 72 71 #include "conprop.h" 72 #include "unicode.h" 73 #include "HandleManager.h" 73 74 74 75 … … 77 78 ***********************************/ 78 79 79 extern "C" 80 { 81 void _System SetLastError(DWORD dwError); 82 DWORD _System GetLastError(void); 83 LPSTR _System GetCommandLineA(void); 84 void _System ReplaceExceptionHandler(void); 85 void _System ExitProcess(UINT exitcode); 86 HANDLE _System GetStdHandle(DWORD dwDevice); 87 DWORD _System GetFileType(HANDLE hFile); 80 #include <os2sel.h> 81 82 extern "C" 83 { 84 void _System _O32_SetLastError(DWORD dwError); 85 DWORD _System _O32_GetLastError(void); 86 LPSTR _System _O32_GetCommandLine(void); 87 void _System _O32_ReplaceExceptionHandler(void); 88 void _System _O32_ExitProcess(UINT exitcode); 89 HANDLE _System _O32_GetStdHandle(DWORD dwDevice); 90 DWORD _System _O32_GetFileType(HANDLE hFile); 91 92 inline void SetLastError(DWORD a) 93 { 94 USHORT sel = GetFS(); 95 96 _O32_SetLastError(a); 97 SetFS(sel); 98 } 99 100 inline DWORD GetLastError() 101 { 102 DWORD yyrc; 103 USHORT sel = GetFS(); 104 105 yyrc = _O32_GetLastError(); 106 SetFS(sel); 107 108 return yyrc; 109 } 110 111 inline LPSTR GetCommandLine() 112 { 113 LPSTR yyrc; 114 USHORT sel = GetFS(); 115 116 yyrc = _O32_GetCommandLine(); 117 SetFS(sel); 118 119 return yyrc; 120 } 121 122 inline void ReplaceExceptionHandler() 123 { 124 USHORT sel = GetFS(); 125 126 _O32_ReplaceExceptionHandler(); 127 SetFS(sel); 128 } 129 130 inline void ExitProcess(UINT a) 131 { 132 USHORT sel = GetFS(); 133 134 _O32_ExitProcess(a); 135 SetFS(sel); 136 } 137 138 inline HANDLE GetStdHandle(DWORD a) 139 { 140 HANDLE yyrc; 141 USHORT sel = GetFS(); 142 143 yyrc = _O32_GetStdHandle(a); 144 SetFS(sel); 145 146 return yyrc; 147 } 148 149 inline DWORD GetFileType(HANDLE a) 150 { 151 DWORD yyrc; 152 USHORT sel = GetFS(); 153 154 yyrc = _O32_GetFileType(a); 155 SetFS(sel); 156 157 return yyrc; 158 } 159 88 160 } 89 161 … … 180 252 *****************************************************************************/ 181 253 182 254 183 255 static APIRET ConsoleTerminate(void);/* termination of the console subsystem */ 184 256 … … 243 315 HEV hevConsole; /* console event semaphore */ 244 316 APIRET rcConsole; /* initialization status of the console */ 245 HAB 246 HMQ 317 HAB hab; /* anchor block handle */ 318 HMQ hmq; /* message queue handle for the console window */ 247 319 QMSG qmsg; /* message for the console window */ 248 320 ULONG flFrameFlags; /* frame window creation flags */ … … 250 322 HWND hwndFrame; /* frame window handle */ 251 323 HWND hwndClient; /* client window handle */ 252 324 253 325 HWND hwndHorzScroll; /* handle of horizontal scroll bar */ 254 326 HWND hwndVertScroll; /* handle of vertical scroll bar */ 255 327 BOOL fHasVertScroll; /* indicates if scrollbars are visible */ 256 328 BOOL fHasHorzScroll; 257 329 258 330 HDC hdcConsole; /* console device context */ 259 331 PFNWP pfnwpFrameOriginal; /* original frame window procedure */ 260 332 261 333 HWND hwndMenuConsole; /* console popup menu */ 262 334 HMODULE hmodResource; /* resources are stored in KERNEL32.DLL */ 263 335 HPOINTER hPtrConsole; /* console icon */ 264 336 265 337 HANDLE hConsoleBuffer; /* handle of the active console buffer */ 266 338 HANDLE hConsoleBufferDefault; /* handle of the default console buffer */ 267 339 268 340 HVPS hvpsConsole; /* console AVIO presentation space */ 269 341 270 342 COORD coordMaxWindowPels; /* maximum window size in pixels */ 271 343 COORD coordWindowSize; /* current console window size */ 272 344 COORD coordWindowPos; /* scroller's positions */ 273 345 274 346 SHORT sCellCX; /* height and width of a avio cell with the current font */ 275 347 SHORT sCellCY; 276 348 277 349 BOOL fUpdateRequired; /* set to TRUE if next WM_TIMER shall update the */ 278 350 /* AVIO presentation space from the consolebuffer */ … … 281 353 ULONG ulTimerFrequency; /* cursor + blitter timer frequency */ 282 354 ULONG ulTimerCursor; /* cursor loop counter for divisor */ 283 355 284 356 CONSOLEOPTIONS Options; /* the console's options / properties */ 285 357 … … 307 379 308 380 /***************************************************************************** 309 * Name : 310 * Purpose : 311 * Parameters: 312 * Variables : 313 * Result : 314 * Remark : 315 * Status : 381 * Name : 382 * Purpose : 383 * Parameters: 384 * Variables : 385 * Result : 386 * Remark : 387 * Status : 316 388 * 317 389 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 318 390 *****************************************************************************/ 319 391 320 APIRET EXPORT ConsoleInit(void)/* creation of the console subsystem */392 APIRET ConsoleInit(void) /* creation of the console subsystem */ 321 393 { 322 394 APIRET rc; /* API return code */ 323 395 ULONG ulPostCount; /* semaphore post counter */ 324 325 326 396 397 398 327 399 if (ConsoleGlobals.hevConsole != NULLHANDLE) /* we're already initialized ?*/ 328 400 return (NO_ERROR); /* then abort immediately */ 329 401 330 402 /* create console synchronization semaphore */ 331 403 rc = DosCreateEventSem (NULL, … … 335 407 if (rc != NO_ERROR) /* other error ? */ 336 408 return (rc); /* raise error condition */ 337 338 409 410 339 411 /* create console input queue semaphore */ 340 412 rc = DosCreateEventSem (NULL, … … 347 419 return (rc); /* raise error condition */ 348 420 } 349 421 350 422 351 423 /*************************************************************************** 352 424 * Create pseudo-devices and initialize ConsoleGlobals * 353 425 ***************************************************************************/ 354 426 355 427 rc = ConsoleDevicesRegister(); /* ensure devices are there */ 356 428 if (rc != NO_ERROR) /* check for errors */ … … 360 432 return (rc); /* raise error condition */ 361 433 } 362 363 434 435 364 436 /*************************************************************************** 365 437 * Presentation Manager Initialization phase * 366 438 ***************************************************************************/ 367 439 368 440 /* OK, we're about to initialize the console subsystem for this process. */ 369 441 /* start message thread for console object window */ … … 373 445 NULL); 374 446 /* has the thread been created properly ? */ 375 if (ConsoleGlobals.tidConsole == -1) 447 if (ConsoleGlobals.tidConsole == -1) 376 448 { 377 449 DosCloseEventSem(ConsoleInput.hevInputQueue); /* close other semaphore */ … … 385 457 ConsoleGlobals.Options.ulConsoleThreadPriorityDelta, 386 458 ConsoleGlobals.tidConsole); 387 388 459 460 389 461 /* wait for the child thread to do it's initialization */ 390 462 /* timeout isn't really useful */ … … 398 470 return (rc); /* raise error condition */ 399 471 } 400 472 401 473 DosResetEventSem(ConsoleGlobals.hevConsole, /* reset event semaphore */ 402 474 &ulPostCount); 403 475 404 476 rc = ConsoleGlobals.rcConsole; /* pass thru console thread's return code */ 405 477 406 478 return (rc); /* OK */ 407 479 } … … 412 484 * Purpose : creates and registers console devices if the standard handles 413 485 * are not redirected to a file 414 * Parameters: 415 * Variables : 416 * Result : 417 * Remark : 418 * Status : 486 * Parameters: 487 * Variables : 488 * Result : 489 * Remark : 490 * Status : 419 491 * 420 492 * Author : Patrick Haller [Tue, 1998/03/17 01:55] 421 493 *****************************************************************************/ 422 494 423 APIRET EXPORTConsoleDevicesRegister(void)495 APIRET ConsoleDevicesRegister(void) 424 496 { 425 497 DWORD dwType; /* device handle type */ … … 427 499 HANDLE hStandardOut; /* stdout handle to CONOUT$ */ 428 500 HANDLE hStandardError; /* stderr handle to CONOUT$ */ 429 501 430 502 HMDeviceConsoleInClass *pHMDeviceConsoleIn; 431 503 HMDeviceConsoleOutClass *pHMDeviceConsoleOut; 432 504 HMDeviceConsoleBufferClass *pHMDeviceConsoleBuffer; 433 505 434 506 DWORD rc; 435 507 436 508 static fDevicesInitialized; /* have we been initialized already ? */ 437 509 438 510 if (fDevicesInitialized == TRUE) /* OK, we're already done */ 439 511 return (NO_ERROR); 440 512 else 441 513 fDevicesInitialized = TRUE; 442 514 443 515 dprintf(("KERNEL32:ConsoleDevicesRegister\n")); 444 445 516 517 446 518 /************************************* 447 519 * Initialize Console Window Options * … … 450 522 ConsoleGlobals.Options.fTerminateAutomatically = FALSE; 451 523 ConsoleGlobals.Options.fSpeakerEnabled = TRUE; 452 524 453 525 ConsoleGlobals.Options.fSetWindowPosition = FALSE; 454 526 ConsoleGlobals.Options.coordDefaultPosition.X = 0; … … 460 532 ConsoleGlobals.coordWindowPos.X = 0; 461 533 ConsoleGlobals.coordWindowPos.Y = 0; 462 534 463 535 ConsoleGlobals.Options.fQuickInsert = FALSE; 464 536 ConsoleGlobals.Options.fInsertMode = FALSE; 465 537 ConsoleGlobals.Options.fMouseActions = FALSE; 466 ConsoleGlobals.Options.fToolbarActive = FALSE; 538 ConsoleGlobals.Options.fToolbarActive = FALSE; 467 539 468 540 ConsoleGlobals.Options.ucDefaultAttribute = 0x0007; /* 07 = grey on black */ 469 541 470 542 ConsoleGlobals.Options.ulTabSize = 8; /* tabulator size */ 471 543 ConsoleGlobals.Options.ulUpdateLimit = 8; /* scroll max. n lines */ 472 544 473 545 /* priority settings for message thread */ 474 546 ConsoleGlobals.Options.ulConsoleThreadPriorityClass = PRTYC_REGULAR; 475 547 ConsoleGlobals.Options.ulConsoleThreadPriorityDelta = +10; 476 548 477 549 ConsoleGlobals.Options.ucCursorDivisor = 10; /* timer divisor for blinking */ 478 550 479 551 ConsoleGlobals.ulTimerFrequency = 10; /* cursor + blitter timer frequency */ 480 552 481 553 482 554 ConsoleGlobals.flFrameFlags = FCF_SIZEBORDER | /* frame creation flags */ 483 555 FCF_TITLEBAR | … … 489 561 FCF_VERTSCROLL | 490 562 FCF_MINMAX; 491 563 492 564 /* generate copy of title */ 493 ConsoleGlobals.pszWindowTitle = strdup(GetCommandLine A());494 565 ConsoleGlobals.pszWindowTitle = strdup(GetCommandLine()); 566 495 567 /* obtain module handle to our resources */ 496 568 rc = DosQueryModuleHandle("KERNEL32", … … 499 571 WriteLog("KERNEL32/CONSOLE: Can't get handle to KERNEL32 (%u).\n", 500 572 rc); 501 573 502 574 /* standard console input modes */ 503 575 ConsoleInput.dwConsoleMode = ENABLE_LINE_INPUT | 504 576 ENABLE_PROCESSED_INPUT; 505 577 /* @@@PH ENABLE_ECHO_INPUT || ENABLE_MOUSE_INPUT; */ 506 578 507 579 ConsoleGlobals.hConsoleBufferDefault = INVALID_HANDLE_VALUE; 508 580 ConsoleGlobals.hConsoleBuffer = INVALID_HANDLE_VALUE; 509 510 581 582 511 583 /*************************************************************************** 512 584 * Standard handles Initialization phase * 513 585 ***************************************************************************/ 514 586 515 587 /* create devices and register devices with handlemanager */ 516 588 517 589 pHMDeviceConsoleIn = new HMDeviceConsoleInClass("CONIN$"); 518 590 rc = HMDeviceRegister ("CONIN$", … … 521 593 dprintf(("KERNEL32:ConsoleDevicesRegister: registering CONIN$ failed with %u.\n", 522 594 rc)); 523 524 595 596 525 597 pHMDeviceConsoleOut = new HMDeviceConsoleOutClass("CONOUT$"); 526 598 rc = HMDeviceRegister ("CONOUT$", … … 528 600 if (rc != NO_ERROR) /* check for errors */ 529 601 dprintf(("KERNEL32:ConsoleDevicesRegister: registering CONOUT$ failed with %u.\n", 530 rc)); 531 532 602 rc)); 603 604 533 605 pHMDeviceConsoleBuffer = new HMDeviceConsoleBufferClass("CONBUFFER$"); 534 606 rc = HMDeviceRegister ("CONBUFFER$", … … 536 608 if (rc != NO_ERROR) /* check for errors */ 537 609 dprintf(("KERNEL32:ConsoleDevicesRegister: registering CONBUFFER$ failed with %u.\n", 538 rc)); 539 540 610 rc)); 611 612 541 613 /*********************************************************************** 542 614 * initialize stdin handle * … … 552 624 CONSOLE_TEXTMODE_BUFFER, 553 625 0); 554 626 555 627 HMSetStdHandle(STD_INPUT_HANDLE, 556 628 hStandardIn); 557 629 558 630 /*********************************************************************** 559 631 * initialize stdout handle * … … 568 640 0, 569 641 CONSOLE_TEXTMODE_BUFFER, 570 0); 571 642 0); 643 572 644 HMSetStdHandle(STD_OUTPUT_HANDLE, 573 645 hStandardOut); 574 575 646 647 576 648 /*********************************************************************** 577 649 * initialize stderr handle * … … 587 659 CONSOLE_TEXTMODE_BUFFER, 588 660 0); 589 661 590 662 HMSetStdHandle(STD_ERROR_HANDLE, 591 663 hStandardError); … … 605 677 * leak if an application keeps opening and closing the console 606 678 * frequently. 607 * Status : 679 * Status : 608 680 * 609 681 * Author : Patrick Haller [Tue, 1998/02/10 01:55] … … 613 685 { 614 686 APIRET rc; 615 687 616 688 WinPostMsg (ConsoleGlobals.hwndFrame, /* force thread to terminate */ 617 689 WM_CLOSE, … … 621 693 rc = DosWaitThread(&ConsoleGlobals.tidConsole,/* wait until thd terminates */ 622 694 DCWW_WAIT); 623 695 624 696 /* close the consolebuffer handle */ 625 HMCloseHandle(ConsoleGlobals.hConsoleBufferDefault); 697 HMCloseHandle(ConsoleGlobals.hConsoleBufferDefault); 626 698 free(ConsoleGlobals.pszWindowTitle); /* free previously allocated memory */ 627 699 … … 635 707 * Parameters: VOID 636 708 * Variables : 637 * Result : 638 * Remark : 639 * Status : 709 * Result : 710 * Remark : 711 * Status : 640 712 * 641 713 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 642 714 *****************************************************************************/ 643 715 644 void EXPORTConsoleWaitClose(void)716 void ConsoleWaitClose(void) 645 717 { 646 718 CHAR szBuffer[128]; /* buffer for the title */ 647 719 BOOL fResult; /* result from subsequent calls to Win32 APIs */ 648 720 649 721 /* check if there is a console window at all */ 650 722 if (ConsoleIsActive() == FALSE) 651 723 return; /* nope */ 652 724 653 725 strcpy (szBuffer, /* indicate console process has terminated */ 654 726 "Completed: "); 655 656 fResult = OS2GetConsoleTitleA(szBuffer + 11,/* 11 is length of Completed:_ */727 728 fResult = GetConsoleTitleA(szBuffer + 11,/* 11 is length of Completed:_ */ 657 729 sizeof(szBuffer) - 11); 658 730 659 731 660 732 /* Set new title: Win32 Console - Terminated */ 661 fResult = OS2SetConsoleTitleA(szBuffer);662 733 fResult = SetConsoleTitleA(szBuffer); 734 663 735 /* terminate console immediately ? */ 664 736 if (ConsoleGlobals.Options.fTerminateAutomatically == FALSE) … … 673 745 * Parameters: VOID 674 746 * Variables : 675 * Result : 676 * Remark : 677 * Status : 747 * Result : 748 * Remark : 749 * Status : 678 750 * 679 751 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 680 752 *****************************************************************************/ 681 753 682 BOOL EXPORTConsoleIsActive(void)754 BOOL ConsoleIsActive(void) 683 755 { 684 756 return (NULLHANDLE != ConsoleGlobals.hevConsole); … … 693 765 * Result : is placed in Globals.rcConsole 694 766 * Remark : the main thread has to wait for this thread 695 * Status : 767 * Status : 696 768 * 697 769 * Author : Patrick Haller [Tue, 1998/02/10 02:49] … … 701 773 { 702 774 APIRET rc; /* API return code */ 703 704 775 776 705 777 ConsoleGlobals.rcConsole = NO_ERROR; /* initialization */ 706 778 707 779 ConsoleGlobals.hab = WinInitialize(0); /* enable thread for PM */ 708 780 if (ConsoleGlobals.hab == NULLHANDLE) /* if anchor block allocation failed */ 709 ConsoleGlobals.rcConsole = ERROR_NOT_ENOUGH_MEMORY; 781 ConsoleGlobals.rcConsole = ERROR_NOT_ENOUGH_MEMORY; 710 782 else 711 783 { 712 784 /* create message queue */ 713 ConsoleGlobals.hmq = WinCreateMsgQueue(ConsoleGlobals.hab, 785 ConsoleGlobals.hmq = WinCreateMsgQueue(ConsoleGlobals.hab, 714 786 0); 715 787 if (ConsoleGlobals.hmq == NULLHANDLE) /* if msg queue allocation failed */ 716 788 { 717 789 WinTerminate(ConsoleGlobals.hab); /* stop thread from accessing PM */ 718 ConsoleGlobals.rcConsole = ERROR_NOT_ENOUGH_MEMORY; 790 ConsoleGlobals.rcConsole = ERROR_NOT_ENOUGH_MEMORY; 719 791 } 720 792 else … … 724 796 ConsoleWindowProc, 725 797 CS_SIZEREDRAW, 726 0) 798 0) 727 799 == FALSE) 728 800 { … … 751 823 } /* WinCreateMsgQueue */ 752 824 } /* WinInitialize */ 753 754 825 826 755 827 DosPostEventSem(ConsoleGlobals.hevConsole); /* signal the main thread */ 756 757 828 829 758 830 if (ConsoleGlobals.rcConsole != NO_ERROR) /* if we ran into a problem */ 759 831 { … … 763 835 return; /* abort the message queue thread immediately */ 764 836 } 765 766 837 838 767 839 while( WinGetMsg(ConsoleGlobals.hab, /* message loop */ 768 840 &ConsoleGlobals.qmsg, 769 841 NULLHANDLE, 770 842 0, 771 0) ) 843 0) ) 772 844 WinDispatchMsg(ConsoleGlobals.hab, /* dispatch the message */ 773 845 &ConsoleGlobals.qmsg); 774 846 775 847 /* do the cleanup, destroy window, queue */ 776 848 /* and stop thread from using PM */ 777 WinDestroyWindow (ConsoleGlobals.hwndFrame); 778 WinDestroyMsgQueue(ConsoleGlobals.hmq); 849 WinDestroyWindow (ConsoleGlobals.hwndFrame); 850 WinDestroyMsgQueue(ConsoleGlobals.hmq); 779 851 WinTerminate (ConsoleGlobals.hab); 780 852 781 853 /* destruction of semaphore indicates console is shutdown */ 782 854 DosCloseEventSem(ConsoleInput.hevInputQueue); /* close other semaphore */ 783 DosCloseEventSem(ConsoleGlobals.hevConsole); 855 DosCloseEventSem(ConsoleGlobals.hevConsole); 784 856 ConsoleGlobals.hevConsole = NULLHANDLE; /* for ConsoleIsActive() */ 785 857 ConsoleInput.hevInputQueue = NULLHANDLE; 786 858 787 859 /* @@@PH we've got to exit the process here ! */ 788 860 ExitProcess(1); … … 799 871 * Variables : 800 872 * Result : MRESULT for PM 801 * Remark : 802 * Status : 873 * Remark : 874 * Status : 803 875 * 804 876 * Author : Patrick Haller [Tue, 1998/02/10 03:24] … … 813 885 static HPS hps; 814 886 815 switch(msg) 887 switch(msg) 816 888 { 817 889 /************************************************************************* 818 890 * WM_CREATE window creation * 819 891 *************************************************************************/ 820 892 821 893 case WM_CREATE: 822 894 WinPostMsg(hwnd, /* deferred initialization */ … … 825 897 (MPARAM)NULL); 826 898 break; 827 828 899 900 829 901 case UM_CONSOLE_CREATE: 830 902 { … … 835 907 hwndFrame = ConsoleGlobals.hwndFrame; 836 908 ConsoleGlobals.pfnwpFrameOriginal = WinSubclassWindow(hwndFrame, 837 ConsoleFrameWindowProc); 909 ConsoleFrameWindowProc); 838 910 839 911 ConsoleGlobals.hwndMenuConsole … … 850 922 (MPARAM)ConsoleGlobals.hPtrConsole, 851 923 0L ); 852 924 853 925 /* determine handles of the horizontal / vertical scroll bars */ 854 926 ConsoleGlobals.hwndVertScroll = WinWindowFromID(ConsoleGlobals.hwndFrame, 855 927 FID_VERTSCROLL); 856 928 857 929 ConsoleGlobals.hwndHorzScroll = WinWindowFromID(ConsoleGlobals.hwndFrame, 858 930 FID_HORZSCROLL); 859 931 860 932 /* the initial state of the controls is DETACHED */ 861 933 WinSetParent(ConsoleGlobals.hwndHorzScroll, /* detach control */ 862 934 HWND_OBJECT, 863 935 FALSE); 864 936 865 937 WinSetParent(ConsoleGlobals.hwndVertScroll, /* detach control */ 866 938 HWND_OBJECT, 867 FALSE); 868 869 939 FALSE); 940 941 870 942 /* create AVIO presentation space */ 871 943 rc = VioCreatePS(&ConsoleGlobals.hvpsConsole, … … 878 950 WriteLog("KERNEL32/CONSOLE:VioCreatePS=%u\n", 879 951 rc); 880 952 881 953 /* PH 1998/02/12 this seems to be an OS/2 PM bug: 882 954 when doing a WinOpenWindowDC here, PM hangs. Seems it never gets back into 883 955 the message loop. To investigate and report to IBM 884 956 */ 885 957 886 958 /* get a device context for the client window */ 887 959 ConsoleGlobals.hdcConsole = WinOpenWindowDC(hwnd); … … 891 963 if (rc != NO_ERROR) /* check errors */ 892 964 WriteLog("KERNEL32/CONSOLE:VioAssociate=%u\n", 893 rc); 965 rc); 894 966 895 967 ConsoleFontQuery(); /* query current cell sizes */ 896 968 897 969 /* adjust window size and position */ 898 970 HMDeviceRequest(ConsoleGlobals.hConsoleBuffer, … … 901 973 0, 902 974 0, 903 0); 904 975 0); 976 905 977 /* @@@PH if console is maximized - now switched on per default ! */ 906 WinSetWindowPos (ConsoleGlobals.hwndFrame, 978 WinSetWindowPos (ConsoleGlobals.hwndFrame, 907 979 HWND_DESKTOP, 908 980 0, … … 916 988 2 * WinQuerySysValue(HWND_DESKTOP, SV_CYSIZEBORDER), 917 989 SWP_SIZE); 918 990 919 991 /* do we have to set the window position also ? */ 920 992 if (ConsoleGlobals.Options.fSetWindowPosition == TRUE) 921 WinSetWindowPos (ConsoleGlobals.hwndFrame, 993 WinSetWindowPos (ConsoleGlobals.hwndFrame, 922 994 HWND_DESKTOP, 923 995 ConsoleGlobals.Options.coordDefaultPosition.X, … … 926 998 0, 927 999 SWP_MOVE); 928 1000 929 1001 /* start timer service for blitting and cursor blinking */ 930 1002 ConsoleGlobals.idTimer = WinStartTimer (ConsoleGlobals.hab, 931 hwnd, 1003 hwnd, 932 1004 CONSOLE_TIMER_ID, /* timer id */ 933 1005 ConsoleGlobals.ulTimerFrequency); … … 939 1011 } 940 1012 break; 941 942 1013 1014 943 1015 /************************************************************************* 944 1016 * WM_DESTROY window destruction * 945 1017 *************************************************************************/ 946 1018 947 1019 case WM_DESTROY: 948 1020 WinStopTimer (ConsoleGlobals.hab, /* anchor block */ 949 1021 hwnd, 950 1022 ConsoleGlobals.idTimer); /* timer ID */ 951 1023 952 1024 VioAssociate(NULL, 953 1025 ConsoleGlobals.hvpsConsole); /* disassociates the AVIO PS */ 954 1026 VioDestroyPS(ConsoleGlobals.hvpsConsole); /* destroys the AVIO PS */ 955 1027 956 1028 WinDestroyWindow(ConsoleGlobals.hwndMenuConsole); 957 1029 WinDestroyPointer(ConsoleGlobals.hPtrConsole); 958 1030 break; 959 960 1031 1032 961 1033 /************************************************************************* 962 1034 * WM_TIMER display cursor and update AVIO PS if required * 963 1035 *************************************************************************/ 964 1036 965 1037 case WM_TIMER: 966 1038 /* check if console has to be updated */ … … 968 1040 { 969 1041 ConsoleGlobals.fUpdateRequired = FALSE; /* as soon as possible ! */ 970 1042 971 1043 /* as device to map itself to the VIO buffer */ 972 1044 HMDeviceRequest(ConsoleGlobals.hConsoleBuffer, … … 976 1048 0, 977 1049 0); 978 1050 979 1051 { /* DEBUG */ 980 1052 APIRET rc; … … 984 1056 0, 985 1057 ConsoleGlobals.hvpsConsole); 986 1058 987 1059 dprintf(("KERNEL32::Console::1 VioShowPS(%u,%u,%u)=%u\n", 988 1060 ConsoleGlobals.coordWindowSize.Y, … … 991 1063 rc)); 992 1064 } 993 1065 994 1066 /* cursor is overwritten here ! */ 995 1067 HMDeviceRequest(ConsoleGlobals.hConsoleBuffer, … … 998 1070 0, 999 1071 0, 1000 0); 1072 0); 1001 1073 } 1002 1074 else … … 1017 1089 break; 1018 1090 1019 1091 1020 1092 /************************************************************************* 1021 1093 * WM_MINMAXFRAME handle window repaint in case of iconized window * 1022 1094 *************************************************************************/ 1023 1095 1024 1096 case WM_MINMAXFRAME : 1025 1097 { 1026 1098 BOOL fShow = ! (((PSWP) mp1)->fl & SWP_MINIMIZE); 1027 HENUM henum; 1099 HENUM henum; 1028 1100 HWND hwndChild; 1029 1101 … … 1038 1110 } 1039 1111 break; 1040 1041 1112 1113 1042 1114 /************************************************************************* 1043 1115 * WM_PAINT repaint the window * … … 1055 1127 0, 1056 1128 ConsoleGlobals.hvpsConsole); 1057 1129 1058 1130 dprintf(("KERNEL32::Console::2 VioShowPS(%u,%u,%u)=%u\n", 1059 1131 ConsoleGlobals.coordWindowSize.Y, … … 1062 1134 rc)); 1063 1135 } 1064 1136 1065 1137 WinEndPaint(hps); 1066 1138 break; 1067 1068 1139 1140 1069 1141 /************************************************************************* 1070 1142 * WM_SIZE resize the window * … … 1078 1150 0, 1079 1151 0, 1080 0); 1081 1152 0); 1153 1082 1154 return WinDefAVioWindowProc(hwnd, 1083 1155 (USHORT)msg, … … 1085 1157 (ULONG)mp2); 1086 1158 } 1087 1088 1159 1160 1089 1161 /************************************************************************* 1090 1162 * context menue * … … 1098 1170 SHORT2FROMMP(mp1), 1099 1171 CM_CONSOLE_PROPERTIES, /* item id */ 1100 PU_HCONSTRAIN | 1172 PU_HCONSTRAIN | 1101 1173 PU_VCONSTRAIN | 1102 1174 PU_KEYBOARD | … … 1106 1178 } 1107 1179 return (MPARAM)FALSE; 1108 1109 1180 1181 1110 1182 /************************************************************************* 1111 1183 * WM_COMMAND command processing * … … 1117 1189 /* close console window, however we can't call ConsoleTerminate here!*/ 1118 1190 case CM_CONSOLE_EXIT: 1119 WinPostMsg (ConsoleGlobals.hwndFrame, 1191 WinPostMsg (ConsoleGlobals.hwndFrame, 1120 1192 WM_CLOSE, 1121 1193 (MPARAM)NULL, … … 1123 1195 1124 1196 return (MPARAM)FALSE; 1125 1126 1197 1198 1127 1199 case CM_CONSOLE_REPAINT: 1128 1200 WinInvalidateRect(ConsoleGlobals.hwndClient,/* redraw frame window */ … … 1135 1207 { 1136 1208 ULONG ulResult; /* response from user */ 1137 1209 1138 1210 ConsoleGlobals.Options.hmodResources = /* save module handle */ 1139 1211 ConsoleGlobals.hmodResource; 1140 1212 1141 1213 ulResult = WinDlgBox(HWND_DESKTOP, 1142 1214 ConsoleGlobals.hwndClient, … … 1145 1217 DLG_CONSOLE_PROPERTIES, 1146 1218 (PVOID)&ConsoleGlobals.Options); 1147 /* @@@PH update settings if necessary */1148 1149 1219 return (MPARAM) FALSE; 1150 1220 } … … 1153 1223 break; 1154 1224 1155 1225 1156 1226 /************************************************************************* 1157 1227 * WM_CHAR keyboard char processing * 1158 1228 *************************************************************************/ 1159 1229 1160 1230 case WM_CHAR: 1161 1231 ConsoleInputEventPushKey(mp1, /* push event into queue */ 1162 1232 mp2); 1163 1233 break; /* enable further processing ! */ 1164 1165 1234 1235 1166 1236 /************************************************************************* 1167 1237 * WM_SETFOCUS focus changing processing * 1168 1238 *************************************************************************/ 1169 1239 1170 1240 case WM_SETFOCUS: 1171 1241 ConsoleInputEventPushFocus((BOOL)mp2); /* push event into queue */ 1172 1242 break; /* enable further processing ! */ 1173 1174 1243 1244 1175 1245 /************************************************************************* 1176 1246 * WM_MOUSEMOVE mouse event processing * 1177 1247 *************************************************************************/ 1178 1248 1179 1249 case WM_MOUSEMOVE: 1180 1250 case WM_BUTTON1UP: … … 1192 1262 break; /* enable further processing ! */ 1193 1263 } 1194 1264 1195 1265 return WinDefWindowProc(hwnd, /* to default processing */ 1196 1266 msg, … … 1209 1279 * Variables : 1210 1280 * Result : MRESULT for PM 1211 * Remark : 1212 * Status : 1281 * Remark : 1282 * Status : 1213 1283 * 1214 1284 * Author : Patrick Haller [Tue, 1998/02/10 03:24] … … 1220 1290 MPARAM mp2) 1221 1291 { 1222 switch(msg) 1292 switch(msg) 1223 1293 { 1224 1294 /************************************************************************* 1225 1295 * WM_QUERYTRACKINFO handling * 1226 1296 *************************************************************************/ 1227 case WM_QUERYTRACKINFO: 1297 case WM_QUERYTRACKINFO: 1228 1298 { 1229 1299 MRESULT mr; /* message result */ … … 1234 1304 msg, 1235 1305 mp1, 1236 mp2); 1306 mp2); 1237 1307 1238 1308 pTrackInfo = (PTRACKINFO)mp2; /* get track information */ … … 1262 1332 * Variables : 1263 1333 * Result : none 1264 * Remark : 1265 * Status : 1334 * Remark : 1335 * Status : 1266 1336 * 1267 1337 * Author : Patrick Haller [Tue, 1998/02/17 12:57] … … 1271 1341 { 1272 1342 ULONG ulLine; 1273 1343 1274 1344 ULONG ulSizeX; /* blitting length and height */ 1275 1345 ULONG ulSizeY; 1276 1346 1277 1347 ulSizeX = 2 * min(ConsoleGlobals.coordWindowSize.X, 1278 1348 pConsoleBuffer->coordBufferSize.X - 1279 1349 ConsoleGlobals.coordWindowPos.X); 1280 1350 1281 1351 ulSizeY = min(ConsoleGlobals.coordWindowSize.Y, 1282 1352 pConsoleBuffer->coordBufferSize.Y - 1283 1353 ConsoleGlobals.coordWindowPos.Y); 1284 1354 1285 1355 /* check if we're called with non-existing line buffer */ 1286 1356 if (pConsoleBuffer->ppszLine == NULL) 1287 1357 return; 1288 1358 1289 1359 for (ulLine = ConsoleGlobals.coordWindowPos.Y; 1290 1360 ulLine < ulSizeY; 1291 1361 ulLine++) 1292 VioWrtCellStr(pConsoleBuffer->ppszLine[ulLine] + 1362 VioWrtCellStr(pConsoleBuffer->ppszLine[ulLine] + 1293 1363 ConsoleGlobals.coordWindowPos.X, 1294 1364 ulSizeX, … … 1305 1375 * Variables : 1306 1376 * Result : none 1307 * Remark : 1308 * Status : 1377 * Remark : 1378 * Status : 1309 1379 * 1310 1380 * Author : Patrick Haller [Tue, 1998/02/17 12:57] … … 1316 1386 { 1317 1387 ULONG ulCounter; 1318 1388 1319 1389 for (ulCounter = 0; 1320 1390 ulCounter < (ulSize >> 1); … … 1322 1392 pusTarget+=2) 1323 1393 *(PULONG)pusTarget = ulPattern; 1324 1394 1325 1395 if (ulSize & 0x00000001) 1326 1396 *pusTarget = (USHORT)ulPattern; … … 1336 1406 * Variables : 1337 1407 * Result : none 1338 * Remark : 1339 * Status : 1408 * Remark : 1409 * Status : 1340 1410 * 1341 1411 * Author : Patrick Haller [Tue, 1998/02/17 12:57] … … 1348 1418 ULONG ulPosition; 1349 1419 ULONG ulScrollLine; 1350 1420 1351 1421 static ULONG ulUpdateCounter; /* counter for jump-scrolling */ 1352 1422 1353 1423 /* calculate new line offset to the first line */ 1354 1424 pConsoleBuffer->ulScrollLineOffset += ulLines; 1355 1425 pConsoleBuffer->ulScrollLineOffset %= pConsoleBuffer->coordBufferSize.Y; 1356 1426 1357 1427 /* do we have to scroll ? */ 1358 1428 if (ulLines < pConsoleBuffer->coordBufferSize.Y) … … 1362 1432 ulLine++) 1363 1433 { 1364 ulScrollLine = (ulLine + pConsoleBuffer->ulScrollLineOffset) 1434 ulScrollLine = (ulLine + pConsoleBuffer->ulScrollLineOffset) 1365 1435 % pConsoleBuffer->coordBufferSize.Y; 1366 1436 1367 1437 ulPosition = (ULONG)pConsoleBuffer->ppszLine 1368 1438 + (pConsoleBuffer->coordBufferSize.Y * sizeof (PSZ) ) 1369 1439 + (pConsoleBuffer->coordBufferSize.X * 2 * ulScrollLine); 1370 1440 1371 1441 pConsoleBuffer->ppszLine[ulLine] = (PSZ)ulPosition; 1372 1442 } 1373 1443 } 1374 1444 1375 1445 /* enforce the upper limit */ 1376 1446 if (ulLines > pConsoleBuffer->coordBufferSize.Y) 1377 1447 ulLines = pConsoleBuffer->coordBufferSize.Y; 1378 1448 1379 1449 ulPosition = ( ((ULONG)(pConsoleBuffer->ucDefaultAttribute) << 8) + 1380 1450 ((ULONG)' ') + 1381 1451 ((ULONG)(pConsoleBuffer->ucDefaultAttribute) << 24) + 1382 1452 ((ULONG)' ' << 16) ); 1383 1453 1384 1454 /* scroll the line index */ 1385 for (ulLine = pConsoleBuffer->coordBufferSize.Y - ulLines; 1455 for (ulLine = pConsoleBuffer->coordBufferSize.Y - ulLines; 1386 1456 ulLine < pConsoleBuffer->coordBufferSize.Y; 1387 1457 ulLine++) … … 1389 1459 (PUSHORT)(pConsoleBuffer->ppszLine[ulLine]), 1390 1460 pConsoleBuffer->coordBufferSize.X); 1391 1461 1392 1462 /* this code ensures frequent screen updating, even if the timer prooves */ 1393 1463 /* to be to slow */ … … 1413 1483 * Result : API returncode 1414 1484 * Remark : 1415 * Status : 1485 * Status : 1416 1486 * 1417 1487 * Author : Patrick Haller [Tue, 1998/03/07 16:55] … … 1422 1492 PINPUT_RECORD pirFree; /* pointer to free record */ 1423 1493 APIRET rc; /* API-returncode */ 1424 1494 1425 1495 #ifdef DEBUG_LOCAL2 1426 1496 dprintf(("KERNEL32/CONSOLE:ConsoleInputEventPush(%08x).\n", … … 1431 1501 if (pirFree->EventType != 0x0000) 1432 1502 return (ERROR_QUE_NO_MEMORY); /* queue is full ! */ 1433 1503 1434 1504 /* put event in queue */ 1435 1505 memcpy(pirFree, /* copy data */ 1436 1506 pInputRecord, 1437 1507 sizeof (INPUT_RECORD) ); 1438 1508 1439 1509 ConsoleInput.ulIndexFree++; /* update index counter */ 1440 1510 if (ConsoleInput.ulIndexFree >= CONSOLE_INPUTQUEUESIZE) 1441 1511 ConsoleInput.ulIndexFree = 0; 1442 1512 1443 1513 ConsoleInput.ulEvents++; /* increate queue event counter */ 1444 1514 1445 1515 /* unblock reading threads */ 1446 1516 rc = DosPostEventSem(ConsoleInput.hevInputQueue); … … 1456 1526 * Result : API returncode 1457 1527 * Remark : 1458 * Status : 1528 * Status : 1459 1529 * 1460 1530 * Author : Patrick Haller [Tue, 1998/03/07 16:55] … … 1465 1535 PINPUT_RECORD pirEvent; /* pointer to event record */ 1466 1536 APIRET rc; /* API-returncode */ 1467 1537 1468 1538 #ifdef DEBUG_LOCAL2 1469 1539 dprintf(("KERNEL32/CONSOLE:ConsoleInputEventPop(%08x).\n", 1470 1540 pInputRecord)); 1471 1541 #endif 1472 1542 1473 1543 if (ConsoleInput.ulEvents == 0) /* empty console ? */ 1474 1544 return (ERROR_QUE_EMPTY); /* queue is empty ! */ 1475 1545 1476 1546 /* get first event */ 1477 1547 pirEvent = &ConsoleInput.arrInputRecord[ConsoleInput.ulIndexEvent]; 1478 1548 if (pirEvent->EventType == 0x0000) 1479 1549 return (ERROR_QUE_EMPTY); /* queue is empty ! */ 1480 1550 1481 1551 /* put event in queue */ 1482 1552 memcpy(pInputRecord, /* copy data */ 1483 1553 pirEvent, 1484 1554 sizeof (INPUT_RECORD) ); 1485 1555 1486 1556 pirEvent->EventType = 0x0000; /* mark event as read = free */ 1487 1557 1488 1558 if (ConsoleInput.ulEvents >= 0) /* decrease number of console events */ 1489 1559 ConsoleInput.ulEvents--; 1490 1560 1491 1561 ConsoleInput.ulIndexEvent++; /* update index counter */ 1492 1562 if (ConsoleInput.ulIndexEvent >= CONSOLE_INPUTQUEUESIZE) 1493 1563 ConsoleInput.ulIndexEvent = 0; 1494 1564 1495 1565 return (NO_ERROR); /* OK */ 1496 1566 } … … 1505 1575 * Remark : @@@PH: 2nd table that learns codes automatically from "down" 1506 1576 * messages from PM. With Alt-a, etc. it is 0 for "up" ? 1507 * Status : 1577 * Status : 1508 1578 * 1509 1579 * Author : Patrick Haller [Tue, 1998/03/07 16:55] … … 1624 1694 /* VK_M_BUTTONRELEASE 0x006B */ 0, 1625 1695 /* VK_M_DOUBLECLICK 0x006C */ 0, 1626 1696 1627 1697 #if 0 1628 1698 0xA4, /* WIN_VK_LMENU ??? */ … … 1673 1743 USHORT usVk = ((ULONG)mp2 & 0xffff0000) >> 16; 1674 1744 UCHAR ucChar = usCh & 0x00ff; 1675 1745 1676 1746 #ifdef DEBUG_LOCAL2 1677 1747 dprintf(("KERNEL32/CONSOLE:ConsoleInputEventPushKey(%08x,%08x).\n", … … 1680 1750 #endif 1681 1751 1682 1752 1683 1753 InputRecord.EventType = KEY_EVENT; /* fill event structure */ 1684 1754 InputRecord.Event.KeyEvent.dwControlKeyState = 0; 1685 1755 1686 1756 if (fsFlags & KC_SHIFT) InputRecord.Event.KeyEvent.dwControlKeyState |= SHIFT_PRESSED; 1687 1757 if (fsFlags & KC_ALT) InputRecord.Event.KeyEvent.dwControlKeyState |= LEFT_ALT_PRESSED; 1688 1758 if (fsFlags & KC_CTRL) InputRecord.Event.KeyEvent.dwControlKeyState |= LEFT_CTRL_PRESSED; 1689 1690 /* @@@PH no support for RIGHT_ALT_PRESSED, 1759 1760 /* @@@PH no support for RIGHT_ALT_PRESSED, 1691 1761 RIGHT_CTRL_PRESSED, 1692 NUMLOCK_ON, 1693 SCROLLLOCK_ON, 1694 CAPSLOCK_ON, 1695 ENHANCED_KEY 1762 NUMLOCK_ON, 1763 SCROLLLOCK_ON, 1764 CAPSLOCK_ON, 1765 ENHANCED_KEY 1696 1766 */ 1697 1767 … … 1700 1770 InputRecord.Event.KeyEvent.wVirtualKeyCode = usVk; 1701 1771 InputRecord.Event.KeyEvent.wVirtualScanCode = ucScanCode; 1702 1772 1703 1773 /* check if ascii is valid, if so then wVirtualKeyCode = ascii, */ 1704 1774 /* else go through the table */ … … 1712 1782 InputRecord.Event.KeyEvent.wVirtualKeyCode = usCh & 0xDF; 1713 1783 else 1714 InputRecord.Event.KeyEvent.wVirtualKeyCode = usCh; 1784 InputRecord.Event.KeyEvent.wVirtualKeyCode = usCh; 1715 1785 } 1716 1786 else … … 1721 1791 tabVirtualKeyCodes[usVk]; /* translate keycode */ 1722 1792 } 1723 1793 1724 1794 /* this is a workaround for empty / invalid wVirtualKeyCodes */ 1725 1795 if (InputRecord.Event.KeyEvent.wVirtualKeyCode == 0x0000) … … 1730 1800 InputRecord.Event.KeyEvent.wVirtualKeyCode = usCh & 0xDF; 1731 1801 else 1732 InputRecord.Event.KeyEvent.wVirtualKeyCode = usCh; 1733 } 1734 1735 1802 InputRecord.Event.KeyEvent.wVirtualKeyCode = usCh; 1803 } 1804 1805 1736 1806 /* @@@PH handle special keys */ 1737 1807 if ( (ucChar != 0xe0) && (ucChar != 0x00) ) … … 1743 1813 InputRecord.Event.KeyEvent.uChar.AsciiChar = (ucChar >> 8); 1744 1814 } 1745 1815 1746 1816 /* further processing according the current input console mode */ 1747 1817 if (ConsoleInput.dwConsoleMode & ENABLE_PROCESSED_INPUT) … … 1749 1819 /* filter ctrl-c, etc. */ 1750 1820 } 1751 1821 1752 1822 #if 0 1753 1823 /* DEBUG */ … … 1762 1832 SHORT1FROMMP(mp2), 1763 1833 SHORT2FROMMP(mp2))); 1764 1834 1765 1835 dprintf(("DEBUG: ascii=[%c] (%02x)", 1766 1836 InputRecord.Event.KeyEvent.uChar.AsciiChar, 1767 1837 InputRecord.Event.KeyEvent.uChar.AsciiChar)); 1768 1838 #endif 1769 1839 1770 1840 rc = ConsoleInputEventPush(&InputRecord); /* add it to the queue */ 1771 1841 return (rc); /* OK */ … … 1780 1850 * Result : API returncode 1781 1851 * Remark : 1782 * Status : 1852 * Status : 1783 1853 * 1784 1854 * Author : Patrick Haller [Tue, 1998/03/07 16:55] … … 1793 1863 USHORT fsFlags = SHORT2FROMMP(mp2); /* get key flags */ 1794 1864 static USHORT usButtonState; /* keeps track of mouse button state */ 1795 1865 1796 1866 /* do we have to process mouse input ? */ 1797 1867 if ( !(ConsoleInput.dwConsoleMode & ENABLE_MOUSE_INPUT)) 1798 1868 return (NO_ERROR); /* return immediately */ 1799 1869 1800 1870 dprintf(("KERNEL32/CONSOLE:ConsoleInputEventPushMouse(%08x,%08x,%08x).\n", 1801 1871 ulMessage, 1802 1872 mp1, 1803 1873 mp2)); 1804 1874 1805 1875 memset(&InputRecord, /* zero the structure */ 1806 1876 0, 1807 1877 sizeof (INPUT_RECORD) ); 1808 1878 1809 1879 InputRecord.EventType = MOUSE_EVENT; /* fill event structure */ 1810 1880 1811 1881 switch (ulMessage) 1812 1882 { 1813 case WM_MOUSEMOVE: 1883 case WM_MOUSEMOVE: 1814 1884 InputRecord.Event.MouseEvent.dwEventFlags = MOUSE_MOVED; 1815 1885 InputRecord.Event.MouseEvent.dwMousePosition.X = SHORT1FROMMP(mp1); 1816 1886 InputRecord.Event.MouseEvent.dwMousePosition.Y = SHORT2FROMMP(mp1); 1817 1887 1818 1888 InputRecord.Event.MouseEvent.dwButtonState = usButtonState; 1819 1889 1820 1890 if (fsFlags & KC_SHIFT) InputRecord.Event.MouseEvent.dwControlKeyState |= SHIFT_PRESSED; 1821 1891 if (fsFlags & KC_ALT) InputRecord.Event.MouseEvent.dwControlKeyState |= LEFT_ALT_PRESSED; 1822 1892 if (fsFlags & KC_CTRL) InputRecord.Event.MouseEvent.dwControlKeyState |= LEFT_CTRL_PRESSED; 1823 1824 /* @@@PH no support for RIGHT_ALT_PRESSED, 1893 1894 /* @@@PH no support for RIGHT_ALT_PRESSED, 1825 1895 RIGHT_CTRL_PRESSED, 1826 NUMLOCK_ON, 1827 SCROLLLOCK_ON, 1828 CAPSLOCK_ON, 1829 ENHANCED_KEY 1896 NUMLOCK_ON, 1897 SCROLLLOCK_ON, 1898 CAPSLOCK_ON, 1899 ENHANCED_KEY 1830 1900 */ 1831 1901 break; 1832 1902 1833 1903 case WM_BUTTON1UP: 1834 1904 usButtonState &= ~FROM_LEFT_1ST_BUTTON_PRESSED; 1835 1905 InputRecord.Event.MouseEvent.dwButtonState = usButtonState; 1836 1906 break; 1837 1907 1838 1908 case WM_BUTTON1DOWN: 1839 1909 usButtonState |= FROM_LEFT_1ST_BUTTON_PRESSED; 1840 1910 InputRecord.Event.MouseEvent.dwButtonState = usButtonState; 1841 1911 break; 1842 1912 1843 1913 case WM_BUTTON2UP: 1844 1914 usButtonState &= ~FROM_LEFT_2ND_BUTTON_PRESSED; 1845 1915 InputRecord.Event.MouseEvent.dwButtonState = usButtonState; 1846 1916 break; 1847 1917 1848 1918 case WM_BUTTON2DOWN: 1849 1919 usButtonState |= FROM_LEFT_2ND_BUTTON_PRESSED; 1850 1920 InputRecord.Event.MouseEvent.dwButtonState = usButtonState; 1851 1921 break; 1852 1922 1853 1923 case WM_BUTTON3UP: 1854 1924 usButtonState &= ~FROM_LEFT_3RD_BUTTON_PRESSED; 1855 1925 InputRecord.Event.MouseEvent.dwButtonState = usButtonState; 1856 1926 break; 1857 1927 1858 1928 case WM_BUTTON3DOWN: 1859 1929 usButtonState |= FROM_LEFT_3RD_BUTTON_PRESSED; … … 1866 1936 usButtonState &= ~FROM_LEFT_1ST_BUTTON_PRESSED; 1867 1937 break; 1868 1938 1869 1939 case WM_BUTTON2DBLCLK: 1870 1940 InputRecord.Event.MouseEvent.dwEventFlags = DOUBLE_CLICK; … … 1872 1942 usButtonState &= ~FROM_LEFT_2ND_BUTTON_PRESSED; 1873 1943 break; 1874 1944 1875 1945 case WM_BUTTON3DBLCLK: 1876 1946 InputRecord.Event.MouseEvent.dwEventFlags = DOUBLE_CLICK; … … 1879 1949 break; 1880 1950 } 1881 1951 1882 1952 /* @@@PH pseudo-support for RIGHTMOST_BUTTON_PRESSED */ 1883 1953 if (InputRecord.Event.MouseEvent.dwButtonState & FROM_LEFT_3RD_BUTTON_PRESSED) 1884 1954 InputRecord.Event.MouseEvent.dwButtonState |= RIGHTMOST_BUTTON_PRESSED; 1885 1955 1886 1956 rc = ConsoleInputEventPush(&InputRecord); /* add it to the queue */ 1887 1957 return (rc); /* OK */ … … 1896 1966 * Result : API returncode 1897 1967 * Remark : 1898 * Status : 1968 * Status : 1899 1969 * 1900 1970 * Author : Patrick Haller [Tue, 1998/03/07 16:55] … … 1909 1979 if ( !(ConsoleInput.dwConsoleMode & ENABLE_WINDOW_INPUT)) 1910 1980 return (NO_ERROR); /* return immediately */ 1911 1981 1912 1982 dprintf(("KERNEL32/CONSOLE:ConsoleInputEventPushWindow(x = %u, y = %u).\n", 1913 1983 coordWindowSize.X, 1914 1984 coordWindowSize.Y)); 1915 1985 1916 1986 InputRecord.EventType = WINDOW_BUFFER_SIZE_EVENT; /* fill event structure */ 1917 1987 1918 1988 InputRecord.Event.WindowBufferSizeEvent.dwSize = coordWindowSize; 1919 1989 1920 1990 rc = ConsoleInputEventPush(&InputRecord); /* add it to the queue */ 1921 1991 return (rc); /* OK */ … … 1930 2000 * Result : API returncode 1931 2001 * Remark : 1932 * Status : 2002 * Status : 1933 2003 * 1934 2004 * Author : Patrick Haller [Tue, 1998/03/07 16:55] … … 1939 2009 INPUT_RECORD InputRecord; /* the input record structure */ 1940 2010 APIRET rc; /* API-returncode */ 1941 2011 1942 2012 /* @@@PH this is unknown to me - there's no separate bit for menu events ? */ 1943 2013 /* do we have to process window input ? */ 1944 2014 if ( !(ConsoleInput.dwConsoleMode & ENABLE_WINDOW_INPUT)) 1945 2015 return (NO_ERROR); /* return immediately */ 1946 2016 1947 2017 dprintf(("KERNEL32/CONSOLE:ConsoleInputEventPushMenu(%08x).\n", 1948 2018 dwCommandId)); 1949 2019 1950 2020 InputRecord.EventType = MENU_EVENT; /* fill event structure */ 1951 2021 1952 2022 InputRecord.Event.MenuEvent.dwCommandId = dwCommandId; 1953 2023 1954 2024 rc = ConsoleInputEventPush(&InputRecord); /* add it to the queue */ 1955 2025 return (rc); /* OK */ … … 1964 2034 * Result : API returncode 1965 2035 * Remark : 1966 * Status : 2036 * Status : 1967 2037 * 1968 2038 * Author : Patrick Haller [Tue, 1998/03/07 16:55] … … 1973 2043 INPUT_RECORD InputRecord; /* the input record structure */ 1974 2044 APIRET rc; /* API-returncode */ 1975 2045 1976 2046 /* @@@PH this is unknown to me - there's no separate bit for menu events ? */ 1977 2047 /* do we have to process window input ? */ 1978 2048 if ( !(ConsoleInput.dwConsoleMode & ENABLE_WINDOW_INPUT)) 1979 2049 return (NO_ERROR); /* return immediately */ 1980 2050 1981 2051 dprintf(("KERNEL32/CONSOLE:ConsoleInputEventPushFocus(%08x).\n", 1982 2052 bSetFocus)); 1983 2053 1984 2054 InputRecord.EventType = FOCUS_EVENT; /* fill event structure */ 1985 2055 1986 2056 InputRecord.Event.FocusEvent.bSetFocus = bSetFocus; 1987 2057 1988 2058 rc = ConsoleInputEventPush(&InputRecord); /* add it to the queue */ 1989 2059 return (rc); /* OK */ … … 1994 2064 * Name : static ULONG ConsoleInputQueueEvents 1995 2065 * Purpose : query number of events in the queue 1996 * Parameters: 2066 * Parameters: 1997 2067 * Variables : 1998 2068 * Result : number of events 1999 2069 * Remark : 2000 * Status : 2070 * Status : 2001 2071 * 2002 2072 * Author : Patrick Haller [Tue, 1998/03/07 16:55] … … 2012 2082 * Name : static void ConsoleCursorShow 2013 2083 * Purpose : query number of events in the queue 2014 * Parameters: 2084 * Parameters: 2015 2085 * Variables : 2016 2086 * Result : number of events 2017 2087 * Remark : 2018 * Status : 2088 * Status : 2019 2089 * 2020 2090 * Author : Patrick Haller [Tue, 1998/03/07 16:55] … … 2028 2098 static BOOL fState; /* current cursor state */ 2029 2099 RECTL rclWindow; /* current window size */ 2030 2100 2031 2101 #ifdef DEBUG_LOCAL2 2032 2102 dprintf(("KERNEL32:Console:ConsoleCursorShow(%u)\n", 2033 2103 ulCursorMode)); 2034 2104 #endif 2035 2105 2036 2106 if (pConsoleBuffer->CursorInfo.bVisible == FALSE)/* cursor is switched off */ 2037 2107 return; /* return immediately */ 2038 2108 2039 2109 switch (ulCursorMode) 2040 2110 { … … 2045 2115 fState = FALSE; /* set to invisible and invert our cursor rect */ 2046 2116 break; 2047 2117 2048 2118 case CONSOLECURSOR_SHOW: 2049 2119 if (fState == TRUE) /* cursor currently shown ? */ … … 2052 2122 fState = TRUE; /* set to visible and invert our cursor rect */ 2053 2123 break; 2054 2124 2055 2125 case CONSOLECURSOR_BLINK: 2056 2126 fState = !fState; /* let there be on off on off on off on off ... */ 2057 2127 break; 2058 2128 2059 2129 case CONSOLECURSOR_OVERWRITTEN: /* our cursor has been overwritten */ 2060 2130 fState = TRUE; /* so show the cursor immediately */ 2061 2131 break; 2062 2132 } 2063 2064 2133 2134 2065 2135 /* query current window's size */ 2066 2136 WinQueryWindowRect(ConsoleGlobals.hwndClient, 2067 2137 &rclWindow); 2068 2138 2069 2139 /* calculate coordinates of the cursor */ 2070 2140 rclCursor.xLeft = ConsoleGlobals.sCellCX * pConsoleBuffer->coordCursorPosition.X; … … 2076 2146 pConsoleBuffer->CursorInfo.dwSize / 2077 2147 100); 2078 2148 2079 2149 hps = WinGetPS(ConsoleGlobals.hwndClient); /* get HPS */ 2080 2150 2081 2151 /* @@@PH invert coordinates here ... */ 2082 2152 WinInvertRect(hps, /* our cursor is an inverted rectangle */ 2083 2153 &rclCursor); 2084 2154 2085 2155 WinReleasePS(hps); /* release the hps again */ 2086 2156 } … … 2090 2160 * Name : static APIRET ConsoleFontQuery 2091 2161 * Purpose : queries the current font cell sizes 2092 * Parameters: 2162 * Parameters: 2093 2163 * Variables : 2094 2164 * Result : API returncode 2095 2165 * Remark : 2096 * Status : 2166 * Status : 2097 2167 * 2098 2168 * Author : Patrick Haller [Tue, 1998/03/07 16:55] … … 2110 2180 * Name : static void ConsoleCursorShow 2111 2181 * Purpose : query number of events in the queue 2112 * Parameters: 2182 * Parameters: 2113 2183 * Variables : 2114 2184 * Result : number of events 2115 2185 * Remark : called during INIT, FONTCHANGE, RESIZE, BUFFERCHANGE 2116 * Status : 2186 * Status : 2117 2187 * 2118 2188 * Author : Patrick Haller [Wed, 1998/04/29 16:55] … … 2125 2195 PRECTL pRcl = &rcl; 2126 2196 ULONG flStyle; /* window frame control style */ 2127 2197 2128 2198 BOOL fNeedVertScroll; /* indicates need of scrollbars */ 2129 2199 BOOL fNeedHorzScroll; 2130 2200 2131 2201 LONG lScrollX; /* width and height of scrollbars */ 2132 2202 LONG lScrollY; 2133 2203 2134 2204 /* now calculate actual window size */ 2135 2205 lX = ConsoleGlobals.sCellCX * ConsoleGlobals.coordWindowSize.X; 2136 2206 lY = ConsoleGlobals.sCellCY * ConsoleGlobals.coordWindowSize.Y; 2137 2207 2138 2208 if ( (ConsoleGlobals.sCellCX == 0) || /* prevent division by zero */ 2139 2209 (ConsoleGlobals.sCellCY == 0) ) 2140 return; 2141 2210 return; 2211 2142 2212 /* calculate maximum console window size in pixels for the tracking */ 2143 2213 ConsoleGlobals.coordMaxWindowPels.X = ConsoleGlobals.sCellCX * pConsoleBuffer->coordWindowSize.X 2144 2214 + WinQuerySysValue(HWND_DESKTOP, SV_CXSIZEBORDER) * 2; 2145 2215 2146 2216 ConsoleGlobals.coordMaxWindowPels.Y = ConsoleGlobals.sCellCY * pConsoleBuffer->coordWindowSize.Y 2147 2217 + WinQuerySysValue(HWND_DESKTOP, SV_CYSIZEBORDER) * 2 2148 2218 + WinQuerySysValue(HWND_DESKTOP, SV_CYTITLEBAR); 2149 2219 2150 2220 /***************************/ 2151 2221 /* @@@PH broken code below */ 2152 2222 /***************************/ 2153 2223 return; 2154 2224 2155 2225 /* add the window border height and width, etc. */ 2156 2226 WinQueryWindowRect (ConsoleGlobals.hwndClient, 2157 2227 pRcl); 2158 2228 2159 2229 /* calculate visible area */ 2160 2230 /* calculate real client window rectangle and take care of the scrollbars */ 2161 2231 lScrollX = WinQuerySysValue(HWND_DESKTOP, SV_CXVSCROLL); 2162 2232 lScrollY = WinQuerySysValue(HWND_DESKTOP, SV_CYHSCROLL); 2163 if (ConsoleGlobals.fHasHorzScroll) 2233 if (ConsoleGlobals.fHasHorzScroll) 2164 2234 { 2165 2235 lY += lScrollY; 2166 2236 ConsoleGlobals.coordMaxWindowPels.Y += lScrollY; 2167 2237 } 2168 2169 if (ConsoleGlobals.fHasVertScroll) 2238 2239 if (ConsoleGlobals.fHasVertScroll) 2170 2240 { 2171 2241 lX += lScrollX; 2172 2242 ConsoleGlobals.coordMaxWindowPels.X += lScrollX; 2173 2243 } 2174 2244 2175 2245 /* @@@PH might NOT exceed maximum VioPS size ! */ 2176 ConsoleGlobals.coordWindowSize.X = (pRcl->xRight - pRcl->xLeft) 2246 ConsoleGlobals.coordWindowSize.X = (pRcl->xRight - pRcl->xLeft) 2177 2247 / ConsoleGlobals.sCellCX; 2178 2179 ConsoleGlobals.coordWindowSize.Y = (pRcl->yTop - pRcl->yBottom) 2248 2249 ConsoleGlobals.coordWindowSize.Y = (pRcl->yTop - pRcl->yBottom) 2180 2250 / ConsoleGlobals.sCellCY; 2181 2251 2182 2252 /* do we have to enable the scrollbars ? */ 2183 2253 fNeedHorzScroll = lX < pConsoleBuffer->coordWindowSize.X * ConsoleGlobals.sCellCX; 2184 2254 fNeedVertScroll = lY < pConsoleBuffer->coordWindowSize.Y * ConsoleGlobals.sCellCY; 2185 2255 2186 2256 2187 2257 if ( (ConsoleGlobals.fHasVertScroll != fNeedVertScroll) || … … 2190 2260 flStyle = WinQueryWindowULong(ConsoleGlobals.hwndFrame, 2191 2261 QWL_STYLE); 2192 2262 2193 2263 /* now set or remove the controls */ 2194 2264 if (ConsoleGlobals.fHasHorzScroll != fNeedHorzScroll) … … 2208 2278 ConsoleGlobals.coordWindowPos.X = 0; /* we can see the whole buffer */ 2209 2279 } 2210 2280 2211 2281 if (ConsoleGlobals.fHasVertScroll != fNeedVertScroll) 2212 2282 if (fNeedVertScroll) … … 2222 2292 WinSetParent(ConsoleGlobals.hwndVertScroll, /* detach control */ 2223 2293 HWND_OBJECT, 2224 FALSE); 2294 FALSE); 2225 2295 ConsoleGlobals.coordWindowPos.Y = 0; /* we can see the whole buffer */ 2226 2296 } 2227 2228 2297 2298 2229 2299 WinSendMsg(ConsoleGlobals.hwndFrame, /* update frame */ 2230 2300 WM_UPDATEFRAME, 2231 2301 MPFROMLONG(flStyle), 2232 2302 MPVOID); 2233 2303 2234 2304 WinInvalidateRect(ConsoleGlobals.hwndFrame, /* redraw frame window */ 2235 2305 NULL, 2236 2306 TRUE); 2237 2307 2238 2308 ConsoleGlobals.fHasVertScroll = fNeedVertScroll; /* update globals */ 2239 2309 ConsoleGlobals.fHasHorzScroll = fNeedHorzScroll; /* update globals */ 2240 2310 } 2241 2242 2311 2312 2243 2313 /* setup the scrollbars and scrollranges */ 2244 2314 if (ConsoleGlobals.fHasVertScroll) … … 2246 2316 /* setup vertical scrollbar */ 2247 2317 } 2248 2249 2318 2319 2250 2320 if (ConsoleGlobals.fHasHorzScroll) 2251 2321 { 2252 2322 /* setup horizonal scrollbar */ 2253 2323 } 2254 2255 2324 2325 2256 2326 WinCalcFrameRect(ConsoleGlobals.hwndFrame, /* calculate frame rectangle */ 2257 2327 pRcl, 2258 2328 FALSE); 2259 2329 2260 2330 /* @@@PH client may not overlap frame ! */ 2261 2331 /* @@@PH write values to TRACKINFO */ 2262 2332 2263 2333 #if 0 2264 2334 /* @@@PH this results in recursion */ … … 2270 2340 lY, 2271 2341 SWP_SIZE); 2272 2342 2273 2343 WinSetWindowPos (ConsoleGlobals.hwndFrame, /* adjust client window size */ 2274 2344 HWND_DESKTOP, … … 2283 2353 2284 2354 /***************************************************************************** 2285 * Name : BOOL WIN32API OS2AllocConsole2286 * Purpose : The AllocConsole function allocates a new console 2355 * Name : BOOL WIN32API AllocConsole 2356 * Purpose : The AllocConsole function allocates a new console 2287 2357 * for the calling process 2288 2358 * Parameters: VOID … … 2297 2367 *****************************************************************************/ 2298 2368 2299 BOOL WIN32API OS2AllocConsole(VOID)2369 BOOL WIN32API AllocConsole(VOID) 2300 2370 { 2301 2371 APIRET rc; /* API returncode */ 2302 2372 2303 2373 #ifdef DEBUG_LOCAL2 2304 2374 WriteLog("KERNEL32/CONSOLE: OS2AllocConsole() called.\n"); 2305 2375 #endif 2306 2376 2307 2377 rc = ConsoleInit(); /* initialize subsystem if required */ 2308 2378 if (rc != NO_ERROR) /* check for errors */ … … 2317 2387 2318 2388 /***************************************************************************** 2319 * Name : HANDLE WIN32API OS2CreateConsoleScreenBuffer2389 * Name : HANDLE WIN32API CreateConsoleScreenBuffer 2320 2390 * Purpose : The CreateConsoleScreenBuffer function creates a console 2321 2391 * screen buffer and returns a handle of it. … … 2326 2396 * LPVOID lpScreenBufferData - reserved 2327 2397 * Variables : 2328 * Result : 2398 * Result : 2329 2399 * Remark : a console buffer is a kernel heap object equipped with 2330 2400 * share modes, access rights, etc. … … 2332 2402 * console device driver for it ... maybe this turns out to 2333 2403 * be necessary since we've got to handle CONIN$ and CONOUT$, too. 2334 * Status : 2404 * Status : 2335 2405 * 2336 2406 * Author : Patrick Haller [Tue, 1998/02/10 03:55] 2337 2407 *****************************************************************************/ 2338 2408 2339 HANDLE WIN32API OS2CreateConsoleScreenBuffer(DWORD dwDesiredAccess,2409 HANDLE WIN32API CreateConsoleScreenBuffer(DWORD dwDesiredAccess, 2340 2410 DWORD dwShareMode, 2341 2411 LPVOID lpSecurityAttributes, … … 2344 2414 { 2345 2415 HANDLE hResult; 2346 2416 2347 2417 #ifdef DEBUG_LOCAL2 2348 2418 WriteLog("KERNEL32/CONSOLE:OS2CreateConsoleScreenBuffer(%08x,%08x,%08x,%08x,%08x).\n", … … 2361 2431 dwFlags, 2362 2432 INVALID_HANDLE_VALUE); 2363 2433 2364 2434 return hResult; 2365 2435 } … … 2367 2437 2368 2438 /***************************************************************************** 2369 * Name : 2370 * Purpose : 2371 * Parameters: 2372 * Variables : 2373 * Result : 2374 * Remark : 2375 * Status : 2439 * Name : 2440 * Purpose : 2441 * Parameters: 2442 * Variables : 2443 * Result : 2444 * Remark : 2445 * Status : 2376 2446 * 2377 2447 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2378 2448 *****************************************************************************/ 2379 2449 2380 BOOL WIN32API OS2FillConsoleOutputAttribute(HANDLE hConsoleOutput,2450 BOOL WIN32API FillConsoleOutputAttribute(HANDLE hConsoleOutput, 2381 2451 WORD wAttribute, 2382 2452 DWORD nLength, … … 2385 2455 { 2386 2456 BOOL fResult; 2387 2457 2388 2458 #ifdef DEBUG_LOCAL2 2389 2459 WriteLog("KERNEL32/CONSOLE: OS2FillConsoleOutputAttribute(%08x,%04x,%08x,%08x,%08x).\n", … … 2394 2464 lpNumberOfAttrsWritten); 2395 2465 #endif 2396 2466 2397 2467 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 2398 2468 DRQ_FILLCONSOLEOUTPUTATTRIBUTE, … … 2400 2470 (ULONG)nLength, 2401 2471 COORD2ULONG(dwWriteCoord), 2402 (ULONG)lpNumberOfAttrsWritten); 2403 2472 (ULONG)lpNumberOfAttrsWritten); 2473 2404 2474 return fResult; 2405 2475 } … … 2407 2477 2408 2478 /***************************************************************************** 2409 * Name : 2410 * Purpose : 2411 * Parameters: 2412 * Variables : 2413 * Result : 2414 * Remark : 2415 * Status : 2479 * Name : 2480 * Purpose : 2481 * Parameters: 2482 * Variables : 2483 * Result : 2484 * Remark : 2485 * Status : 2416 2486 * 2417 2487 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2418 2488 *****************************************************************************/ 2419 2489 2420 BOOL WIN32API OS2FillConsoleOutputCharacterA(HANDLE hConsoleOutput,2490 BOOL WIN32API FillConsoleOutputCharacterA(HANDLE hConsoleOutput, 2421 2491 UCHAR cCharacter, 2422 2492 DWORD nLength, … … 2425 2495 { 2426 2496 BOOL fResult; 2427 2497 2428 2498 #ifdef DEBUG_LOCAL2 2429 2499 WriteLog("KERNEL32/CONSOLE: OS2FillConsoleOutputCharacterA(%08x,%c,%08x,%08x,%08x).\n", … … 2434 2504 lpNumberOfCharsWritten); 2435 2505 #endif 2436 2506 2437 2507 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 2438 2508 DRQ_FILLCONSOLEOUTPUTCHARACTERA, … … 2440 2510 (ULONG)nLength, 2441 2511 COORD2ULONG(dwWriteCoord), 2442 (ULONG)lpNumberOfCharsWritten); 2443 2444 return fResult; 2445 } 2446 2447 2448 /***************************************************************************** 2449 * Name : 2450 * Purpose : 2451 * Parameters: 2452 * Variables : 2453 * Result : 2454 * Remark : 2455 * Status : 2512 (ULONG)lpNumberOfCharsWritten); 2513 2514 return fResult; 2515 } 2516 2517 2518 /***************************************************************************** 2519 * Name : 2520 * Purpose : 2521 * Parameters: 2522 * Variables : 2523 * Result : 2524 * Remark : 2525 * Status : 2456 2526 * 2457 2527 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2458 2528 *****************************************************************************/ 2459 2529 2460 BOOL WIN32API OS2FillConsoleOutputCharacterW(HANDLE hConsoleOutput,2530 BOOL WIN32API FillConsoleOutputCharacterW(HANDLE hConsoleOutput, 2461 2531 WCHAR cCharacter, 2462 2532 DWORD nLength, … … 2465 2535 { 2466 2536 BOOL fResult; 2467 2537 2468 2538 #ifdef DEBUG_LOCAL2 2469 2539 WriteLog("KERNEL32/CONSOLE: OS2FillConsoleOutputCharacterW(%08x,%c,%08x,%08x,%08x) .\n", … … 2474 2544 lpNumberOfCharsWritten); 2475 2545 #endif 2476 2546 2477 2547 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 2478 2548 DRQ_FILLCONSOLEOUTPUTCHARACTERW, … … 2487 2557 2488 2558 /***************************************************************************** 2489 * Name : 2490 * Purpose : 2491 * Parameters: 2492 * Variables : 2493 * Result : 2494 * Remark : 2495 * Status : 2559 * Name : 2560 * Purpose : 2561 * Parameters: 2562 * Variables : 2563 * Result : 2564 * Remark : 2565 * Status : 2496 2566 * 2497 2567 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2498 2568 *****************************************************************************/ 2499 2569 2500 BOOL WIN32API OS2FlushConsoleInputBuffer( HANDLE hConsoleInput )2570 BOOL WIN32API FlushConsoleInputBuffer( HANDLE hConsoleInput ) 2501 2571 { 2502 2572 BOOL fResult; 2503 2573 2504 2574 #ifdef DEBUG_LOCAL2 2505 2575 WriteLog("KERNEL32/CONSOLE: OS2FlushConsoleInputBuffer(%08x).\n", 2506 2576 hConsoleInput); 2507 2577 #endif 2508 2578 2509 2579 fResult = (BOOL)HMDeviceRequest(hConsoleInput, 2510 2580 DRQ_FLUSHCONSOLEINPUTBUFFER, … … 2519 2589 2520 2590 /***************************************************************************** 2521 * Name : BOOL WIN32API OS2FreeConsole2591 * Name : BOOL WIN32API FreeConsole 2522 2592 * Purpose : The FreeConsole function detaches the calling process 2523 2593 * from its console. … … 2533 2603 *****************************************************************************/ 2534 2604 2535 BOOL WIN32API OS2FreeConsole( VOID )2605 BOOL WIN32API FreeConsole( VOID ) 2536 2606 { 2537 2607 APIRET rc; /* API returncode */ 2538 2608 2539 2609 #ifdef DEBUG_LOCAL2 2540 2610 WriteLog("KERNEL32/CONSOLE: OS2FreeConsole() called.\n"); 2541 2611 #endif 2542 2612 2543 2613 rc = ConsoleTerminate(); /* terminate subsystem if required */ 2544 2614 if (rc != NO_ERROR) /* check for errors */ … … 2549 2619 else 2550 2620 return TRUE; /* Fine ! :) */ 2551 2552 return TRUE; 2553 } 2554 2555 2556 /***************************************************************************** 2557 * Name : 2558 * Purpose : 2559 * Parameters: 2560 * Variables : 2561 * Result : 2562 * Remark : 2563 * Status : 2621 2622 return TRUE; 2623 } 2624 2625 2626 /***************************************************************************** 2627 * Name : 2628 * Purpose : 2629 * Parameters: 2630 * Variables : 2631 * Result : 2632 * Remark : 2633 * Status : 2564 2634 * 2565 2635 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2566 2636 *****************************************************************************/ 2567 2637 2568 BOOL WIN32API OS2GenerateConsoleCtrlEvent(DWORD dwCtrlEvent,2638 BOOL WIN32API GenerateConsoleCtrlEvent(DWORD dwCtrlEvent, 2569 2639 DWORD dwProcessGroupId) 2570 2640 { … … 2574 2644 dwProcessGroupId); 2575 2645 #endif 2576 2646 2577 2647 return TRUE; 2578 2648 } … … 2580 2650 2581 2651 /***************************************************************************** 2582 * Name : 2583 * Purpose : 2584 * Parameters: 2585 * Variables : 2586 * Result : 2587 * Remark : 2588 * Status : 2652 * Name : 2653 * Purpose : 2654 * Parameters: 2655 * Variables : 2656 * Result : 2657 * Remark : 2658 * Status : 2589 2659 * 2590 2660 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2591 2661 *****************************************************************************/ 2592 2662 2593 UINT WIN32API OS2GetConsoleCP(VOID)2663 UINT WIN32API GetConsoleCP(VOID) 2594 2664 { 2595 2665 #ifdef DEBUG_LOCAL2 2596 2666 WriteLog("KERNEL32/CONSOLE: OS2GetConsoleCP not implemented.\n"); 2597 2667 #endif 2598 2668 2599 2669 return 1; 2600 2670 } … … 2602 2672 2603 2673 /***************************************************************************** 2604 * Name : 2605 * Purpose : 2606 * Parameters: 2607 * Variables : 2608 * Result : 2609 * Remark : 2610 * Status : 2674 * Name : 2675 * Purpose : 2676 * Parameters: 2677 * Variables : 2678 * Result : 2679 * Remark : 2680 * Status : 2611 2681 * 2612 2682 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2613 2683 *****************************************************************************/ 2614 2684 2615 BOOL WIN32API OS2GetConsoleCursorInfo(HANDLE hConsoleOutput,2685 BOOL WIN32API GetConsoleCursorInfo(HANDLE hConsoleOutput, 2616 2686 PCONSOLE_CURSOR_INFO lpConsoleCursorInfo) 2617 2687 { 2618 2688 BOOL fResult; 2619 2689 2620 2690 #ifdef DEBUG_LOCAL2 2621 2691 WriteLog("KERNEL32/CONSOLE: OS2GetConsoleCursorInfo(%08x,%08x).\n", … … 2623 2693 lpConsoleCursorInfo); 2624 2694 #endif 2625 2695 2626 2696 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 2627 2697 DRQ_GETCONSOLECURSORINFO, … … 2636 2706 2637 2707 /***************************************************************************** 2638 * Name : 2639 * Purpose : 2640 * Parameters: 2641 * Variables : 2642 * Result : 2643 * Remark : 2644 * Status : 2708 * Name : 2709 * Purpose : 2710 * Parameters: 2711 * Variables : 2712 * Result : 2713 * Remark : 2714 * Status : 2645 2715 * 2646 2716 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2647 2717 *****************************************************************************/ 2648 2718 2649 BOOL WIN32API OS2GetConsoleMode(HANDLE hConsole,2719 BOOL WIN32API GetConsoleMode(HANDLE hConsole, 2650 2720 LPDWORD lpMode) 2651 2721 { 2652 2722 BOOL fResult; 2653 2723 2654 2724 #ifdef DEBUG_LOCAL2 2655 2725 WriteLog("KERNEL32/CONSOLE: OS2GetConsoleMode(%08x,%08x).\n", … … 2657 2727 lpMode); 2658 2728 #endif 2659 2729 2660 2730 fResult = (BOOL)HMDeviceRequest(hConsole, 2661 2731 DRQ_GETCONSOLEMODE, … … 2664 2734 0, 2665 2735 0); 2666 2736 2667 2737 return fResult; 2668 2738 } … … 2670 2740 2671 2741 /***************************************************************************** 2672 * Name : 2673 * Purpose : 2674 * Parameters: 2675 * Variables : 2676 * Result : 2677 * Remark : 2678 * Status : 2742 * Name : 2743 * Purpose : 2744 * Parameters: 2745 * Variables : 2746 * Result : 2747 * Remark : 2748 * Status : 2679 2749 * 2680 2750 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2681 2751 *****************************************************************************/ 2682 2752 2683 UINT WIN32API OS2GetConsoleOutputCP(VOID)2753 UINT WIN32API GetConsoleOutputCP(VOID) 2684 2754 { 2685 2755 #ifdef DEBUG_LOCAL2 2686 2756 WriteLog("KERNEL32/CONSOLE: OS2GetConsoleOutputCP not implemented.\n"); 2687 2757 #endif 2688 2758 2689 2759 return 1; 2690 2760 } … … 2692 2762 2693 2763 /***************************************************************************** 2694 * Name : 2695 * Purpose : 2696 * Parameters: 2697 * Variables : 2698 * Result : 2699 * Remark : 2700 * Status : 2764 * Name : 2765 * Purpose : 2766 * Parameters: 2767 * Variables : 2768 * Result : 2769 * Remark : 2770 * Status : 2701 2771 * 2702 2772 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2703 2773 *****************************************************************************/ 2704 2774 2705 BOOL WIN32API OS2GetConsoleScreenBufferInfo(HANDLE hConsoleOutput,2775 BOOL WIN32API GetConsoleScreenBufferInfo(HANDLE hConsoleOutput, 2706 2776 PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo) 2707 2777 { … … 2713 2783 lpConsoleScreenBufferInfo); 2714 2784 #endif 2715 2785 2716 2786 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 2717 2787 DRQ_GETCONSOLESCREENBUFFERINFO, … … 2726 2796 2727 2797 /***************************************************************************** 2728 * Name : DWORD WIN32API OS2GetConsoleTitle2798 * Name : DWORD WIN32API GetConsoleTitle 2729 2799 * Purpose : Query the current console window title 2730 2800 * Parameters: LPTSTR lpConsoleTitle … … 2738 2808 *****************************************************************************/ 2739 2809 2740 DWORD WIN32API OS2GetConsoleTitleA(LPTSTR lpConsoleTitle,2810 DWORD WIN32API GetConsoleTitleA(LPTSTR lpConsoleTitle, 2741 2811 DWORD nSize) 2742 2812 { … … 2748 2818 nSize); 2749 2819 #endif 2750 2820 2751 2821 if (ConsoleGlobals.pszWindowTitle == NULL) /* is there a window title ? */ 2752 2822 return 0; /* abort immediately */ 2753 2823 2754 2824 ulLength = strlen(ConsoleGlobals.pszWindowTitle); /* length of text */ 2755 2825 2756 2826 strncpy(lpConsoleTitle, 2757 2827 ConsoleGlobals.pszWindowTitle, 2758 2828 nSize); 2759 2829 2760 2830 return (nSize < ulLength) ? nSize : ulLength; 2761 2831 } … … 2763 2833 2764 2834 /***************************************************************************** 2765 * Name : DWORD WIN32API OS2GetConsoleTitle2835 * Name : DWORD WIN32API GetConsoleTitle 2766 2836 * Purpose : Query the current console window title 2767 2837 * Parameters: LPTSTR lpConsoleTitle … … 2775 2845 *****************************************************************************/ 2776 2846 2777 DWORD WIN32API OS2GetConsoleTitleW(LPTSTR lpConsoleTitle,2847 DWORD WIN32API GetConsoleTitleW(LPTSTR lpConsoleTitle, 2778 2848 DWORD nSize) 2779 2849 { … … 2785 2855 nSize); 2786 2856 #endif 2787 2857 2788 2858 if (ConsoleGlobals.pszWindowTitle == NULL) /* is there a window title ? */ 2789 2859 return 0; /* abort immediately */ 2790 2860 2791 2861 ulLength = strlen(ConsoleGlobals.pszWindowTitle); /* length of text */ 2792 2862 2793 2863 strncpy(lpConsoleTitle, 2794 2864 ConsoleGlobals.pszWindowTitle, 2795 2865 nSize); 2796 2866 2797 2867 /* @@@PH Ascii2Unicode */ 2798 2868 2799 2869 return (nSize < ulLength) ? nSize : ulLength; 2800 2870 } … … 2802 2872 2803 2873 /***************************************************************************** 2804 * Name : COORD WIN32API OS2GetLargestConsoleWindowSize2874 * Name : COORD WIN32API GetLargestConsoleWindowSize 2805 2875 * Purpose : Determine maximum AVIO size 2806 * Parameters: 2807 * Variables : 2808 * Result : 2809 * Remark : 2810 * Status : 2876 * Parameters: 2877 * Variables : 2878 * Result : 2879 * Remark : 2880 * Status : 2811 2881 * 2812 2882 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2813 2883 *****************************************************************************/ 2814 2884 2815 COORD WIN32API OS2GetLargestConsoleWindowSize(HANDLE hConsoleOutput)2885 COORD WIN32API GetLargestConsoleWindowSize(HANDLE hConsoleOutput) 2816 2886 { 2817 2887 DWORD dwResult; 2818 2888 COORD coordResult; 2819 2889 2820 2890 #ifdef DEBUG_LOCAL2 2821 2891 WriteLog("KERNEL32/CONSOLE: OS2GetLargestConsoleWindowSize(%08x).\n", 2822 2892 hConsoleOutput); 2823 2893 #endif 2824 2894 2825 2895 dwResult = HMDeviceRequest(hConsoleOutput, 2826 2896 DRQ_GETLARGESTCONSOLEWINDOWSIZE, … … 2828 2898 0, 2829 2899 0, 2830 0); 2831 2900 0); 2901 2832 2902 ULONG2COORD(coordResult,dwResult) 2833 2903 return ( coordResult ); … … 2836 2906 2837 2907 /***************************************************************************** 2838 * Name : 2839 * Purpose : 2840 * Parameters: 2841 * Variables : 2842 * Result : 2843 * Remark : 2844 * Status : 2908 * Name : 2909 * Purpose : 2910 * Parameters: 2911 * Variables : 2912 * Result : 2913 * Remark : 2914 * Status : 2845 2915 * 2846 2916 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2847 2917 *****************************************************************************/ 2848 2918 2849 BOOL WIN32API OS2GetNumberOfConsoleInputEvents(HANDLE hConsoleInput,2919 BOOL WIN32API GetNumberOfConsoleInputEvents(HANDLE hConsoleInput, 2850 2920 LPDWORD lpNumberOfEvents) 2851 2921 { … … 2857 2927 lpNumberOfEvents); 2858 2928 #endif 2859 2929 2860 2930 fResult = (BOOL)HMDeviceRequest(hConsoleInput, 2861 2931 DRQ_GETNUMBEROFCONSOLEINPUTEVENTS, … … 2864 2934 0, 2865 2935 0); 2866 2936 2867 2937 return fResult; 2868 2938 } … … 2870 2940 2871 2941 /***************************************************************************** 2872 * Name : 2873 * Purpose : 2874 * Parameters: 2875 * Variables : 2876 * Result : 2877 * Remark : 2878 * Status : 2942 * Name : 2943 * Purpose : 2944 * Parameters: 2945 * Variables : 2946 * Result : 2947 * Remark : 2948 * Status : 2879 2949 * 2880 2950 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2881 2951 *****************************************************************************/ 2882 2952 2883 BOOL WIN32API OS2GetNumberOfConsoleMouseButtons(LPDWORD lpcNumberOfMouseButtons)2953 BOOL WIN32API GetNumberOfConsoleMouseButtons(LPDWORD lpcNumberOfMouseButtons) 2884 2954 { 2885 2955 LONG lMouseButtons; 2886 2956 2887 2957 #ifdef DEBUG_LOCAL2 2888 2958 WriteLog("KERNEL32/CONSOLE: OS2GetNumberOfConsoleMouseButtons(%08x).\n", 2889 2959 lpcNumberOfMouseButtons); 2890 2960 #endif 2891 2961 2892 2962 lMouseButtons = WinQuerySysValue(HWND_DESKTOP, /* query PM for that */ 2893 2963 SV_CMOUSEBUTTONS); 2894 2964 2895 2965 *lpcNumberOfMouseButtons = (DWORD)lMouseButtons; 2896 2966 2897 2967 return TRUE; 2898 2968 } … … 2900 2970 2901 2971 /***************************************************************************** 2902 * Name : 2903 * Purpose : 2904 * Parameters: 2905 * Variables : 2906 * Result : 2907 * Remark : 2908 * Status : 2972 * Name : 2973 * Purpose : 2974 * Parameters: 2975 * Variables : 2976 * Result : 2977 * Remark : 2978 * Status : 2909 2979 * 2910 2980 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2911 2981 *****************************************************************************/ 2912 2982 2913 BOOL WIN32API OS2PeekConsoleInputW(HANDLE hConsoleInput,2983 BOOL WIN32API PeekConsoleInputW(HANDLE hConsoleInput, 2914 2984 PINPUT_RECORD pirBuffer, 2915 2985 DWORD cInRecords, … … 2925 2995 lpcRead); 2926 2996 #endif 2927 2997 2928 2998 fResult = (BOOL)HMDeviceRequest(hConsoleInput, 2929 2999 DRQ_PEEKCONSOLEINPUTW, … … 2932 3002 (ULONG)lpcRead, 2933 3003 0); 2934 3004 2935 3005 return fResult; 2936 3006 } … … 2938 3008 2939 3009 /***************************************************************************** 2940 * Name : 2941 * Purpose : 2942 * Parameters: 2943 * Variables : 2944 * Result : 2945 * Remark : 2946 * Status : 3010 * Name : 3011 * Purpose : 3012 * Parameters: 3013 * Variables : 3014 * Result : 3015 * Remark : 3016 * Status : 2947 3017 * 2948 3018 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2949 3019 *****************************************************************************/ 2950 3020 2951 BOOL WIN32API OS2PeekConsoleInputA(HANDLE hConsoleInput,3021 BOOL WIN32API PeekConsoleInputA(HANDLE hConsoleInput, 2952 3022 PINPUT_RECORD pirBuffer, 2953 3023 DWORD cInRecords, … … 2955 3025 { 2956 3026 BOOL fResult; 2957 3027 2958 3028 #ifdef DEBUG_LOCAL2 2959 3029 WriteLog("KERNEL32/CONSOLE: OS2PeekConsoleInputA(%08x,%08x,%08x,%08x).\n", … … 2963 3033 lpcRead); 2964 3034 #endif 2965 3035 2966 3036 fResult = (BOOL)HMDeviceRequest(hConsoleInput, 2967 3037 DRQ_PEEKCONSOLEINPUTA, … … 2970 3040 (ULONG)lpcRead, 2971 3041 0); 2972 2973 return fResult; 2974 } 2975 2976 2977 /***************************************************************************** 2978 * Name : 2979 * Purpose : 2980 * Parameters: 2981 * Variables : 2982 * Result : 2983 * Remark : 2984 * Status : 3042 3043 return fResult; 3044 } 3045 3046 3047 /***************************************************************************** 3048 * Name : 3049 * Purpose : 3050 * Parameters: 3051 * Variables : 3052 * Result : 3053 * Remark : 3054 * Status : 2985 3055 * 2986 3056 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 2987 3057 *****************************************************************************/ 2988 3058 2989 BOOL WIN32API OS2ReadConsoleA(HANDLE hConsoleInput,3059 BOOL WIN32API ReadConsoleA(HANDLE hConsoleInput, 2990 3060 LPVOID lpvBuffer, 2991 3061 DWORD cchToRead, … … 2994 3064 { 2995 3065 BOOL fResult; 2996 3066 2997 3067 #ifdef DEBUG_LOCAL2 2998 3068 WriteLog("KERNEL32/CONSOLE: OS2ReadConsoleA(%08x,%08x,%08x,%08x,%08x).\n", … … 3003 3073 lpvReserved); 3004 3074 #endif 3005 3075 3006 3076 fResult = (BOOL)HMDeviceRequest(hConsoleInput, 3007 3077 DRQ_READCONSOLEA, … … 3010 3080 (ULONG)lpcchRead, 3011 3081 (ULONG)lpvReserved); 3012 3013 return fResult; 3014 } 3015 3016 3017 /***************************************************************************** 3018 * Name : 3019 * Purpose : 3020 * Parameters: 3021 * Variables : 3022 * Result : 3023 * Remark : 3024 * Status : 3082 3083 return fResult; 3084 } 3085 3086 3087 /***************************************************************************** 3088 * Name : 3089 * Purpose : 3090 * Parameters: 3091 * Variables : 3092 * Result : 3093 * Remark : 3094 * Status : 3025 3095 * 3026 3096 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3027 3097 *****************************************************************************/ 3028 3098 3029 BOOL WIN32API OS2ReadConsoleW(HANDLE hConsoleInput,3099 BOOL WIN32API ReadConsoleW(HANDLE hConsoleInput, 3030 3100 LPVOID lpvBuffer, 3031 3101 DWORD cchToRead, … … 3034 3104 { 3035 3105 BOOL fResult; 3036 3106 3037 3107 #ifdef DEBUG_LOCAL2 3038 3108 WriteLog("KERNEL32/CONSOLE: OS2ReadConsoleW(%08x,%08x,%08x,%08x,%08x).\n", … … 3043 3113 lpvReserved); 3044 3114 #endif 3045 3115 3046 3116 fResult = (BOOL)HMDeviceRequest(hConsoleInput, 3047 3117 DRQ_READCONSOLEW, … … 3050 3120 (ULONG)lpcchRead, 3051 3121 (ULONG)lpvReserved); 3052 3053 return fResult; 3054 } 3055 3056 3057 /***************************************************************************** 3058 * Name : 3059 * Purpose : 3060 * Parameters: 3061 * Variables : 3062 * Result : 3063 * Remark : 3064 * Status : 3122 3123 return fResult; 3124 } 3125 3126 3127 /***************************************************************************** 3128 * Name : 3129 * Purpose : 3130 * Parameters: 3131 * Variables : 3132 * Result : 3133 * Remark : 3134 * Status : 3065 3135 * 3066 3136 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3067 3137 *****************************************************************************/ 3068 3138 3069 BOOL WIN32API OS2ReadConsoleInputA(HANDLE hConsoleInput,3139 BOOL WIN32API ReadConsoleInputA(HANDLE hConsoleInput, 3070 3140 PINPUT_RECORD pirBuffer, 3071 3141 DWORD cInRecords, … … 3073 3143 { 3074 3144 BOOL fResult; 3075 3145 3076 3146 #ifdef DEBUG_LOCAL2 3077 3147 WriteLog("KERNEL32/CONSOLE: OS2ReadConsoleInputA(%08x,%08x,%08x,%08x).\n", … … 3081 3151 lpcRead); 3082 3152 #endif 3083 3153 3084 3154 fResult = (BOOL)HMDeviceRequest(hConsoleInput, 3085 3155 DRQ_READCONSOLEINPUTA, … … 3088 3158 (ULONG)lpcRead, 3089 3159 0); 3090 3091 return fResult; 3092 } 3093 3094 3095 /***************************************************************************** 3096 * Name : 3097 * Purpose : 3098 * Parameters: 3099 * Variables : 3100 * Result : 3101 * Remark : 3102 * Status : 3160 3161 return fResult; 3162 } 3163 3164 3165 /***************************************************************************** 3166 * Name : 3167 * Purpose : 3168 * Parameters: 3169 * Variables : 3170 * Result : 3171 * Remark : 3172 * Status : 3103 3173 * 3104 3174 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3105 3175 *****************************************************************************/ 3106 3176 3107 BOOL WIN32API OS2ReadConsoleInputW(HANDLE hConsoleInput,3177 BOOL WIN32API ReadConsoleInputW(HANDLE hConsoleInput, 3108 3178 PINPUT_RECORD pirBuffer, 3109 3179 DWORD cInRecords, … … 3111 3181 { 3112 3182 BOOL fResult; 3113 3183 3114 3184 #ifdef DEBUG_LOCAL2 3115 3185 WriteLog("KERNEL32/CONSOLE: OS2ReadConsoleInputW(%08x,%08x,%08x,%08x).\n", … … 3119 3189 lpcRead); 3120 3190 #endif 3121 3191 3122 3192 fResult = (BOOL)HMDeviceRequest(hConsoleInput, 3123 3193 DRQ_READCONSOLEINPUTW, … … 3126 3196 (ULONG)lpcRead, 3127 3197 0); 3128 3129 return fResult; 3130 } 3131 3132 3133 /***************************************************************************** 3134 * Name : 3135 * Purpose : 3136 * Parameters: 3137 * Variables : 3138 * Result : 3139 * Remark : 3140 * Status : 3198 3199 return fResult; 3200 } 3201 3202 3203 /***************************************************************************** 3204 * Name : 3205 * Purpose : 3206 * Parameters: 3207 * Variables : 3208 * Result : 3209 * Remark : 3210 * Status : 3141 3211 * 3142 3212 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3143 3213 *****************************************************************************/ 3144 3214 3145 BOOL WIN32API OS2ReadConsoleOutputA(HANDLE hConsoleOutput,3215 BOOL WIN32API ReadConsoleOutputA(HANDLE hConsoleOutput, 3146 3216 PCHAR_INFO pchiDestBuffer, 3147 3217 COORD coordDestBufferSize, … … 3150 3220 { 3151 3221 BOOL fResult; 3152 3222 3153 3223 #ifdef DEBUG_LOCAL2 3154 3224 WriteLog("KERNEL32/CONSOLE: OS2ReadConsoleOutputA(%08x,%08x,%08x,%08x,%08x).\n", … … 3159 3229 psrctSourceRect); 3160 3230 #endif 3161 3231 3162 3232 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3163 3233 DRQ_READCONSOLEOUTPUTA, … … 3166 3236 COORD2ULONG(coordDestBufferCoord), 3167 3237 (ULONG)psrctSourceRect); 3168 3169 return fResult; 3170 } 3171 3172 3173 /***************************************************************************** 3174 * Name : 3175 * Purpose : 3176 * Parameters: 3177 * Variables : 3178 * Result : 3179 * Remark : 3180 * Status : 3238 3239 return fResult; 3240 } 3241 3242 3243 /***************************************************************************** 3244 * Name : 3245 * Purpose : 3246 * Parameters: 3247 * Variables : 3248 * Result : 3249 * Remark : 3250 * Status : 3181 3251 * 3182 3252 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3183 3253 *****************************************************************************/ 3184 3254 3185 BOOL WIN32API OS2ReadConsoleOutputW(HANDLE hConsoleOutput,3255 BOOL WIN32API ReadConsoleOutputW(HANDLE hConsoleOutput, 3186 3256 PCHAR_INFO pchiDestBuffer, 3187 3257 COORD coordDestBufferSize, … … 3190 3260 { 3191 3261 BOOL fResult; 3192 3262 3193 3263 #ifdef DEBUG_LOCAL2 3194 3264 WriteLog("KERNEL32/CONSOLE: OS2ReadConsoleOutputW(%08x,%08x,%08x,%08x,%08x).\n", … … 3199 3269 psrctSourceRect); 3200 3270 #endif 3201 3271 3202 3272 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3203 3273 DRQ_READCONSOLEOUTPUTW, … … 3206 3276 COORD2ULONG(coordDestBufferCoord), 3207 3277 (ULONG)psrctSourceRect); 3208 3209 return fResult; 3210 } 3211 3212 3213 /***************************************************************************** 3214 * Name : 3215 * Purpose : 3216 * Parameters: 3217 * Variables : 3218 * Result : 3219 * Remark : 3220 * Status : 3278 3279 return fResult; 3280 } 3281 3282 3283 /***************************************************************************** 3284 * Name : 3285 * Purpose : 3286 * Parameters: 3287 * Variables : 3288 * Result : 3289 * Remark : 3290 * Status : 3221 3291 * 3222 3292 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3223 3293 *****************************************************************************/ 3224 3294 3225 BOOL WIN32API OS2ReadConsoleOutputAttribute(HANDLE hConsoleOutput,3295 BOOL WIN32API ReadConsoleOutputAttribute(HANDLE hConsoleOutput, 3226 3296 LPWORD lpwAttribute, 3227 3297 DWORD cReadCells, … … 3230 3300 { 3231 3301 BOOL fResult; 3232 3302 3233 3303 #ifdef DEBUG_LOCAL2 3234 3304 WriteLog("KERNEL32/CONSOLE: OS2ReadConsoleOutputAttribute(%08x,%08x,%08x,%08x,%08x).\n", … … 3239 3309 lpcNumberRead); 3240 3310 #endif 3241 3311 3242 3312 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3243 3313 DRQ_READCONSOLEOUTPUTATTRIBUTE, … … 3246 3316 COORD2ULONG(coordReadCoord), 3247 3317 (ULONG)lpcNumberRead); 3248 3249 return fResult; 3250 } 3251 3252 3253 /***************************************************************************** 3254 * Name : 3255 * Purpose : 3256 * Parameters: 3257 * Variables : 3258 * Result : 3259 * Remark : 3260 * Status : 3318 3319 return fResult; 3320 } 3321 3322 3323 /***************************************************************************** 3324 * Name : 3325 * Purpose : 3326 * Parameters: 3327 * Variables : 3328 * Result : 3329 * Remark : 3330 * Status : 3261 3331 * 3262 3332 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3263 3333 *****************************************************************************/ 3264 3334 3265 BOOL WIN32API OS2ReadConsoleOutputCharacterA(HANDLE hConsoleOutput,3335 BOOL WIN32API ReadConsoleOutputCharacterA(HANDLE hConsoleOutput, 3266 3336 LPTSTR lpReadBuffer, 3267 3337 DWORD cchRead, … … 3270 3340 { 3271 3341 BOOL fResult; 3272 3342 3273 3343 #ifdef DEBUG_LOCAL2 3274 3344 WriteLog("KERNEL32/CONSOLE: OS2ReadConsoleOutputCharacterA(%08x,%08x,%08x,%08x,%08x).\n", … … 3279 3349 lpcNumberRead); 3280 3350 #endif 3281 3351 3282 3352 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3283 3353 DRQ_READCONSOLEOUTPUTCHARACTERA, … … 3286 3356 COORD2ULONG(coordReadCoord), 3287 3357 (ULONG)lpcNumberRead); 3288 3289 return fResult; 3290 } 3291 3292 3293 /***************************************************************************** 3294 * Name : 3295 * Purpose : 3296 * Parameters: 3297 * Variables : 3298 * Result : 3299 * Remark : 3300 * Status : 3358 3359 return fResult; 3360 } 3361 3362 3363 /***************************************************************************** 3364 * Name : 3365 * Purpose : 3366 * Parameters: 3367 * Variables : 3368 * Result : 3369 * Remark : 3370 * Status : 3301 3371 * 3302 3372 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3303 3373 *****************************************************************************/ 3304 3374 3305 BOOL WIN32API OS2ReadConsoleOutputCharacterW(HANDLE hConsoleOutput,3375 BOOL WIN32API ReadConsoleOutputCharacterW(HANDLE hConsoleOutput, 3306 3376 LPTSTR lpReadBuffer, 3307 3377 DWORD cchRead, … … 3310 3380 { 3311 3381 BOOL fResult; 3312 3382 3313 3383 #ifdef DEBUG_LOCAL2 3314 3384 WriteLog("KERNEL32/CONSOLE: OS2ReadConsoleOutputCharacterW(%08x,%08x,%08x,%08x,%08x).\n", … … 3319 3389 lpcNumberRead); 3320 3390 #endif 3321 3391 3322 3392 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3323 3393 DRQ_READCONSOLEOUTPUTCHARACTERW, … … 3326 3396 COORD2ULONG(coordReadCoord), 3327 3397 (ULONG)lpcNumberRead); 3328 3329 return fResult; 3330 } 3331 3332 3333 /***************************************************************************** 3334 * Name : 3335 * Purpose : 3336 * Parameters: 3337 * Variables : 3338 * Result : 3339 * Remark : 3340 * Status : 3398 3399 return fResult; 3400 } 3401 3402 3403 /***************************************************************************** 3404 * Name : 3405 * Purpose : 3406 * Parameters: 3407 * Variables : 3408 * Result : 3409 * Remark : 3410 * Status : 3341 3411 * 3342 3412 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3343 3413 *****************************************************************************/ 3344 3414 3345 BOOL WIN32API OS2ScrollConsoleScreenBufferA(HANDLE hConsoleOutput,3415 BOOL WIN32API ScrollConsoleScreenBufferA(HANDLE hConsoleOutput, 3346 3416 PSMALL_RECT psrctSourceRect, 3347 3417 PSMALL_RECT psrctClipRect, … … 3350 3420 { 3351 3421 BOOL fResult; 3352 3422 3353 3423 #ifdef DEBUG_LOCAL2 3354 3424 WriteLog("KERNEL32/CONSOLE: OS2ScrollConsoleScreenBufferA(%08x,%08x,%08x,%08x,%08x).\n", … … 3359 3429 pchiFill); 3360 3430 #endif 3361 3431 3362 3432 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3363 3433 DRQ_SCROLLCONSOLESCREENBUFFERA, … … 3366 3436 COORD2ULONG(coordDestOrigin), 3367 3437 (ULONG)pchiFill); 3368 3369 return fResult; 3370 } 3371 3372 3373 /***************************************************************************** 3374 * Name : 3375 * Purpose : 3376 * Parameters: 3377 * Variables : 3378 * Result : 3379 * Remark : 3380 * Status : 3438 3439 return fResult; 3440 } 3441 3442 3443 /***************************************************************************** 3444 * Name : 3445 * Purpose : 3446 * Parameters: 3447 * Variables : 3448 * Result : 3449 * Remark : 3450 * Status : 3381 3451 * 3382 3452 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3383 3453 *****************************************************************************/ 3384 3454 3385 BOOL WIN32API OS2ScrollConsoleScreenBufferW(HANDLE hConsoleOutput,3455 BOOL WIN32API ScrollConsoleScreenBufferW(HANDLE hConsoleOutput, 3386 3456 PSMALL_RECT psrctSourceRect, 3387 3457 PSMALL_RECT psrctClipRect, … … 3390 3460 { 3391 3461 BOOL fResult; 3392 3462 3393 3463 #ifdef DEBUG_LOCAL2 3394 3464 WriteLog("KERNEL32/CONSOLE: OS2ScrollConsoleScreenBufferW(%08x,%08x,%08x,%08x,%08x).\n", … … 3399 3469 pchiFill); 3400 3470 #endif 3401 3471 3402 3472 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3403 3473 DRQ_SCROLLCONSOLESCREENBUFFERW, … … 3406 3476 COORD2ULONG(coordDestOrigin), 3407 3477 (ULONG)pchiFill); 3408 3409 return fResult; 3410 } 3411 3412 /***************************************************************************** 3413 * Name : 3414 * Purpose : 3415 * Parameters: 3416 * Variables : 3417 * Result : 3418 * Remark : 3419 * Status : 3478 3479 return fResult; 3480 } 3481 3482 /***************************************************************************** 3483 * Name : 3484 * Purpose : 3485 * Parameters: 3486 * Variables : 3487 * Result : 3488 * Remark : 3489 * Status : 3420 3490 * 3421 3491 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3422 3492 *****************************************************************************/ 3423 3493 3424 BOOL WIN32API OS2SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput)3494 BOOL WIN32API SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput) 3425 3495 { 3426 3496 BOOL fResult; 3427 3497 3428 3498 #ifdef DEBUG_LOCAL2 3429 3499 WriteLog("KERNEL32/CONSOLE: OS2SetConsoleActiveScreenBuffer(%08x).\n", 3430 3500 hConsoleOutput); 3431 3501 #endif 3432 3502 3433 3503 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3434 3504 DRQ_SETCONSOLEACTIVESCREENBUFFER, … … 3437 3507 0, 3438 3508 0); 3439 3440 return fResult; 3441 } 3442 3443 3444 /***************************************************************************** 3445 * Name : 3446 * Purpose : 3447 * Parameters: 3448 * Variables : 3449 * Result : 3450 * Remark : 3451 * Status : 3509 3510 return fResult; 3511 } 3512 3513 3514 /***************************************************************************** 3515 * Name : 3516 * Purpose : 3517 * Parameters: 3518 * Variables : 3519 * Result : 3520 * Remark : 3521 * Status : 3452 3522 * 3453 3523 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3454 3524 *****************************************************************************/ 3455 3525 3456 BOOL WIN32API OS2SetConsoleCP(UINT IDCodePage)3526 BOOL WIN32API SetConsoleCP(UINT IDCodePage) 3457 3527 { 3458 3528 #ifdef DEBUG_LOCAL2 … … 3460 3530 IDCodePage); 3461 3531 #endif 3462 3532 3463 3533 return TRUE; 3464 3534 } … … 3466 3536 3467 3537 /***************************************************************************** 3468 * Name : 3469 * Purpose : 3470 * Parameters: 3471 * Variables : 3472 * Result : 3473 * Remark : 3474 * Status : 3538 * Name : 3539 * Purpose : 3540 * Parameters: 3541 * Variables : 3542 * Result : 3543 * Remark : 3544 * Status : 3475 3545 * 3476 3546 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3477 3547 *****************************************************************************/ 3478 3548 3479 BOOL WIN32API OS2SetConsoleCtrlHandler(PHANDLER_ROUTINE pHandlerRoutine,3549 BOOL WIN32API SetConsoleCtrlHandler(PHANDLER_ROUTINE pHandlerRoutine, 3480 3550 BOOL fAdd) 3481 3551 { … … 3485 3555 fAdd); 3486 3556 #endif 3487 3557 3488 3558 return TRUE; 3489 3559 } … … 3491 3561 3492 3562 /***************************************************************************** 3493 * Name : 3494 * Purpose : 3495 * Parameters: 3496 * Variables : 3497 * Result : 3498 * Remark : 3499 * Status : 3563 * Name : 3564 * Purpose : 3565 * Parameters: 3566 * Variables : 3567 * Result : 3568 * Remark : 3569 * Status : 3500 3570 * 3501 3571 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3502 3572 *****************************************************************************/ 3503 3573 3504 BOOL WIN32API OS2SetConsoleCursorInfo(HANDLE hConsoleOutput,3574 BOOL WIN32API SetConsoleCursorInfo(HANDLE hConsoleOutput, 3505 3575 PCONSOLE_CURSOR_INFO lpConsoleCursorInfo) 3506 3576 { 3507 3577 BOOL fResult; 3508 3578 3509 3579 #ifdef DEBUG_LOCAL2 3510 3580 WriteLog("KERNEL32/CONSOLE: OS2SetConsoleCursorInfo(%08x,%08x).\n", … … 3512 3582 lpConsoleCursorInfo); 3513 3583 #endif 3514 3584 3515 3585 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3516 3586 DRQ_SETCONSOLECURSORINFO, … … 3519 3589 0, 3520 3590 0); 3521 3522 return fResult; 3523 } 3524 3525 3526 /***************************************************************************** 3527 * Name : 3528 * Purpose : 3529 * Parameters: 3530 * Variables : 3531 * Result : 3532 * Remark : 3533 * Status : 3591 3592 return fResult; 3593 } 3594 3595 3596 /***************************************************************************** 3597 * Name : 3598 * Purpose : 3599 * Parameters: 3600 * Variables : 3601 * Result : 3602 * Remark : 3603 * Status : 3534 3604 * 3535 3605 * Author : Patrick Haller [Tue, 1998/02/10 01:55] … … 3537 3607 *****************************************************************************/ 3538 3608 3539 BOOL WIN32API OS2SetConsoleCursorPosition(HANDLE hConsoleOutput,3609 BOOL WIN32API SetConsoleCursorPosition(HANDLE hConsoleOutput, 3540 3610 COORD coordCursor) 3541 3611 { 3542 3612 BOOL fResult; 3543 3613 3544 3614 #ifdef DEBUG_LOCAL2 3545 3615 WriteLog("KERNEL32/CONSOLE: OS2SetConsoleCursorPosition(%08x,%08x).\n", … … 3547 3617 coordCursor); 3548 3618 #endif 3549 3619 3550 3620 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3551 3621 DRQ_SETCONSOLECURSORPOSITION, … … 3554 3624 0, 3555 3625 0); 3556 3557 return fResult; 3558 } 3559 3560 3561 /***************************************************************************** 3562 * Name : 3563 * Purpose : 3564 * Parameters: 3565 * Variables : 3566 * Result : 3567 * Remark : 3568 * Status : 3626 3627 return fResult; 3628 } 3629 3630 3631 /***************************************************************************** 3632 * Name : 3633 * Purpose : 3634 * Parameters: 3635 * Variables : 3636 * Result : 3637 * Remark : 3638 * Status : 3569 3639 * 3570 3640 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3571 3641 *****************************************************************************/ 3572 3642 3573 BOOL WIN32API OS2SetConsoleMode(HANDLE hConsole,3643 BOOL WIN32API SetConsoleMode(HANDLE hConsole, 3574 3644 DWORD fdwMode) 3575 3645 { 3576 3646 BOOL fResult; 3577 3647 3578 3648 #ifdef DEBUG_LOCAL2 3579 3649 WriteLog("KERNEL32/CONSOLE: OS2SetConsoleMode(%08x,%08x).\n", … … 3581 3651 fdwMode); 3582 3652 #endif 3583 3653 3584 3654 fResult = (BOOL)HMDeviceRequest(hConsole, 3585 3655 DRQ_SETCONSOLEMODE, … … 3588 3658 0, 3589 3659 0); 3590 3660 3591 3661 return fResult; 3592 3662 } … … 3594 3664 3595 3665 /***************************************************************************** 3596 * Name : 3597 * Purpose : 3598 * Parameters: 3599 * Variables : 3600 * Result : 3601 * Remark : 3602 * Status : 3666 * Name : 3667 * Purpose : 3668 * Parameters: 3669 * Variables : 3670 * Result : 3671 * Remark : 3672 * Status : 3603 3673 * 3604 3674 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3605 3675 *****************************************************************************/ 3606 3676 3607 BOOL WIN32API OS2SetConsoleOutputCP(UINT IDCodePage)3677 BOOL WIN32API SetConsoleOutputCP(UINT IDCodePage) 3608 3678 { 3609 3679 #ifdef DEBUG_LOCAL2 … … 3611 3681 IDCodePage); 3612 3682 #endif 3613 3683 3614 3684 return TRUE; 3615 3685 } … … 3617 3687 3618 3688 /***************************************************************************** 3619 * Name : 3620 * Purpose : 3621 * Parameters: 3622 * Variables : 3623 * Result : 3624 * Remark : 3625 * Status : 3689 * Name : 3690 * Purpose : 3691 * Parameters: 3692 * Variables : 3693 * Result : 3694 * Remark : 3695 * Status : 3626 3696 * 3627 3697 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3628 3698 *****************************************************************************/ 3629 3699 3630 BOOL WIN32API OS2SetConsoleScreenBufferSize(HANDLE hConsoleOutput,3700 BOOL WIN32API SetConsoleScreenBufferSize(HANDLE hConsoleOutput, 3631 3701 COORD coordSize) 3632 3702 { 3633 3703 BOOL fResult; 3634 3704 3635 3705 #ifdef DEBUG_LOCAL2 3636 3706 WriteLog("KERNEL32/CONSOLE: OS2SetConsoleScreenBufferSize(%08x,%08x).\n", … … 3638 3708 coordSize); 3639 3709 #endif 3640 3710 3641 3711 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3642 3712 DRQ_SETCONSOLESCREENBUFFERSIZE, … … 3645 3715 0, 3646 3716 0); 3647 3648 return fResult; 3649 } 3650 3651 3652 /***************************************************************************** 3653 * Name : 3654 * Purpose : 3655 * Parameters: 3656 * Variables : 3657 * Result : 3658 * Remark : 3659 * Status : 3717 3718 return fResult; 3719 } 3720 3721 3722 /***************************************************************************** 3723 * Name : 3724 * Purpose : 3725 * Parameters: 3726 * Variables : 3727 * Result : 3728 * Remark : 3729 * Status : 3660 3730 * 3661 3731 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3662 3732 *****************************************************************************/ 3663 3733 3664 BOOL WIN32API OS2SetConsoleTextAttribute(HANDLE hConsoleOutput,3734 BOOL WIN32API SetConsoleTextAttribute(HANDLE hConsoleOutput, 3665 3735 WORD wAttr) 3666 3736 { 3667 3737 BOOL fResult; 3668 3738 3669 3739 #ifdef DEBUG_LOCAL2 3670 3740 WriteLog("KERNEL32/CONSOLE: OS2SetConsoleTextAttribute(%08x,%04x).\n", … … 3672 3742 wAttr); 3673 3743 #endif 3674 3744 3675 3745 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3676 3746 DRQ_SETCONSOLETEXTATTRIBUTE, … … 3679 3749 0, 3680 3750 0); 3681 3682 return fResult; 3683 } 3684 3685 3686 /***************************************************************************** 3687 * Name : BOOL WIN32API OS2SetConsoleTitleA3751 3752 return fResult; 3753 } 3754 3755 3756 /***************************************************************************** 3757 * Name : BOOL WIN32API SetConsoleTitleA 3688 3758 * Purpose : Set new title text for the console window 3689 3759 * Parameters: LPTSTR lpszTitle 3690 3760 * Variables : 3691 * Result : 3761 * Result : 3692 3762 * Remark : 3693 3763 * Status : REWRITTEN UNTESTED … … 3696 3766 *****************************************************************************/ 3697 3767 3698 BOOL WIN32API OS2SetConsoleTitleA(LPTSTR lpszTitle)3768 BOOL WIN32API SetConsoleTitleA(LPTSTR lpszTitle) 3699 3769 { 3700 3770 #ifdef DEBUG_LOCAL2 … … 3702 3772 lpszTitle); 3703 3773 #endif 3704 3774 3705 3775 if (ConsoleGlobals.pszWindowTitle != NULL) /* previously set name */ 3706 3776 free (ConsoleGlobals.pszWindowTitle); /* then free it */ 3707 3777 3708 3778 ConsoleGlobals.pszWindowTitle = strdup(lpszTitle); /* copy the new name */ 3709 3779 3710 3780 WinSetWindowText(ConsoleGlobals.hwndFrame, /* set new title text */ 3711 3781 ConsoleGlobals.pszWindowTitle); 3712 3782 3713 3783 return TRUE; 3714 3784 } … … 3716 3786 3717 3787 /***************************************************************************** 3718 * Name : BOOL WIN32API OS2SetConsoleTitleW3788 * Name : BOOL WIN32API SetConsoleTitleW 3719 3789 * Purpose : Set new title text for the console window 3720 3790 * Parameters: LPTSTR lpszTitle 3721 3791 * Variables : 3722 * Result : 3792 * Result : 3723 3793 * Remark : 3724 3794 * Status : REWRITTEN UNTESTED … … 3727 3797 *****************************************************************************/ 3728 3798 3729 BOOL WIN32API OS2SetConsoleTitleW(LPTSTR lpszTitle)3799 BOOL WIN32API SetConsoleTitleW(LPTSTR lpszTitle) 3730 3800 { 3731 3801 #ifdef DEBUG_LOCAL2 … … 3733 3803 lpszTitle); 3734 3804 #endif 3735 3805 3736 3806 /* @@@PH Unicode2Ascii */ 3737 3807 3738 3808 if (ConsoleGlobals.pszWindowTitle != NULL) /* previously set name */ 3739 3809 free (ConsoleGlobals.pszWindowTitle); /* then free it */ 3740 3810 3741 3811 ConsoleGlobals.pszWindowTitle = strdup(lpszTitle); /* copy the new name */ 3742 3812 3743 3813 WinSetWindowText(ConsoleGlobals.hwndFrame, /* set new title text */ 3744 3814 ConsoleGlobals.pszWindowTitle); 3745 3815 3746 3816 return TRUE; 3747 3817 } … … 3749 3819 3750 3820 /***************************************************************************** 3751 * Name : 3752 * Purpose : 3753 * Parameters: 3754 * Variables : 3755 * Result : 3756 * Remark : 3757 * Status : 3821 * Name : 3822 * Purpose : 3823 * Parameters: 3824 * Variables : 3825 * Result : 3826 * Remark : 3827 * Status : 3758 3828 * 3759 3829 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3760 3830 *****************************************************************************/ 3761 3831 3762 BOOL WIN32API OS2SetConsoleWindowInfo(HANDLE hConsoleOutput,3832 BOOL WIN32API SetConsoleWindowInfo(HANDLE hConsoleOutput, 3763 3833 BOOL fAbsolute, 3764 3834 PSMALL_RECT psrctWindowRect) 3765 3835 { 3766 3836 BOOL fResult; 3767 3837 3768 3838 #ifdef DEBUG_LOCAL2 3769 3839 WriteLog("KERNEL32/CONSOLE: OS2SetConsoleWindowInfo(%08x,%08x,%08x).\n", … … 3772 3842 psrctWindowRect); 3773 3843 #endif 3774 3844 3775 3845 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3776 3846 DRQ_SETCONSOLEWINDOWINFO, … … 3779 3849 0, 3780 3850 0); 3781 3782 return fResult; 3783 } 3784 3785 3786 /***************************************************************************** 3787 * Name : 3788 * Purpose : 3789 * Parameters: 3790 * Variables : 3791 * Result : 3792 * Remark : 3793 * Status : 3851 3852 return fResult; 3853 } 3854 3855 3856 /***************************************************************************** 3857 * Name : 3858 * Purpose : 3859 * Parameters: 3860 * Variables : 3861 * Result : 3862 * Remark : 3863 * Status : 3794 3864 * 3795 3865 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3796 3866 *****************************************************************************/ 3797 3867 3798 BOOL WIN32API OS2WriteConsoleA(HANDLE hConsoleOutput,3868 BOOL WIN32API WriteConsoleA(HANDLE hConsoleOutput, 3799 3869 CONST VOID* lpvBuffer, 3800 3870 DWORD cchToWrite, … … 3803 3873 { 3804 3874 BOOL fResult; 3805 3875 3806 3876 #ifdef DEBUG_LOCAL2 3807 3877 WriteLog("KERNEL32/CONSOLE: OS2WriteConsoleA(%08x,%08x,%08x,%08x,%08x).\n", … … 3812 3882 lpvReserved); 3813 3883 #endif 3814 3884 3815 3885 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3816 3886 DRQ_WRITECONSOLEA, … … 3819 3889 (ULONG)lpcchWritten, 3820 3890 (ULONG)lpvReserved); 3821 3822 return fResult; 3823 } 3824 3825 3826 /***************************************************************************** 3827 * Name : 3828 * Purpose : 3829 * Parameters: 3830 * Variables : 3831 * Result : 3832 * Remark : 3833 * Status : 3891 3892 return fResult; 3893 } 3894 3895 3896 /***************************************************************************** 3897 * Name : 3898 * Purpose : 3899 * Parameters: 3900 * Variables : 3901 * Result : 3902 * Remark : 3903 * Status : 3834 3904 * 3835 3905 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3836 3906 *****************************************************************************/ 3837 3907 3838 BOOL WIN32API OS2WriteConsoleW(HANDLE hConsoleOutput,3908 BOOL WIN32API WriteConsoleW(HANDLE hConsoleOutput, 3839 3909 CONST VOID* lpvBuffer, 3840 3910 DWORD cchToWrite, … … 3843 3913 { 3844 3914 BOOL fResult; 3845 3915 3846 3916 #ifdef DEBUG_LOCAL2 3847 3917 WriteLog("KERNEL32/CONSOLE: OS2WriteConsoleW(%08x,%08x,%08x,%08x,%08x).\n", … … 3852 3922 lpvReserved); 3853 3923 #endif 3854 3924 3855 3925 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3856 3926 DRQ_WRITECONSOLEW, … … 3859 3929 (ULONG)lpcchWritten, 3860 3930 (ULONG)lpvReserved); 3861 3862 return fResult; 3863 } 3864 3865 3866 /***************************************************************************** 3867 * Name : 3868 * Purpose : 3869 * Parameters: 3870 * Variables : 3871 * Result : 3872 * Remark : 3873 * Status : 3931 3932 return fResult; 3933 } 3934 3935 3936 /***************************************************************************** 3937 * Name : 3938 * Purpose : 3939 * Parameters: 3940 * Variables : 3941 * Result : 3942 * Remark : 3943 * Status : 3874 3944 * 3875 3945 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3876 3946 *****************************************************************************/ 3877 3947 3878 BOOL WIN32API OS2WriteConsoleInputA(HANDLE hConsoleInput,3948 BOOL WIN32API WriteConsoleInputA(HANDLE hConsoleInput, 3879 3949 PINPUT_RECORD pirBuffer, 3880 3950 DWORD cInRecords, … … 3882 3952 { 3883 3953 BOOL fResult; 3884 3954 3885 3955 #ifdef DEBUG_LOCAL2 3886 3956 WriteLog("KERNEL32/CONSOLE: OS2WriteConsoleInputA(%08x,%08x,%08x,%08x).\n", … … 3890 3960 lpcWritten); 3891 3961 #endif 3892 3962 3893 3963 fResult = (BOOL)HMDeviceRequest(hConsoleInput, 3894 3964 DRQ_WRITECONSOLEINPUTA, … … 3897 3967 (ULONG)lpcWritten, 3898 3968 0); 3899 3900 return fResult; 3901 } 3902 3903 3904 /***************************************************************************** 3905 * Name : 3906 * Purpose : 3907 * Parameters: 3908 * Variables : 3909 * Result : 3910 * Remark : 3911 * Status : 3969 3970 return fResult; 3971 } 3972 3973 3974 /***************************************************************************** 3975 * Name : 3976 * Purpose : 3977 * Parameters: 3978 * Variables : 3979 * Result : 3980 * Remark : 3981 * Status : 3912 3982 * 3913 3983 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3914 3984 *****************************************************************************/ 3915 3985 3916 BOOL WIN32API OS2WriteConsoleInputW(HANDLE hConsoleInput,3986 BOOL WIN32API WriteConsoleInputW(HANDLE hConsoleInput, 3917 3987 PINPUT_RECORD pirBuffer, 3918 3988 DWORD cInRecords, … … 3920 3990 { 3921 3991 BOOL fResult; 3922 3992 3923 3993 #ifdef DEBUG_LOCAL2 3924 3994 WriteLog("KERNEL32/CONSOLE: OS2WriteConsoleInputW(%08x,%08x,%08x,%08x).\n", … … 3928 3998 lpcWritten); 3929 3999 #endif 3930 4000 3931 4001 fResult = (BOOL)HMDeviceRequest(hConsoleInput, 3932 4002 DRQ_WRITECONSOLEINPUTW, … … 3935 4005 (ULONG)lpcWritten, 3936 4006 0); 3937 3938 return fResult; 3939 } 3940 3941 3942 /***************************************************************************** 3943 * Name : 3944 * Purpose : 3945 * Parameters: 3946 * Variables : 3947 * Result : 3948 * Remark : 3949 * Status : 4007 4008 return fResult; 4009 } 4010 4011 4012 /***************************************************************************** 4013 * Name : 4014 * Purpose : 4015 * Parameters: 4016 * Variables : 4017 * Result : 4018 * Remark : 4019 * Status : 3950 4020 * 3951 4021 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3952 4022 *****************************************************************************/ 3953 4023 3954 BOOL WIN32API OS2WriteConsoleOutputA(HANDLE hConsoleOutput,4024 BOOL WIN32API WriteConsoleOutputA(HANDLE hConsoleOutput, 3955 4025 PCHAR_INFO pchiSrcBuffer, 3956 4026 COORD coordSrcBufferSize, … … 3959 4029 { 3960 4030 BOOL fResult; 3961 4031 3962 4032 #ifdef DEBUG_LOCAL2 3963 4033 WriteLog("KERNEL32/CONSOLE: OS2WriteConsoleOutputA(%08x,%08x,%08x,%08x,%08x).\n", … … 3968 4038 psrctDestRect); 3969 4039 #endif 3970 4040 3971 4041 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 3972 4042 DRQ_WRITECONSOLEOUTPUTA, … … 3975 4045 COORD2ULONG(coordSrcBufferCoord), 3976 4046 (ULONG)psrctDestRect); 3977 3978 return fResult; 3979 } 3980 3981 3982 /***************************************************************************** 3983 * Name : 3984 * Purpose : 3985 * Parameters: 3986 * Variables : 3987 * Result : 3988 * Remark : 3989 * Status : 4047 4048 return fResult; 4049 } 4050 4051 4052 /***************************************************************************** 4053 * Name : 4054 * Purpose : 4055 * Parameters: 4056 * Variables : 4057 * Result : 4058 * Remark : 4059 * Status : 3990 4060 * 3991 4061 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 3992 4062 *****************************************************************************/ 3993 4063 3994 BOOL WIN32API OS2WriteConsoleOutputW(HANDLE hConsoleOutput,4064 BOOL WIN32API WriteConsoleOutputW(HANDLE hConsoleOutput, 3995 4065 PCHAR_INFO pchiSrcBuffer, 3996 4066 COORD coordSrcBufferSize, … … 3999 4069 { 4000 4070 BOOL fResult; 4001 4071 4002 4072 #ifdef DEBUG_LOCAL2 4003 4073 WriteLog("KERNEL32/CONSOLE: OS2WriteConsoleOutputW(%08x,%08x,%08x,%08x,%08x).\n", … … 4008 4078 psrctDestRect); 4009 4079 #endif 4010 4080 4011 4081 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 4012 4082 DRQ_WRITECONSOLEOUTPUTW, … … 4015 4085 COORD2ULONG(coordSrcBufferCoord), 4016 4086 (ULONG)psrctDestRect); 4017 4018 return fResult; 4019 } 4020 4021 /***************************************************************************** 4022 * Name : 4023 * Purpose : 4024 * Parameters: 4025 * Variables : 4026 * Result : 4027 * Remark : 4028 * Status : 4087 4088 return fResult; 4089 } 4090 4091 /***************************************************************************** 4092 * Name : 4093 * Purpose : 4094 * Parameters: 4095 * Variables : 4096 * Result : 4097 * Remark : 4098 * Status : 4029 4099 * 4030 4100 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 4031 4101 *****************************************************************************/ 4032 4102 4033 BOOL WIN32API OS2WriteConsoleOutputAttribute(HANDLE hConsoleOutput,4103 BOOL WIN32API WriteConsoleOutputAttribute(HANDLE hConsoleOutput, 4034 4104 LPWORD lpwAttribute, 4035 4105 DWORD cWriteCells, … … 4038 4108 { 4039 4109 BOOL fResult; 4040 4110 4041 4111 #ifdef DEBUG_LOCAL2 4042 4112 WriteLog("KERNEL32/CONSOLE: OS2WriteConsoleOutputAttribute(%08x,%08x,%08x,%08x,%08x).\n", … … 4047 4117 lpcNumberWritten); 4048 4118 #endif 4049 4119 4050 4120 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 4051 4121 DRQ_WRITECONSOLEOUTPUTATTRIBUTE, … … 4054 4124 COORD2ULONG(coordWriteCoord), 4055 4125 (ULONG)lpcNumberWritten); 4056 4057 return fResult; 4058 } 4059 4060 4061 /***************************************************************************** 4062 * Name : 4063 * Purpose : 4064 * Parameters: 4065 * Variables : 4066 * Result : 4067 * Remark : 4068 * Status : 4126 4127 return fResult; 4128 } 4129 4130 4131 /***************************************************************************** 4132 * Name : 4133 * Purpose : 4134 * Parameters: 4135 * Variables : 4136 * Result : 4137 * Remark : 4138 * Status : 4069 4139 * 4070 4140 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 4071 4141 *****************************************************************************/ 4072 4142 4073 BOOL WIN32API OS2WriteConsoleOutputCharacterA(HANDLE hConsoleOutput,4143 BOOL WIN32API WriteConsoleOutputCharacterA(HANDLE hConsoleOutput, 4074 4144 LPTSTR lpWriteBuffer, 4075 4145 DWORD cchWrite, … … 4078 4148 { 4079 4149 BOOL fResult; 4080 4150 4081 4151 #ifdef DEBUG_LOCAL2 4082 4152 WriteLog("KERNEL32/CONSOLE: OS2WriteConsoleOutputCharacterA(%08x,%08x,%08x,%08x,%08x).\n", … … 4087 4157 lpcWritten); 4088 4158 #endif 4089 4159 4090 4160 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 4091 4161 DRQ_WRITECONSOLEOUTPUTCHARACTERA, … … 4094 4164 COORD2ULONG(coordWriteCoord), 4095 4165 (ULONG)lpcWritten); 4096 4097 return fResult; 4098 } 4099 4100 4101 /***************************************************************************** 4102 * Name : 4103 * Purpose : 4104 * Parameters: 4105 * Variables : 4106 * Result : 4107 * Remark : 4108 * Status : 4166 4167 return fResult; 4168 } 4169 4170 4171 /***************************************************************************** 4172 * Name : 4173 * Purpose : 4174 * Parameters: 4175 * Variables : 4176 * Result : 4177 * Remark : 4178 * Status : 4109 4179 * 4110 4180 * Author : Patrick Haller [Tue, 1998/02/10 01:55] 4111 4181 *****************************************************************************/ 4112 4182 4113 BOOL WIN32API OS2WriteConsoleOutputCharacterW(HANDLE hConsoleOutput,4183 BOOL WIN32API WriteConsoleOutputCharacterW(HANDLE hConsoleOutput, 4114 4184 LPTSTR lpWriteBuffer, 4115 4185 DWORD cchWrite, … … 4118 4188 { 4119 4189 BOOL fResult; 4120 4190 4121 4191 #ifdef DEBUG_LOCAL2 4122 4192 WriteLog("KERNEL32/CONSOLE: OS2WriteConsoleOutputCharacterW(%08x,%08x,%08x,%08x,%08x).\n", … … 4127 4197 lpcWritten); 4128 4198 #endif 4129 4199 4130 4200 fResult = (BOOL)HMDeviceRequest(hConsoleOutput, 4131 4201 DRQ_WRITECONSOLEOUTPUTCHARACTERW, … … 4134 4204 COORD2ULONG(coordWriteCoord), 4135 4205 (ULONG)lpcWritten); 4136 4137 return fResult; 4206 4207 return fResult; 4138 4208 } 4139 4209 … … 4148 4218 * PHMHANDLEDATA pHMHandleDataTemplate data of the template handle 4149 4219 * Variables : 4150 * Result : 4220 * Result : 4151 4221 * Remark : @@@PH CONIN$ handles should be exclusive 4152 4222 * reject other requests to this device … … 4170 4240 pHMHandleDataTemplate); 4171 4241 #endif 4172 4242 4173 4243 pHMHandleData->dwType = FILE_TYPE_CHAR; /* we're a character device */ 4174 4244 4175 4245 return(NO_ERROR); 4176 4246 } … … 4178 4248 4179 4249 /***************************************************************************** 4180 * Name : 4181 * Purpose : 4182 * Parameters: 4183 * Variables : 4184 * Result : 4185 * Remark : 4186 * Status : 4250 * Name : 4251 * Purpose : 4252 * Parameters: 4253 * Variables : 4254 * Result : 4255 * Remark : 4256 * Status : 4187 4257 * 4188 4258 * Author : Patrick Haller [Wed, 1998/02/11 20:44] … … 4200 4270 INPUT_RECORD InputRecord; /* buffer for the event to be read */ 4201 4271 ULONG ulPostCounter; /* semaphore post counter */ 4202 4272 4203 4273 #ifdef DEBUG_LOCAL 4204 4274 WriteLog("KERNEL32/CONSOLE:HMDeviceConsoleInClass::ReadFile %s(%08x,%08x,%08x,%08x,%08x)\n", … … 4210 4280 lpOverlapped); 4211 4281 #endif 4212 4282 4213 4283 ulCounter = 0; /* read ascii chars from queue */ 4214 4284 pszTarget = (PSZ)lpBuffer; 4215 4285 4216 4286 /* @@@PH: ConsoleMode: ENABLE_LINE_INPUT - blocks until CR is read */ 4217 4287 4218 4288 /* block if no key events are in the queue */ 4219 4289 for (;ulCounter==0;) /* until we got some characters */ … … 4226 4296 &ulPostCounter); /* post counter - ignored */ 4227 4297 } 4228 4298 4229 4299 do 4230 4300 { … … 4237 4307 pszTarget++; 4238 4308 ulCounter++; 4239 4309 4240 4310 /* local echo enabled ? */ 4241 4311 if (ConsoleInput.dwConsoleMode & ENABLE_ECHO_INPUT) … … 4245 4315 &ulPostCounter, /* dummy result */ 4246 4316 NULL); 4247 4317 4248 4318 if (ulCounter >= nNumberOfBytesToRead) /* at buffer's end ? */ 4249 4319 goto __readfile_exit; … … 4254 4324 while (rc == NO_ERROR); 4255 4325 } 4256 4326 4257 4327 __readfile_exit: 4258 4328 4259 4329 *lpNumberOfBytesRead = ulCounter; /* write result */ 4260 4330 … … 4264 4334 4265 4335 /***************************************************************************** 4266 * Name : 4267 * Purpose : 4268 * Parameters: 4269 * Variables : 4270 * Result : 4271 * Remark : 4272 * Status : 4336 * Name : 4337 * Purpose : 4338 * Parameters: 4339 * Variables : 4340 * Result : 4341 * Remark : 4342 * Status : 4273 4343 * 4274 4344 * Author : Patrick Haller [Wed, 1998/02/11 20:44] … … 4291 4361 lpOverlapped); 4292 4362 #endif 4293 4363 4294 4364 return(ERROR_ACCESS_DENIED); 4295 4365 } … … 4297 4367 4298 4368 /***************************************************************************** 4299 * Name : 4300 * Purpose : 4301 * Parameters: 4302 * Variables : 4303 * Result : 4304 * Remark : 4305 * Status : 4369 * Name : 4370 * Purpose : 4371 * Parameters: 4372 * Variables : 4373 * Result : 4374 * Remark : 4375 * Status : 4306 4376 * 4307 4377 * Author : Patrick Haller [Wed, 1998/02/11 20:44] … … 4320 4390 return (HMDeviceConsoleInClass:: 4321 4391 FlushConsoleInputBuffer(pHMHandleData)); 4322 4392 4323 4393 case DRQ_GETNUMBEROFCONSOLEINPUTEVENTS: 4324 4394 return (HMDeviceConsoleInClass:: 4325 4395 GetNumberOfConsoleInputEvents(pHMHandleData, 4326 4396 (LPDWORD)arg1)); 4327 4397 4328 4398 case DRQ_PEEKCONSOLEINPUTA: 4329 4399 return (HMDeviceConsoleInClass:: … … 4332 4402 (DWORD) arg2, 4333 4403 (LPDWORD) arg3)); 4334 4404 4335 4405 case DRQ_PEEKCONSOLEINPUTW: 4336 4406 return (HMDeviceConsoleInClass:: … … 4339 4409 (DWORD) arg2, 4340 4410 (LPDWORD) arg3)); 4341 4342 4411 4412 4343 4413 case DRQ_READCONSOLEA: 4344 4414 return (HMDeviceConsoleInClass:: … … 4348 4418 (LPDWORD) arg3, 4349 4419 (LPVOID) arg4)); 4350 4420 4351 4421 case DRQ_READCONSOLEW: 4352 4422 return (HMDeviceConsoleInClass:: … … 4356 4426 (LPDWORD) arg3, 4357 4427 (LPVOID) arg4)); 4358 4428 4359 4429 case DRQ_READCONSOLEINPUTA: 4360 4430 return (HMDeviceConsoleInClass:: … … 4362 4432 (PINPUT_RECORD)arg1, 4363 4433 (DWORD)arg2, 4364 (LPDWORD)arg3)); 4365 4434 (LPDWORD)arg3)); 4435 4366 4436 case DRQ_READCONSOLEINPUTW: 4367 4437 return (HMDeviceConsoleInClass:: … … 4377 4447 (DWORD)arg2, 4378 4448 (LPDWORD)arg3)); 4379 4449 4380 4450 case DRQ_WRITECONSOLEINPUTW: 4381 4451 return (HMDeviceConsoleInClass:: … … 4384 4454 (DWORD)arg2, 4385 4455 (LPDWORD)arg3)); 4386 4387 } 4388 4456 4457 } 4458 4389 4459 #ifdef DEBUG_LOCAL 4390 4460 WriteLog("KERNEL32/CONSOLE:HMDeviceConsoleInClass:_DeviceRequest %s(%08x,%08x,%08x,%08x,%08x,%08x) unknown request\n", … … 4409 4479 * Variables : 4410 4480 * Result : 4411 * Remark : 4481 * Remark : 4412 4482 * Status : UNTESTED 4413 4483 * … … 4418 4488 { 4419 4489 ULONG ulCounter; /* loop counter */ 4420 4490 4421 4491 #ifdef DEBUG_LOCAL2 4422 4492 WriteLog("KERNEL32/CONSOLE: CONIN$::FlushConsoleInputBuffer(%08x).\n", 4423 4493 pHMHandleData); 4424 4494 #endif 4425 4495 4426 4496 ConsoleInput.ulIndexFree = 0; 4427 4497 ConsoleInput.ulIndexEvent = 0; 4428 4498 ConsoleInput.ulEvents = 0; 4429 4499 4430 4500 for (ulCounter = 0; 4431 4501 ulCounter < CONSOLE_INPUTQUEUESIZE; … … 4445 4515 * Result : 4446 4516 4447 * Remark : 4517 * Remark : 4448 4518 * Status : UNTESTED 4449 4519 * … … 4459 4529 lpMode); 4460 4530 #endif 4461 4531 4462 4532 *lpMode = ConsoleInput.dwConsoleMode; /* return current console mode */ 4463 4533 … … 4473 4543 * Variables : 4474 4544 * Result : 4475 * Remark : 4545 * Remark : 4476 4546 * Status : UNTESTED 4477 4547 * … … 4487 4557 lpNumberOfEvents); 4488 4558 #endif 4489 4559 4490 4560 *lpNumberOfEvents = ConsoleInput.ulEvents; /* return number of events */ 4491 4561 … … 4520 4590 ULONG ulCurrentEvent; /* index of current event in the queue */ 4521 4591 PINPUT_RECORD pirEvent; /* pointer to current queue element */ 4522 4592 4523 4593 #ifdef DEBUG_LOCAL2 4524 4594 WriteLog("KERNEL32/CONSOLE: HMDeviceConsoleInClass::PeekConsoleInputA(%08x,%08x,%08x,%08x).\n", … … 4528 4598 lpcRead); 4529 4599 #endif 4530 4600 4531 4601 if (ConsoleInputQueryEvents() == 0) /* if queue is currently empty */ 4532 4602 { … … 4534 4604 return (TRUE); /* OK, we're done */ 4535 4605 } 4536 4537 4606 4607 4538 4608 for (ulCounter = 0, 4539 4609 ulCurrentEvent = ConsoleInput.ulIndexEvent, 4540 4610 pirEvent = &ConsoleInput.arrInputRecord[ConsoleInput.ulIndexEvent]; 4541 4611 4542 4612 ulCounter < cInRecords; 4543 4613 4544 4614 ulCounter++, 4545 4615 ulCurrentEvent++, … … 4552 4622 pirEvent = ConsoleInput.arrInputRecord; 4553 4623 } 4554 4624 4555 4625 if (pirEvent->EventType == 0x0000) /* no more events ? */ 4556 4626 break; /* leave loop then */ 4557 4627 4558 4628 memcpy(pirEvent, /* copy event data */ 4559 4629 pirBuffer, … … 4592 4662 ULONG ulCurrentEvent; /* index of current event in the queue */ 4593 4663 PINPUT_RECORD pirEvent; /* pointer to current queue element */ 4594 4664 4595 4665 #ifdef DEBUG_LOCAL2 4596 4666 WriteLog("KERNEL32/CONSOLE: HMDeviceConsoleInClass::PeekConsoleInputW(%08x,%08x,%08x,%08x).\n", … … 4600 4670 lpcRead); 4601 4671 #endif 4602 4672 4603 4673 if (ConsoleInputQueryEvents() == 0) /* if queue is currently empty */ 4604 4674 { … … 4606 4676 return (TRUE); /* OK, we're done */ 4607 4677 } 4608 4609 4678 4679 4610 4680 for (ulCounter = 0, 4611 4681 ulCurrentEvent = ConsoleInput.ulIndexEvent, 4612 4682 pirEvent = &ConsoleInput.arrInputRecord[ConsoleInput.ulIndexEvent]; 4613 4683 4614 4684 ulCounter < cInRecords; 4615 4685 4616 4686 ulCounter++, 4617 4687 ulCurrentEvent++, … … 4624 4694 pirEvent = ConsoleInput.arrInputRecord; 4625 4695 } 4626 4696 4627 4697 if (pirEvent->EventType == 0x0000) /* no more events ? */ 4628 4698 break; /* leave loop then */ 4629 4699 4630 4700 memcpy(pirEvent, /* copy event data */ 4631 4701 pirBuffer, … … 4648 4718 * Variables : 4649 4719 * Result : 4650 * Remark : 4720 * Remark : 4651 4721 * Status : UNTESTED 4652 4722 * … … 4661 4731 { 4662 4732 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 4663 4733 4664 4734 #ifdef DEBUG_LOCAL2 4665 4735 WriteLog("KERNEL32/CONSOLE: CONIN$::ReadConsoleA(%08x,%08x,%u,%08x,%08x).\n", … … 4670 4740 lpvReserved); 4671 4741 #endif 4672 4742 4673 4743 /* simply forward the request to that routine */ 4674 4744 return (HMDeviceConsoleInClass::ReadFile(pHMHandleData, … … 4690 4760 * Variables : 4691 4761 * Result : 4692 * Remark : 4762 * Remark : 4693 4763 * Status : UNTESTED 4694 4764 * … … 4704 4774 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 4705 4775 DWORD dwResult; 4706 4776 4707 4777 #ifdef DEBUG_LOCAL2 4708 4778 WriteLog("KERNEL32/CONSOLE: CONIN$::ReadConsoleW(%08x,%08x,%u,%08x,%08x).\n", … … 4713 4783 lpvReserved); 4714 4784 #endif 4715 4785 4716 4786 /* simply forward the request to that routine */ 4717 4787 dwResult = HMDeviceConsoleInClass::ReadFile(pHMHandleData, … … 4721 4791 NULL); 4722 4792 /* @@@PH AScii -> unicode translation */ 4723 4793 4724 4794 return (dwResult); /* deliver return code */ 4725 4795 } … … 4748 4818 ULONG ulPostCounter; /* semaphore post counter - ignored */ 4749 4819 APIRET rc; /* API returncode */ 4750 4820 4751 4821 #ifdef DEBUG_LOCAL2 4752 4822 WriteLog("KERNEL32/CONSOLE: HMDeviceConsoleInClass::ReadConsoleInputA(%08x,%08x,%08x,%08x).\n", … … 4756 4826 lpcRead); 4757 4827 #endif 4758 4828 4759 4829 if (ConsoleInputQueryEvents() == 0) /* if queue is currently empty */ 4760 4830 { … … 4764 4834 &ulPostCounter); /* post counter - ignored */ 4765 4835 } 4766 4767 4836 4837 4768 4838 /* now read events into target buffer */ 4769 4839 for (ulPostCounter = 0; … … 4776 4846 break; 4777 4847 } 4778 4848 4779 4849 *lpcRead = ulPostCounter; /* return number of records read */ 4780 4850 return (TRUE); /* OK */ … … 4804 4874 ULONG ulPostCounter; /* semaphore post counter - ignored */ 4805 4875 APIRET rc; /* API returncode */ 4806 4876 4807 4877 #ifdef DEBUG_LOCAL2 4808 4878 WriteLog("KERNEL32/CONSOLE: HMDeviceConsoleInClass::ReadConsoleInputW(%08x,%08x,%08x,%08x).\n", … … 4812 4882 lpcRead); 4813 4883 #endif 4814 4884 4815 4885 if (ConsoleInputQueryEvents() == 0) /* if queue is currently empty */ 4816 4886 { … … 4820 4890 &ulPostCounter); /* post counter - ignored */ 4821 4891 } 4822 4823 4892 4893 4824 4894 /* now read events into target buffer */ 4825 4895 for (ulPostCounter = 0; … … 4832 4902 break; 4833 4903 } 4834 4904 4835 4905 *lpcRead = ulPostCounter; /* return number of records read */ 4836 4906 return (TRUE); /* OK */ … … 4845 4915 * Variables : 4846 4916 * Result : 4847 * Remark : 4917 * Remark : 4848 4918 * Status : UNTESTED 4849 4919 * … … 4855 4925 { 4856 4926 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 4857 4927 4858 4928 #ifdef DEBUG_LOCAL2 4859 4929 WriteLog("KERNEL32/CONSOLE: CONIN$::SetConsoleMode(%08x,%08x).\n", … … 4861 4931 dwMode); 4862 4932 #endif 4863 4933 4864 4934 ConsoleInput.dwConsoleMode = dwMode; /* set current console mode */ 4865 4935 4866 4936 return (TRUE); 4867 4937 } … … 4871 4941 * Name : DWORD HMDeviceConsoleInClass::WriteConsoleInputA 4872 4942 * Purpose : this writes event records directly into the queue 4873 * Parameters: PHMHANDLEDATA pHMHandleData 4943 * Parameters: PHMHANDLEDATA pHMHandleData 4874 4944 * PINPUT_RECORD pirBuffer 4875 4945 * DWORD cInRecords 4876 4946 * LPDWORD lpcWritten 4877 4947 * Variables : 4878 * Result : 4879 * Remark : 4948 * Result : 4949 * Remark : 4880 4950 * Status : NO_ERROR - API succeeded 4881 4951 * other - what is to be set in SetLastError … … 4892 4962 APIRET rc; /* API returncode */ 4893 4963 ULONG ulCounter; /* loop counter */ 4894 4964 4895 4965 #ifdef DEBUG_LOCAL2 4896 4966 WriteLog("KERNEL32/CONSOLE: CONIN$::WriteConsoleInputA(%08x,%08x,%u,%08x).\n", … … 4900 4970 lpcWritten); 4901 4971 #endif 4902 4972 4903 4973 for (ulCounter = 0; 4904 4974 ulCounter < cInRecords; … … 4910 4980 break; 4911 4981 } 4912 4982 4913 4983 *lpcWritten = ulCounter; /* return number of events written */ 4914 4984 return (TRUE); /* OK */ … … 4919 4989 * Name : DWORD HMDeviceConsoleInClass::WriteConsoleInputW 4920 4990 * Purpose : this writes event records directly into the queue 4921 * Parameters: PHMHANDLEDATA pHMHandleData 4991 * Parameters: PHMHANDLEDATA pHMHandleData 4922 4992 * PINPUT_RECORD pirBuffer 4923 4993 * DWORD cInRecords 4924 4994 * LPDWORD lpcWritten 4925 4995 * Variables : 4926 * Result : 4927 * Remark : 4996 * Result : 4997 * Remark : 4928 4998 * Status : NO_ERROR - API succeeded 4929 4999 * other - what is to be set in SetLastError … … 4940 5010 APIRET rc; /* API returncode */ 4941 5011 ULONG ulCounter; /* loop counter */ 4942 5012 4943 5013 #ifdef DEBUG_LOCAL2 4944 5014 WriteLog("KERNEL32/CONSOLE: CONIN$::WriteConsoleInputW(%08x,%08x,%u,%08x).\n", … … 4948 5018 lpcWritten); 4949 5019 #endif 4950 5020 4951 5021 for (ulCounter = 0; 4952 5022 ulCounter < cInRecords; … … 4958 5028 break; 4959 5029 } 4960 5030 4961 5031 *lpcWritten = ulCounter; /* return number of events written */ 4962 5032 return (TRUE); /* OK */ … … 4974 5044 * PHMHANDLEDATA pHMHandleDataTemplate data of the template handle 4975 5045 * Variables : 4976 * Result : 4977 * Remark : 5046 * Result : 5047 * Remark : 4978 5048 * Status : NO_ERROR - API succeeded 4979 5049 * other - what is to be set in SetLastError … … 4990 5060 BOOL fResult; 4991 5061 HANDLE hConsole; 4992 5062 4993 5063 #ifdef DEBUG_LOCAL2 4994 5064 WriteLog("KERNEL32/CONSOLE:HMDeviceConsoleOutClass %s(%s,%08x,%08x,%08x)\n", … … 4999 5069 pHMHandleDataTemplate); 5000 5070 #endif 5001 5071 5002 5072 pHMHandleData->dwType = FILE_TYPE_CHAR; /* we're a character device */ 5003 5004 5073 5074 5005 5075 /* if no default buffer is available, then do default setup */ 5006 5076 if (ConsoleGlobals.hConsoleBuffer == INVALID_HANDLE_VALUE) 5007 5077 { 5008 5078 /* now we need a default screen buffer with the default size */ 5009 hConsole = OS2CreateConsoleScreenBuffer(0,5079 hConsole = CreateConsoleScreenBuffer(0, 5010 5080 0, 5011 5081 NULL, … … 5020 5090 return INVALID_HANDLE_VALUE; /* abort further processing immediately */ 5021 5091 } 5022 5023 fResult = OS2SetConsoleTextAttribute(hConsole,5092 5093 fResult = SetConsoleTextAttribute(hConsole, 5024 5094 ConsoleGlobals.Options.ucDefaultAttribute); 5025 5095 #ifdef DEBUG_LOCAL … … 5028 5098 GetLastError()); 5029 5099 #endif 5030 5031 fResult = OS2SetConsoleScreenBufferSize(hConsole,5100 5101 fResult = SetConsoleScreenBufferSize(hConsole, 5032 5102 ConsoleGlobals.Options.coordDefaultSize); 5033 5103 if (fResult == FALSE) … … 5040 5110 return (INVALID_HANDLE_VALUE); /* abort further processing */ 5041 5111 } 5042 5043 fResult = OS2SetConsoleActiveScreenBuffer(hConsole);5112 5113 fResult = SetConsoleActiveScreenBuffer(hConsole); 5044 5114 if (fResult == FALSE) 5045 5115 { … … 5057 5127 } 5058 5128 } 5059 5129 5060 5130 return(NO_ERROR); 5061 5131 } … … 5063 5133 5064 5134 /***************************************************************************** 5065 * Name : 5066 * Purpose : 5067 * Parameters: 5068 * Variables : 5069 * Result : 5070 * Remark : 5071 * Status : 5135 * Name : 5136 * Purpose : 5137 * Parameters: 5138 * Variables : 5139 * Result : 5140 * Remark : 5141 * Status : 5072 5142 * 5073 5143 * Author : Patrick Haller [Wed, 1998/02/11 20:44] … … 5080 5150 LPOVERLAPPED lpOverlapped) 5081 5151 { 5082 5152 5083 5153 #ifdef DEBUG_LOCAL 5084 5154 WriteLog("KERNEL32/CONSOLE:HMDeviceConsoleOutClass::ReadFile %s(%08x,%08x,%08x,%08x,%08x)\n", … … 5090 5160 lpOverlapped); 5091 5161 #endif 5092 5162 5093 5163 return(ERROR_ACCESS_DENIED); 5094 5164 } … … 5096 5166 5097 5167 /***************************************************************************** 5098 * Name : 5099 * Purpose : 5100 * Parameters: 5101 * Variables : 5102 * Result : 5103 * Remark : 5104 * Status : 5168 * Name : 5169 * Purpose : 5170 * Parameters: 5171 * Variables : 5172 * Result : 5173 * Remark : 5174 * Status : 5105 5175 * 5106 5176 * Author : Patrick Haller [Wed, 1998/02/11 20:44] … … 5114 5184 { 5115 5185 DWORD dwResult; /* result from subsequent WriteFile */ 5116 5186 5117 5187 #ifdef DEBUG_LOCAL2 5118 5188 WriteLog("KERNEL32/CONSOLE:HMDeviceConsoleOutClass:WriteFile %s(%08x,%08x,%08x,%08x,%08x)\n", … … 5124 5194 lpOverlapped); 5125 5195 #endif 5126 5196 5127 5197 /* just prevent an endless loop, although this condition might never */ 5128 5198 /* be true ! */ … … 5137 5207 0); 5138 5208 #endif 5139 5209 5140 5210 dwResult = HMWriteFile(ConsoleGlobals.hConsoleBuffer, 5141 5211 lpBuffer, … … 5143 5213 lpNumberOfBytesWritten, 5144 5214 lpOverlapped); 5145 5215 5146 5216 #if 0 5147 5217 HMDeviceRequest(ConsoleGlobals.hConsoleBuffer, /* show the cursor */ … … 5152 5222 0); 5153 5223 #endif 5154 5224 5155 5225 return (dwResult); /* return result code */ 5156 5226 } … … 5164 5234 * Purpose : we just forward those device requests to the console buffer 5165 5235 * currently associated with the console itself. 5166 * Parameters: 5167 * Variables : 5168 * Result : 5169 * Remark : 5236 * Parameters: 5237 * Variables : 5238 * Result : 5239 * Remark : 5170 5240 * Status : UNTESTED 5171 5241 * … … 5214 5284 * Variables : 5215 5285 * Result : 5216 * Remark : 5286 * Remark : 5217 5287 * Status : NO_ERROR - API succeeded 5218 5288 * other - what is to be set in SetLastError … … 5227 5297 { 5228 5298 PCONSOLEBUFFER pConsoleBuffer; /* console buffer structure */ 5229 5299 5230 5300 #ifdef DEBUG_LOCAL 5231 5301 WriteLog("KERNEL32/CONSOLE:HMDeviceConsoleBufferClass %s(%s,%08x,%08x,%08x)\n", … … 5236 5306 pHMHandleDataTemplate); 5237 5307 #endif 5238 5308 5239 5309 pHMHandleData->dwType = FILE_TYPE_CHAR; /* we're a character device */ 5240 5310 5241 5311 pHMHandleData->lpHandlerData = malloc ( sizeof(CONSOLEBUFFER) ); 5242 5312 5243 5313 #ifdef DEBUG_LOCAL 5244 5314 WriteLog("KERNEL32/CONSOLE:CheckPoint1: %s pHMHandleData=%08xh, lpHandlerData=%08xh\n", … … 5247 5317 pHMHandleData->lpHandlerData); 5248 5318 #endif 5249 5250 5319 5320 5251 5321 if (pHMHandleData->lpHandlerData == NULL) /* check allocation */ 5252 5322 { … … 5257 5327 { 5258 5328 pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 5259 5329 5260 5330 memset(pHMHandleData->lpHandlerData, /* initialize structure */ 5261 5331 0, 5262 5332 sizeof (CONSOLEBUFFER) ); 5263 5333 5264 5334 /* set buffer defaults */ 5265 5335 pConsoleBuffer->dwConsoleMode = ENABLE_PROCESSED_OUTPUT | 5266 5336 ENABLE_WRAP_AT_EOL_OUTPUT; 5267 5337 5268 5338 pConsoleBuffer->CursorInfo.dwSize = 2; /* 2 scanlines */ 5269 5339 pConsoleBuffer->CursorInfo.bVisible = TRUE; 5270 5340 } 5271 5341 5272 5342 return(NO_ERROR); 5273 5343 } … … 5275 5345 5276 5346 /***************************************************************************** 5277 * Name : 5278 * Purpose : 5279 * Parameters: 5280 * Variables : 5281 * Result : 5282 * Remark : 5283 * Status : 5347 * Name : 5348 * Purpose : 5349 * Parameters: 5350 * Variables : 5351 * Result : 5352 * Remark : 5353 * Status : 5284 5354 * 5285 5355 * Author : Patrick Haller [Wed, 1998/02/11 20:44] … … 5288 5358 DWORD HMDeviceConsoleBufferClass::CloseHandle(PHMHANDLEDATA pHMHandleData) 5289 5359 { 5290 5360 5291 5361 #ifdef DEBUG_LOCAL 5292 5362 WriteLog("KERNEL32/CONSOLE:HMDeviceConsoleBufferClass::CloseHandle %s(%08x)\n", … … 5294 5364 pHMHandleData); 5295 5365 #endif 5296 5366 5297 5367 if (pHMHandleData->lpHandlerData != NULL) /* check pointer */ 5298 5368 { 5299 5369 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 5300 5370 5301 5371 5302 5372 if (pConsoleBuffer->ppszLine != NULL) /* free line buffer array ! */ 5303 5373 free (pConsoleBuffer->ppszLine); 5304 5374 5305 5375 free (pHMHandleData->lpHandlerData); /* free device object data */ 5306 5376 pHMHandleData->lpHandlerData = NULL; 5307 5377 } 5308 5378 5309 5379 return(NO_ERROR); 5310 5380 } … … 5312 5382 5313 5383 /***************************************************************************** 5314 * Name : 5315 * Purpose : 5316 * Parameters: 5317 * Variables : 5318 * Result : 5319 * Remark : 5320 * Status : 5384 * Name : 5385 * Purpose : 5386 * Parameters: 5387 * Variables : 5388 * Result : 5389 * Remark : 5390 * Status : 5321 5391 * 5322 5392 * Author : Patrick Haller [Wed, 1998/02/11 20:44] … … 5329 5399 LPOVERLAPPED lpOverlapped) 5330 5400 { 5331 5401 5332 5402 #ifdef DEBUG_LOCAL 5333 5403 WriteLog("KERNEL32/CONSOLE:HMDeviceConsoleBufferClass::ReadFile %s(%08x,%08x,%08x,%08x,%08x)\n", … … 5339 5409 lpOverlapped); 5340 5410 #endif 5341 5411 5342 5412 return(ERROR_ACCESS_DENIED); 5343 5413 } … … 5345 5415 5346 5416 /***************************************************************************** 5347 * Name : 5348 * Purpose : 5349 * Parameters: 5350 * Variables : 5351 * Result : 5352 * Remark : 5353 * Status : 5417 * Name : 5418 * Purpose : 5419 * Parameters: 5420 * Variables : 5421 * Result : 5422 * Remark : 5423 * Status : 5354 5424 * 5355 5425 * Author : Patrick Haller [Wed, 1998/02/11 20:44] … … 5366 5436 PSZ pszBuffer = (PSZ)lpBuffer; 5367 5437 register UCHAR ucChar; 5368 5438 5369 5439 #ifdef DEBUG_LOCAL2 5370 5440 WriteLog("KERNEL32/CONSOLE:HMDeviceConsoleBufferClass:WriteFile %s(%08x,%08x,%08x,%08x,%08x)\n", … … 5376 5446 lpOverlapped); 5377 5447 #endif 5378 5448 5379 5449 /* check if we're called with non-existing line buffer */ 5380 5450 if (pConsoleBuffer->ppszLine == NULL) 5381 5451 return (ERROR_SYS_INTERNAL); 5382 5452 5383 5453 for (ulCounter = 0; 5384 5454 ulCounter < nNumberOfBytesToWrite; … … 5386 5456 { 5387 5457 ucChar = pszBuffer[ulCounter]; /* map to register */ 5388 5458 5389 5459 if ( (pConsoleBuffer->dwConsoleMode & ENABLE_PROCESSED_OUTPUT) && 5390 5460 (ucChar < 32) ) /* this is faster than a large switch statement */ … … 5397 5467 ConsoleGlobals.Options.ulSpeakerDuration); 5398 5468 break; 5399 5469 5400 5470 case 8: /* Backspace */ 5401 5471 if (pConsoleBuffer->coordCursorPosition.X > 0) 5402 5472 pConsoleBuffer->coordCursorPosition.X--; 5403 5473 break; 5404 5474 5405 5475 case 9: /* Tab */ 5406 5476 pConsoleBuffer->coordCursorPosition.X = 5407 (pConsoleBuffer->coordCursorPosition.X 5408 / ConsoleGlobals.Options.ulTabSize 5477 (pConsoleBuffer->coordCursorPosition.X 5478 / ConsoleGlobals.Options.ulTabSize 5409 5479 + 1) 5410 5480 * ConsoleGlobals.Options.ulTabSize; 5411 5481 5412 5482 if (pConsoleBuffer->coordCursorPosition.X >= 5413 5483 pConsoleBuffer->coordBufferSize.X) … … 5415 5485 pConsoleBuffer->coordCursorPosition.X = 0; 5416 5486 pConsoleBuffer->coordCursorPosition.Y++; 5417 5487 5418 5488 if (pConsoleBuffer->coordCursorPosition.Y >= 5419 5489 pConsoleBuffer->coordBufferSize.Y) … … 5428 5498 } 5429 5499 break; 5430 5500 5431 5501 case 10: /* LINEFEED */ 5432 5502 pConsoleBuffer->coordCursorPosition.Y++; 5433 5503 5434 5504 if (pConsoleBuffer->coordCursorPosition.Y >= 5435 5505 pConsoleBuffer->coordBufferSize.Y) … … 5440 5510 } 5441 5511 break; 5442 5512 5443 5513 case 13: /* CARRIAGE RETURN */ 5444 5514 pConsoleBuffer->coordCursorPosition.X = 0; 5445 5515 break; 5446 5516 5447 5517 default: 5448 5518 break; … … 5454 5524 *(pConsoleBuffer->ppszLine[pConsoleBuffer->coordCursorPosition.Y] + 5455 5525 pConsoleBuffer->coordCursorPosition.X * 2) = pszBuffer[ulCounter]; 5456 5526 5457 5527 pConsoleBuffer->coordCursorPosition.X++; 5458 5528 5459 5529 if (pConsoleBuffer->coordCursorPosition.X >= 5460 5530 pConsoleBuffer->coordBufferSize.X) … … 5462 5532 pConsoleBuffer->coordCursorPosition.X = 0; 5463 5533 pConsoleBuffer->coordCursorPosition.Y++; 5464 5534 5465 5535 if (pConsoleBuffer->coordCursorPosition.Y >= 5466 5536 pConsoleBuffer->coordBufferSize.Y) … … 5482 5552 } 5483 5553 } 5484 5554 5485 5555 /* update screen if active console */ 5486 5556 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 5487 5557 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 5488 5558 5489 5559 *lpNumberOfBytesWritten = ulCounter; 5490 5560 5491 5561 return(ulCounter); 5492 5562 } … … 5494 5564 5495 5565 /***************************************************************************** 5496 * Name : 5497 * Purpose : 5498 * Parameters: 5499 * Variables : 5500 * Result : 5501 * Remark : 5502 * Status : 5566 * Name : 5567 * Purpose : 5568 * Parameters: 5569 * Variables : 5570 * Result : 5571 * Remark : 5572 * Status : 5503 5573 * 5504 5574 * Author : Patrick Haller [Wed, 1998/02/11 20:44] … … 5517 5587 { 5518 5588 COORD coordWrite; 5519 5589 5520 5590 ULONG2COORD(coordWrite,arg3); 5521 5591 5522 5592 return (HMDeviceConsoleBufferClass 5523 5593 ::FillConsoleOutputAttribute(pHMHandleData, … … 5527 5597 (LPDWORD)arg4)); 5528 5598 } 5529 5599 5530 5600 5531 5601 case DRQ_FILLCONSOLEOUTPUTCHARACTERA: 5532 5602 { 5533 5603 COORD coordWrite; 5534 5604 5535 5605 ULONG2COORD(coordWrite,arg3); 5536 5606 5537 5607 return (HMDeviceConsoleBufferClass 5538 5608 ::FillConsoleOutputCharacterA(pHMHandleData, … … 5542 5612 (LPDWORD)arg4)); 5543 5613 } 5544 5545 5614 5615 5546 5616 case DRQ_FILLCONSOLEOUTPUTCHARACTERW: 5547 5617 { 5548 5618 COORD coordWrite; 5549 5619 5550 5620 ULONG2COORD(coordWrite,arg3); 5551 5621 5552 5622 return (HMDeviceConsoleBufferClass 5553 5623 ::FillConsoleOutputCharacterW(pHMHandleData, … … 5558 5628 } 5559 5629 5560 5630 5561 5631 case DRQ_GETCONSOLECURSORINFO: 5562 5632 return (HMDeviceConsoleBufferClass … … 5564 5634 (PCONSOLE_CURSOR_INFO)arg1)); 5565 5635 5566 5636 5567 5637 case DRQ_GETCONSOLEMODE: 5568 5638 return (HMDeviceConsoleBufferClass … … 5570 5640 (LPDWORD)arg1)); 5571 5641 5572 5642 5573 5643 case DRQ_GETCONSOLESCREENBUFFERINFO: 5574 5644 return (HMDeviceConsoleBufferClass 5575 5645 ::GetConsoleScreenBufferInfo(pHMHandleData, 5576 5646 (PCONSOLE_SCREEN_BUFFER_INFO)arg1)); 5577 5647 5578 5648 5579 5649 case DRQ_GETLARGESTCONSOLEWINDOWSIZE: 5580 5650 return (HMDeviceConsoleBufferClass 5581 5651 ::GetLargestConsoleWindowSize(pHMHandleData)); 5582 5652 5583 5653 5584 5654 case DRQ_READCONSOLEOUTPUTA: … … 5586 5656 COORD coordDestBufferSize; 5587 5657 COORD coordDestBufferCoord; 5588 5658 5589 5659 ULONG2COORD(coordDestBufferSize, arg2); 5590 5660 ULONG2COORD(coordDestBufferCoord, arg3); 5591 5661 5592 5662 return (HMDeviceConsoleBufferClass 5593 5663 ::ReadConsoleOutputA(pHMHandleData, … … 5597 5667 (PSMALL_RECT)arg4)); 5598 5668 } 5599 5600 5669 5670 5601 5671 case DRQ_READCONSOLEOUTPUTW: 5602 5672 { 5603 5673 COORD coordDestBufferSize; 5604 5674 COORD coordDestBufferCoord; 5605 5675 5606 5676 ULONG2COORD(coordDestBufferSize, arg2); 5607 5677 ULONG2COORD(coordDestBufferCoord, arg3); 5608 5678 5609 5679 return (HMDeviceConsoleBufferClass 5610 5680 ::ReadConsoleOutputW(pHMHandleData, … … 5614 5684 (PSMALL_RECT)arg4)); 5615 5685 } 5616 5686 5617 5687 5618 5688 case DRQ_READCONSOLEOUTPUTATTRIBUTE: 5619 5689 { 5620 5690 COORD coordReadCoord; 5621 5691 5622 5692 ULONG2COORD(coordReadCoord, arg3); 5623 5693 5624 5694 return (HMDeviceConsoleBufferClass 5625 5695 ::ReadConsoleOutputAttribute(pHMHandleData, … … 5629 5699 (LPDWORD)arg4)); 5630 5700 } 5631 5632 5701 5702 5633 5703 case DRQ_READCONSOLEOUTPUTCHARACTERA: 5634 5704 { 5635 5705 COORD coordReadCoord; 5636 5706 5637 5707 ULONG2COORD(coordReadCoord, arg3); 5638 5708 5639 5709 return (HMDeviceConsoleBufferClass 5640 5710 ::ReadConsoleOutputCharacterA(pHMHandleData, … … 5643 5713 coordReadCoord, 5644 5714 (LPDWORD)arg4)); 5645 } 5646 5647 5715 } 5716 5717 5648 5718 case DRQ_READCONSOLEOUTPUTCHARACTERW: 5649 5719 { 5650 5720 COORD coordReadCoord; 5651 5721 5652 5722 ULONG2COORD(coordReadCoord, arg3); 5653 5723 5654 5724 return (HMDeviceConsoleBufferClass 5655 5725 ::ReadConsoleOutputCharacterW(pHMHandleData, … … 5658 5728 coordReadCoord, 5659 5729 (LPDWORD)arg4)); 5660 } 5661 5730 } 5731 5662 5732 5663 5733 case DRQ_SCROLLCONSOLESCREENBUFFERA: 5664 5734 { 5665 5735 COORD coordDestOrigin; 5666 5736 5667 5737 ULONG2COORD(coordDestOrigin, arg3); 5668 5738 5669 5739 return (HMDeviceConsoleBufferClass 5670 5740 ::ScrollConsoleScreenBufferA(pHMHandleData, … … 5673 5743 coordDestOrigin, 5674 5744 (PCHAR_INFO)arg4)); 5675 } 5676 5677 5745 } 5746 5747 5678 5748 case DRQ_SCROLLCONSOLESCREENBUFFERW: 5679 5749 { 5680 5750 COORD coordDestOrigin; 5681 5751 5682 5752 ULONG2COORD(coordDestOrigin, arg3); 5683 5753 5684 5754 return (HMDeviceConsoleBufferClass 5685 5755 ::ScrollConsoleScreenBufferW(pHMHandleData, … … 5688 5758 coordDestOrigin, 5689 5759 (PCHAR_INFO)arg4)); 5690 } 5691 5692 5760 } 5761 5762 5693 5763 case DRQ_SETCONSOLEACTIVESCREENBUFFER: 5694 5764 return (HMDeviceConsoleBufferClass … … 5700 5770 ::SetConsoleCursorInfo(pHMHandleData, 5701 5771 (PCONSOLE_CURSOR_INFO)arg1)); 5702 5772 5703 5773 5704 5774 case DRQ_SETCONSOLECURSORPOSITION: 5705 5775 { 5706 5776 COORD coordCursor; 5707 5777 5708 5778 ULONG2COORD(coordCursor, arg1); 5709 5779 5710 5780 return (HMDeviceConsoleBufferClass 5711 5781 ::SetConsoleCursorPosition(pHMHandleData, 5712 5782 coordCursor)); 5713 5783 } 5714 5784 5715 5785 5716 5786 case DRQ_SETCONSOLEMODE: … … 5719 5789 (DWORD)arg1)); 5720 5790 5721 5791 5722 5792 case DRQ_SETCONSOLESCREENBUFFERSIZE: 5723 5793 { 5724 5794 COORD coordSize; 5725 5795 5726 5796 ULONG2COORD(coordSize,arg1); 5727 5797 5728 5798 return (HMDeviceConsoleBufferClass:: 5729 5799 SetConsoleScreenBufferSize(pHMHandleData, 5730 5800 coordSize)); 5731 5801 } 5732 5802 5733 5803 5734 5804 case DRQ_SETCONSOLETEXTATTRIBUTE: … … 5736 5806 SetConsoleTextAttribute(pHMHandleData, 5737 5807 (WORD)arg1)); 5738 5808 5739 5809 5740 5810 case DRQ_SETCONSOLEWINDOWINFO: … … 5744 5814 (PSMALL_RECT)arg2)); 5745 5815 5746 5816 5747 5817 case DRQ_WRITECONSOLEA: 5748 5818 return (HMDeviceConsoleBufferClass … … 5752 5822 (LPDWORD)arg3, 5753 5823 (LPVOID)arg4)); 5754 5755 5824 5825 5756 5826 case DRQ_WRITECONSOLEW: 5757 5827 return (HMDeviceConsoleBufferClass … … 5761 5831 (LPDWORD)arg3, 5762 5832 (LPVOID)arg4)); 5763 5833 5764 5834 5765 5835 case DRQ_WRITECONSOLEOUTPUTA: … … 5767 5837 COORD coordSrcBufferSize; 5768 5838 COORD coordSrcBufferCoord; 5769 5839 5770 5840 ULONG2COORD(coordSrcBufferSize, arg2); 5771 5841 ULONG2COORD(coordSrcBufferCoord, arg3); 5772 5842 5773 5843 return (HMDeviceConsoleBufferClass 5774 5844 ::WriteConsoleOutputA(pHMHandleData, … … 5778 5848 (PSMALL_RECT)arg4)); 5779 5849 } 5780 5781 5850 5851 5782 5852 case DRQ_WRITECONSOLEOUTPUTW: 5783 5853 { 5784 5854 COORD coordSrcBufferSize; 5785 5855 COORD coordSrcBufferCoord; 5786 5856 5787 5857 ULONG2COORD(coordSrcBufferSize, arg2); 5788 5858 ULONG2COORD(coordSrcBufferCoord, arg3); 5789 5859 5790 5860 return (HMDeviceConsoleBufferClass 5791 5861 ::WriteConsoleOutputA(pHMHandleData, … … 5794 5864 coordSrcBufferCoord, 5795 5865 (PSMALL_RECT)arg4)); 5796 } 5797 5798 5866 } 5867 5868 5799 5869 case DRQ_WRITECONSOLEOUTPUTATTRIBUTE: 5800 5870 { 5801 5871 COORD coordWriteCoord; 5802 5872 5803 5873 ULONG2COORD(coordWriteCoord, arg3); 5804 5874 5805 5875 return (HMDeviceConsoleBufferClass 5806 5876 ::WriteConsoleOutputAttribute(pHMHandleData, … … 5809 5879 coordWriteCoord, 5810 5880 (LPDWORD)arg4)); 5811 } 5812 5813 5881 } 5882 5883 5814 5884 case DRQ_WRITECONSOLEOUTPUTCHARACTERA: 5815 5885 { 5816 5886 COORD coordWriteCoord; 5817 5887 5818 5888 ULONG2COORD(coordWriteCoord, arg3); 5819 5889 5820 5890 return (HMDeviceConsoleBufferClass 5821 5891 ::WriteConsoleOutputCharacterA(pHMHandleData, … … 5824 5894 coordWriteCoord, 5825 5895 (LPDWORD)arg4)); 5826 } 5827 5828 5896 } 5897 5898 5829 5899 case DRQ_WRITECONSOLEOUTPUTCHARACTERW: 5830 5900 { 5831 5901 COORD coordWriteCoord; 5832 5902 5833 5903 ULONG2COORD(coordWriteCoord, arg3); 5834 5904 5835 5905 return (HMDeviceConsoleBufferClass 5836 5906 ::WriteConsoleOutputCharacterW(pHMHandleData, … … 5841 5911 } 5842 5912 5843 5913 5844 5914 case DRQ_INTERNAL_CONSOLEBUFFERMAP: 5845 5915 ConsoleBufferMap((PCONSOLEBUFFER)pHMHandleData->lpHandlerData); 5846 5916 return (NO_ERROR); 5847 5848 5917 5918 5849 5919 case DRQ_INTERNAL_CONSOLECURSORSHOW: 5850 5920 ConsoleCursorShow((PCONSOLEBUFFER)pHMHandleData->lpHandlerData, 5851 5921 (ULONG)arg1); 5852 5922 return (NO_ERROR); 5853 5854 5923 5924 5855 5925 case DRQ_INTERNAL_CONSOLEADJUSTWINDOW: 5856 5926 ConsoleAdjustWindow((PCONSOLEBUFFER)pHMHandleData->lpHandlerData); 5857 return (NO_ERROR); 5858 } 5859 5860 5927 return (NO_ERROR); 5928 } 5929 5930 5861 5931 #ifdef DEBUG_LOCAL 5862 5932 WriteLog("KERNEL32/CONSOLE:HMDeviceConsoleBufferClass:_DeviceRequest %s(%08x,%08x,%08x,%08x,%08x,%08x) unknown request\n", … … 5885 5955 * Variables : 5886 5956 * Result : 5887 * Remark : 5957 * Remark : 5888 5958 * Status : UNTESTED 5889 5959 * … … 5899 5969 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 5900 5970 ULONG ulCounter; /* current character counter */ 5901 5971 5902 5972 #ifdef DEBUG_LOCAL2 5903 5973 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::FillConsoleOutputAttribute(%08x,attr=%04x,%u,x=%u y=%u,res=%08x).\n", … … 5909 5979 lpNumberOfAttrsWritten); 5910 5980 #endif 5911 5981 5912 5982 if ( (dwWriteCoord.X < 0) || 5913 5983 (dwWriteCoord.Y < 0) ) … … 5915 5985 if (lpNumberOfAttrsWritten != NULL) /* ensure pointer is valid */ 5916 5986 *lpNumberOfAttrsWritten = 0; /* complete error handling */ 5917 5987 5918 5988 SetLastError(ERROR_INVALID_PARAMETER); 5919 5989 return (FALSE); 5920 5990 } 5921 5991 5922 5992 /* check if dwWriteCoord is within specs */ 5923 5993 if ( (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) || … … 5926 5996 if (lpNumberOfAttrsWritten != NULL) /* ensure pointer is valid */ 5927 5997 *lpNumberOfAttrsWritten = 0; /* complete error handling */ 5928 5998 5929 5999 SetLastError(ERROR_INVALID_PARAMETER); 5930 6000 return (FALSE); 5931 6001 } 5932 6002 5933 6003 5934 6004 /* OK, now write the attribute lines */ … … 5942 6012 ) = (UCHAR)(wAttribute & 0xFF); 5943 6013 /* write attribute, don't change characters */ 5944 6014 5945 6015 dwWriteCoord.X++; /* move write position */ 5946 6016 if (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) … … 5948 6018 dwWriteCoord.X = 0; /* skip to next line */ 5949 6019 dwWriteCoord.Y++; 5950 6020 5951 6021 /* oops, we're at the end of the buffer. Abort now. */ 5952 6022 if (dwWriteCoord.Y >= pConsoleBuffer->coordBufferSize.Y) … … 5954 6024 if (lpNumberOfAttrsWritten != NULL) /* ensure pointer is valid */ 5955 6025 *lpNumberOfAttrsWritten = ulCounter; 5956 6026 5957 6027 /* update screen if active console */ 5958 6028 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 5959 6029 ConsoleGlobals.fUpdateRequired = TRUE;/* update with next WM_TIMER */ 5960 6030 5961 6031 return (TRUE); 5962 6032 } 5963 6033 } 5964 6034 } 5965 6035 5966 6036 /* update screen if active console */ 5967 6037 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 5968 6038 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 5969 6039 5970 6040 if (lpNumberOfAttrsWritten != NULL) /* ensure pointer is valid */ 5971 6041 *lpNumberOfAttrsWritten = nLength; 5972 6042 5973 6043 return (TRUE); 5974 6044 } … … 5985 6055 * Variables : 5986 6056 * Result : 5987 * Remark : 6057 * Remark : 5988 6058 * Status : UNTESTED 5989 6059 * … … 5999 6069 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 6000 6070 ULONG ulCounter; /* current character counter */ 6001 6071 6002 6072 #ifdef DEBUG_LOCAL2 6003 6073 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::FillConsoleOutputCharacterA(%08x,char=%02x,%u,x=%u y=%u,res=%08x).\n", … … 6015 6085 if (lpNumberOfCharsWritten != NULL) /* ensure pointer is valid */ 6016 6086 *lpNumberOfCharsWritten = 0; /* complete error handling */ 6017 6087 6018 6088 SetLastError(ERROR_INVALID_PARAMETER); 6019 6089 return (FALSE); 6020 6090 } 6021 6022 6091 6092 6023 6093 /* check if dwWriteCoord is within specs */ 6024 6094 if ( (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) || … … 6027 6097 if (lpNumberOfCharsWritten != NULL) /* ensure pointer is valid */ 6028 6098 *lpNumberOfCharsWritten = 0; /* complete error handling */ 6029 6099 6030 6100 SetLastError(ERROR_INVALID_PARAMETER); 6031 6101 return (FALSE); 6032 6102 } 6033 6103 6034 6104 6035 6105 /* OK, now write the attribute lines */ … … 6042 6112 (dwWriteCoord.X * 2) 6043 6113 ) = ucCharacter; 6044 6114 6045 6115 dwWriteCoord.X++; /* move write position */ 6046 6116 if (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) … … 6048 6118 dwWriteCoord.X = 0; /* skip to next line */ 6049 6119 dwWriteCoord.Y++; 6050 6120 6051 6121 /* oops, we're at the end of the buffer. Abort now. */ 6052 6122 if (dwWriteCoord.Y >= pConsoleBuffer->coordBufferSize.Y) … … 6054 6124 if (lpNumberOfCharsWritten != NULL) /* ensure pointer is valid */ 6055 6125 *lpNumberOfCharsWritten = ulCounter; 6056 6126 6057 6127 /* update screen if active console */ 6058 6128 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 6059 6129 ConsoleGlobals.fUpdateRequired = TRUE;/* update with next WM_TIMER */ 6060 6130 6061 6131 return (TRUE); 6062 6132 } 6063 6133 } 6064 6134 } 6065 6135 6066 6136 /* update screen if active console */ 6067 6137 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 6068 6138 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 6069 6139 6070 6140 if (lpNumberOfCharsWritten != NULL) /* ensure pointer is valid */ 6071 6141 *lpNumberOfCharsWritten = nLength; 6072 6142 6073 6143 return (TRUE); 6074 6144 } … … 6085 6155 * Variables : 6086 6156 * Result : 6087 * Remark : 6157 * Remark : 6088 6158 * Status : UNTESTED 6089 6159 * … … 6099 6169 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 6100 6170 ULONG ulCounter; /* current character counter */ 6101 6171 6102 6172 #ifdef DEBUG_LOCAL2 6103 6173 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::FillConsoleOutputCharacterW(%08x,char=%02x,%u,x=%u y=%u,res=%08x).\n", … … 6109 6179 lpNumberOfCharsWritten); 6110 6180 #endif 6111 6181 6112 6182 if ( (dwWriteCoord.X < 0) || 6113 6183 (dwWriteCoord.Y < 0) ) … … 6115 6185 if (lpNumberOfCharsWritten != NULL) /* ensure pointer is valid */ 6116 6186 *lpNumberOfCharsWritten = 0; /* complete error handling */ 6117 6187 6118 6188 SetLastError(ERROR_INVALID_PARAMETER); 6119 6189 return (FALSE); 6120 6190 } 6121 6122 6191 6192 6123 6193 /* check if dwWriteCoord is within specs */ 6124 6194 if ( (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) || … … 6127 6197 if (lpNumberOfCharsWritten != NULL) /* ensure pointer is valid */ 6128 6198 *lpNumberOfCharsWritten = 0; /* complete error handling */ 6129 6199 6130 6200 SetLastError(ERROR_INVALID_PARAMETER); 6131 6201 return (FALSE); 6132 6202 } 6133 6203 6134 6204 6135 6205 /* OK, now write the attribute lines */ … … 6142 6212 (dwWriteCoord.X * 2) 6143 6213 ) = (UCHAR)wcCharacter; /* @@@PH unicode to ascii conversion ! */ 6144 6214 6145 6215 dwWriteCoord.X++; /* move write position */ 6146 6216 if (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) … … 6148 6218 dwWriteCoord.X = 0; /* skip to next line */ 6149 6219 dwWriteCoord.Y++; 6150 6220 6151 6221 /* oops, we're at the end of the buffer. Abort now. */ 6152 6222 if (dwWriteCoord.Y >= pConsoleBuffer->coordBufferSize.Y) … … 6154 6224 if (lpNumberOfCharsWritten != NULL) /* ensure pointer is valid */ 6155 6225 *lpNumberOfCharsWritten = ulCounter; 6156 6226 6157 6227 /* update screen if active console */ 6158 6228 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 6159 6229 ConsoleGlobals.fUpdateRequired = TRUE;/* update with next WM_TIMER */ 6160 6230 6161 6231 return (TRUE); 6162 6232 } 6163 6233 } 6164 6234 } 6165 6235 6166 6236 /* update screen if active console */ 6167 6237 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 6168 6238 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 6169 6239 6170 6240 if (lpNumberOfCharsWritten != NULL) /* ensure pointer is valid */ 6171 6241 *lpNumberOfCharsWritten = nLength; 6172 6242 6173 6243 return (TRUE); 6174 6244 } … … 6183 6253 * Variables : 6184 6254 * Result : 6185 * Remark : 6255 * Remark : 6186 6256 * Status : UNTESTED 6187 6257 * … … 6193 6263 { 6194 6264 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 6195 6265 6196 6266 #ifdef DEBUG_LOCAL2 6197 6267 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::GetConsoleMode(%08x,%08x).\n", … … 6199 6269 lpMode); 6200 6270 #endif 6201 6271 6202 6272 *lpMode = pConsoleBuffer->dwConsoleMode; /* return current console mode */ 6203 6273 6204 6274 return (TRUE); 6205 6275 } … … 6213 6283 * Variables : 6214 6284 * Result : 6215 * Remark : 6285 * Remark : 6216 6286 * Status : UNTESTED 6217 6287 * … … 6223 6293 { 6224 6294 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 6225 6295 6226 6296 #ifdef DEBUG_LOCAL2 6227 6297 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::GetConsoleCursorInfo(%08x,%08x).\n", … … 6229 6299 pCCI); 6230 6300 #endif 6231 6301 6232 6302 memcpy(pCCI, /* just copy the whole information block */ 6233 6303 &pConsoleBuffer->CursorInfo, 6234 6304 sizeof (pConsoleBuffer->CursorInfo) ); 6235 6305 6236 6306 return (TRUE); 6237 6307 } … … 6245 6315 * Variables : 6246 6316 * Result : 6247 * Remark : 6317 * Remark : 6248 6318 * Status : UNTESTED 6249 6319 * … … 6255 6325 { 6256 6326 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 6257 6327 6258 6328 #ifdef DEBUG_LOCAL2 6259 6329 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::GetConsoleScreenBufferInfo(%08x,%08x).\n", … … 6261 6331 pCSBI); 6262 6332 #endif 6263 6333 6264 6334 pCSBI->dwSize = pConsoleBuffer->coordBufferSize; 6265 6335 pCSBI->dwCursorPosition = pConsoleBuffer->coordCursorPosition; 6266 6336 pCSBI->wAttributes = (USHORT)pConsoleBuffer->ucDefaultAttribute; 6267 6337 6268 6338 /* @@@PH unsure, but should be OK */ 6269 6339 pCSBI->srWindow.Left = pConsoleBuffer->coordWindowPosition.X; … … 6273 6343 pCSBI->srWindow.Bottom = pConsoleBuffer->coordWindowPosition.Y + 6274 6344 pConsoleBuffer->coordWindowSize.Y - 1; 6275 6345 6276 6346 pCSBI->dwMaximumWindowSize = pConsoleBuffer->coordBufferSize; 6277 6347 6278 return (TRUE); 6348 return (TRUE); 6279 6349 } 6280 6350 … … 6283 6353 * Name : DWORD HMDeviceConsoleBufferClass::GetLargestConsoleWindowSize 6284 6354 * Purpose : Determine maximum AVIO size 6285 * Parameters: 6286 * Variables : 6287 * Result : 6288 * Remark : 6289 * Status : 6355 * Parameters: 6356 * Variables : 6357 * Result : 6358 * Remark : 6359 * Status : 6290 6360 * 6291 6361 * Author : Patrick Haller [Tue, 1998/02/10 01:55] … … 6299 6369 LONG lScreenCY; 6300 6370 APIRET rc; /* API returncode */ 6301 6302 6371 6372 6303 6373 #ifdef DEBUG_LOCAL 6304 6374 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::GetLargestConsoleWindowSize(%08x).\n", 6305 6375 pHMHandleData); 6306 6376 #endif 6307 6377 6308 6378 /* @@@PH determine maximum console window size in characters 6309 6379 based on display size and current avio font */ 6310 6380 6311 6381 lScreenCX = WinQuerySysValue(HWND_DESKTOP, /* query PM for that */ 6312 6382 SV_CXSCREEN); 6313 6383 6314 6384 lScreenCY = WinQuerySysValue(HWND_DESKTOP, /* query PM for that */ 6315 6385 SV_CYFULLSCREEN); 6316 6386 6317 6387 if (rc != NO_ERROR) 6318 6388 { 6319 6389 WriteLog("KERNEL32/CONSOLE: VioGetDeviceCellSize failed with #%u.\n", 6320 6390 rc); 6321 6391 6322 6392 return (FALSE); /* say API failed */ 6323 6393 } 6324 6394 6325 6395 if ( (ConsoleGlobals.sCellCX == 0) || /* prevent division by zero */ 6326 6396 (ConsoleGlobals.sCellCY == 0) ) 6327 6397 { 6328 6398 WriteLog("KERNEL32/CONSOLE: VioGetDeviceCellSize returned 0 value.\n"); 6329 6399 6330 6400 return (FALSE); /* say API failed */ 6331 6401 } 6332 6402 6333 6403 coordSize.X = lScreenCX / ConsoleGlobals.sCellCX; /* calculate */ 6334 6404 coordSize.Y = lScreenCY / ConsoleGlobals.sCellCY; 6335 6405 6336 6406 /* these limitations are due to OS/2's current VIO subsystem */ 6337 6407 coordSize.X = min(coordSize.X, MAX_OS2_COLUMNS); 6338 6408 coordSize.Y = min(coordSize.Y, MAX_OS2_ROWS); 6339 6409 6340 6410 return (COORD2ULONG(coordSize)); /* return value */ 6341 6411 } … … 6352 6422 * Variables : 6353 6423 * Result : 6354 * Remark : 6424 * Remark : 6355 6425 * Status : UNTESTED 6356 6426 * … … 6369 6439 ULONG ulReadX, ulReadY; /* position data is read from */ 6370 6440 WORD wCell; /* currently read data */ 6371 6441 6372 6442 PCHAR_INFO pchi; 6373 6443 6374 6444 #ifdef DEBUG_LOCAL2 6375 6445 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::ReadConsoleOutputA(%08x,%08x,x=%u y=%u,x=%u y=%u, %08x).\n", … … 6382 6452 psrctSourceRect); 6383 6453 #endif 6384 6385 6454 6455 6386 6456 /* verify psrctSourceRect first */ 6387 6457 psrctSourceRect->Left = max(psrctSourceRect->Left, 0); … … 6389 6459 psrctSourceRect->Right = min(psrctSourceRect->Right, pConsoleBuffer->coordBufferSize.X - 1); 6390 6460 psrctSourceRect->Bottom= min(psrctSourceRect->Bottom,pConsoleBuffer->coordBufferSize.Y - 1); 6391 6461 6392 6462 /* verify target buffer */ 6393 6463 if ( (coordDestBufferSize.X < coordDestBufferCoord.X) || … … 6397 6467 return (FALSE); /* API failed */ 6398 6468 } 6399 6469 6400 6470 ulCX = coordDestBufferSize.X - coordDestBufferCoord.X; 6401 6471 ulCY = coordDestBufferSize.Y - coordDestBufferCoord.Y; 6402 6472 6403 6473 ulCX = min(ulCX, (psrctSourceRect->Right - psrctSourceRect->Left)); 6404 6474 ulCY = min(ulCY, (psrctSourceRect->Bottom - psrctSourceRect->Top)); 6405 6475 6406 6476 /* final calculation of the copy rectangle */ 6407 6477 psrctSourceRect->Right = psrctSourceRect->Left + ulCX; 6408 6478 psrctSourceRect->Bottom = psrctSourceRect->Top + ulCY; 6409 6410 6479 6480 6411 6481 for (ulY = 0, 6412 6482 ulReadY = psrctSourceRect->Top; 6413 6483 6414 6484 ulY <= ulCY; 6415 6485 6416 6486 ulY++, 6417 6487 ulReadY++) … … 6422 6492 for (ulX = 0, 6423 6493 ulReadX = psrctSourceRect->Left; 6424 6494 6425 6495 ulX <= ulCX; 6426 6496 6427 6497 ulX++, 6428 6498 ulReadX++, … … 6431 6501 /* read character */ 6432 6502 wCell = *(pConsoleBuffer->ppszLine[ulReadY] + ulReadX * 2); 6433 6503 6434 6504 pchi->Char.AsciiChar = (UCHAR)(wCell & 0x00FF); 6435 6505 pchi->Attributes = wCell >> 8; 6436 6506 } 6437 6507 } 6438 6508 6439 6509 return (TRUE); /* OK, that's it */ 6440 6510 } … … 6451 6521 * Variables : 6452 6522 * Result : 6453 * Remark : 6523 * Remark : 6454 6524 * Status : UNTESTED 6455 6525 * … … 6468 6538 ULONG ulReadX, ulReadY; /* position data is read from */ 6469 6539 WORD wCell; /* currently read data */ 6470 6540 6471 6541 PCHAR_INFO pchi; 6472 6542 6473 6543 #ifdef DEBUG_LOCAL2 6474 6544 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::ReadConsoleOutputW(%08x,%08x,x=%u y=%u,x=%u y=%u, %08x).\n", … … 6481 6551 psrctSourceRect); 6482 6552 #endif 6483 6484 6553 6554 6485 6555 /* verify psrctSourceRect first */ 6486 6556 psrctSourceRect->Left = max(psrctSourceRect->Left, 0); … … 6488 6558 psrctSourceRect->Right = min(psrctSourceRect->Right, pConsoleBuffer->coordBufferSize.X - 1); 6489 6559 psrctSourceRect->Bottom= min(psrctSourceRect->Bottom,pConsoleBuffer->coordBufferSize.Y - 1); 6490 6560 6491 6561 /* verify target buffer */ 6492 6562 if ( (coordDestBufferSize.X < coordDestBufferCoord.X) || … … 6496 6566 return (FALSE); /* API failed */ 6497 6567 } 6498 6568 6499 6569 ulCX = coordDestBufferSize.X - coordDestBufferCoord.X; 6500 6570 ulCY = coordDestBufferSize.Y - coordDestBufferCoord.Y; 6501 6571 6502 6572 ulCX = min(ulCX, (psrctSourceRect->Right - psrctSourceRect->Left)); 6503 6573 ulCY = min(ulCY, (psrctSourceRect->Bottom - psrctSourceRect->Top)); 6504 6574 6505 6575 /* final calculation of the copy rectangle */ 6506 6576 psrctSourceRect->Right = psrctSourceRect->Left + ulCX; 6507 6577 psrctSourceRect->Bottom = psrctSourceRect->Top + ulCY; 6508 6509 6578 6579 6510 6580 for (ulY = 0, 6511 6581 ulReadY = psrctSourceRect->Top; 6512 6582 6513 6583 ulY <= ulCY; 6514 6584 6515 6585 ulY++, 6516 6586 ulReadY++) … … 6521 6591 for (ulX = 0, 6522 6592 ulReadX = psrctSourceRect->Left; 6523 6593 6524 6594 ulX <= ulCX; 6525 6595 6526 6596 ulX++, 6527 6597 ulReadX++, … … 6530 6600 /* read character */ 6531 6601 wCell = *(pConsoleBuffer->ppszLine[ulReadY] + ulReadX * 2); 6532 6602 6533 6603 /* @@@PH Ascii->Unicode */ 6534 6604 pchi->Char.UnicodeChar = (UCHAR)(wCell & 0x00FF); … … 6536 6606 } 6537 6607 } 6538 6608 6539 6609 return (TRUE); /* OK, that's it */ 6540 6610 } … … 6551 6621 * Variables : 6552 6622 * Result : 6553 * Remark : 6623 * Remark : 6554 6624 * Status : UNTESTED 6555 6625 * … … 6565 6635 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 6566 6636 ULONG ulCounter; /* current character counter */ 6567 6637 6568 6638 #ifdef DEBUG_LOCAL2 6569 6639 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::ReadConsoleOutputAttribute(%08x,pattr=%08x,%u,x=%u y=%u,res=%08x).\n", … … 6575 6645 lpcNumberRead); 6576 6646 #endif 6577 6647 6578 6648 if ( (dwReadCoord.X < 0) || 6579 6649 (dwReadCoord.Y < 0) ) … … 6581 6651 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6582 6652 *lpcNumberRead = 0; /* complete error handling */ 6583 6653 6584 6654 SetLastError(ERROR_INVALID_PARAMETER); 6585 6655 return (FALSE); 6586 6656 } 6587 6657 6588 6658 /* check if dwReadCoord is within specs */ 6589 6659 if ( (dwReadCoord.X >= pConsoleBuffer->coordBufferSize.X) || … … 6592 6662 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6593 6663 *lpcNumberRead = 0; /* complete error handling */ 6594 6664 6595 6665 SetLastError(ERROR_INVALID_PARAMETER); 6596 6666 return (FALSE); 6597 6667 } 6598 6668 6599 6669 6600 6670 /* OK, now write the attribute lines */ … … 6608 6678 *(pConsoleBuffer->ppszLine[dwReadCoord.Y] + 6609 6679 (dwReadCoord.X * 2 + 1)); 6610 6680 6611 6681 dwReadCoord.X++; /* move write position */ 6612 6682 if (dwReadCoord.X >= pConsoleBuffer->coordBufferSize.X) … … 6614 6684 dwReadCoord.X = 0; /* skip to next line */ 6615 6685 dwReadCoord.Y++; 6616 6686 6617 6687 /* oops, we're at the end of the buffer. Abort now. */ 6618 6688 if (dwReadCoord.Y >= pConsoleBuffer->coordBufferSize.Y) … … 6620 6690 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6621 6691 *lpcNumberRead = ulCounter; 6622 6692 6623 6693 return (TRUE); 6624 6694 } 6625 6695 } 6626 6696 } 6627 6697 6628 6698 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6629 6699 *lpcNumberRead = cReadCells; 6630 6700 6631 6701 return (TRUE); 6632 6702 } … … 6643 6713 * Variables : 6644 6714 * Result : 6645 * Remark : 6715 * Remark : 6646 6716 * Status : UNTESTED 6647 6717 * … … 6657 6727 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 6658 6728 ULONG ulCounter; /* current character counter */ 6659 6729 6660 6730 #ifdef DEBUG_LOCAL2 6661 6731 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::ReadConsoleOutputCharacterA(%08x,pattr=%08x,%u,x=%u y=%u,res=%08x).\n", … … 6667 6737 lpcNumberRead); 6668 6738 #endif 6669 6739 6670 6740 if ( (coordReadCoord.X < 0) || 6671 6741 (coordReadCoord.Y < 0) ) … … 6673 6743 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6674 6744 *lpcNumberRead = 0; /* complete error handling */ 6675 6745 6676 6746 SetLastError(ERROR_INVALID_PARAMETER); 6677 6747 return (FALSE); 6678 6748 } 6679 6749 6680 6750 /* check if coordReadCoord is within specs */ 6681 6751 if ( (coordReadCoord.X >= pConsoleBuffer->coordBufferSize.X) || … … 6684 6754 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6685 6755 *lpcNumberRead = 0; /* complete error handling */ 6686 6756 6687 6757 SetLastError(ERROR_INVALID_PARAMETER); 6688 6758 return (FALSE); 6689 6759 } 6690 6760 6691 6761 6692 6762 /* OK, now write the attribute lines */ … … 6700 6770 *(pConsoleBuffer->ppszLine[coordReadCoord.Y] + 6701 6771 (coordReadCoord.X * 2)); 6702 6772 6703 6773 coordReadCoord.X++; /* move write position */ 6704 6774 if (coordReadCoord.X >= pConsoleBuffer->coordBufferSize.X) … … 6706 6776 coordReadCoord.X = 0; /* skip to next line */ 6707 6777 coordReadCoord.Y++; 6708 6778 6709 6779 /* oops, we're at the end of the buffer. Abort now. */ 6710 6780 if (coordReadCoord.Y >= pConsoleBuffer->coordBufferSize.Y) … … 6712 6782 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6713 6783 *lpcNumberRead = ulCounter; 6714 6784 6715 6785 return (TRUE); 6716 6786 } 6717 6787 } 6718 6788 } 6719 6789 6720 6790 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6721 6791 *lpcNumberRead = cchRead; 6722 6792 6723 6793 return (TRUE); 6724 6794 } … … 6735 6805 * Variables : 6736 6806 * Result : 6737 * Remark : 6807 * Remark : 6738 6808 * Status : UNTESTED 6739 6809 * … … 6749 6819 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 6750 6820 ULONG ulCounter; /* current character counter */ 6751 6821 6752 6822 #ifdef DEBUG_LOCAL2 6753 6823 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::ReadConsoleOutputCharacterW(%08x,pattr=%08x,%u,x=%u y=%u,res=%08x).\n", … … 6759 6829 lpcNumberRead); 6760 6830 #endif 6761 6831 6762 6832 if ( (coordReadCoord.X < 0) || 6763 6833 (coordReadCoord.Y < 0) ) … … 6765 6835 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6766 6836 *lpcNumberRead = 0; /* complete error handling */ 6767 6837 6768 6838 SetLastError(ERROR_INVALID_PARAMETER); 6769 6839 return (FALSE); 6770 6840 } 6771 6841 6772 6842 /* check if coordReadCoord is within specs */ 6773 6843 if ( (coordReadCoord.X >= pConsoleBuffer->coordBufferSize.X) || … … 6776 6846 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6777 6847 *lpcNumberRead = 0; /* complete error handling */ 6778 6848 6779 6849 SetLastError(ERROR_INVALID_PARAMETER); 6780 6850 return (FALSE); 6781 6851 } 6782 6852 6783 6853 6784 6854 /* OK, now write the attribute lines */ … … 6793 6863 *(pConsoleBuffer->ppszLine[coordReadCoord.Y] + 6794 6864 (coordReadCoord.X * 2)); 6795 6865 6796 6866 coordReadCoord.X++; /* move write position */ 6797 6867 if (coordReadCoord.X >= pConsoleBuffer->coordBufferSize.X) … … 6799 6869 coordReadCoord.X = 0; /* skip to next line */ 6800 6870 coordReadCoord.Y++; 6801 6871 6802 6872 /* oops, we're at the end of the buffer. Abort now. */ 6803 6873 if (coordReadCoord.Y >= pConsoleBuffer->coordBufferSize.Y) … … 6805 6875 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6806 6876 *lpcNumberRead = ulCounter; 6807 6877 6808 6878 return (TRUE); 6809 6879 } 6810 6880 } 6811 6881 } 6812 6882 6813 6883 if (lpcNumberRead != NULL) /* ensure pointer is valid */ 6814 6884 *lpcNumberRead = cchRead; 6815 6885 6816 6886 return (TRUE); 6817 6887 } … … 6851 6921 WORD wAttr; /* fill character and attribute */ 6852 6922 int iBlitDirection; /* to handle overlapped buffers */ 6853 6923 6854 6924 #ifdef DEBUG_LOCAL2 6855 6925 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::ScrollConsoleScreenBufferA(%08x,%08x,%08x,x=%u y=%u,%08x).\n", … … 6861 6931 pchiFill); 6862 6932 #endif 6863 6933 6864 6934 /* calculate effective clipping rectangle */ 6865 6935 if (psrctClipRect != NULL) /* if clipping rectangle was specified */ … … 6868 6938 psrctClipRect, 6869 6939 sizeof (SMALL_RECT) ); 6870 6940 6871 6941 /* check boundary with buffer size */ 6872 6942 srctView.Left = max(0, srctView.Left); … … 6882 6952 srctView.Bottom = pConsoleBuffer->coordBufferSize.Y; 6883 6953 } 6884 6954 6885 6955 memcpy(&srctSource, /* copy source rectangle */ 6886 6956 psrctSourceRect, … … 6891 6961 srctSource.Right = min(srctSource.Right, srctView.Right ); 6892 6962 srctSource.Bottom = min(srctSource.Bottom,srctView.Bottom); 6893 6963 6894 6964 srctDest.Left = max(srctView.Left, coordDestOrigin.X); 6895 6965 srctDest.Top = max(srctView.Top, coordDestOrigin.Y); 6896 6966 srctDest.Right = min(srctView.Right, srctDest.Left + srctSource.Right - srctSource.Left); 6897 6967 srctDest.Bottom= min(srctView.Bottom, srctDest.Top + srctSource.Bottom - srctSource.Top); 6898 6968 6899 6969 /**************************** 6900 6970 * first copy the rectangle * 6901 6971 ****************************/ 6902 6972 6903 6973 if (srctDest.Left > srctSource.Left) iBlitDirection = 0; 6904 6974 else iBlitDirection = 1; 6905 6975 if (srctDest.Top > srctSource.Top) iBlitDirection += 2; 6906 6976 6907 6977 /* this leaves us with three different cases: */ 6908 6978 /* */ … … 6923 6993 { 6924 6994 /* calculate pointer to start of target screen line */ 6925 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctDest.Top] + 6995 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctDest.Top] + 6926 6996 (srctDest.Left << 1) ); 6927 6997 6928 6998 /* calculate pointer to start of source screen line */ 6929 pusSource = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctSource.Top] + 6999 pusSource = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctSource.Top] + 6930 7000 (srctSource.Left << 1) ); 6931 7001 6932 7002 for (iX = srctDest.Left; 6933 7003 iX <= srctDest.Right; … … 6938 7008 } 6939 7009 break; 6940 7010 6941 7011 /*************** 6942 7012 * upper right * … … 6948 7018 { 6949 7019 /* calculate pointer to end of target screen line */ 6950 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctDest.Top] + 7020 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctDest.Top] + 6951 7021 ( srctDest.Right << 1) ); 6952 7022 6953 7023 /* calculate pointer to end of source screen line */ 6954 pusSource = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctSource.Top] + 7024 pusSource = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctSource.Top] + 6955 7025 ( srctSource.Right << 1) ); 6956 7026 6957 7027 for (iX = srctDest.Right; 6958 7028 iX >= srctDest.Left; … … 6963 7033 } 6964 7034 break; 6965 7035 6966 7036 /*************** 6967 7037 * lower left * … … 6973 7043 { 6974 7044 /* calculate pointer to start of target screen line */ 6975 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctDest.Top] + 7045 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctDest.Top] + 6976 7046 (srctDest.Left << 1) ); 6977 7047 6978 7048 /* calculate pointer to start of source screen line */ 6979 pusSource = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctSource.Top] + 7049 pusSource = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctSource.Top] + 6980 7050 (srctSource.Left << 1) ); 6981 7051 6982 7052 for (iX = srctDest.Left; 6983 7053 iX <= srctDest.Right; … … 6998 7068 { 6999 7069 /* calculate pointer to end of target screen line */ 7000 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctDest.Top] + 7070 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctDest.Top] + 7001 7071 ( srctDest.Right << 1) ); 7002 7072 7003 7073 /* calculate pointer to end of source screen line */ 7004 pusSource = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctSource.Top] + 7074 pusSource = (PUSHORT) (pConsoleBuffer->ppszLine[iY + srctSource.Top] + 7005 7075 (srctSource.Right << 1) ); 7006 7076 7007 7077 for (iX = srctDest.Right; 7008 7078 iX >= srctDest.Left; … … 7014 7084 break; 7015 7085 } 7016 7017 7086 7087 7018 7088 /* this is the character and attribute for the uncovered cells */ 7019 7089 wAttr = (pchiFill->Char.AsciiChar) + (pchiFill->Attributes << 8); … … 7024 7094 { 7025 7095 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[iY] + srctSource.Left); 7026 7096 7027 7097 for (iX = srctSource.Left; 7028 7098 iX < srctSource.Right; … … 7039 7109 *pusTarget = wAttr; /* write fill character and attribute */ 7040 7110 } 7041 7111 7042 7112 /* update screen if active console */ 7043 7113 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) … … 7079 7149 PUSHORT pusTarget, pusSource; /* pointer to source, dest cells */ 7080 7150 WORD wAttr; /* fill character and attribute */ 7081 7151 7082 7152 #ifdef DEBUG_LOCAL2 7083 7153 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::ScrollConsoleScreenBufferW(%08x,%08x,%08x,x=%u y=%u,%08x).\n", … … 7089 7159 pchiFill); 7090 7160 #endif 7091 7161 7092 7162 /* calculate effective clipping rectangle */ 7093 7163 if (psrctClipRect != NULL) /* if clipping rectangle was specified */ … … 7096 7166 psrctClipRect, 7097 7167 sizeof (SMALL_RECT) ); 7098 7168 7099 7169 /* check boundary with buffer size */ 7100 7170 srctView.Left = max(0, srctView.Left); … … 7110 7180 srctView.Bottom = pConsoleBuffer->coordBufferSize.Y; 7111 7181 } 7112 7182 7113 7183 memcpy(&srctSource, /* copy source rectangle */ 7114 7184 psrctSourceRect, … … 7119 7189 srctSource.Right = min(srctSource.Right, srctView.Right ); 7120 7190 srctSource.Bottom = min(srctSource.Bottom,srctView.Bottom); 7121 7191 7122 7192 srctDest.Left = max(srctView.Left, coordDestOrigin.X); 7123 7193 srctDest.Top = max(srctView.Top, coordDestOrigin.Y); 7124 7194 srctDest.Right = min(srctView.Right, srctDest.Left + srctSource.Right - srctSource.Left); 7125 7195 srctDest.Bottom= min(srctView.Bottom, srctDest.Top + srctSource.Bottom - srctSource.Top); 7126 7196 7127 7197 /* first copy the rectangle */ 7128 7198 for (ulY = 0; … … 7131 7201 { 7132 7202 /* calculate pointer to start of target screen line */ 7133 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[ulY + srctDest.Top] + 7203 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[ulY + srctDest.Top] + 7134 7204 srctDest.Left); 7135 7205 7136 7206 /* calculate pointer to start of source screen line */ 7137 pusSource = (PUSHORT) (pConsoleBuffer->ppszLine[ulY + srctSource.Top] + 7207 pusSource = (PUSHORT) (pConsoleBuffer->ppszLine[ulY + srctSource.Top] + 7138 7208 srctSource.Left); 7139 7209 7140 7210 for (ulX = srctDest.Left; 7141 7211 ulX < srctDest.Right; … … 7145 7215 *pusTarget = *pusSource; /* copy character */ 7146 7216 } 7147 7148 7217 7218 7149 7219 /* this is the character and attribute for the uncovered cells */ 7150 7220 /* @@@PH Unicode->Ascii translation */ … … 7156 7226 { 7157 7227 pusTarget = (PUSHORT) (pConsoleBuffer->ppszLine[ulY] + srctSource.Left); 7158 7228 7159 7229 for (ulX = srctSource.Left; 7160 7230 ulX < srctSource.Right; … … 7163 7233 *pusTarget = wAttr; /* write fill character and attribute */ 7164 7234 } 7165 7235 7166 7236 /* update screen if active console */ 7167 7237 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 7168 7238 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 7169 7239 7170 7240 return (TRUE); 7171 7241 } … … 7179 7249 * Variables : 7180 7250 * Result : 7181 * Remark : 7251 * Remark : 7182 7252 * Status : UNTESTED 7183 7253 * … … 7189 7259 { 7190 7260 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7191 7261 7192 7262 #ifdef DEBUG_LOCAL2 7193 7263 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::SetConsoleCursorInfo(%08x,%08x).\n", … … 7195 7265 pCCI); 7196 7266 #endif 7197 7267 7198 7268 /* validate structure */ 7199 7269 if ( (pCCI->dwSize < 1) || … … 7203 7273 return (FALSE); /* API failed */ 7204 7274 } 7205 7275 7206 7276 /* if we're the active buffer, remove cursor from screen first */ 7207 7277 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 7208 7278 ConsoleCursorShow(pConsoleBuffer, 7209 7279 CONSOLECURSOR_HIDE); 7210 7280 7211 7281 memcpy(&pConsoleBuffer->CursorInfo, /* copy the whole information block */ 7212 7282 pCCI, 7213 7283 sizeof (pConsoleBuffer->CursorInfo) ); 7214 7284 7215 7285 return (TRUE); 7216 7286 } … … 7224 7294 * Variables : 7225 7295 * Result : 7226 * Remark : 7296 * Remark : 7227 7297 * Status : UNTESTED 7228 7298 * … … 7234 7304 { 7235 7305 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7236 7306 7237 7307 #ifdef DEBUG_LOCAL2 7238 7308 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::SetConsoleCursorPosition(%08x,x=%u.y=%u).\n", … … 7241 7311 coordCursorPosition.Y); 7242 7312 #endif 7243 7313 7244 7314 /* @@@PH remove cursor from screen first ! */ 7245 7315 pConsoleBuffer->coordCursorPosition = coordCursorPosition; 7246 7316 7247 7317 return (TRUE); 7248 7318 } … … 7256 7326 * Variables : 7257 7327 * Result : 7258 * Remark : 7328 * Remark : 7259 7329 * Status : UNTESTED 7260 7330 * … … 7266 7336 { 7267 7337 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7268 7338 7269 7339 #ifdef DEBUG_LOCAL2 7270 7340 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::SetConsoleMode(%08x,%08x).\n", … … 7272 7342 dwMode); 7273 7343 #endif 7274 7344 7275 7345 pConsoleBuffer->dwConsoleMode = dwMode; /* set current console mode */ 7276 7346 7277 7347 return (TRUE); 7278 7348 } … … 7287 7357 * Variables : 7288 7358 * Result : 7289 * Remark : 7359 * Remark : 7290 7360 * Status : UNTESTED 7291 7361 * … … 7300 7370 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7301 7371 ULONG ulLine; /* line index counter */ 7302 7372 7303 7373 #ifdef DEBUG_LOCAL2 7304 7374 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::SetConsoleScreenBufferSize(%u,%u).\n", … … 7306 7376 coordSize.Y); 7307 7377 #endif 7308 7309 7378 7379 7310 7380 /* re-allocate the whole line-pointer array */ 7311 7381 ulSize = coordSize.Y * (coordSize.X * 2 + sizeof (PSZ) ); … … 7314 7384 if (pConsoleBuffer->ppszLine != NULL) /* if old buffer is present */ 7315 7385 free (pConsoleBuffer->ppszLine); /* free old buffer */ 7316 7386 7317 7387 pConsoleBuffer->ppszLine = NULL; 7318 7388 pConsoleBuffer->coordBufferSize.X = 0; … … 7322 7392 pConsoleBuffer->coordWindowPosition.X = 0; 7323 7393 pConsoleBuffer->coordWindowPosition.Y = 0; 7324 7394 7325 7395 return (TRUE); /* OK */ 7326 7396 } 7327 7397 7328 7398 7329 7399 ppszNew = (PSZ *) malloc(ulSize); /* allocate array */ 7330 7400 if (ppszNew == NULL) /* check proper allocation */ … … 7333 7403 return (FALSE); /* raise error condition */ 7334 7404 } 7335 7405 7336 7406 7337 7407 for (ulLine = 0; /* setup line pointer array */ … … 7349 7419 ((ULONG)(pConsoleBuffer->ucDefaultAttribute) << 24) + 7350 7420 ((ULONG)' ' << 16) ); 7351 7421 7352 7422 /* scroll the line index */ 7353 7423 for (ulLine = 0; … … 7357 7427 (PUSHORT)(ppszNew[ulLine]), 7358 7428 coordSize.X); 7359 7360 7361 7429 7430 7431 7362 7432 /* copy lines as required */ 7363 7433 if (pConsoleBuffer->ppszLine != NULL) /* previous buffer present ? */ 7364 7434 { 7365 7435 ULONG x, y; 7366 7436 7367 7437 /* copy old characters as required */ 7368 7438 x = min(pConsoleBuffer->coordBufferSize.X, coordSize.X); 7369 7439 y = min(pConsoleBuffer->coordBufferSize.Y, coordSize.Y); 7370 7440 7371 7441 for (ulLine = 0; /* copy line by line */ 7372 7442 ulLine < y; … … 7375 7445 pConsoleBuffer->ppszLine[ulLine], 7376 7446 x * 2); 7377 7447 7378 7448 free (pConsoleBuffer->ppszLine); /* free previous screen buffer array */ 7379 7449 } 7380 7450 7381 7451 7382 7452 pConsoleBuffer->ppszLine = ppszNew; /* poke in the new values */ … … 7385 7455 pConsoleBuffer->coordCursorPosition.X = 0; 7386 7456 pConsoleBuffer->coordCursorPosition.Y = 0; 7387 7457 7388 7458 /* @@@PH to be changed ! */ 7389 7459 pConsoleBuffer->coordWindowSize.X = coordSize.X; /* default */ … … 7395 7465 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 7396 7466 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 7397 7467 7398 7468 return TRUE; 7399 7469 } … … 7401 7471 7402 7472 /***************************************************************************** 7403 * Name : 7404 * Purpose : 7405 * Parameters: 7406 * Variables : 7407 * Result : 7408 * Remark : 7409 * Status : 7473 * Name : 7474 * Purpose : 7475 * Parameters: 7476 * Variables : 7477 * Result : 7478 * Remark : 7479 * Status : 7410 7480 * 7411 7481 * Author : Patrick Haller [Tue, 1998/02/10 01:55] … … 7416 7486 { 7417 7487 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7418 7488 7419 7489 #ifdef DEBUG_LOCAL2 7420 7490 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::SetConsoleTextAttribute(%u).\n", 7421 7491 wAttr); 7422 7492 #endif 7423 7493 7424 7494 pConsoleBuffer->ucDefaultAttribute = (UCHAR)wAttr; 7425 7495 return (TRUE); … … 7428 7498 7429 7499 /***************************************************************************** 7430 * Name : 7431 * Purpose : 7432 * Parameters: 7433 * Variables : 7434 * Result : 7435 * Remark : 7436 * Status : 7500 * Name : 7501 * Purpose : 7502 * Parameters: 7503 * Variables : 7504 * Result : 7505 * Remark : 7506 * Status : 7437 7507 * 7438 7508 * Author : Patrick Haller [Tue, 1998/02/10 01:55] … … 7442 7512 { 7443 7513 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7444 7514 7445 7515 #ifdef DEBUG_LOCAL 7446 7516 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::SetConsoleActiveScreenBuffer().\n"); 7447 7517 #endif 7448 7518 7449 7519 /* set new buffer handle to the global console */ 7450 7520 ConsoleGlobals.hConsoleBuffer = pHMHandleData->hHandle; 7451 7521 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 7452 7522 7453 7523 return (TRUE); 7454 7524 } … … 7463 7533 * Variables : 7464 7534 * Result : 7465 * Remark : 7535 * Remark : 7466 7536 * Status : UNTESTED 7467 7537 * … … 7474 7544 { 7475 7545 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7476 7546 7477 7547 #ifdef DEBUG_LOCAL2 7478 7548 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::SetConsoleWindowInfo(%08x,%u,%08x).\n", … … 7481 7551 psrctWindowRect); 7482 7552 #endif 7483 7553 7484 7554 if (fAbsolute == TRUE) /* absolute coordinates provided ? */ 7485 7555 { … … 7495 7565 return (FALSE); /* error */ 7496 7566 } 7497 7567 7498 7568 /* check we don't go beyond screen buffer ! */ 7499 7569 if ( ((psrctWindowRect->Right - psrctWindowRect->Left) > pConsoleBuffer->coordBufferSize.X) || … … 7506 7576 return (FALSE); /* error */ 7507 7577 } 7508 7578 7509 7579 pConsoleBuffer->coordWindowSize.X = psrctWindowRect->Right - 7510 7580 psrctWindowRect->Left; 7511 7581 pConsoleBuffer->coordWindowSize.Y = psrctWindowRect->Bottom - 7512 7582 psrctWindowRect->Top; 7513 7583 7514 7584 pConsoleBuffer->coordWindowPosition.X = psrctWindowRect->Left; 7515 7585 pConsoleBuffer->coordWindowPosition.Y = psrctWindowRect->Top; … … 7521 7591 int iPosX; 7522 7592 int iPosY; 7523 7593 7524 7594 iSizeX = pConsoleBuffer->coordWindowSize.X + psrctWindowRect->Left + psrctWindowRect->Right; 7525 7595 iSizeY = pConsoleBuffer->coordWindowSize.Y + psrctWindowRect->Top + psrctWindowRect->Bottom; 7526 7596 iPosX = pConsoleBuffer->coordWindowPosition.X + psrctWindowRect->Left; 7527 7597 iPosY = pConsoleBuffer->coordWindowPosition.Y + psrctWindowRect->Top; 7528 7598 7529 7599 /* check we don't go beyond screen buffer ! */ 7530 7600 if ( (iSizeX > pConsoleBuffer->coordBufferSize.X) || … … 7541 7611 return (FALSE); /* error */ 7542 7612 } 7543 7613 7544 7614 /* Values are verified for being OK ! */ 7545 7615 pConsoleBuffer->coordWindowPosition.X = iPosX; … … 7548 7618 pConsoleBuffer->coordWindowSize.Y = iSizeY; 7549 7619 } 7550 7620 7551 7621 /* update window */ 7552 /* @@@PH 7553 7622 /* @@@PH 7623 7554 7624 ConsoleWindowResize(COORD coordWindowSize, 7555 7625 COORD coordWindowPos, 7556 7626 7557 7627 */ 7558 7628 7559 7629 /* update window contents (scroll) */ 7560 7630 /* update screen if active console */ … … 7576 7646 * Variables : 7577 7647 * Result : 7578 * Remark : 7648 * Remark : 7579 7649 * Status : UNTESTED 7580 7650 * … … 7589 7659 { 7590 7660 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7591 7661 7592 7662 #ifdef DEBUG_LOCAL2 7593 7663 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::WriteConsoleA(%08x,%08x,%u,%08x,%08x).\n", … … 7598 7668 lpvReserved); 7599 7669 #endif 7600 7670 7601 7671 /* simply forward the request to that routine */ 7602 7672 return (HMDeviceConsoleBufferClass::WriteFile(pHMHandleData, … … 7618 7688 * Variables : 7619 7689 * Result : 7620 * Remark : 7690 * Remark : 7621 7691 * Status : UNTESTED 7622 7692 * … … 7631 7701 { 7632 7702 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7633 7703 7634 7704 #ifdef DEBUG_LOCAL2 7635 7705 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::WriteConsoleW(%08x,%08x,%u,%08x,%08x).\n", … … 7640 7710 lpvReserved); 7641 7711 #endif 7642 7712 7643 7713 /* @@@PH AScii -> unicode translation */ 7644 7714 7645 7715 /* simply forward the request to that routine */ 7646 7716 return (HMDeviceConsoleBufferClass::WriteFile(pHMHandleData, … … 7662 7732 * Variables : 7663 7733 * Result : 7664 * Remark : 7734 * Remark : 7665 7735 * Status : UNTESTED 7666 7736 * … … 7679 7749 ULONG ulWriteX, ulWriteY; /* position data is read from */ 7680 7750 WORD wCell; /* currently read data */ 7681 7751 7682 7752 PCHAR_INFO pchi; 7683 7753 PSZ pszTarget; 7684 7754 7685 7755 #ifdef DEBUG_LOCAL2 7686 7756 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::WriteConsoleOutputA(%08x,%08x,x=%u y=%u,x=%u y=%u, %08x).\n", … … 7693 7763 psrctDestRect); 7694 7764 #endif 7695 7696 7765 7766 7697 7767 /* verify psrctDestRect first */ 7698 7768 psrctDestRect->Left = max(psrctDestRect->Left, 0); … … 7700 7770 psrctDestRect->Right = min(psrctDestRect->Right, pConsoleBuffer->coordBufferSize.X - 1); 7701 7771 psrctDestRect->Bottom= min(psrctDestRect->Bottom,pConsoleBuffer->coordBufferSize.Y - 1); 7702 7772 7703 7773 /* verify target buffer */ 7704 7774 if ( (coordSrcBufferSize.X < coordSrcBufferCoord.X) || … … 7708 7778 return (FALSE); /* API failed */ 7709 7779 } 7710 7780 7711 7781 ulCX = coordSrcBufferSize.X - coordSrcBufferCoord.X; 7712 7782 ulCY = coordSrcBufferSize.Y - coordSrcBufferCoord.Y; 7713 7783 7714 7784 ulCX = min(ulCX, (psrctDestRect->Right - psrctDestRect->Left)); 7715 7785 ulCY = min(ulCY, (psrctDestRect->Bottom - psrctDestRect->Top)); 7716 7786 7717 7787 /* final calculation of the copy rectangle */ 7718 7788 psrctDestRect->Right = psrctDestRect->Left + ulCX; 7719 7789 psrctDestRect->Bottom = psrctDestRect->Top + ulCY; 7720 7721 7790 7791 7722 7792 for (ulY = 0, 7723 7793 ulWriteY = psrctDestRect->Top; 7724 7794 7725 7795 ulY <= ulCY; 7726 7796 7727 7797 ulY++, 7728 7798 ulWriteY++) … … 7731 7801 + sizeof(CHAR_INFO) * (coordSrcBufferCoord.Y + ulY) 7732 7802 * coordSrcBufferSize.X; 7733 7803 7734 7804 /* calculate pointer to start of screen line */ 7735 7805 pszTarget = pConsoleBuffer->ppszLine[ulWriteY] + psrctDestRect->Left; 7736 7806 7737 7807 for (ulX = 0, 7738 7808 ulWriteX = psrctDestRect->Left; 7739 7809 7740 7810 ulX <= ulCX; 7741 7811 7742 7812 ulX++, 7743 7813 ulWriteX++, … … 7749 7819 } 7750 7820 } 7751 7821 7752 7822 /* update screen if active console */ 7753 7823 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 7754 7824 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 7755 7825 7756 7826 return (TRUE); /* OK, that's it */ 7757 7827 } … … 7768 7838 * Variables : 7769 7839 * Result : 7770 * Remark : 7840 * Remark : 7771 7841 * Status : UNTESTED 7772 7842 * … … 7785 7855 ULONG ulWriteX, ulWriteY; /* position data is read from */ 7786 7856 WORD wCell; /* currently read data */ 7787 7857 7788 7858 PCHAR_INFO pchi; 7789 7859 PSZ pszTarget; 7790 7860 7791 7861 #ifdef DEBUG_LOCAL2 7792 7862 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::WriteConsoleOutputW(%08x,%08x,x=%u y=%u,x=%u y=%u, %08x).\n", … … 7799 7869 psrctDestRect); 7800 7870 #endif 7801 7802 7871 7872 7803 7873 /* verify psrctDestRect first */ 7804 7874 psrctDestRect->Left = max(psrctDestRect->Left, 0); … … 7806 7876 psrctDestRect->Right = min(psrctDestRect->Right, pConsoleBuffer->coordBufferSize.X - 1); 7807 7877 psrctDestRect->Bottom= min(psrctDestRect->Bottom,pConsoleBuffer->coordBufferSize.Y - 1); 7808 7878 7809 7879 /* verify target buffer */ 7810 7880 if ( (coordSrcBufferSize.X < coordSrcBufferCoord.X) || … … 7814 7884 return (FALSE); /* API failed */ 7815 7885 } 7816 7886 7817 7887 ulCX = coordSrcBufferSize.X - coordSrcBufferCoord.X; 7818 7888 ulCY = coordSrcBufferSize.Y - coordSrcBufferCoord.Y; 7819 7889 7820 7890 ulCX = min(ulCX, (psrctDestRect->Right - psrctDestRect->Left)); 7821 7891 ulCY = min(ulCY, (psrctDestRect->Bottom - psrctDestRect->Top)); 7822 7892 7823 7893 /* final calculation of the copy rectangle */ 7824 7894 psrctDestRect->Right = psrctDestRect->Left + ulCX; 7825 7895 psrctDestRect->Bottom = psrctDestRect->Top + ulCY; 7826 7827 7896 7897 7828 7898 for (ulY = 0, 7829 7899 ulWriteY = psrctDestRect->Top; 7830 7900 7831 7901 ulY <= ulCY; 7832 7902 7833 7903 ulY++, 7834 7904 ulWriteY++) … … 7837 7907 + sizeof(CHAR_INFO) * (coordSrcBufferCoord.Y + ulY) 7838 7908 * coordSrcBufferSize.X; 7839 7909 7840 7910 /* calculate pointer to start of screen line */ 7841 7911 pszTarget = pConsoleBuffer->ppszLine[ulWriteY] + psrctDestRect->Left; 7842 7912 7843 7913 for (ulX = 0, 7844 7914 ulWriteX = psrctDestRect->Left; 7845 7915 7846 7916 ulX <= ulCX; 7847 7917 7848 7918 ulX++, 7849 7919 ulWriteX++, … … 7855 7925 } 7856 7926 } 7857 7927 7858 7928 /* update screen if active console */ 7859 7929 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 7860 7930 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 7861 7931 7862 7932 return (TRUE); /* OK, that's it */ 7863 7933 } … … 7874 7944 * Variables : 7875 7945 * Result : 7876 * Remark : 7946 * Remark : 7877 7947 * Status : UNTESTED 7878 7948 * … … 7888 7958 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7889 7959 ULONG ulCounter; /* current character counter */ 7890 7960 7891 7961 #ifdef DEBUG_LOCAL2 7892 7962 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::WriteConsoleOutputAttribute(%08x,pattr=%08x,%u,x=%u y=%u,res=%08x).\n", … … 7900 7970 lpcWritten); 7901 7971 #endif 7902 7972 7903 7973 if ( (dwWriteCoord.X < 0) || 7904 7974 (dwWriteCoord.Y < 0) ) … … 7906 7976 if (lpcWritten != NULL) /* ensure pointer is valid */ 7907 7977 *lpcWritten = 0; /* complete error handling */ 7908 7978 7909 7979 SetLastError(ERROR_INVALID_PARAMETER); 7910 7980 return (FALSE); 7911 7981 } 7912 7982 7913 7983 /* check if dwWriteCoord is within specs */ 7914 7984 if ( (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) || … … 7917 7987 if (lpcWritten != NULL) /* ensure pointer is valid */ 7918 7988 *lpcWritten = 0; /* complete error handling */ 7919 7989 7920 7990 SetLastError(ERROR_INVALID_PARAMETER); 7921 7991 return (FALSE); 7922 7992 } 7923 7993 7924 7994 7925 7995 /* OK, now write the attribute lines */ … … 7933 8003 (dwWriteCoord.X * 2 + 1) 7934 8004 ) = (UCHAR)*lpwAttribute; /* write attribute and skip to next */ 7935 8005 7936 8006 dwWriteCoord.X++; /* move write position */ 7937 8007 if (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) … … 7939 8009 dwWriteCoord.X = 0; /* skip to next line */ 7940 8010 dwWriteCoord.Y++; 7941 8011 7942 8012 /* oops, we're at the end of the buffer. Abort now. */ 7943 8013 if (dwWriteCoord.Y >= pConsoleBuffer->coordBufferSize.Y) … … 7945 8015 if (lpcWritten != NULL) /* ensure pointer is valid */ 7946 8016 *lpcWritten = ulCounter; 7947 8017 7948 8018 /* update screen if active console */ 7949 8019 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 7950 8020 ConsoleGlobals.fUpdateRequired = TRUE;/* update with next WM_TIMER */ 7951 8021 7952 8022 return (TRUE); 7953 8023 } 7954 8024 } 7955 8025 } 7956 8026 7957 8027 /* update screen if active console */ 7958 8028 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 7959 8029 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 7960 8030 7961 8031 if (lpcWritten != NULL) /* ensure pointer is valid */ 7962 8032 *lpcWritten = cWriteCells; 7963 8033 7964 8034 return (TRUE); 7965 8035 } … … 7976 8046 * Variables : 7977 8047 * Result : 7978 * Remark : 8048 * Remark : 7979 8049 * Status : UNTESTED 7980 8050 * … … 7990 8060 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 7991 8061 ULONG ulCounter; /* current character counter */ 7992 8062 7993 8063 #ifdef DEBUG_LOCAL2 7994 8064 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::WriteConsoleOutputCharacterA(%08x,pstr=%08x,%u,x=%u y=%u,res=%08x).\n", … … 8000 8070 lpcWritten); 8001 8071 #endif 8002 8072 8003 8073 if ( (dwWriteCoord.X < 0) || 8004 8074 (dwWriteCoord.Y < 0) ) … … 8006 8076 if (lpcWritten != NULL) /* ensure pointer is valid */ 8007 8077 *lpcWritten = 0; /* complete error handling */ 8008 8078 8009 8079 SetLastError(ERROR_INVALID_PARAMETER); 8010 8080 return (FALSE); 8011 8081 } 8012 8082 8013 8083 /* check if dwWriteCoord is within specs */ 8014 8084 if ( (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) || … … 8017 8087 if (lpcWritten != NULL) /* ensure pointer is valid */ 8018 8088 *lpcWritten = 0; /* complete error handling */ 8019 8089 8020 8090 SetLastError(ERROR_INVALID_PARAMETER); 8021 8091 return (FALSE); 8022 8092 } 8023 8093 8024 8094 8025 8095 /* OK, now write the character lines */ … … 8033 8103 (dwWriteCoord.X * 2) 8034 8104 ) = (UCHAR)*lpWriteBuffer; /* write character and skip to next */ 8035 8105 8036 8106 dwWriteCoord.X++; /* move write position */ 8037 8107 if (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) … … 8039 8109 dwWriteCoord.X = 0; /* skip to next line */ 8040 8110 dwWriteCoord.Y++; 8041 8111 8042 8112 /* oops, we're at the end of the buffer. Abort now. */ 8043 8113 if (dwWriteCoord.Y >= pConsoleBuffer->coordBufferSize.Y) … … 8045 8115 if (lpcWritten != NULL) /* ensure pointer is valid */ 8046 8116 *lpcWritten = ulCounter; 8047 8117 8048 8118 /* update screen if active console */ 8049 8119 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 8050 8120 ConsoleGlobals.fUpdateRequired = TRUE;/* update with next WM_TIMER */ 8051 8121 8052 8122 return (TRUE); 8053 8123 } 8054 8124 } 8055 8125 } 8056 8126 8057 8127 /* update screen if active console */ 8058 8128 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 8059 8129 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 8060 8130 8061 8131 if (lpcWritten != NULL) /* ensure pointer is valid */ 8062 8132 *lpcWritten = cchWrite; 8063 8133 8064 8134 return (TRUE); 8065 8135 } … … 8090 8160 PCONSOLEBUFFER pConsoleBuffer = (PCONSOLEBUFFER)pHMHandleData->lpHandlerData; 8091 8161 ULONG ulCounter; /* current character counter */ 8092 8162 8093 8163 #ifdef DEBUG_LOCAL2 8094 8164 WriteLog("KERNEL32/CONSOLE: CONBUFFER$::WriteConsoleOutputCharacterW(%08x,pstr=%08x,%u,x=%u y=%u,res=%08x).\n", … … 8100 8170 lpcWritten); 8101 8171 #endif 8102 8172 8103 8173 if ( (dwWriteCoord.X < 0) || 8104 8174 (dwWriteCoord.Y < 0) ) … … 8106 8176 if (lpcWritten != NULL) /* ensure pointer is valid */ 8107 8177 *lpcWritten = 0; /* complete error handling */ 8108 8178 8109 8179 SetLastError(ERROR_INVALID_PARAMETER); 8110 8180 return (FALSE); 8111 8181 } 8112 8182 8113 8183 /* check if dwWriteCoord is within specs */ 8114 8184 if ( (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) || … … 8117 8187 if (lpcWritten != NULL) /* ensure pointer is valid */ 8118 8188 *lpcWritten = 0; /* complete error handling */ 8119 8189 8120 8190 SetLastError(ERROR_INVALID_PARAMETER); 8121 8191 return (FALSE); 8122 8192 } 8123 8193 8124 8194 8125 8195 /* OK, now write the character lines */ … … 8134 8204 ) = (UCHAR)*lpWriteBuffer; /* write character and skip to next */ 8135 8205 /* @@@PH unicode to ascii translation */ 8136 8206 8137 8207 dwWriteCoord.X++; /* move write position */ 8138 8208 if (dwWriteCoord.X >= pConsoleBuffer->coordBufferSize.X) … … 8140 8210 dwWriteCoord.X = 0; /* skip to next line */ 8141 8211 dwWriteCoord.Y++; 8142 8212 8143 8213 /* oops, we're at the end of the buffer. Abort now. */ 8144 8214 if (dwWriteCoord.Y >= pConsoleBuffer->coordBufferSize.Y) … … 8146 8216 if (lpcWritten != NULL) /* ensure pointer is valid */ 8147 8217 *lpcWritten = ulCounter; 8148 8218 8149 8219 /* update screen if active console */ 8150 8220 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 8151 8221 ConsoleGlobals.fUpdateRequired = TRUE;/* update with next WM_TIMER */ 8152 8222 8153 8223 return (TRUE); 8154 8224 } 8155 8225 } 8156 8226 } 8157 8227 8158 8228 /* update screen if active console */ 8159 8229 if (pHMHandleData->hHandle == ConsoleGlobals.hConsoleBuffer) 8160 8230 ConsoleGlobals.fUpdateRequired = TRUE; /* update with next WM_TIMER */ 8161 8231 8162 8232 if (lpcWritten != NULL) /* ensure pointer is valid */ 8163 8233 *lpcWritten = cchWrite; 8164 8234 8165 8235 return (TRUE); 8166 8236 } -
trunk/src/kernel32/console2.h
r17 r46 1 /* 2 * 3 * Project Odin Software License can be found in LICENSE.TXT 4 * 5 */ 1 6 /* 2 7 * Win32 Console Subsystem for OS/2 … … 4 9 * 1998/02/11 PH Patrick Haller (haller@zebra.fh-weingarten.de) 5 10 * 6 * @(#) HandleManager.Cpp 1.0.0 11 * @(#) HandleManager.Cpp 1.0.0 1998/02/11 PH start 7 12 */ 8 13 … … 14 19 * Remark * 15 20 ***************************************************************************** 16 21 17 22 */ 18 23 19 24 20 25 /***************************************************************************** … … 53 58 PSZ *ppszLine; /* an array of line pointers */ 54 59 ULONG ulScrollLineOffset; /* offset to the 1st line in the buffer */ 55 60 56 61 /* the following structures reflect the Win32 API structures */ 57 62 CONSOLE_CURSOR_INFO CursorInfo; 58 63 COORD coordCursorPosition; 59 64 60 65 /* the mode the console is currently in */ 61 66 DWORD dwConsoleMode; 62 67 63 68 /* information about the current screen buffer */ 64 69 // CONSOLE_SCREEN_BUFFER_INFO ConsoleScreenBufferInfo; … … 79 84 #endif 80 85 81 82 DWORD EXPORT ConsoleInit(void); /* creation of the console subsystem */ 83 DWORD EXPORT ConsoleDevicesRegister(void); /* create console devices */ 84 void EXPORT ConsoleWaitClose(void); /* wait for user to close console */ 85 BOOL EXPORT ConsoleIsActive(void); /* returns TRUE if console window open */ 86 87 88 89 BOOL WIN32API OS2AllocConsole (VOID); 90 91 HANDLE WIN32API OS2CreateConsoleScreenBuffer (DWORD dwDesiredAccess, 86 87 DWORD ConsoleInit(void); /* creation of the console subsystem */ 88 89 DWORD ConsoleDevicesRegister(void); /* create console devices */ 90 91 void ConsoleWaitClose(void); /* wait for user to close console */ 92 93 BOOL ConsoleIsActive(void); /* returns TRUE if console window open */ 94 95 #ifndef _OS2WIN_H 96 97 BOOL WIN32API AllocConsole (VOID); 98 99 HANDLE WIN32API CreateConsoleScreenBuffer (DWORD dwDesiredAccess, 92 100 DWORD dwShareMode, 93 101 LPVOID lpSecurityAttributes, … … 95 103 LPVOID lpScreenBufferData); 96 104 97 BOOL WIN32API OS2FillConsoleOutputAttribute (HANDLE hConsoleOutput,105 BOOL WIN32API FillConsoleOutputAttribute (HANDLE hConsoleOutput, 98 106 WORD wAttribute, 99 107 DWORD nLength, … … 101 109 LPDWORD lpNumberOfAttrsWritten); 102 110 103 BOOL WIN32API OS2FillConsoleOutputCharacterW (HANDLE hConsoleOutput,111 BOOL WIN32API FillConsoleOutputCharacterW (HANDLE hConsoleOutput, 104 112 WCHAR cCharacter, 105 113 DWORD nLength, … … 107 115 LPDWORD lpNumberOfCharsWritten); 108 116 109 BOOL WIN32API OS2FillConsoleOutputCharacterA (HANDLE hConsoleOutput,117 BOOL WIN32API FillConsoleOutputCharacterA (HANDLE hConsoleOutput, 110 118 UCHAR cCharacter, 111 119 DWORD nLength, … … 114 122 115 123 116 BOOL WIN32API OS2FlushConsoleInputBuffer (HANDLE hConsoleInput);117 118 BOOL WIN32API OS2FreeConsole (VOID);119 120 BOOL WIN32API OS2GenerateConsoleCtrlEvent (DWORD dwCtrlEvent,124 BOOL WIN32API FlushConsoleInputBuffer (HANDLE hConsoleInput); 125 126 BOOL WIN32API FreeConsole (VOID); 127 128 BOOL WIN32API GenerateConsoleCtrlEvent (DWORD dwCtrlEvent, 121 129 DWORD dwProcessGroupId); 122 130 123 UINT WIN32API OS2GetConsoleCP (VOID);124 125 BOOL WIN32API OS2GetConsoleCursorInfo (HANDLE hConsoleOutput,131 UINT WIN32API GetConsoleCP (VOID); 132 133 BOOL WIN32API GetConsoleCursorInfo (HANDLE hConsoleOutput, 126 134 PCONSOLE_CURSOR_INFO lpConsoleCursorInfo); 127 135 128 BOOL WIN32API OS2GetConsoleMode (HANDLE hConsole,136 BOOL WIN32API GetConsoleMode (HANDLE hConsole, 129 137 LPDWORD lpMode); 130 138 131 UINT WIN32API OS2GetConsoleOutputCP (VOID);132 133 BOOL WIN32API OS2GetConsoleScreenBufferInfo (HANDLE hConsoleOutput,139 UINT WIN32API GetConsoleOutputCP (VOID); 140 141 BOOL WIN32API GetConsoleScreenBufferInfo (HANDLE hConsoleOutput, 134 142 PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo); 135 143 136 DWORD WIN32API OS2GetConsoleTitleA (LPTSTR lpConsoleTitle,144 DWORD WIN32API GetConsoleTitleA (LPTSTR lpConsoleTitle, 137 145 DWORD nSize); 138 146 139 DWORD WIN32API OS2GetConsoleTitleW (LPTSTR lpConsoleTitle,147 DWORD WIN32API GetConsoleTitleW (LPTSTR lpConsoleTitle, 140 148 DWORD nSize); 141 149 142 COORD WIN32API OS2GetLargestConsoleWindowSize (HANDLE hConsoleOutput);143 144 BOOL WIN32API OS2GetNumberOfConsoleInputEvents (HANDLE hConsoleInput,150 COORD WIN32API GetLargestConsoleWindowSize (HANDLE hConsoleOutput); 151 152 BOOL WIN32API GetNumberOfConsoleInputEvents (HANDLE hConsoleInput, 145 153 LPDWORD lpNumberOfEvents); 146 154 147 BOOL WIN32API OS2GetNumberOfConsoleMouseButtons(LPDWORD lpcNumberOfMouseButtons);148 149 BOOL WIN32API OS2PeekConsoleInputA (HANDLE hConsoleInput,155 BOOL WIN32API GetNumberOfConsoleMouseButtons(LPDWORD lpcNumberOfMouseButtons); 156 157 BOOL WIN32API PeekConsoleInputA (HANDLE hConsoleInput, 150 158 PINPUT_RECORD pirBuffer, 151 159 DWORD cInRecords, 152 160 LPDWORD lpcRead); 153 161 154 BOOL WIN32API OS2PeekConsoleInputW (HANDLE hConsoleInput,162 BOOL WIN32API PeekConsoleInputW (HANDLE hConsoleInput, 155 163 PINPUT_RECORD pirBuffer, 156 164 DWORD cInRecords, 157 165 LPDWORD lpcRead); 158 166 159 BOOL WIN32API OS2ReadConsoleA (HANDLE hConsoleInput,167 BOOL WIN32API ReadConsoleA (HANDLE hConsoleInput, 160 168 LPVOID lpvBuffer, 161 169 DWORD cchToRead, … … 163 171 LPVOID lpvReserved); 164 172 165 BOOL WIN32API OS2ReadConsoleInputA (HANDLE hConsoleInput,173 BOOL WIN32API ReadConsoleInputA (HANDLE hConsoleInput, 166 174 PINPUT_RECORD pirBuffer, 167 175 DWORD cInRecords, 168 176 LPDWORD lpcRead); 169 177 170 BOOL WIN32API OS2ReadConsoleInputW (HANDLE hConsoleInput,178 BOOL WIN32API ReadConsoleInputW (HANDLE hConsoleInput, 171 179 PINPUT_RECORD pirBuffer, 172 180 DWORD cInRecords, 173 181 LPDWORD lpcRead); 174 182 175 BOOL WIN32API OS2ReadConsoleOutputA (HANDLE hConsoleOutput,183 BOOL WIN32API ReadConsoleOutputA (HANDLE hConsoleOutput, 176 184 PCHAR_INFO pchiDestBuffer, 177 185 COORD coordDestBufferSize, … … 179 187 PSMALL_RECT psrctSourceRect); 180 188 181 BOOL WIN32API OS2ReadConsoleOutputW (HANDLE hConsoleOutput,189 BOOL WIN32API ReadConsoleOutputW (HANDLE hConsoleOutput, 182 190 PCHAR_INFO pchiDestBuffer, 183 191 COORD coordDestBufferSize, … … 185 193 PSMALL_RECT psrctSourceRect); 186 194 187 BOOL WIN32API OS2ReadConsoleOutputAttribute (HANDLE hConsoleOutput,195 BOOL WIN32API ReadConsoleOutputAttribute (HANDLE hConsoleOutput, 188 196 LPWORD lpwAttribute, 189 197 DWORD cReadCells, … … 191 199 LPDWORD lpcNumberRead); 192 200 193 BOOL WIN32API OS2ReadConsoleOutputCharacter (HANDLE hConsoleOutput,201 BOOL WIN32API ReadConsoleOutputCharacter (HANDLE hConsoleOutput, 194 202 LPTSTR lpReadBuffer, 195 203 DWORD cchRead, … … 197 205 LPDWORD lpcNumberRead); 198 206 199 BOOL WIN32API OS2ScrollConsoleScreenBufferA (HANDLE hConsoleOutput,207 BOOL WIN32API ScrollConsoleScreenBufferA (HANDLE hConsoleOutput, 200 208 PSMALL_RECT psrctSourceRect, 201 209 PSMALL_RECT psrctClipRect, … … 203 211 PCHAR_INFO pchiFill); 204 212 205 BOOL WIN32API OS2ScrollConsoleScreenBufferW (HANDLE hConsoleOutput,213 BOOL WIN32API ScrollConsoleScreenBufferW (HANDLE hConsoleOutput, 206 214 PSMALL_RECT psrctSourceRect, 207 215 PSMALL_RECT psrctClipRect, … … 209 217 PCHAR_INFO pchiFill); 210 218 211 BOOL WIN32API OS2SetConsoleActiveScreenBuffer (HANDLE hConsoleOutput);212 213 BOOL WIN32API OS2SetConsoleCP (UINT IDCodePage);214 215 BOOL WIN32API OS2SetConsoleCtrlHandler (PHANDLER_ROUTINE pHandlerRoutine,219 BOOL WIN32API SetConsoleActiveScreenBuffer (HANDLE hConsoleOutput); 220 221 BOOL WIN32API SetConsoleCP (UINT IDCodePage); 222 223 BOOL WIN32API SetConsoleCtrlHandler (PHANDLER_ROUTINE pHandlerRoutine, 216 224 BOOL fAdd); 217 225 218 BOOL WIN32API OS2SetConsoleCursorInfo (HANDLE hConsoleOutput,226 BOOL WIN32API SetConsoleCursorInfo (HANDLE hConsoleOutput, 219 227 PCONSOLE_CURSOR_INFO lpConsoleCursorInfo); 220 228 221 BOOL WIN32API OS2SetConsoleCursorPosition (HANDLE hConsoleOutput,229 BOOL WIN32API SetConsoleCursorPosition (HANDLE hConsoleOutput, 222 230 COORD coordCursor); 223 231 224 BOOL WIN32API OS2SetConsoleMode (HANDLE hConsole,232 BOOL WIN32API SetConsoleMode (HANDLE hConsole, 225 233 DWORD fdwMode); 226 234 227 BOOL WIN32API OS2SetConsoleOutputCP (UINT IDCodePage);228 229 BOOL WIN32API OS2SetConsoleScreenBufferSize (HANDLE hConsoleOutput,235 BOOL WIN32API SetConsoleOutputCP (UINT IDCodePage); 236 237 BOOL WIN32API SetConsoleScreenBufferSize (HANDLE hConsoleOutput, 230 238 COORD coordSize); 231 239 232 BOOL WIN32API OS2SetConsoleTextAttribute (HANDLE hConsoleOutput,240 BOOL WIN32API SetConsoleTextAttribute (HANDLE hConsoleOutput, 233 241 WORD wAttr); 234 242 235 BOOL WIN32API OS2SetConsoleTitleA (LPTSTR lpszTitle);236 237 BOOL WIN32API OS2SetConsoleTitleW (LPTSTR lpszTitle);238 239 BOOL WIN32API OS2SetConsoleWindowInfo (HANDLE hConsoleOutput,243 BOOL WIN32API SetConsoleTitleA (LPTSTR lpszTitle); 244 245 BOOL WIN32API SetConsoleTitleW (LPTSTR lpszTitle); 246 247 BOOL WIN32API SetConsoleWindowInfo (HANDLE hConsoleOutput, 240 248 BOOL fAbsolute, 241 249 PSMALL_RECT psrctWindowRect); 242 250 243 BOOL WIN32API OS2WriteConsoleA (HANDLE hConsoleOutput,251 BOOL WIN32API WriteConsoleA (HANDLE hConsoleOutput, 244 252 CONST VOID* lpvBuffer, 245 253 DWORD cchToWrite, … … 247 255 LPVOID lpvReserved); 248 256 249 BOOL WIN32API OS2WriteConsoleInputA (HANDLE hConsoleInput,257 BOOL WIN32API WriteConsoleInputA (HANDLE hConsoleInput, 250 258 PINPUT_RECORD pirBuffer, 251 259 DWORD cInRecords, 252 260 LPDWORD lpcWritten); 253 261 254 BOOL WIN32API OS2WriteConsoleInputW (HANDLE hConsoleInput,262 BOOL WIN32API WriteConsoleInputW (HANDLE hConsoleInput, 255 263 PINPUT_RECORD pirBuffer, 256 264 DWORD cInRecords, 257 265 LPDWORD lpcWritten); 258 266 259 BOOL WIN32API OS2WriteConsoleOutputA (HANDLE hConsoleOutput,267 BOOL WIN32API WriteConsoleOutputA (HANDLE hConsoleOutput, 260 268 PCHAR_INFO pchiSrcBuffer, 261 269 COORD coordSrcBufferSize, … … 263 271 PSMALL_RECT psrctDestRect); 264 272 265 BOOL WIN32API OS2WriteConsoleOutputW (HANDLE hConsoleOutput,273 BOOL WIN32API WriteConsoleOutputW (HANDLE hConsoleOutput, 266 274 PCHAR_INFO pchiSrcBuffer, 267 275 COORD coordSrcBufferSize, … … 269 277 PSMALL_RECT psrctDestRect); 270 278 271 BOOL WIN32API OS2WriteConsoleOutputAttribute (HANDLE hConsoleOutput,279 BOOL WIN32API WriteConsoleOutputAttribute (HANDLE hConsoleOutput, 272 280 LPWORD lpwAttribute, 273 281 DWORD cWriteCells, … … 275 283 LPDWORD lpcNumberWritten); 276 284 277 BOOL WIN32API OS2WriteConsoleOutputCharacterA (HANDLE hConsoleOutput,285 BOOL WIN32API WriteConsoleOutputCharacterA (HANDLE hConsoleOutput, 278 286 LPTSTR lpWriteBuffer, 279 287 DWORD cchWrite, … … 281 289 LPDWORD lpcWritten); 282 290 283 BOOL WIN32API OS2WriteConsoleOutputCharacterW (HANDLE hConsoleOutput,291 BOOL WIN32API WriteConsoleOutputCharacterW (HANDLE hConsoleOutput, 284 292 LPTSTR lpWriteBuffer, 285 293 DWORD cchWrite, … … 287 295 LPDWORD lpcWritten); 288 296 289 290 291 297 298 #endif // _OS2WIN_H 299 300 292 301 #ifdef __cplusplus 293 302 } … … 315 324 /* input queue */ 316 325 DWORD dwNumberOfInputEvents; /* number of unread events in input queue */ 317 326 318 327 public: 319 328 HMDeviceConsoleInClass(LPCSTR lpDeviceName) 320 329 : HMDeviceHandler(lpDeviceName) {} 321 330 322 331 /* this is a handler method for calls to CreateFile() */ 323 332 virtual DWORD CreateFile (LPCSTR lpFileName, … … 325 334 PVOID lpSecurityAttributes, 326 335 PHMHANDLEDATA pHMHandleDataTemplate); 327 336 328 337 /* this is a handler method for calls to ReadFile() */ 329 338 virtual DWORD ReadFile (PHMHANDLEDATA pHMHandleData, … … 350 359 * non-standard console I/O methods * 351 360 ************************************/ 352 361 353 362 virtual BOOL FlushConsoleInputBuffer(PHMHANDLEDATA pHMHandleData); 354 363 355 364 virtual DWORD GetConsoleMode(PHMHANDLEDATA pHMHandleData, 356 365 LPDWORD lpMode); 357 366 358 367 virtual BOOL GetNumberOfConsoleInputEvents(PHMHANDLEDATA pHMHandleData, 359 368 LPDWORD lpNumberOfEvents); … … 363 372 DWORD cInRecords, 364 373 LPDWORD lpcRead); 365 374 366 375 virtual DWORD PeekConsoleInputW(PHMHANDLEDATA pHMHandleData, 367 376 PINPUT_RECORD pirBuffer, 368 377 DWORD cInRecords, 369 378 LPDWORD lpcRead); 370 379 371 380 virtual DWORD ReadConsoleA(PHMHANDLEDATA pHMHandleData, 372 381 CONST VOID* lpvBuffer, 373 382 DWORD cchToRead, 374 383 LPDWORD lpcchRead, 375 LPVOID lpvReserved); 376 384 LPVOID lpvReserved); 385 377 386 virtual DWORD ReadConsoleW(PHMHANDLEDATA pHMHandleData, 378 387 CONST VOID* lpvBuffer, … … 380 389 LPDWORD lpcchRead, 381 390 LPVOID lpvReserved); 382 391 383 392 virtual DWORD ReadConsoleInputA(PHMHANDLEDATA pHMHandleData, 384 393 PINPUT_RECORD pirBuffer, 385 394 DWORD cInRecords, 386 395 LPDWORD lpcRead); 387 396 388 397 virtual DWORD ReadConsoleInputW(PHMHANDLEDATA pHMHandleData, 389 398 PINPUT_RECORD pirBuffer, 390 399 DWORD cInRecords, 391 400 LPDWORD lpcRead); 392 401 393 402 virtual DWORD SetConsoleMode(PHMHANDLEDATA pHMHandleData, 394 403 DWORD dwMode); 395 404 396 405 virtual DWORD WriteConsoleInputA (PHMHANDLEDATA pHMHandleData, 397 406 PINPUT_RECORD pirBuffer, 398 407 DWORD cInRecords, 399 LPDWORD lpcWritten); 400 408 LPDWORD lpcWritten); 409 401 410 virtual DWORD WriteConsoleInputW (PHMHANDLEDATA pHMHandleData, 402 411 PINPUT_RECORD pirBuffer, 403 412 DWORD cInRecords, 404 413 LPDWORD lpcWritten); 405 414 406 415 }; 407 416 … … 415 424 protected: 416 425 HANDLE hConsoleBuffer; /* handle to the active console buffer */ 417 426 418 427 public: 419 428 HMDeviceConsoleOutClass(LPCSTR lpDeviceName) 420 429 : HMDeviceHandler(lpDeviceName) {} 421 430 422 431 /* this is a handler method for calls to CreateFile() */ 423 432 virtual DWORD CreateFile (LPCSTR lpFileName, … … 425 434 PVOID lpSecurityAttributes, 426 435 PHMHANDLEDATA pHMHandleDataTemplate); 427 436 428 437 /* this is a handler method for calls to ReadFile() */ 429 438 virtual DWORD ReadFile (PHMHANDLEDATA pHMHandleData, … … 439 448 LPDWORD lpNumberOfBytesWritten, 440 449 LPOVERLAPPED lpOverlapped); 441 442 450 451 443 452 /* handling non-standard I/O */ 444 453 virtual DWORD _DeviceRequest (PHMHANDLEDATA pHMHandleData, … … 461 470 HMDeviceConsoleBufferClass(LPCSTR lpDeviceName) 462 471 : HMDeviceHandler(lpDeviceName) {} 463 472 464 473 /* this is a handler method for calls to CreateFile() */ 465 474 virtual DWORD CreateFile (LPCSTR lpFileName, … … 467 476 PVOID lpSecurityAttributes, 468 477 PHMHANDLEDATA pHMHandleDataTemplate); 469 478 470 479 /* this is a handler method for calls to ReadFile() */ 471 480 virtual DWORD ReadFile (PHMHANDLEDATA pHMHandleData, … … 481 490 LPDWORD lpNumberOfBytesWritten, 482 491 LPOVERLAPPED lpOverlapped); 483 492 484 493 virtual DWORD CloseHandle(PHMHANDLEDATA pHMHandleData); 485 494 486 495 virtual DWORD _DeviceRequest (PHMHANDLEDATA pHMHandleData, 487 496 ULONG ulRequestCode, … … 490 499 ULONG arg3, 491 500 ULONG arg4); 492 493 501 502 494 503 /************************************ 495 504 * non-standard console I/O methods * 496 505 ************************************/ 497 506 498 507 virtual DWORD FillConsoleOutputAttribute(PHMHANDLEDATA pHMHandleData, 499 508 WORD wAttribute, … … 501 510 COORD dwWriteCoord, 502 511 LPDWORD lpNumberOfAttrsWritten); 503 512 504 513 virtual DWORD FillConsoleOutputCharacterA(PHMHANDLEDATA pHMHandleData, 505 514 UCHAR ucCharacter, … … 507 516 COORD dwWriteCoord, 508 517 LPDWORD lpNumberOfCharsWritten); 509 518 510 519 virtual DWORD FillConsoleOutputCharacterW(PHMHANDLEDATA pHMHandleData, 511 520 WCHAR wcCharacter, 512 521 DWORD nLength, 513 522 COORD dwWriteCoord, 514 LPDWORD lpNumberOfCharsWritten); 515 523 LPDWORD lpNumberOfCharsWritten); 524 516 525 virtual DWORD GetConsoleCursorInfo(PHMHANDLEDATA pHMHandleData, 517 526 PCONSOLE_CURSOR_INFO pCCI); 518 527 519 528 virtual DWORD GetConsoleMode(PHMHANDLEDATA pHMHandleData, 520 529 LPDWORD lpMode); 521 530 522 531 virtual DWORD GetLargestConsoleWindowSize(PHMHANDLEDATA pHMHandleData); 523 532 524 533 virtual DWORD GetConsoleScreenBufferInfo(PHMHANDLEDATA pHMHandleData, 525 534 PCONSOLE_SCREEN_BUFFER_INFO pCSBI); 526 535 527 536 virtual DWORD ReadConsoleOutputA(PHMHANDLEDATA pHMHandleData, 528 537 PCHAR_INFO pchiDestBuffer, 529 538 COORD coordDestBufferSize, 530 539 COORD coordDestBufferCoord, 531 PSMALL_RECT psrctSourceRect); 532 540 PSMALL_RECT psrctSourceRect); 541 533 542 virtual DWORD ReadConsoleOutputW(PHMHANDLEDATA pHMHandleData, 534 543 PCHAR_INFO pchiDestBuffer, … … 554 563 COORD coordReadCoord, 555 564 LPDWORD lpcNumberRead); 556 565 557 566 virtual DWORD ScrollConsoleScreenBufferA(PHMHANDLEDATA pHMHandleData, 558 567 PSMALL_RECT psrctSourceRect, … … 560 569 COORD coordDestOrigin, 561 570 PCHAR_INFO pchiFill); 562 571 563 572 virtual DWORD ScrollConsoleScreenBufferW(PHMHANDLEDATA pHMHandleData, 564 573 PSMALL_RECT psrctSourceRect, … … 569 578 virtual DWORD SetConsoleScreenBufferSize (PHMHANDLEDATA pHMHandleData, 570 579 COORD coordSize); 571 580 572 581 virtual DWORD SetConsoleCursorInfo(PHMHANDLEDATA pHMHandleData, 573 582 PCONSOLE_CURSOR_INFO pCCI); 574 583 575 584 virtual DWORD SetConsoleCursorPosition(PHMHANDLEDATA pHMHandleData, 576 585 COORD coordCursorPosition); 577 586 578 587 virtual DWORD SetConsoleMode(PHMHANDLEDATA pHMHandleData, 579 588 DWORD dwMode); 580 589 581 590 virtual DWORD SetConsoleTextAttribute (PHMHANDLEDATA pHMHandleData, 582 591 WORD wAttr); 583 592 584 593 virtual DWORD SetConsoleActiveScreenBuffer(PHMHANDLEDATA pHMHandleData); 585 594 586 595 virtual BOOL SetConsoleWindowInfo(PHMHANDLEDATA pHMHandleData, 587 596 BOOL fAbsolute, 588 597 PSMALL_RECT psrctWindowRect); 589 598 590 599 virtual DWORD WriteConsoleA(PHMHANDLEDATA pHMHandleData, 591 600 CONST VOID* lpvBuffer, 592 601 DWORD cchToWrite, 593 602 LPDWORD lpcchWritten, 594 LPVOID lpvReserved); 595 603 LPVOID lpvReserved); 604 596 605 virtual DWORD WriteConsoleW(PHMHANDLEDATA pHMHandleData, 597 606 CONST VOID* lpvBuffer, … … 599 608 LPDWORD lpcchWritten, 600 609 LPVOID lpvReserved); 601 610 602 611 virtual DWORD WriteConsoleOutputA(PHMHANDLEDATA pHMHandleData, 603 612 PCHAR_INFO pchiSrcBuffer, 604 613 COORD coordSrcBufferSize, 605 614 COORD coordSrcBufferCoord, 606 PSMALL_RECT psrctDestRect); 607 615 PSMALL_RECT psrctDestRect); 616 608 617 virtual DWORD WriteConsoleOutputW(PHMHANDLEDATA pHMHandleData, 609 618 PCHAR_INFO pchiSrcBuffer, … … 611 620 COORD coordSrcBufferCoord, 612 621 PSMALL_RECT psrctDestRect); 613 622 614 623 virtual DWORD WriteConsoleOutputAttribute(PHMHANDLEDATA pHMHandleData, 615 624 LPWORD lpwAttribute, … … 617 626 COORD dwWriteCoord, 618 627 LPDWORD lpcWritten); 619 628 620 629 virtual DWORD WriteConsoleOutputCharacterA(PHMHANDLEDATA pHMHandleData, 621 630 LPTSTR lpWriteBuffer, … … 623 632 COORD dwWriteCoord, 624 633 LPDWORD lpcWritten); 625 634 626 635 virtual DWORD WriteConsoleOutputCharacterW(PHMHANDLEDATA pHMHandleData, 627 636 LPWSTR lpWriteBuffer, 628 637 DWORD cchWrite, 629 638 COORD dwWriteCoord, 630 LPDWORD lpcWritten); 639 LPDWORD lpcWritten); 631 640 }; 632 641 -
trunk/src/kernel32/devio.h
r4 r46 1 /* $Id: devio.h,v 1.1 1999-05-24 20:19:46 ktk Exp $ */2 3 1 #ifndef __DEVIO_H__ 4 2 #define __DEVIO_H__ -
trunk/src/kernel32/directory.cpp
r17 r46 1 /* $Id: directory.cpp,v 1.2 1999-05-31 22:08:11 phaller Exp $ */2 3 /*4 *5 * Project Odin Software License can be found in LICENSE.TXT6 *7 */8 1 /* 9 2 * Win32 Directory functions for OS/2 … … 11 4 * Copyright 1998 Sander van Leeuwen 12 5 * 6 * 7 * Project Odin Software License can be found in LICENSE.TXT 8 * 13 9 */ 14 10 #include <os2win.h> 15 11 #include <stdlib.h> 16 12 #include "unicode.h" 17 #include "misc.h"18 19 13 20 14 //****************************************************************************** -
trunk/src/kernel32/disk.cpp
r17 r46 1 /* $Id: disk.cpp,v 1.2 1999-05-31 22:08:11 phaller Exp $ */2 3 /*4 *5 * Project Odin Software License can be found in LICENSE.TXT6 *7 */8 1 /* 9 2 * Win32 Disk API functions for OS/2 … … 11 4 * Copyright 1998 Sander van Leeuwen 12 5 * 6 * 7 * Project Odin Software License can be found in LICENSE.TXT 8 * 13 9 */ 14 10 #include <os2win.h> 15 11 #include <stdlib.h> 16 12 #include "unicode.h" 17 #include "misc.h"18 19 13 20 14 //****************************************************************************** -
trunk/src/kernel32/except.asm
r4 r46 1 ; $Id: except.asm,v 1.1 1999-05-24 20:19:46 ktk Exp $2 3 1 ;/* 4 2 ; * … … 157 155 PUBLIC getEAX 158 156 PUBLIC getEBX 159 getEAX proc near157 getEAX proc near 160 158 ret 161 getEAX endp159 getEAX endp 162 160 163 getEBX proc near161 getEBX proc near 164 162 mov eax, ebx 165 163 ret 166 getEBX endp 164 getEBX endp 165 166 PUBLIC GetFS 167 GetFS proc near 168 mov eax, fs 169 ret 170 GetFS endp 171 172 PUBLIC SetFS 173 SetFS proc near 174 mov eax, [esp+4] 175 mov fs, eax 176 ret 177 SetFS endp 167 178 168 179 CODE32 ENDS -
trunk/src/kernel32/except.h
r4 r46 1 /* $Id: except.h,v 1.1 1999-05-24 20:19:46 ktk Exp $ */2 3 /*4 *5 * Project Odin Software License can be found in LICENSE.TXT6 *7 */8 1 /* 9 2 * Exception + misc functions for OS/2 10 3 * 11 4 * Copyright 1998 Sander van Leeuwen 5 * 6 * 7 * Project Odin Software License can be found in LICENSE.TXT 12 8 * 13 9 */ -
trunk/src/kernel32/exceptions.cpp
r4 r46 1 /* $Id: exceptions.cpp,v 1.1 1999-05-24 20:19:41 ktk Exp $ */2 3 /*4 *5 * Project Odin Software License can be found in LICENSE.TXT6 *7 */8 1 /* 9 2 * Win32 Device IOCTL API functions for OS/2 … … 12 5 * 13 6 * Copyright 1998 Sander van Leeuwen (OS/2 port) 7 * 8 * 9 * Project Odin Software License can be found in LICENSE.TXT 10 * 14 11 * 15 12 * (win32\except.c) … … 72 69 { 73 70 UINT oldmode = CurrentErrorMode; 71 74 72 dprintf(("OS2SetErrorMode to %d\n", fuErrorMode)); 75 73 CurrentErrorMode = fuErrorMode; 74 76 75 return(oldmode); 77 76 } … … 683 682 684 683 return (ERR)(XCPT_CONTINUE_EXECUTION); 684 685 case XCPT_PROCESS_TERMINATE: 686 case XCPT_ASYNC_PROCESS_TERMINATE: 687 SetExceptionChain((ULONG)0); 688 return (XCPT_CONTINUE_SEARCH); 689 685 690 case XCPT_ACCESS_VIOLATION: 686 691 case XCPT_BREAKPOINT: … … 696 701 case XCPT_UNABLE_TO_GROW_STACK: 697 702 case XCPT_IN_PAGE_ERROR: 698 case XCPT_ASYNC_PROCESS_TERMINATE:699 703 case XCPT_SIGNAL: 700 704 dprintf(("Continue and kill\n")); … … 719 723 PWINEXCEPTION_FRAME orgframe; 720 724 APIRET rc; 721 LONGLONG timerval;725 ULONGULONG timerval; 722 726 723 727 DisableFPUExceptions(); -
trunk/src/kernel32/heap.cpp
r37 r46 1 /* $Id: heap.cpp,v 1.5 1999-06-06 12:25:49 cbratschi Exp $ */2 3 1 /* 4 2 * … … 15 13 #include <stdlib.h> 16 14 #include <string.h> 17 #include <builtin.h> 18 #include "misc.h" 19 15 #include <misc.h> 20 16 #define _WIN32 21 17 #include "os2heap.h" … … 71 67 curheap = new OS2Heap(hHeap, flOptions, dwInitialSize, dwMaximumSize); 72 68 if(curheap == NULL) { 73 69 O32_HeapDestroy(hHeap); 74 70 return(NULL); 75 71 } 76 72 if(curheap->getHeapHandle() == NULL) { 77 73 O32_HeapDestroy(hHeap); 78 74 delete curheap; 79 75 return(NULL); … … 96 92 //****************************************************************************** 97 93 //****************************************************************************** 98 /* PH: Though "HeapSize" is a reserved word for the linker, ILINK can be99 tricked by placing the word HEAPSIZE in quotes. It then exports it properly100 to the target DLL.101 */102 94 DWORD WIN32API HeapSize(HANDLE hHeap, DWORD arg2, PVOID arg3) 103 95 { … … 154 146 //SvL: Only one process heap per process 155 147 if(processheap == NULL) { 156 157 158 159 160 161 162 163 148 //TODO: I haven't thought real hard about this. I added it just to make "hdr.exe" happy. 149 hHeap = O32_HeapCreate(HEAP_GENERATE_EXCEPTIONS, 1, 0x4000); 150 OS2ProcessHeap = new OS2Heap(hHeap, HEAP_GENERATE_EXCEPTIONS, 0x4000, 0); 151 if(OS2ProcessHeap == NULL) { 152 O32_HeapDestroy(hHeap); 153 return(NULL); 154 } 155 processheap = hHeap; 164 156 } 165 157 return(processheap); … … 173 165 174 166 if(processheap == NULL) { 175 176 167 if(GetProcessHeap() == NULL) 168 return(NULL); 177 169 } 178 170 if(fuFlags & LMEM_ZEROINIT) … … 209 201 210 202 if(OS2ProcessHeap->GetLockCnt((LPVOID)hMem) != 0) { 211 212 203 dprintf(("LocalFree, lock count != 0\n")); 204 return(hMem); //TODO: SetLastError 213 205 } 214 206 if(OS2ProcessHeap->Free(0, (LPVOID)hMem) == FALSE) { 215 207 return(hMem); //TODO: SetLastError 216 208 } 217 209 return NULL; //success … … 238 230 HLOCAL WIN32API LocalReAlloc(HLOCAL hMem, DWORD cbBytes, UINT fuFlags) 239 231 { 240 HLOCALlpMem;232 LPVOID lpMem; 241 233 242 234 dprintf(("KERNEL32: LocalReAlloc %X %d %X\n", hMem, cbBytes, fuFlags)); 243 235 //SvL: 8-8-'98: Notepad bugfix (assumes address is identical when new size < old size) 244 if(OS2ProcessHeap->Size(0, (LPVOID)hMem) >= cbBytes) 245 { 246 dprintf(("KERNEL32: LocalReAlloc returned %X\n", hMem)); 247 return hMem; 248 } 249 250 lpMem = LocalAlloc(fuFlags, cbBytes); 251 memcpy((LPVOID)lpMem, (LPVOID)hMem, min(cbBytes, OS2ProcessHeap->Size(0, (LPVOID)hMem))); 236 if(OS2ProcessHeap->Size(0, (LPVOID)hMem) > cbBytes) 237 return hMem; 238 239 lpMem = (LPVOID)O32_LocalAlloc(fuFlags, cbBytes); 240 memcpy(lpMem, (LPVOID)hMem, min(cbBytes, OS2ProcessHeap->Size(0, (LPVOID)hMem))); 252 241 OS2ProcessHeap->Free(0, (LPVOID)hMem); 253 254 dprintf(("KERNEL32: LocalReAlloc returned %X\n", lpMem));255 242 return((HLOCAL)lpMem); 256 243 } -
trunk/src/kernel32/heap.h
r4 r46 1 /* $Id: heap.h,v 1.1 1999-05-24 20:19:41 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/iccio.asm
r4 r46 1 ; $Id: iccio.asm,v 1.1 1999-05-24 20:19:46 ktk Exp $2 3 1 ; ********************************************************************** 4 2 ; Copyright (C) 1995 by Holger Veit (Holger.Veit@gmd.de) -
trunk/src/kernel32/kernel32exp.def
r4 r46 824 824 Win32QueryModuleName @1225 825 825 826 GetFS @1226 827 SetFS @1227 -
trunk/src/kernel32/lang.cpp
r17 r46 1 /* $Id: lang.cpp,v 1.2 1999-05-31 22:08:09 phaller Exp $ */2 3 1 /* 4 2 * … … 16 14 #include <winnls.h> 17 15 #include "unicode.h" 18 #include "misc.h" 16 19 17 20 18 //****************************************************************************** -
trunk/src/kernel32/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:46 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 69 67 TARGET = kernel32 70 68 71 all: $( TARGET).dll $(TARGET).LIB69 all: $(PDWIN32_LIB)\pmwinx.lib $(TARGET).dll $(TARGET).LIB 72 70 73 71 … … 82 80 $(CP) $@ $(PDWIN32_LIB) 83 81 82 $(PDWIN32_LIB)\pmwinx.lib: 83 $(IMPLIB) $(IMPLIBFLAGS) $@ $(PDWIN32_LIB)\pmwinx.def 84 84 85 85 kernel32.OBJ: kernel32.cpp \ … … 92 92 93 93 comm.OBJ: \ 94 .\comm.c \94 .\comm.cpp \ 95 95 $(PDWIN32_INCLUDE)\unicode.h 96 96 … … 127 127 os2heap.h 128 128 129 initterm.OBJ: .\initterm.c 129 initterm.OBJ: .\initterm.cpp 130 130 131 131 thunk.OBJ: \ 132 .\thunk.c \132 .\thunk.cpp \ 133 133 thunk.h 134 134 … … 146 146 147 147 devio.OBJ: \ 148 .\devio.c \148 .\devio.cpp \ 149 149 devio.h \ 150 150 map.h \ … … 167 167 168 168 map.OBJ: \ 169 .\map.c \169 .\map.cpp \ 170 170 map.h \ 171 171 mapos2.h 172 172 173 173 os2native.OBJ: \ 174 .\os2native.c \174 .\os2native.cpp \ 175 175 $(PDWIN32_INCLUDE)\unicode.h 176 176 … … 180 180 181 181 misc.OBJ: \ 182 .\misc.c \182 .\misc.cpp \ 183 183 $(PDWIN32_INCLUDE)\misc.h 184 184 185 185 win32util.OBJ: \ 186 .\win32util.c \186 .\win32util.cpp \ 187 187 $(PDWIN32_INCLUDE)\win32util.h 188 188 189 189 npipe.OBJ: \ 190 .\npipe.c \190 .\npipe.cpp \ 191 191 $(PDWIN32_INCLUDE)\misc.h 192 192 … … 208 208 209 209 lfile.OBJ: \ 210 .\lfile.c \210 .\lfile.cpp \ 211 211 wprocess.h \ 212 212 os2util.h 213 213 214 214 obsolete.OBJ: \ 215 .\obsolete.c 215 .\obsolete.cpp 216 216 217 217 nameid.OBJ: \ … … 255 255 $(PDWIN32_INCLUDE)\misc.h 256 256 257 os2util.OBJ: .\os2util.c 257 os2util.OBJ: .\os2util.cpp 258 258 259 259 handlemanager.OBJ: \ -
trunk/src/kernel32/map.h
r4 r46 1 /* $Id: map.h,v 1.1 1999-05-24 20:19:47 ktk Exp $ */2 3 1 /* Copyright (C) 1995 by Holger Veit (Holger.Veit@gmd.de) 4 2 * Use at your own risk! No Warranty! The author is not responsible for -
trunk/src/kernel32/mapos2.h
r4 r46 1 /* $Id: mapos2.h,v 1.1 1999-05-24 20:19:47 ktk Exp $ */2 3 1 /* Copyright (C) 1995 by Holger Veit (Holger.Veit@gmd.de) */ 4 2 /* Use at your own risk! No Warranty! The author is not responsible for -
trunk/src/kernel32/message.cpp
r17 r46 1 /* $Id: message.cpp,v 1.2 1999-05-31 22:08:11 phaller Exp $ */2 3 1 /* 4 2 * … … 24 22 #include <stdarg.h> 25 23 #include "unicode.h" 26 #include "misc.h"27 28 24 29 25 //****************************************************************************** -
trunk/src/kernel32/mmap.cpp
r17 r46 1 /* $Id: mmap.cpp,v 1.2 1999-05-31 22:08:09 phaller Exp $ */2 3 1 /* 4 2 * … … 9 7 #include "unicode.h" 10 8 #include "mmap.h" 11 #include "misc.h"12 13 9 14 10 //****************************************************************************** -
trunk/src/kernel32/mmap.h
r4 r46 1 /* $Id: mmap.h,v 1.1 1999-05-24 20:19:42 ktk Exp $ */2 3 1 #ifndef __MMAP_H__ 4 2 #define __MMAP_H__ -
trunk/src/kernel32/nameid.cpp
r17 r46 1 /* $Id: nameid.cpp,v 1.2 1999-05-31 22:08:12 phaller Exp $ */2 3 1 /* 4 2 * … … 20 18 #include <stdlib.h> 21 19 #include <string.h> 22 23 #include <odin.h> 24 #include "win32type.h" 25 #include "misc.h" 20 #include <win32type.h> 21 #include <misc.h> 26 22 #include "nameid.h" 27 23 #include "win32util.h" 28 #include "winimage.h"29 #include "winexe.h"24 #include <winimage.h> 25 #include <winexe.h> 30 26 #include "os2util.h" 31 27 -
trunk/src/kernel32/network.cpp
r4 r46 1 /* $Id: network.cpp,v 1.1 1999-05-24 20:19:47 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/os2heap.cpp
r4 r46 1 /* $Id: os2heap.cpp,v 1.1 1999-05-24 20:19:47 ktk Exp $ */2 3 /*4 *5 * Project Odin Software License can be found in LICENSE.TXT6 *7 */8 1 /* 9 2 * Heap class for OS/2 10 3 * 11 4 * Copyright 1998 Sander van Leeuwen 5 * 6 * 7 * Project Odin Software License can be found in LICENSE.TXT 12 8 * 13 9 */ -
trunk/src/kernel32/os2heap.h
r4 r46 1 /* $Id: os2heap.h,v 1.1 1999-05-24 20:19:47 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/os2util.h
r4 r46 1 /* $Id: os2util.h,v 1.1 1999-05-24 20:19:47 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/pefile.cpp
r4 r46 1 /* $Id: pefile.cpp,v 1.1 1999-05-24 20:19:47 ktk Exp $ */2 3 1 /* 4 2 * PE2LX PE utility functions -
trunk/src/kernel32/profile.cpp
r17 r46 1 /* $Id: profile.cpp,v 1.2 1999-05-31 22:08:12 phaller Exp $ */2 3 1 /* 4 2 * … … 17 15 #include <string.h> 18 16 #include "unicode.h" 19 #include "misc.h"20 17 21 18 //****************************************************************************** -
trunk/src/kernel32/resource.cpp
r37 r46 1 /* $Id: resource.cpp,v 1.4 1999-06-06 12:25:49 cbratschi Exp $ */2 3 1 /* 4 2 * … … 14 12 */ 15 13 #include <os2win.h> 16 #include "misc.h"17 18 14 #include "unicode.h" 19 15 #include "winres.h" 20 16 #include "winimage.h" 21 17 #include "winexe.h" 22 23 18 24 19 //****************************************************************************** … … 31 26 32 27 dprintf(("FindResourceA %X", hModule)); 33 // EB: ->>> added real exe module handle 34 if(hModule == 0 || hModule == -1 || (WinExe != NULL && hModule == WinExe->getOS2InstanceHandle())) 35 module = (Win32Image *)WinExe; 36 else 37 module = (Win32Image *)Win32Dll::findModule(hModule); 28 if(hModule == 0 || hModule == -1 || (WinExe != NULL && hModule == 29 WinExe->getOS2InstanceHandle())) 30 { 31 module = (Win32Image *)WinExe; 32 } 33 else module = (Win32Image *)Win32Dll::findModule(hModule); 38 34 39 35 if(module == NULL) 40 return(NULL);36 return(NULL); 41 37 42 38 return module->findResourceA(lpszName, (LPSTR)lpszType); … … 45 41 //****************************************************************************** 46 42 HRSRC WIN32API FindResourceW(HINSTANCE hModule, LPCWSTR lpszName, 47 43 LPCWSTR lpszType) 48 44 { 49 45 Win32Image *module; 50 46 51 47 dprintf(("FindResourceW %X", hModule)); 52 if(hModule == 0 || hModule == -1) 48 if(hModule == 0 || hModule == -1 || (WinExe != NULL && hModule == 49 WinExe->getOS2InstanceHandle())) 50 { 53 51 module = (Win32Image *)WinExe; 52 } 54 53 else module = (Win32Image *)Win32Dll::findModule(hModule); 55 54 56 55 if(module == NULL) 57 56 return(NULL); 58 57 59 58 return module->findResourceW((LPWSTR)lpszName, (LPWSTR)lpszType); -
trunk/src/kernel32/stubs.cpp
r17 r46 1 /* $Id: stubs.cpp,v 1.2 1999-05-31 22:08:13 phaller Exp $ */2 3 1 /* 4 2 * … … 21 19 #include "unicode.h" 22 20 #include <builtin.h> 23 #include "misc.h"24 25 21 #include "handlemanager.h" 26 22 -
trunk/src/kernel32/stubs.h
r4 r46 1 /* $Id: stubs.h,v 1.1 1999-05-24 20:19:48 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/thread.H
r4 r46 1 /* $Id: thread.H,v 1.1 1999-05-24 20:19:48 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/thunk.h
r4 r46 1 /* $Id: thunk.h,v 1.1 1999-05-24 20:19:49 ktk Exp $ */2 3 1 #ifndef __THUNK_H__ 4 2 #define __THUNK_H__ -
trunk/src/kernel32/time.cpp
r17 r46 1 /* $Id: time.cpp,v 1.2 1999-05-31 22:08:13 phaller Exp $ */2 3 1 /* 4 2 * … … 14 12 #include <os2win.h> 15 13 #include <winnls.h> 16 #include "misc.h"17 18 14 19 15 //****************************************************************************** -
trunk/src/kernel32/unicode.cpp
r4 r46 1 /* $Id: unicode.cpp,v 1.1 1999-05-24 20:19:43 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/vmutex.cpp
r4 r46 1 /* $Id: vmutex.cpp,v 1.1 1999-05-24 20:19:49 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/windll.cpp
r4 r46 1 /* $Id: windll.cpp,v 1.1 1999-05-24 20:19:49 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/winexe.cpp
r4 r46 1 /* $Id: winexe.cpp,v 1.1 1999-05-24 20:19:49 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/winimage.cpp
r4 r46 1 /* $Id: winimage.cpp,v 1.1 1999-05-24 20:19:49 ktk Exp $ */2 3 1 /* 4 2 * Win32 PE Image class -
trunk/src/kernel32/winimgres.cpp
r4 r46 1 /* $Id: winimgres.cpp,v 1.1 1999-05-24 20:19:49 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/winmod.cpp
r4 r46 1 /* $Id: winmod.cpp,v 1.1 1999-05-24 20:19:50 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/winres.h
r4 r46 1 /* $Id: winres.h,v 1.1 1999-05-24 20:19:43 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/kernel32/wprocess.cpp
r17 r46 1 /* $Id: wprocess.cpp,v 1.2 1999-05-31 22:08:14 phaller Exp $ */2 3 1 /* 4 2 * … … 19 17 #include "windll.h" 20 18 #include "winexe.h" 21 #include "misc.h"22 23 19 #ifdef __IBMCPP__ 24 20 #include <builtin.h> … … 53 49 DebugInt3(); 54 50 } 55 56 char *modname = getenv("WIN32MODULE"); 57 58 if(modname != NULL) 59 { 60 dprintf(("KERNEL32: RegisterExe: Set full path for exe to %s", modname)); 51 char *modname; 52 if(modname = getenv("WIN32MODULE")) { 53 dprintf(("Set full path for exe to %s", modname)); 61 54 winexe->setFullPath(modname); 62 55 } -
trunk/src/kernel32/wprocess.h
r4 r46 1 /* $Id: wprocess.h,v 1.1 1999-05-24 20:19:50 ktk Exp $ */2 3 1 #ifndef __WPROCESS_H__ 4 2 #define __WPROCESS_H__ -
trunk/src/makefile
r35 r46 1 # $Id: makefile,v 1. 2 1999-06-03 17:50:29 achimhaExp $1 # $Id: makefile,v 1.3 1999-06-07 20:57:55 sandervl Exp $ 2 2 3 3 # … … 30 30 $(MAKE_CMD) 31 31 cd ..\comdlg32 32 $(MAKE_CMD) 33 cd ..\comctl32 32 34 $(MAKE_CMD) 33 35 cd ..\capi2032 … … 76 78 cd ..\comdlg32 77 79 $(MAKE_CMD) clean 80 cd ..\comctl32 81 $(MAKE_CMD) clean 78 82 cd ..\ole32 79 83 $(MAKE_CMD) clean -
trunk/src/makefile.vac
r12 r46 1 # $Id: makefile.vac,v 1. 2 1999-05-31 14:21:50 phallerExp $1 # $Id: makefile.vac,v 1.3 1999-06-07 20:57:55 sandervl Exp $ 2 2 3 3 # … … 30 30 $(MAKE_CMD) 31 31 cd ..\comdlg32 32 $(MAKE_CMD) 33 cd ..\comctl32 32 34 $(MAKE_CMD) 33 35 cd ..\capi2032 … … 75 77 cd ..\comdlg32 76 78 $(MAKE_CMD) clean 79 cd ..\comctl32 80 $(MAKE_CMD) clean 77 81 cd ..\ole32 78 82 $(MAKE_CMD) clean -
trunk/src/mpr/MPR.CPP
r4 r46 1 /* $Id: MPR.CPP,v 1.1 1999-05-24 20:19:51 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/mpr/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:51 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 39 37 40 38 mpr.obj: mpr.cpp mpr.h 41 initterm.obj: initterm.c 39 initterm.obj: initterm.cpp 42 40 43 41 clean: -
trunk/src/mpr/mpr.h
r4 r46 1 /* $Id: mpr.h,v 1.1 1999-05-24 20:19:51 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/ole32/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:52 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 40 38 41 39 ole32.obj: ole32.cpp ole32.h 42 initterm.obj: initterm.c 40 initterm.obj: initterm.cpp 43 41 44 42 -
trunk/src/ole32/ole32.cpp
r4 r46 1 /* $Id: ole32.cpp,v 1.1 1999-05-24 20:19:52 ktk Exp $ */2 3 1 /* 4 2 * … … 14 12 */ 15 13 16 #include <os2win.h> 17 #include <ole2.h> 18 14 // ><DJR 17.05.99 Force to use C-interfaces for now to prevent CALLBACK definition compiler error 15 #define CINTERFACE 16 17 // ><DJR 17.05.99 Move standard includes to before os2win.h [memcmp] 19 18 #include <stdarg.h> 20 19 #include <stdio.h> … … 23 22 #include <memory.h> 24 23 25 #include "misc.h" 26 #include "unicode.h" 24 // ><DJR 17.05.99 Prevent CALLCONV becoming _System 25 #include <winbase.h> 26 #include <uconv.h> 27 #undef CALLCONV 28 29 #include <os2win.h> 30 #include <ole2ver.h> 31 #include <ole.h> 32 33 #include "wine/obj_base.h" 34 #include "wine/obj_misc.h" 35 #include "wine/obj_inplace.h" 36 #include "wine/obj_dataobject.h" 37 #include "wine/obj_oleobj.h" 38 #include "wine/obj_marshal.h" 39 #include "wine/obj_moniker.h" 40 #include "wine/obj_clientserver.h" 41 #include "wine/obj_dragdrop.h" 42 43 //******************************************************************************* 44 //******************************************************************************* 45 HRESULT WIN32API CLSIDFromProgID(LPCOLESTR lpszProgID, LPCLSID pclsid) 46 { 47 dprintf(("CLSIDFromProgID- stub\n")); 48 return OLE_ERROR_GENERIC; 49 } 50 //******************************************************************************* 51 //******************************************************************************* 52 HRESULT WIN32API CLSIDFromString(LPCOLESTR lpsz, LPCLSID pclisid) 53 { 54 dprintf(("CLSIDFromString- stub\n")); 55 return OLE_ERROR_GENERIC; 56 } 57 //******************************************************************************* 58 //******************************************************************************* 59 DWORD WIN32API CoBuildVersion() 60 { 61 dprintf(("CoBuildVersion, obsolete\n")); 62 return 0; 63 } 64 //******************************************************************************* 65 //******************************************************************************* 66 HRESULT WIN32API CoCreateFreeThreadedMarshaler(LPUNKNOWN punkOuter, 67 LPUNKNOWN *ppunkMarshaler) 68 { 69 dprintf(("CoCreateFreeThreadedMarshaler- stub\n")); 70 return E_OUTOFMEMORY; 71 } 72 //******************************************************************************* 73 //******************************************************************************* 74 HRESULT WIN32API CoCreateGuid(GUID *pguid) 75 { 76 dprintf(("CoCreateGuid - partial\n")); 77 memset(pguid, 0, sizeof(GUID)); //TODO: should be random GUID 78 return S_OK; 79 } 80 //******************************************************************************* 81 //******************************************************************************* 82 HRESULT WIN32API CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, 83 DWORD dwClsContext, REFIID riid, 84 LPVOID *ppv) 85 { 86 dprintf(("CoCreateInstance - stub\n")); 87 return REGDB_E_CLASSNOTREG; 88 } 89 //******************************************************************************* 90 //******************************************************************************* 91 HRESULT WIN32API CoDisconnectObject(IUnknown *pUnk, DWORD dwReserved) 92 { 93 dprintf(("CoDisconnectObject - stub\n")); 94 return S_OK; 95 } 96 //******************************************************************************* 97 //******************************************************************************* 98 BOOL WIN32API CoDosDateTimeToFileTime(WORD nDosDate, WORD nDosTime, 99 FILETIME *lpFileTime) 100 { 101 dprintf(("CoDosDateTimeToFileTime, redundant\n")); 102 return DosDateTimeToFileTime(nDosDate, nDosTime, lpFileTime); 103 } 104 //******************************************************************************* 105 //******************************************************************************* 106 HRESULT WIN32API CoFileTimeNow(FILETIME *lpFileTime) 107 { 108 SYSTEMTIME systime; 109 110 dprintf(("CoFileTimeNow\n")); 111 GetSystemTime(&systime); 112 return SystemTimeToFileTime(&systime, lpFileTime); 113 } 114 //******************************************************************************* 115 //******************************************************************************* 116 BOOL WIN32API CoFileTimeToDosDateTime(FILETIME *lpFileTime, LPWORD lpDosDate, 117 LPWORD lpDosTime) 118 { 119 dprintf(("CoFileTimeToDosDateTime\n")); 120 return FileTimeToDosDateTime(lpFileTime, lpDosDate, lpDosTime); 121 } 122 //******************************************************************************* 123 //Frees all libs loaded with CoLoadLibrary 124 //******************************************************************************* 125 void WIN32API CoFreeAllLibraries() 126 { 127 dprintf(("CoFreeAllLibraries - stub\n")); 128 return ; 129 } 130 //******************************************************************************* 131 //******************************************************************************* 132 void WIN32API CoFreeLibrary(HINSTANCE hInst) 133 { 134 dprintf(("CoFreeLibrary\n")); 135 FreeLibrary(hInst); 136 } 137 //******************************************************************************* 138 //******************************************************************************* 139 void WIN32API CoFreeUnusedLibraries() 140 { 141 dprintf(("CoFreeUnusedLibraries - stub\n")); 142 return ; 143 } 144 //******************************************************************************* 145 //******************************************************************************* 146 HRESULT WIN32API CoGetCallerTID() 147 { 148 dprintf(("CoGetCallerTID, UNKNOWN API - stub\n")); 149 return 0; 150 } 151 //******************************************************************************* 152 //******************************************************************************* 153 //HRESULT WIN32API CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext, COSERVERINFO *pServerInfo, REFIID riid, LPVOID *ppv) 154 HRESULT WIN32API CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext, LPVOID pServerInfo, REFIID riid, LPVOID *ppv) 155 { 156 dprintf(("CoGetClassObject - stub\n")); 157 return REGDB_E_CLASSNOTREG; 158 } 159 //******************************************************************************* 160 //******************************************************************************* 161 HRESULT WIN32API CoGetCurrentLogicalThreadId() 162 { 163 dprintf(("CoGetCurrentLogicalThreadId, UNKNOWN API - stub\n")); 164 return 0; 165 } 166 //******************************************************************************* 167 //******************************************************************************* 168 DWORD WIN32API CoGetCurrentProcess() 169 { 170 dprintf(("CoGetCurrentProcess - stub\n")); 171 return 666; 172 } 173 //******************************************************************************* 174 //******************************************************************************* 175 HRESULT WIN32API CoGetInterfaceAndReleaseStream(LPSTREAM pStm, REFIID riid, 176 LPVOID *ppv) 177 { 178 dprintf(("CoGetInterfaceAndReleaseStream - stub\n")); 179 return E_INVALIDARG; 180 } 181 //******************************************************************************* 182 //******************************************************************************* 183 HRESULT WIN32API CoGetMalloc(DWORD dwMemContext, LPMALLOC *ppMalloc) 184 { 185 dprintf(("CoGetMalloc - stub\n")); 186 return E_OUTOFMEMORY; 187 } 188 //******************************************************************************* 189 //******************************************************************************* 190 HRESULT WIN32API CoGetMarshalSizeMax(ULONG *pulSize, REFIID riid, IUnknown *pUnk, 191 DWORD dwDestContext, LPVOID pvDestContext, 192 DWORD mshlflags) 193 { 194 dprintf(("CoGetMarshalSizeMax - stub\n")); 195 return CO_E_NOTINITIALIZED; 196 } 197 //******************************************************************************* 198 //******************************************************************************* 199 HRESULT WIN32API CoGetPSClsid(REFIID riid, CLSID *pclsid) 200 { 201 dprintf(("CoGetPSClsid - stub\n")); 202 return E_OUTOFMEMORY; 203 } 204 //******************************************************************************* 205 //******************************************************************************* 206 HRESULT WIN32API CoGetStandardMarshal(REFIID riid, IUnknown *pUnk, DWORD dwDestContext, 207 LPVOID pvDestContext, DWORD mshlflags, 208 LPMARSHAL *ppMarshal) 209 { 210 dprintf(("CoGetStandardMarshal - stub\n")); 211 return E_OUTOFMEMORY; 212 } 213 //******************************************************************************* 214 //******************************************************************************* 215 HRESULT WIN32API CoGetState() 216 { 217 dprintf(("CoGetState, UNKNOWN API - stub\n")); 218 return 0; 219 } 220 //******************************************************************************* 221 //******************************************************************************* 222 HRESULT WIN32API CoGetTreatAsClass(REFCLSID clsidOld, LPCLSID pclsidNew) 223 { 224 dprintf(("CoGetTreatAsClass - stub\n")); 225 return S_FALSE; 226 } 227 //******************************************************************************* 228 //******************************************************************************* 229 HRESULT WIN32API CoInitialize(LPVOID lpReserved) 230 { 231 dprintf(("CoInitialize, UNKNOWN API - stub\n")); 232 return 0; 233 } 234 //******************************************************************************* 235 //******************************************************************************* 236 HRESULT WIN32API CoInitializeWOW() 237 { 238 dprintf(("CoInitializeWOW, UNKNOWN API - stub\n")); 239 return 0; 240 } 241 //******************************************************************************* 242 //******************************************************************************* 243 BOOL WIN32API CoIsHandlerConnected(LPUNKNOWN pUnk) 244 { 245 dprintf(("CoIsHandlerConnected - stub\n")); 246 return FALSE; 247 } 248 //******************************************************************************* 249 //******************************************************************************* 250 BOOL WIN32API CoIsOle1Class(REFCLSID rclsid) 251 { 252 dprintf(("CoIsOle1Class - stub\n")); 253 return S_FALSE; 254 } 255 //******************************************************************************* 256 //******************************************************************************* 257 HINSTANCE WIN32API CoLoadLibrary(LPSTR lpszLibName, BOOL bAutoFree) 258 { 259 dprintf(("CoLoadLibrary\n")); 260 return LoadLibraryA(lpszLibName); 261 } 262 //******************************************************************************* 263 //******************************************************************************* 264 HRESULT WIN32API CoLockObjectExternal(IUnknown *pUnk, BOOL fLock, BOOL fLastUnlockReleases) 265 { 266 dprintf(("CoLockObjectExternal - stub\n")); 267 return E_OUTOFMEMORY; 268 } 269 //******************************************************************************* 270 //******************************************************************************* 271 HRESULT WIN32API CoMarshalHresult(IStream *pStm, HRESULT hresult) 272 { 273 dprintf(("CoMarshalHresult - stub\n")); 274 return E_OUTOFMEMORY; 275 } 276 //******************************************************************************* 277 //******************************************************************************* 278 HRESULT WIN32API CoMarshalInterThreadInterfaceInStream(REFIID riid, 279 LPUNKNOWN pUnk, 280 LPSTREAM *ppStm) 281 { 282 dprintf(("CoMarshalInterThreadInterfaceInStream - stub\n")); 283 return E_OUTOFMEMORY; 284 } 285 //******************************************************************************* 286 //******************************************************************************* 287 HRESULT WIN32API CoMarshalInterface(IStream *pStm, REFIID riid, IUnknown *pUnk, 288 DWORD dwDestContext, void *pvDestContext, 289 DWORD mshlflags) 290 { 291 dprintf(("CoMarshalInterface - stub\n")); 292 return E_OUTOFMEMORY; 293 } 294 //******************************************************************************* 295 //******************************************************************************* 296 HRESULT WIN32API CoQueryReleaseObject() 297 { 298 dprintf(("CoQueryReleaseObject, UNKNOWN API - stub\n")); 299 return 0; 300 } 301 //******************************************************************************* 302 //******************************************************************************* 303 HRESULT WIN32API CoRegisterClassObject(REFCLSID rclsid, IUnknown *pUnk, 304 DWORD dwClsContext, DWORD flags, 305 LPDWORD lpdwRegister) 306 { 307 dprintf(("CoRegisterClassObject - stub\n")); 308 return E_OUTOFMEMORY; 309 } 310 //******************************************************************************* 311 //******************************************************************************* 312 HRESULT WIN32API CoRegisterMallocSpy(LPMALLOCSPY pMallocSpy) 313 { 314 dprintf(("CoRegisterMallocSpy - stub\n")); 315 return CO_E_OBJISREG; 316 } 317 //******************************************************************************* 318 //******************************************************************************* 319 HRESULT WIN32API CoRegisterMessageFilter(LPMESSAGEFILTER lpMessageFilter, 320 LPMESSAGEFILTER *lplpMessageFilter) 321 { 322 dprintf(("CoRegisterMessageFilter - stub\n")); 323 return S_FALSE; 324 } 325 //******************************************************************************* 326 //******************************************************************************* 327 HRESULT WIN32API CoReleaseMarshalData(IStream *pStm) 328 { 329 dprintf(("CoReleaseMarshalData - stub\n")); 330 return E_OUTOFMEMORY; 331 } 332 //******************************************************************************* 333 //******************************************************************************* 334 HRESULT WIN32API CoRevokeClassObject(DWORD dwRegister) 335 { 336 dprintf(("CoRevokeClassObject - stub\n")); 337 return E_OUTOFMEMORY; 338 } 339 //******************************************************************************* 340 //******************************************************************************* 341 HRESULT WIN32API CoRevokeMallocSpy() 342 { 343 dprintf(("CoRevokeMallocSpy - stub\n")); 344 return E_ACCESSDENIED; 345 } 346 //******************************************************************************* 347 //******************************************************************************* 348 HRESULT WIN32API CoSetState() 349 { 350 dprintf(("CoSetState, UNKNOWN API - stub\n")); 351 return 0; 352 } 353 //******************************************************************************* 354 //******************************************************************************* 355 LPVOID WIN32API CoTaskMemAlloc(ULONG cb) 356 { 357 dprintf(("CoTaskMemAlloc\n")); 358 return malloc(cb); 359 } 360 //******************************************************************************* 361 //******************************************************************************* 362 void WIN32API CoTaskMemFree(void *pv) 363 { 364 dprintf(("CoTaskMemFree\n")); 365 free(pv); 366 return; 367 } 368 //******************************************************************************* 369 //******************************************************************************* 370 LPVOID WIN32API CoTaskMemRealloc(LPVOID pv, ULONG cb) 371 { 372 dprintf(("CoTaskMemRealloc - stub\n")); 373 return NULL; 374 } 375 //******************************************************************************* 376 //******************************************************************************* 377 HRESULT WIN32API CoTreatAsClass(REFCLSID clsidOld, REFCLSID clsidNew) 378 { 379 dprintf(("CoTreatAsClass - stub\n")); 380 return E_INVALIDARG; 381 } 382 //******************************************************************************* 383 //******************************************************************************* 384 void WIN32API CoUninitialize() 385 { 386 dprintf(("CoUninitialize - stub\n")); 387 return ; 388 } 389 //******************************************************************************* 390 //******************************************************************************* 391 void WIN32API CoUnloadingWOW() 392 { 393 dprintf(("CoUnloadingWOW, UNKNOWN API - stub\n")); 394 return ; 395 } 396 //******************************************************************************* 397 //******************************************************************************* 398 HRESULT WIN32API CoUnmarshalHresult(LPSTREAM pStm, HRESULT *phresult) 399 { 400 dprintf(("CoUnmarshalHresult - stub\n")); 401 return S_OK; 402 } 403 //******************************************************************************* 404 //******************************************************************************* 405 HRESULT WIN32API CoUnmarshalInterface(IStream *pSTm, REFIID riid, void **ppv) 406 { 407 dprintf(("CoUnmarshalInterface - stub\n")); 408 return S_OK; 409 } 27 410 28 411 //****************************************************************************** … … 36 419 //****************************************************************************** 37 420 HRESULT WIN32API BindMoniker(LPMONIKER pmk, DWORD grfOpt, REFIID iidResult, 38 LPVOID FAR*ppvResult)421 LPVOID *ppvResult) 39 422 { 40 423 dprintf(("BindMoniker- stub\n")); … … 43 426 //******************************************************************************* 44 427 //******************************************************************************* 45 HRESULT WIN32API CLSIDFromProgID(LPCOLESTR lpszProgID, LPCLSID pclsid) 46 { 47 dprintf(("CLSIDFromProgID- stub\n")); 48 return CO_E_CLASSSTRING; 49 } 50 //******************************************************************************* 51 //******************************************************************************* 52 HRESULT WIN32API CLSIDFromString(LPOLESTR lpsz, LPCLSID pclisid) 53 { 54 dprintf(("CLSIDFromString- stub\n")); 55 return CO_E_CLASSSTRING; 56 } 57 //******************************************************************************* 58 //******************************************************************************* 59 DWORD WIN32API CoBuildVersion() 60 { 61 dprintf(("CoBuildVersion, obsolete\n")); 62 return 0; 63 } 64 //******************************************************************************* 65 //******************************************************************************* 66 HRESULT WIN32API CoCreateFreeThreadedMarshaler(LPUNKNOWN punkOuter, 67 LPUNKNOWN *ppunkMarshaler) 68 { 69 dprintf(("CoCreateFreeThreadedMarshaler- stub\n")); 70 return E_OUTOFMEMORY; 71 } 72 //******************************************************************************* 73 //******************************************************************************* 74 HRESULT WIN32API CoCreateGuid(GUID *pguid) 75 { 76 dprintf(("CoCreateGuid - partial\n")); 77 memset(pguid, 0, sizeof(GUID)); //TODO: should be random GUID 78 return S_OK; 79 } 80 //******************************************************************************* 81 //******************************************************************************* 82 HRESULT WIN32API CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, 83 DWORD dwClsContext, REFIID riid, 84 LPVOID *ppv) 85 { 86 dprintf(("CoCreateInstance - stub\n")); 87 return REGDB_E_CLASSNOTREG; 88 } 89 //******************************************************************************* 90 //******************************************************************************* 91 HRESULT WIN32API CoDisconnectObject(IUnknown *pUnk, DWORD dwReserved) 92 { 93 dprintf(("CoDisconnectObject - stub\n")); 94 return S_OK; 95 } 96 //******************************************************************************* 97 //******************************************************************************* 98 BOOL WIN32API CoDosDateTimeToFileTime(WORD nDosDate, WORD nDosTime, 99 FILETIME *lpFileTime) 100 { 101 dprintf(("CoDosDateTimeToFileTime, redundant\n")); 102 return DosDateTimeToFileTime(nDosDate, nDosTime, lpFileTime); 103 } 104 //******************************************************************************* 105 //******************************************************************************* 106 HRESULT WIN32API CoFileTimeNow(FILETIME *lpFileTime) 107 { 108 SYSTEMTIME systime; 109 110 dprintf(("CoFileTimeNow\n")); 111 GetSystemTime(&systime); 112 return SystemTimeToFileTime(&systime, lpFileTime); 113 } 114 //******************************************************************************* 115 //******************************************************************************* 116 BOOL WIN32API CoFileTimeToDosDateTime(FILETIME *lpFileTime, LPWORD lpDosDate, 117 LPWORD lpDosTime) 118 { 119 dprintf(("CoFileTimeToDosDateTime\n")); 120 return FileTimeToDosDateTime(lpFileTime, lpDosDate, (PWORD)lpDosTime); 121 } 122 //******************************************************************************* 123 //Frees all libs loaded with CoLoadLibrary 124 //******************************************************************************* 125 void WIN32API CoFreeAllLibraries() 126 { 127 dprintf(("CoFreeAllLibraries - stub\n")); 128 return ; 129 } 130 //******************************************************************************* 131 //******************************************************************************* 132 void WIN32API CoFreeLibrary(HINSTANCE hInst) 133 { 134 dprintf(("CoFreeLibrary\n")); 135 FreeLibrary(hInst); 136 } 137 //******************************************************************************* 138 //******************************************************************************* 139 void WIN32API CoFreeUnusedLibraries() 140 { 141 dprintf(("CoFreeUnusedLibraries - stub\n")); 142 return ; 143 } 144 //******************************************************************************* 145 //******************************************************************************* 146 HRESULT WIN32API CoGetCallerTID() 147 { 148 dprintf(("CoGetCallerTID, UNKNOWN API - stub\n")); 149 return 0; 150 } 151 //******************************************************************************* 152 //******************************************************************************* 153 HRESULT WIN32API CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext, 154 COSERVERINFO *pServerInfo, REFIID riid, 155 LPVOID *ppv) 156 { 157 dprintf(("CoGetClassObject - stub\n")); 158 return REGDB_E_CLASSNOTREG; 159 } 160 //******************************************************************************* 161 //******************************************************************************* 162 HRESULT WIN32API CoGetCurrentLogicalThreadId() 163 { 164 dprintf(("CoGetCurrentLogicalThreadId, UNKNOWN API - stub\n")); 165 return 0; 166 } 167 //******************************************************************************* 168 //******************************************************************************* 169 DWORD WIN32API CoGetCurrentProcess() 170 { 171 dprintf(("CoGetCurrentProcess - stub\n")); 172 return 666; 173 } 174 //******************************************************************************* 175 //******************************************************************************* 176 HRESULT WIN32API CoGetInterfaceAndReleaseStream(LPSTREAM pStm, REFIID riid, 177 LPVOID *ppv) 178 { 179 dprintf(("CoGetInterfaceAndReleaseStream - stub\n")); 180 return E_INVALIDARG; 181 } 182 //******************************************************************************* 183 //******************************************************************************* 184 HRESULT WIN32API CoGetMalloc(DWORD dwMemContext, LPMALLOC *ppMalloc) 185 { 186 dprintf(("CoGetMalloc - stub\n")); 187 return E_OUTOFMEMORY; 188 } 189 //******************************************************************************* 190 //******************************************************************************* 191 HRESULT WIN32API CoGetMarshalSizeMax(ULONG *pulSize, REFIID riid, IUnknown *pUnk, 192 DWORD dwDestContext, LPVOID pvDestContext, 193 DWORD mshlflags) 194 { 195 dprintf(("CoGetMarshalSizeMax - stub\n")); 196 return CO_E_NOTINITIALIZED; 197 } 198 //******************************************************************************* 199 //******************************************************************************* 200 HRESULT WIN32API CoGetPSClsid(REFIID riid, CLSID *pclsid) 201 { 202 dprintf(("CoGetPSClsid - stub\n")); 203 return E_OUTOFMEMORY; 204 } 205 //******************************************************************************* 206 //******************************************************************************* 207 HRESULT WIN32API CoGetStandardMarshal(REFIID riid, IUnknown *pUnk, DWORD dwDestContext, 208 LPVOID pvDestContext, DWORD mshlflags, 209 LPMARSHALL *ppMarshal) 210 { 211 dprintf(("CoGetStandardMarshal - stub\n")); 212 return E_OUTOFMEMORY; 213 } 214 //******************************************************************************* 215 //******************************************************************************* 216 HRESULT WIN32API CoGetState() 217 { 218 dprintf(("CoGetState, UNKNOWN API - stub\n")); 219 return 0; 220 } 221 //******************************************************************************* 222 //******************************************************************************* 223 HRESULT WIN32API CoGetTreatAsClass(REFCLSID clsidOld, LPCLSID pclsidNew) 224 { 225 dprintf(("CoGetTreatAsClass - stub\n")); 226 return S_FALSE; 227 } 228 //******************************************************************************* 229 //******************************************************************************* 230 HRESULT WIN32API CoInitialize(LPVOID lpReserved) 231 { 232 dprintf(("CoInitialize, UNKNOWN API - stub\n")); 233 return 0; 234 } 235 //******************************************************************************* 236 //******************************************************************************* 237 HRESULT WIN32API CoInitializeWOW() 238 { 239 dprintf(("CoInitializeWOW, UNKNOWN API - stub\n")); 240 return 0; 241 } 242 //******************************************************************************* 243 //******************************************************************************* 244 BOOL WIN32API CoIsHandlerConnected(LPUNKNOWN pUnk) 245 { 246 dprintf(("CoIsHandlerConnected - stub\n")); 247 return FALSE; 248 } 249 //******************************************************************************* 250 //******************************************************************************* 251 BOOL WIN32API CoIsOle1Class(REFCLSID rclsid) 252 { 253 dprintf(("CoIsOle1Class - stub\n")); 254 return S_FALSE; 255 } 256 //******************************************************************************* 257 //******************************************************************************* 258 HINSTANCE WIN32API CoLoadLibrary(LPSTR lpszLibName, BOOL bAutoFree) 259 { 260 dprintf(("CoLoadLibrary\n")); 261 return LoadLibrary(lpszLibName); 262 } 263 //******************************************************************************* 264 //******************************************************************************* 265 HRESULT WIN32API CoLockObjectExternal(IUnknown *pUnk, BOOL fLock, BOOL fLastUnlockReleases) 266 { 267 dprintf(("CoLockObjectExternal - stub\n")); 268 return E_OUTOFMEMORY; 269 } 270 //******************************************************************************* 271 //******************************************************************************* 272 HRESULT WIN32API CoMarshalHresult(IStream *pStm, HRESULT hresult) 273 { 274 dprintf(("CoMarshalHresult - stub\n")); 275 return E_OUTOFMEMORY; 276 } 277 //******************************************************************************* 278 //******************************************************************************* 279 HRESULT WIN32API CoMarshalInterThreadInterfaceInStream(REFIID riid, 280 LPUNKNOWN pUnk, 281 LPSTREAM *ppStm) 282 { 283 dprintf(("CoMarshalInterThreadInterfaceInStream - stub\n")); 284 return E_OUTOFMEMORY; 285 } 286 //******************************************************************************* 287 //******************************************************************************* 288 HRESULT WIN32API CoMarshalInterface(IStream *pStm, REFIID riid, IUnknown *pUnk, 289 DWORD dwDestContext, void *pvDestContext, 290 DWORD mshlflags) 291 { 292 dprintf(("CoMarshalInterface - stub\n")); 293 return E_OUTOFMEMORY; 294 } 295 //******************************************************************************* 296 //******************************************************************************* 297 HRESULT WIN32API CoQueryReleaseObject() 298 { 299 dprintf(("CoQueryReleaseObject, UNKNOWN API - stub\n")); 300 return 0; 301 } 302 //******************************************************************************* 303 //******************************************************************************* 304 HRESULT WIN32API CoRegisterClassObject(REFCLSID rclsid, IUnknown *pUnk, 305 DWORD dwClsContext, DWORD flags, 306 LPDWORD *lpdwRegister) 307 { 308 dprintf(("CoRegisterClassObject - stub\n")); 309 return E_OUTOFMEMORY; 310 } 311 //******************************************************************************* 312 //******************************************************************************* 313 HRESULT WIN32API CoRegisterMallocSpy(LPMALLOCSPY pMallocSpy) 314 { 315 dprintf(("CoRegisterMallocSpy - stub\n")); 316 return CO_E_OBJISREG; 317 } 318 //******************************************************************************* 319 //******************************************************************************* 320 HRESULT WIN32API CoRegisterMessageFilter(LPMESSAGEFILTER lpMessageFilter, 321 LPMESSAGEFILTER *lplpMessageFilter) 322 { 323 dprintf(("CoRegisterMessageFilter - stub\n")); 324 return S_FALSE; 325 } 326 //******************************************************************************* 327 //******************************************************************************* 328 HRESULT WIN32API CoReleaseMarshalData(IStream *pStm) 329 { 330 dprintf(("CoReleaseMarshalData - stub\n")); 331 return E_OUTOFMEMORY; 332 } 333 //******************************************************************************* 334 //******************************************************************************* 335 HRESULT WIN32API CoRevokeClassObject(DWORD dwRegister) 336 { 337 dprintf(("CoRevokeClassObject - stub\n")); 338 return E_OUTOFMEMORY; 339 } 340 //******************************************************************************* 341 //******************************************************************************* 342 HRESULT WIN32API CoRevokeMallocSpy() 343 { 344 dprintf(("CoRevokeMallocSpy - stub\n")); 345 return E_ACCESSDENIED; 346 } 347 //******************************************************************************* 348 //******************************************************************************* 349 HRESULT WIN32API CoSetState() 350 { 351 dprintf(("CoSetState, UNKNOWN API - stub\n")); 352 return 0; 353 } 354 //******************************************************************************* 355 //******************************************************************************* 356 LPVOID WIN32API CoTaskMemAlloc(ULONG cb) 357 { 358 dprintf(("CoTaskMemAlloc\n")); 359 return malloc(cb); 360 } 361 //******************************************************************************* 362 //******************************************************************************* 363 void WIN32API CoTaskMemFree(void *pv) 364 { 365 dprintf(("CoTaskMemFree\n")); 366 free(pv); 367 return; 368 } 369 //******************************************************************************* 370 //******************************************************************************* 371 LPVOID WIN32API CoTaskMemRealloc(LPVOID pv, ULONG cb) 372 { 373 dprintf(("CoTaskMemRealloc - stub\n")); 374 return NULL; 375 } 376 //******************************************************************************* 377 //******************************************************************************* 378 HRESULT WIN32API CoTreatAsClass(REFCLSID clsidOld, REFCLSID clsidNew) 379 { 380 dprintf(("CoTreatAsClass - stub\n")); 381 return E_INVALIDARG; 382 } 383 //******************************************************************************* 384 //******************************************************************************* 385 void WIN32API CoUninitialize() 386 { 387 dprintf(("CoUninitialize - stub\n")); 388 return ; 389 } 390 //******************************************************************************* 391 //******************************************************************************* 392 void WIN32API CoUnloadingWOW() 393 { 394 dprintf(("CoUnloadingWOW, UNKNOWN API - stub\n")); 395 return ; 396 } 397 //******************************************************************************* 398 //******************************************************************************* 399 HRESULT WIN32API CoUnmarshalHresult(LPSTREAM pStm, HRESULT *phresult) 400 { 401 dprintf(("CoUnmarshalHresult - stub\n")); 402 return S_OK; 403 } 404 //******************************************************************************* 405 //******************************************************************************* 406 HRESULT WIN32API CoUnmarshalInterface(IStream *pSTm, REFIID riid, void **ppv) 407 { 408 dprintf(("CoUnmarshalInterface - stub\n")); 409 return S_OK; 410 } 411 //******************************************************************************* 412 //******************************************************************************* 413 HRESULT WIN32API CreateAntiMoniker(LPMONIKER FAR *ppmk) 428 HRESULT WIN32API CreateAntiMoniker(LPMONIKER *ppmk) 414 429 { 415 430 dprintf(("CreateAntiMoniker - stub\n")); … … 418 433 //******************************************************************************* 419 434 //******************************************************************************* 420 HRESULT WIN32API CreateBindCtx(DWORD reserved, LPBC FAR*ppbc)435 HRESULT WIN32API CreateBindCtx(DWORD reserved, LPBC *ppbc) 421 436 { 422 437 dprintf(("CreateBindCtx - stub\n")); … … 433 448 //******************************************************************************* 434 449 HRESULT WIN32API CreateDataCache(LPUNKNOWN pUnkOuter, REFCLSID rclsid, 435 REFIID riid, LPVOID FAR*ppvObj)450 REFIID riid, LPVOID *ppvObj) 436 451 { 437 452 dprintf(("CreateDataCache - stub\n")); … … 440 455 //******************************************************************************* 441 456 //******************************************************************************* 442 HRESULT WIN32API CreateFileMoniker(LP STR lpszPathName, LPMONIKER FAR *ppmk)457 HRESULT WIN32API CreateFileMoniker(LPCOLESTR lpszPathName, LPMONIKER *ppmk) 443 458 { 444 459 dprintf(("CreateFileMoniker - stub\n")); … … 448 463 //******************************************************************************* 449 464 HRESULT WIN32API CreateGenericComposite(LPMONIKER pmkFirst, LPMONIKER pmkRest, 450 LPMONIKER FAR*ppmkComposite)465 LPMONIKER *ppmkComposite) 451 466 { 452 467 dprintf(("CreateGenericComposite - stub\n")); … … 463 478 //******************************************************************************* 464 479 //******************************************************************************* 465 HRESULT WIN32API CreateItemMoniker(LP STR lpszDelim, LPSTR lpszItem, LPMONIKER FAR *ppmk)480 HRESULT WIN32API CreateItemMoniker(LPCOLESTR lpszDelim, LPCOLESTR lpszItem, LPMONIKER *ppmk) 466 481 { 467 482 dprintf(("CreateItemMoniker - stub\n")); … … 477 492 //******************************************************************************* 478 493 //******************************************************************************* 479 HRESULT WIN32API CreatePointerMoniker(LPUNKNOWN punk, LPMONIKER FAR*ppmk)494 HRESULT WIN32API CreatePointerMoniker(LPUNKNOWN punk, LPMONIKER *ppmk) 480 495 { 481 496 dprintf(("CreatePointerMoniker - stub\n")); … … 570 585 //******************************************************************************* 571 586 //******************************************************************************* 572 HRESULT WIN32API GetRunningObjectTable(DWORD reserved, LPRUNNINGOBJECTTABLE *pprot) 587 //HRESULT WIN32API GetRunningObjectTable(DWORD reserved, LPRUNNINGOBJECTTABLE *pprot) 588 HRESULT WIN32API GetRunningObjectTable(DWORD reserved, LPVOID *pprot) 573 589 { 574 590 dprintf(("GetRunningObjectTable - stub\n")); … … 592 608 //******************************************************************************* 593 609 //******************************************************************************* 594 BOOL WIN32API IsEqualGUID(REFGUID rguid1, REFGUID rguid2)610 BOOL WIN32API CONCRETE_IsEqualGUID(REFGUID rguid1, REFGUID rguid2) 595 611 { 596 612 dprintf(("IsEqualGUID - stub\n")); … … 627 643 //******************************************************************************* 628 644 //******************************************************************************* 629 HRESULT WIN32API MkParseDisplayName(LPBC pbc, LPSTR szUserName, ULONG FAR*lpchEaten,630 LPMONIKER FAR*ppmk)645 HRESULT WIN32API MkParseDisplayName(LPBC pbc, LPSTR szUserName, ULONG *lpchEaten, 646 LPMONIKER *ppmk) 631 647 { 632 648 dprintf(("MkParseDisplayName - stub\n")); … … 636 652 //******************************************************************************* 637 653 HRESULT WIN32API MonikerCommonPrefixWith(LPMONIKER pmkThis, LPMONIKER pmkOther, 638 LPMONIKER FAR*ppmkCommon)654 LPMONIKER *ppmkCommon) 639 655 { 640 656 dprintf(("MonikerCommonPrefixWith - stub\n")); … … 644 660 //******************************************************************************* 645 661 HRESULT WIN32API MonikerRelativePathTo(LPMONIKER pmkSrc, LPMONIKER pmkDest, 646 LPMONIKER FAR*ppmkRelPath, BOOL dwReserved )662 LPMONIKER *ppmkRelPath, BOOL dwReserved ) 647 663 { 648 664 dprintf(("MonikerRelativePathTo - stub\n")); … … 665 681 //******************************************************************************* 666 682 //******************************************************************************* 667 HRESULT WIN32API OleConvertIStorageToOLESTREAMEx(IStorage *pStg, CLIPFORMAT ctFormat, 668 LONG lWidth, LONG lHeight, 669 DWORD dwSize, STGMEDIUM pmedium, 670 LPOLESTREAM lpolestream) 683 HRESULT WIN32API OleConvertIStorageToOLESTREAMEx(LPSTORAGE pStg, 684 CLIPFORMAT ctFormat, 685 LONG lWidth, 686 LONG lHeight, 687 DWORD dwSize, 688 LPSTGMEDIUM pmedium, 689 LPOLESTREAM lpolestream) 671 690 { 672 691 dprintf(("OleConvertIStorageToOLESTREAMEx - stub\n")); … … 684 703 //******************************************************************************* 685 704 //******************************************************************************* 686 HRESULT WIN32API OleConvertOLESTREAMToIStorageEx(LPOLESTREAM lpolestream, 687 IStorage *pstg, CLIPFORMAT *ctFormat, 688 LONG *plWidth, LONG *plHeight, 689 DWORD *pdwSize, STGMEDIUM pmedium) 705 HRESULT WIN32API OleConvertOLESTREAMToIStorageEx(LPOLESTREAM lpolestream, 706 LPSTORAGE pstg, 707 CLIPFORMAT * ctFormat, 708 LONG * plWidth, 709 LONG * plHeight, 710 DWORD * pdwSize, 711 LPSTGMEDIUM pmedium) 690 712 { 691 713 dprintf(("OleConvertOLESTREAMToIStorageEx - stub\n")); … … 704 726 //******************************************************************************* 705 727 HRESULT WIN32API OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter, 706 REFIID riid, LPVOID FAR*ppvObj)728 REFIID riid, LPVOID *ppvObj) 707 729 { 708 730 dprintf(("OleCreateDefaultHandler - stub\n")); … … 723 745 DWORD renderopt, LPFORMATETC pFormatEtc, 724 746 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, 725 LPVOID FAR*ppvObj)747 LPVOID *ppvObj) 726 748 { 727 749 dprintf(("OleCreateFromData - stub\n")); … … 734 756 DWORD renderopt, LPFORMATETC pFormatEtc, 735 757 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, 736 LPVOID FAR*ppvObj)758 LPVOID *ppvObj) 737 759 { 738 760 dprintf(("OleCreateFromFile - stub\n")); … … 744 766 DWORD renderopt, LPFORMATETC pFormatEtc, 745 767 LPOLECLIENTSITE lpClientSite, LPSTORAGE pStg, 746 LPVOID FAR*ppvObj)768 LPVOID *ppvObj) 747 769 { 748 770 dprintf(("OleCreateLink - stub\n")); 749 return( OLE_E_CANT_BINDTOSOURCE);771 return(E_OUTOFMEMORY); 750 772 } 751 773 //******************************************************************************* … … 754 776 DWORD renderopt, LPFORMATETC pFormatEtc, 755 777 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, 756 LPVOID FAR*ppvObj)778 LPVOID *ppvObj) 757 779 { 758 780 dprintf(("OleCreateLinkFromData - stub\n")); 759 return( OLE_E_CANT_BINDTOSOURCE);760 } 761 //******************************************************************************* 762 //******************************************************************************* 763 HRESULT WIN32API OleCreateLinkToFile(LP WSTR lpszFileName, REFIID riid, DWORD renderopt,781 return(E_OUTOFMEMORY); 782 } 783 //******************************************************************************* 784 //******************************************************************************* 785 HRESULT WIN32API OleCreateLinkToFile(LPCOLESTR lpszFileName, REFIID riid, DWORD renderopt, 764 786 LPFORMATETC pFormatEtc, IOleClientSite *pClientSite, 765 787 IStorage *pStg, void **ppvObj) … … 780 802 DWORD renderopt, LPFORMATETC pFormatEtc, 781 803 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, 782 LPVOID FAR*ppvObj)804 LPVOID *ppvObj) 783 805 { 784 806 dprintf(("OleCreateStaticFromData - stub\n")); … … 787 809 //******************************************************************************* 788 810 //******************************************************************************* 789 voidWIN32API OleDestroyMenuDescriptor(HOLEMENU holemenu)811 HRESULT WIN32API OleDestroyMenuDescriptor(HOLEMENU holemenu) 790 812 { 791 813 dprintf(("OleDestroyMenuDescriptor - stub\n")); 792 return ;814 return E_OUTOFMEMORY; 793 815 } 794 816 //******************************************************************************* … … 993 1015 { 994 1016 dprintf(("OleSetClipboard - stub\n")); 995 return( CLIPBRD_E_CANT_OPEN);1017 return(E_OUTOFMEMORY); 996 1018 } 997 1019 //******************************************************************************* … … 1116 1138 //******************************************************************************* 1117 1139 //******************************************************************************* 1118 HRESULT WIN32API StgCreateDocfileOnILockBytes( const WCHAR *pwcsName, DWORD grfMode,1140 HRESULT WIN32API StgCreateDocfileOnILockBytes(ILockBytes *plkbyt, DWORD grfMode, 1119 1141 DWORD reserved, IStorage **ppstgOpen) 1120 1142 { … … 1182 1204 //******************************************************************************* 1183 1205 //******************************************************************************* 1184 DWORDWIN32API StringFromGUID2(REFGUID rguid, LPOLESTR lpsz, int cbMax)1206 int WIN32API StringFromGUID2(REFGUID rguid, LPOLESTR lpsz, int cbMax) 1185 1207 { 1186 1208 char szclsid[64]; -
trunk/src/ole32/ole32.def
r4 r46 86 86 IIDFromString = _IIDFromString@8 @74 87 87 IsAccelerator = _IsAccelerator@16 @75 88 IsEqualGUID = _IsEqualGUID@8 @7688 ; IsEqualGUID = _IsEqualGUID@8 @76 89 89 IsValidIid = _IsValidIid@4 @77 90 90 IsValidInterface = _IsValidInterface@4 @78 -
trunk/src/ole32/ole32.h
r4 r46 1 /* $Id: ole32.h,v 1.1 1999-05-24 20:19:52 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/pe2lx/LX.CPP
r4 r46 1 /* $Id: LX.CPP,v 1.1 1999-05-24 20:19:52 ktk Exp $ */2 3 1 /* 4 2 * PE2LX LX code … … 40 38 #define min(a,b) ((a<b) ? (a) : (b)) 41 39 #endif 40 41 //In pe.cpp 42 char *hex(ULONG num); 42 43 43 44 LXHeader OS2Exe; … … 642 643 type = GetSectionByAddress(address); 643 644 if(type == -1) { 644 cout << "Oops, fixup error 1.... "<< endl;645 cout << "Oops, fixup error 1.... at " << hex(address) << endl; 645 646 return; //hmmmmmmmmmm 646 647 } … … 659 660 type = GetRealSectionByAddress(targetaddr); 660 661 if(type == -1){ 661 cout << "Oops, fixup error 2.... "<< endl;662 cout << "Oops, fixup error 2.... at " << hex(targetaddr) << endl; 662 663 return; //hmmmmmmmmmm 663 664 } -
trunk/src/pe2lx/LX.H
r4 r46 1 /* $Id: LX.H,v 1.1 1999-05-24 20:19:52 ktk Exp $ */2 3 1 /* 4 2 * PE2LX LX -
trunk/src/pe2lx/accelerator.cpp
r4 r46 1 /* $Id: accelerator.cpp,v 1.1 1999-05-24 20:19:53 ktk Exp $ */2 3 1 /* 4 2 * PE2LX accelerator resource support code -
trunk/src/pe2lx/accelerator.h
r4 r46 1 /* $Id: accelerator.h,v 1.1 1999-05-24 20:19:53 ktk Exp $ */2 3 1 /* 4 2 * PE2LX accelerator resource support code -
trunk/src/pe2lx/bitmap.cpp
r4 r46 1 /* $Id: bitmap.cpp,v 1.1 1999-05-24 20:19:53 ktk Exp $ */2 3 1 /* 4 2 * PE2LX bitmap conversion code -
trunk/src/pe2lx/bitmap.h
r4 r46 1 /* $Id: bitmap.h,v 1.1 1999-05-24 20:19:53 ktk Exp $ */2 3 1 /* 4 2 * PE2LX bitmaps -
trunk/src/pe2lx/cursor.cpp
r4 r46 1 /* $Id: cursor.cpp,v 1.1 1999-05-24 20:19:53 ktk Exp $ */2 3 1 /* 4 2 * PE2LX cursor conversion code -
trunk/src/pe2lx/cursor.h
r4 r46 1 /* $Id: cursor.h,v 1.1 1999-05-24 20:19:53 ktk Exp $ */2 3 1 /* 4 2 * PE2LX cursor conversion code -
trunk/src/pe2lx/cursorgrp.cpp
r4 r46 1 /* $Id: cursorgrp.cpp,v 1.1 1999-05-24 20:19:53 ktk Exp $ */2 3 1 /* 4 2 * PE2LX cursor group code -
trunk/src/pe2lx/cursorgrp.h
r4 r46 1 /* $Id: cursorgrp.h,v 1.1 1999-05-24 20:19:54 ktk Exp $ */2 3 1 /* 4 2 * PE2LX cursor group -
trunk/src/pe2lx/dialog.cpp
r4 r46 1 /* $Id: dialog.cpp,v 1.1 1999-05-24 20:19:54 ktk Exp $ */2 3 1 /* 4 2 * PE2LX dialog conversion code -
trunk/src/pe2lx/dialog.h
r4 r46 1 /* $Id: dialog.h,v 1.1 1999-05-24 20:19:54 ktk Exp $ */2 3 1 /* 4 2 * PE2LX dialog conversion code -
trunk/src/pe2lx/icon.cpp
r4 r46 1 /* $Id: icon.cpp,v 1.1 1999-05-24 20:19:54 ktk Exp $ */2 3 1 /* 4 2 * PE2LX icons -
trunk/src/pe2lx/icon.h
r4 r46 1 /* $Id: icon.h,v 1.1 1999-05-24 20:19:55 ktk Exp $ */ 2 3 /* $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/pe2lx/icon.h,v 1.1 1999-05-24 20:19:55 ktk Exp $ 1 /* $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/pe2lx/icon.h,v 1.2 1999-06-07 20:58:12 sandervl Exp $ 4 2 * 5 3 * Declarations, protypes and defintions for conversion of icons. -
trunk/src/pe2lx/icongrp.cpp
r4 r46 1 /* $Id: icongrp.cpp,v 1.1 1999-05-24 20:19:55 ktk Exp $ */2 3 1 /* 4 2 * PE2LX Icon group code -
trunk/src/pe2lx/icongrp.h
r4 r46 1 /* $Id: icongrp.h,v 1.1 1999-05-24 20:19:55 ktk Exp $ */2 3 1 /* 4 2 * PE2LX icon groups -
trunk/src/pe2lx/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:55 ktk Exp $2 3 1 # 4 2 # PD-Win32 API -
trunk/src/pe2lx/menu.cpp
r4 r46 1 /* $Id: menu.cpp,v 1.1 1999-05-24 20:19:55 ktk Exp $ */2 3 1 /* 4 2 * PE2LX menu conversion code -
trunk/src/pe2lx/menu.h
r4 r46 1 /* $Id: menu.h,v 1.1 1999-05-24 20:19:56 ktk Exp $ */2 3 1 /* 4 2 * PE2LX menus -
trunk/src/pe2lx/misc.cpp
r4 r46 1 /* $Id: misc.cpp,v 1.1 1999-05-24 20:19:56 ktk Exp $ */2 3 1 /* 4 2 * PE2LX ascii to unicode conversion -
trunk/src/pe2lx/misc.h
r4 r46 1 /* $Id: misc.h,v 1.1 1999-05-24 20:19:56 ktk Exp $ */2 3 1 /* 4 2 * PE2LX ascii to unicode -
trunk/src/pe2lx/pe.cpp
r4 r46 1 /* $Id: pe.cpp,v 1.1 1999-05-24 20:19:56 ktk Exp $ */2 3 1 /* 4 2 * PE2LX PE image interpreter -
trunk/src/pe2lx/pefile.cpp
r4 r46 1 /* $Id: pefile.cpp,v 1.1 1999-05-24 20:19:56 ktk Exp $ */2 3 1 /* 4 2 * PE2LX PE utility functions -
trunk/src/pe2lx/rcdata.cpp
r4 r46 1 /* $Id: rcdata.cpp,v 1.1 1999-05-24 20:19:56 ktk Exp $ */2 3 1 /* 4 2 * PE2LX RCDATA resources -
trunk/src/pe2lx/rcdata.h
r4 r46 1 /* $Id: rcdata.h,v 1.1 1999-05-24 20:19:56 ktk Exp $ */2 3 1 /* 4 2 * PE2LX RCDATA resources -
trunk/src/pe2lx/strings.cpp
r4 r46 1 /* $Id: strings.cpp,v 1.1 1999-05-24 20:19:56 ktk Exp $ */2 3 1 /* 4 2 * PE2LX String conversion -
trunk/src/pe2lx/strings.h
r4 r46 1 /* $Id: strings.h,v 1.1 1999-05-24 20:19:56 ktk Exp $ */2 3 1 /* 4 2 * PE2LX Strings -
trunk/src/peldr/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:56 ktk Exp $2 3 1 # 4 2 # PD-Win32 API -
trunk/src/peldr/pe.h
r4 r46 1 /* $Id: pe.h,v 1.1 1999-05-24 20:19:57 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/shell32/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:57 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 40 38 41 39 shell32.obj: shell32.cpp shell32.h 42 initterm.obj: initterm.c 40 initterm.obj: initterm.cpp 43 41 44 42 clean: -
trunk/src/shell32/shell32.h
r4 r46 1 /* $Id: shell32.h,v 1.1 1999-05-24 20:19:58 ktk Exp $ */2 3 1 #ifndef __shell32_H__ 4 2 #define __shell32_H__ -
trunk/src/tapi32/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:19:58 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 40 38 41 39 tapi32.obj: tapi32.cpp tapi32.h 42 initterm.obj: initterm.c 40 initterm.obj: initterm.cpp 43 41 44 42 -
trunk/src/tapi32/tapi32.cpp
r4 r46 1 /* $Id: tapi32.cpp,v 1.1 1999-05-24 20:19:58 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/tapi32/tapi32.h
r4 r46 1 /* $Id: tapi32.h,v 1.1 1999-05-24 20:19:58 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/user32/DLGCONVERT.H
r4 r46 1 /* $Id: DLGCONVERT.H,v 1.1 1999-05-24 20:19:59 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/user32/HOOK.CPP
r4 r46 1 /* $Id: HOOK.CPP,v 1.1 1999-05-24 20:19:59 ktk Exp $ */2 3 1 /* 4 2 * Win32 hook API functions for OS/2 -
trunk/src/user32/IMAGE.H
r4 r46 1 /* $Id: IMAGE.H,v 1.1 1999-05-24 20:19:59 ktk Exp $ */2 3 1 #ifndef __IMAGE_H__ 4 2 #define __IMAGE_H__ -
trunk/src/user32/Makefile
r4 r46 1 # $Id: Makefile,v 1.1 1999-05-24 20:19:59 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 68 66 $(PDWIN32_INCLUDE)\wndproc.h $(PDWIN32_INCLUDE)\wndclass.h 69 67 70 initterm.obj: initterm.c 68 initterm.obj: initterm.cpp 71 69 72 70 -
trunk/src/user32/RESSTRING.C
r4 r46 1 /* $Id: RESSTRING.C,v 1.1 1999-05-24 20:19:59 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/user32/RESSTRING.H
r4 r46 1 /* $Id: RESSTRING.H,v 1.1 1999-05-24 20:19:59 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/user32/SYSCLR.CPP
r4 r46 1 /* $Id: SYSCLR.CPP,v 1.1 1999-05-24 20:19:59 ktk Exp $ */2 3 1 /* 4 2 * Win32 system color API functions for OS/2 -
trunk/src/user32/SYSCLR.H
r4 r46 1 /* $Id: SYSCLR.H,v 1.1 1999-05-24 20:20:00 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/user32/USER32.DEF
r44 r46 593 593 CreateWindowProc @2000 594 594 GetOS2Callback__15Win32WindowProcFv @2001 595 596 595 ; Wine helper function 597 596 GetSysColorPen = _GetSysColorPen@4 @2002 -
trunk/src/user32/USRCALL.CPP
r4 r46 1 /* $Id: USRCALL.CPP,v 1.1 1999-05-24 20:20:00 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/user32/USRCALL.H
r4 r46 1 /* $Id: USRCALL.H,v 1.1 1999-05-24 20:20:00 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/user32/char.cpp
r4 r46 1 /* $Id: char.cpp,v 1.1 1999-05-24 20:20:01 ktk Exp $ */2 3 1 /* 4 2 * Win32 character API functions for OS/2 -
trunk/src/user32/dde.cpp
r4 r46 1 /* $Id: dde.cpp,v 1.1 1999-05-24 20:20:01 ktk Exp $ */2 3 1 /* 4 2 * Win32 default window API functions for OS/2 -
trunk/src/user32/dialog.cpp
r17 r46 1 /* $Id: dialog.cpp,v 1.2 1999-05-31 22:08:14 phaller Exp $ */2 3 1 /* 4 2 * Win32 dialog API functions for OS/2 … … 12 10 #include <os2win.h> 13 11 #include <nameid.h> 14 #include <misc.h>15 16 12 #include "user32.h" 17 13 #include "wndproc.h" -
trunk/src/user32/dlgconvert.cpp
r4 r46 1 /* $Id: dlgconvert.cpp,v 1.1 1999-05-24 20:20:01 ktk Exp $ */2 3 1 /* 4 2 * Win32 runtime dialog conversion functions for OS/2 -
trunk/src/user32/hooks.cpp
r4 r46 1 /* $Id: hooks.cpp,v 1.1 1999-05-24 20:20:01 ktk Exp $ */2 3 1 /* 4 2 * Win32 hook class for OS/2 -
trunk/src/user32/hooks.h
r4 r46 1 /* $Id: hooks.h,v 1.1 1999-05-24 20:20:01 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/user32/icon.cpp
r4 r46 1 /* $Id: icon.cpp,v 1.1 1999-05-24 20:20:01 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/user32/icon.h
r4 r46 1 /* $Id: icon.h,v 1.1 1999-05-24 20:20:01 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/user32/loadres.cpp
r17 r46 1 /* $Id: loadres.cpp,v 1.2 1999-05-31 22:08:15 phaller Exp $ */2 3 1 /* 4 2 * … … 13 11 */ 14 12 #include <os2win.h> 15 #include <misc.h>16 17 13 #include "user32.h" 18 14 #include "resstring.h" -
trunk/src/user32/menu.cpp
r17 r46 1 /* $Id: menu.cpp,v 1.2 1999-05-31 22:08:15 phaller Exp $ */2 3 1 /* 4 2 * Win32 menu API functions for OS/2 … … 16 14 * 17 15 */ 18 19 #include <os2win.h>20 #include <misc.h>21 16 #include "user32.h" 22 23 17 24 18 //****************************************************************************** -
trunk/src/user32/user32.h
r17 r46 1 /* $Id: user32.h,v 1.2 1999-05-31 22:08:16 phaller Exp $ */2 3 1 /***************************************************************************** 4 2 * Name : USER32.H … … 12 10 13 11 #include <os2win.h> 14 #include "misc.h"15 16 12 #include <nameid.h> 17 13 #include <stdlib.h> -
trunk/src/user32/user32exp.def
r44 r46 596 596 CreateWindowProc @2000 597 597 GetOS2Callback__15Win32WindowProcFv @2001 598 _GetSysColorPen@4 @2002 598 599 599 _GetSysColorPen@4 @2002 600 -
trunk/src/user32/wndclass.cpp
r4 r46 1 /* $Id: wndclass.cpp,v 1.1 1999-05-24 20:20:00 ktk Exp $ */2 3 1 /* 4 2 * Win32 Window Class Managment Code for OS/2 … … 92 90 WNDCLASSA wndclass; 93 91 94 if( GetClassInfoA(NULL, "BUTTON", &wndclass)) {92 if(O32_GetClassInfo(NULL, "BUTTON", &wndclass)) { 95 93 new Win32WindowClass(ButtonCallback, "BUTTON", hModule); 96 94 ButtonHandler = (WNDPROC_O32)wndclass.lpfnWndProc; 97 95 } 98 if( GetClassInfoA(NULL, "LISTBOX", &wndclass)) {96 if(O32_GetClassInfo(NULL, "LISTBOX", &wndclass)) { 99 97 new Win32WindowClass(ListboxCallback, "LISTBOX", hModule); 100 98 ListboxHandler = (WNDPROC_O32)wndclass.lpfnWndProc; 101 99 } 102 if( GetClassInfoA(NULL, "COMBOBOX", &wndclass)) {100 if(O32_GetClassInfo(NULL, "COMBOBOX", &wndclass)) { 103 101 new Win32WindowClass(ComboboxCallback, "COMBOBOX", hModule); 104 102 ComboboxHandler = (WNDPROC_O32)wndclass.lpfnWndProc; 105 103 } 106 if( GetClassInfoA(NULL, "EDIT", &wndclass)) {104 if(O32_GetClassInfo(NULL, "EDIT", &wndclass)) { 107 105 new Win32WindowClass(EditCallback, "EDIT", hModule); 108 106 EditHandler = (WNDPROC_O32)wndclass.lpfnWndProc; 109 107 } 110 if( GetClassInfoA(NULL, "MDICLIENT", &wndclass)) {108 if(O32_GetClassInfo(NULL, "MDICLIENT", &wndclass)) { 111 109 new Win32WindowClass(MdiClientCallback, "MDICLIENT", hModule); 112 110 MdiClientHandler = (WNDPROC_O32)wndclass.lpfnWndProc; 113 111 } 114 if( GetClassInfoA(NULL, "SCROLLBAR", &wndclass)) {112 if(O32_GetClassInfo(NULL, "SCROLLBAR", &wndclass)) { 115 113 new Win32WindowClass(ScrollbarCallback, "SCROLLBAR", hModule); 116 114 ScrollbarHandler = (WNDPROC_O32)wndclass.lpfnWndProc; 117 115 } 118 if( GetClassInfoA(NULL, "STATIC", &wndclass)) {116 if(O32_GetClassInfo(NULL, "STATIC", &wndclass)) { 119 117 new Win32WindowClass(StaticCallback, "STATIC", hModule); 120 118 StaticHandler = (WNDPROC_O32)wndclass.lpfnWndProc; -
trunk/src/user32/wndproc.cpp
r34 r46 1 /* $Id: wndproc.cpp,v 1.2 1999-06-02 16:00:38 cbratschi Exp $ */2 3 1 /* 4 2 * … … 94 92 { 95 93 Win32WindowProc *window = Win32WindowProc::windows; 96 94 97 95 /* @@@PH 98/07/13 what's this whole code good for ? */ 98 if(window == this) 96 if(window == this) 99 97 { 100 98 windows = next; 101 99 } 102 else 100 else 103 101 { 104 102 /* @@@PH 98/07/13 window can be NULL */ 105 103 if (window != NULL) 106 while(window->next != NULL) 104 while(window->next != NULL) 107 105 { 108 if(window->next == this) 106 if(window->next == this) 109 107 { 110 108 window->next = next; … … 114 112 } 115 113 } 116 117 if(os2dlg) 114 115 if(os2dlg) 118 116 { 119 117 DeleteWin32DlgTemplate(os2dlg); … … 240 238 lParam = MapOEMToRealKey(wParam, lParam); 241 239 } 242 #ifdef DEBUG 1240 #ifdef DEBUG 243 241 WriteLog("***************Message %s for window/dialog %X\n", GetMsgText(Msg), hwnd); 244 242 #endif -
trunk/src/user32/wndsubproc.cpp
r4 r46 1 /* $Id: wndsubproc.cpp,v 1.1 1999-05-24 20:20:00 ktk Exp $ */2 3 1 /* 4 2 * Win32 window subproc class for OS/2 -
trunk/src/user32/wndsubproc.h
r4 r46 1 /* $Id: wndsubproc.h,v 1.1 1999-05-24 20:20:00 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/version/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:20:05 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 38 36 39 37 40 version.obj: version.c 41 initterm.obj: initterm.c 38 version.obj: version.cpp 39 initterm.obj: initterm.cpp 42 40 43 41 -
trunk/src/winmm/IRTMidi.cpp
r4 r46 1 /* $Id: IRTMidi.cpp,v 1.1 1999-05-24 20:20:05 ktk Exp $ */2 3 1 /******************************************************************************* 4 2 * FILE NAME: IRTMidi.cpp * -
trunk/src/winmm/MIDI.HPP
r4 r46 1 /* $Id: MIDI.HPP,v 1.1 1999-05-24 20:20:05 ktk Exp $ */2 3 1 /* 4 2 * RTMIDI code -
trunk/src/winmm/aux.cpp
r4 r46 1 /* $Id: aux.cpp,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * Auxilary multimedia apis -
trunk/src/winmm/aux.h
r4 r46 1 /* $Id: aux.h,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * Auxilary multimedia apis -
trunk/src/winmm/auxos2.cpp
r4 r46 1 /* $Id: auxos2.cpp,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * Auxilary multimedia OS/2 implementation -
trunk/src/winmm/driver.cpp
r4 r46 1 /* $Id: driver.cpp,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * Driver multimedia apis -
trunk/src/winmm/dwaveout.cpp
r4 r46 1 /* $Id: dwaveout.cpp,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * Wave playback class -
trunk/src/winmm/dwaveout.h
r4 r46 1 /* $Id: dwaveout.h,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * Wave playback class -
trunk/src/winmm/irtmidi.hpp
r4 r46 1 /* $Id: irtmidi.hpp,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /******************************************************************************* 4 2 * FILE NAME: IRTMidi.hpp * -
trunk/src/winmm/joy.cpp
r4 r46 1 /* $Id: joy.cpp,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * joystick stubs -
trunk/src/winmm/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:20:06 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 58 56 irtmidi.obj: irtmidi.cpp irtmidi.hpp 59 57 dwaveout.obj: dwaveout.cpp dwaveout.h $(PDWIN32_INCLUDE)\vmutex.h 60 timegettime.obj: timegettime.c 61 initterm.obj: initterm.c aux.h62 playsound.obj: playsound.c 58 timegettime.obj: timegettime.cpp 59 initterm.obj: initterm.cpp aux.h 60 playsound.obj: playsound.cpp 63 61 64 62 clean: -
trunk/src/winmm/mci.cpp
r4 r46 1 /* $Id: mci.cpp,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * MCI stubs -
trunk/src/winmm/midi.cpp
r4 r46 1 /* $Id: midi.cpp,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * RTMIDI code -
trunk/src/winmm/midistrm.cpp
r4 r46 1 /* $Id: midistrm.cpp,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * RTMIDI code -
trunk/src/winmm/mixer.cpp
r4 r46 1 /* $Id: mixer.cpp,v 1.1 1999-05-24 20:20:06 ktk Exp $ */2 3 1 /* 4 2 * Mixer stubs -
trunk/src/winmm/mmio.cpp
r4 r46 1 /* $Id: mmio.cpp,v 1.1 1999-05-24 20:20:07 ktk Exp $ */2 3 1 /* 4 2 * MMIO stubs -
trunk/src/winmm/os2timer.cpp
r4 r46 1 /* $Id: os2timer.cpp,v 1.1 1999-05-24 20:20:07 ktk Exp $ */2 3 1 /* 4 2 * OS/2 Timer class -
trunk/src/winmm/os2timer.h
r4 r46 1 /* $Id: os2timer.h,v 1.1 1999-05-24 20:20:07 ktk Exp $ */2 3 1 #ifndef __OS2TIMER_H__ 4 2 #define __OS2TIMER_H__ -
trunk/src/winmm/wavein.cpp
r4 r46 1 /* $Id: wavein.cpp,v 1.1 1999-05-24 20:20:07 ktk Exp $ */2 3 1 /* 4 2 * Wave in stubs -
trunk/src/winmm/waveout.cpp
r4 r46 1 /* $Id: waveout.cpp,v 1.1 1999-05-24 20:20:07 ktk Exp $ */2 3 1 /* 4 2 * Wave out MM apis -
trunk/src/winmm/winmm.cpp
r4 r46 1 /* $Id: winmm.cpp,v 1.1 1999-05-24 20:20:07 ktk Exp $ */2 3 1 /* 4 2 * Timer MM apis -
trunk/src/winmm/winmm.h
r4 r46 1 /* $Id: winmm.h,v 1.1 1999-05-24 20:20:07 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/winmm/winmmtype.h
r4 r46 1 /* $Id: winmmtype.h,v 1.1 1999-05-24 20:20:07 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/winmm/wintimer.h
r4 r46 1 /* $Id: wintimer.h,v 1.1 1999-05-24 20:20:07 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/winspool/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:20:08 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 38 36 39 37 40 winspool.obj: winspool.c 41 initterm.obj: initterm.c 38 winspool.obj: winspool.cpp 39 initterm.obj: initterm.cpp 42 40 43 41 -
trunk/src/wnetap32/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:20:08 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 39 37 40 38 wnetap32.obj: wnetap32.cpp 41 initterm.obj: initterm.c 39 initterm.obj: initterm.cpp 42 40 43 41 -
trunk/src/wnetap32/wnetap32.cpp
r4 r46 1 /* $Id: wnetap32.cpp,v 1.1 1999-05-24 20:20:08 ktk Exp $ */2 3 1 /* 4 2 * -
trunk/src/wsock32/makefile
r4 r46 1 # $Id: makefile,v 1.1 1999-05-24 20:20:09 ktk Exp $2 3 1 # 4 2 # PD-Win32 API … … 37 35 38 36 39 wsock32.obj: wsock32.c wsock32.h40 notify.obj: notify.c wsock32.h41 initterm.obj: initterm.c 37 wsock32.obj: wsock32.cpp wsock32.h 38 notify.obj: notify.cpp wsock32.h 39 initterm.obj: initterm.cpp 42 40 43 41 clean: -
trunk/src/wsock32/wsock32.def
r11 r46 1 1 ;Created by BLAST for IBM's compiler 2 3 2 LIBRARY WSOCK32 INITINSTANCE 4 3 DATA MULTIPLE NONSHARED 5 4 EXPORTS 5 ; _WSAFDIsSet = _OS2_WSAFDIsSet@8 6 ; Arecv = _OS2Arecv 7 ; Asend = _OS2Asend 8 ; EnumProtocolsA = _OS2EnumProtocolsA 9 ; EnumProtocolsW = _OS2EnumProtocolsW 10 ; GetAddressByNameA = _OS2GetAddressByNameA 11 ; GetAddressByNameW = _OS2GetAddressByNameW 12 ; GetNameByTypeA = _OS2GetNameByTypeA 13 ; GetNameByTypeW = _OS2GetNameByTypeW 14 ; GetServiceA = _OS2GetServiceA 15 ; GetServiceW = _OS2GetServiceW 16 ; GetTypeByNameA = _OS2GetTypeByNameA 17 ; GetTypeByNameW = _OS2GetTypeByNameW 18 ; NPLoadNameSpaces = _OS2NPLoadNameSpaces 19 ; SetServiceA = _OS2SetServiceA 20 ; SetServiceW = _OS2SetServiceW 21 ; TransmitFile = _OS2TransmitFile 22 accept = _OS2accept@12 @1 23 bind = _OS2bind@12 @2 24 closesocket = _OS2closesocket@4 @3 25 connect = _OS2connect@12 @4 26 getpeername = _OS2getpeername@12 @5 27 getsockname = _OS2getsockname@12 @6 28 getsockopt = _OS2getsockopt@20 @7 29 htonl = _OS2htonl@4 @8 30 htons = _OS2htons@4 @9 31 inet_addr = _OS2inet_addr@4 @10 32 inet_ntoa = _OS2inet_ntoa@4 @11 33 ioctlsocket = _OS2ioctlsocket@12 @12 34 listen = _OS2listen@8 @13 35 ntohl = _OS2ntohl@4 @14 36 ntohs = _OS2ntohs@4 @15 37 recv = _OS2recv@16 @16 38 recvfrom = _OS2recvfrom@24 @17 39 select = _OS2select@20 @18 40 send = _OS2send@16 @19 41 sendto = _OS2sendto@24 @20 42 setsockopt = _OS2setsockopt@20 @21 43 shutdown = _OS2shutdown@8 @22 44 socket = _OS2socket@12 @23 6 45 7 accept = _OS2accept@12 @1 8 bind = _OS2bind@12 @2 9 closesocket = _OS2closesocket@4 @3 10 connect = _OS2connect@12 @4 11 getpeername = _OS2getpeername@12 @5 12 getsockname = _OS2getsockname@12 @6 13 getsockopt = _OS2getsockopt@20 @7 14 htonl = _OS2htonl@4 @8 15 htons = _OS2htons@4 @9 16 inet_addr = _OS2inet_addr@4 @10 17 inet_ntoa = _OS2inet_ntoa@4 @11 18 ioctlsocket = _OS2ioctlsocket@12 @12 19 listen = _OS2listen@8 @13 20 ntohl = _OS2ntohl@4 @14 21 ntohs = _OS2ntohs@4 @15 22 recv = _OS2recv@16 @16 23 recvfrom = _OS2recvfrom@24 @17 24 select = _OS2select@20 @18 25 send = _OS2send@16 @19 26 sendto = _OS2sendto@24 @20 27 setsockopt = _OS2setsockopt@20 @21 28 shutdown = _OS2shutdown@8 @22 29 socket = _OS2socket@12 @23 30 gethostbyaddr = _OS2gethostbyaddr@12 @51 31 gethostbyname = _OS2gethostbyname@4 @52 32 getprotobyname = _OS2getprotobyname@4 @53 33 getprotobynumber = _OS2getprotobynumber@4 @54 34 getservbyname = _OS2getservbyname@8 @55 35 getservbyport = _OS2getservbyport@8 @56 36 gethostname = _OS2gethostname@8 @57 46 gethostbyaddr = _OS2gethostbyaddr@12 @51 47 gethostbyname = _OS2gethostbyname@4 @52 48 getprotobyname = _OS2getprotobyname@4 @53 49 getprotobynumber = _OS2getprotobynumber@4 @54 50 getservbyname = _OS2getservbyname@8 @55 51 getservbyport = _OS2getservbyport@8 @56 52 gethostname = _OS2gethostname@8 @57 37 53 38 WSAAsyncSelect = _OS2WSAAsyncSelect@16 @101 39 WSAAsyncGetHostByAddr = _OS2WSAAsyncGetHostByAddr@28 @102 40 WSAAsyncGetHostByName = _OS2WSAAsyncGetHostByName@20 @103 41 WSAAsyncGetProtoByNumber = _OS2WSAAsyncGetProtoByNumber@20 @104 42 WSAAsyncGetProtoByName = _OS2WSAAsyncGetProtoByName@20 @105 43 WSAAsyncGetServByPort = _OS2WSAAsyncGetServByPort@24 @106 44 WSAAsyncGetServByName = _OS2WSAAsyncGetServByName@24 @107 45 WSACancelAsyncRequest = _OS2WSACancelAsyncRequest@4 @108 46 WSASetBlockingHook = _OS2WSASetBlockingHook@4 @109 47 WSAUnhookBlockingHook = _OS2WSAUnhookBlockingHook@0 @110 48 WSAGetLastError = _OS2WSAGetLastError@0 @111 49 WSASetLastError = _OS2WSASetLastError@4 @112 50 WSACancelBlockingCall = _OS2WSACancelBlockingCall@0 @113 51 WSAIsBlocking = _OS2WSAIsBlocking@0 @114 52 WSAStartup = _OS2WSAStartup@8 @115 53 WSACleanup = _OS2WSACleanup@0 @116 54 __WSAFDIsSet = _OS2__WSAFDIsSet@8 @151 54 WSAAsyncSelect = _OS2WSAAsyncSelect@16 @101 55 WSAAsyncGetHostByAddr = _OS2WSAAsyncGetHostByAddr@28 @102 56 WSAAsyncGetHostByName = _OS2WSAAsyncGetHostByName@20 @103 57 WSAAsyncGetProtoByNumber =_OS2WSAAsyncGetProtoByNumber@20 @104 58 WSAAsyncGetProtoByName = _OS2WSAAsyncGetProtoByName@20 @105 59 WSAAsyncGetServByPort = _OS2WSAAsyncGetServByPort@24 @106 60 WSAAsyncGetServByName = _OS2WSAAsyncGetServByName@24 @107 61 WSACancelAsyncRequest = _OS2WSACancelAsyncRequest@4 @108 62 WSASetBlockingHook = _OS2WSASetBlockingHook@4 @109 63 WSAUnhookBlockingHook = _OS2WSAUnhookBlockingHook@0 @110 64 WSAGetLastError = _OS2WSAGetLastError@0 @111 65 WSASetLastError = _OS2WSASetLastError@4 @112 66 WSACancelBlockingCall = _OS2WSACancelBlockingCall@0 @113 67 WSAIsBlocking = _OS2WSAIsBlocking@0 @114 68 WSAStartup = _OS2WSAStartup@8 @115 69 WSACleanup = _OS2WSACleanup@0 @116 55 70 56 ; Arecv = _OS2Arecv 57 ; Asend = _OS2Asend 58 ; EnumProtocolsA = _OS2EnumProtocolsA 59 ; EnumProtocolsW = _OS2EnumProtocolsW 60 ; GetAddressByNameA = _OS2GetAddressByNameA 61 ; GetAddressByNameW = _OS2GetAddressByNameW 62 ; GetNameByTypeA = _OS2GetNameByTypeA 63 ; GetNameByTypeW = _OS2GetNameByTypeW 64 ; GetServiceA = _OS2GetServiceA 65 ; GetServiceW = _OS2GetServiceW 66 ; GetTypeByNameA = _OS2GetTypeByNameA 67 ; GetTypeByNameW = _OS2GetTypeByNameW 68 ; NPLoadNameSpaces = _OS2NPLoadNameSpaces 69 ; SetServiceA = _OS2SetServiceA 70 ; SetServiceW = _OS2SetServiceW 71 ; TransmitFile = _OS2TransmitFile 72 ; WsControl = _OS2WsControl @1000 73 ; closesockinfo = _OS2closesockinfo @1001 74 ; WSHEnumProtocols = _OS2WSHEnumProtocols @1004 75 ; inet_network = _OS2inet_network @1100 76 ; getnetbyname = _OS2getnetbyname @1101 77 ; rcmd = _OS2rcmd @1102 78 ; rexec = _OS2rexec @1103 79 ; rresvport = _OS2rresvport @1104 80 ; sethostname = _OS2sethostname @1105 81 ; dn_expand = _OS2dn_expand @1106 71 __WSAFDIsSet = _OS2__WSAFDIsSet@8 @151 82 72 83 WSARecvEx = _OS2WSARecvEx@16 @1107 84 s_perror = _OS2s_perror@8 @1108 73 ; WsControl = _OS2WsControl @1000 74 ; closesockinfo = _OS2closesockinfo @1001 75 ; WSHEnumProtocols = _OS2WSHEnumProtocols @1004 76 ; inet_network = _OS2inet_network @1100 77 ; getnetbyname = _OS2getnetbyname @1101 78 ; rcmd = _OS2rcmd @1102 79 ; rexec = _OS2rexec @1103 80 ; rresvport = _OS2rresvport @1104 81 ; sethostname = _OS2sethostname @1105 82 ; dn_expand = _OS2dn_expand @1106 83 WSARecvEx = _OS2WSARecvEx@16 @1107 84 s_perror = _OS2s_perror@8 @1108 85 86 _OS2gethostname@8 @2000 -
trunk/src/wsock32/wsock32.h
r4 r46 1 /* $Id: wsock32.h,v 1.1 1999-05-24 20:20:10 ktk Exp $ */2 3 1 /* WSOCK32.H--definitions & conversions for Odin's wsock32.dll. 4 2 * Unused/unneeded Microsoft declarations removed. … … 17 15 18 16 #define FAR 19 #define PASCAL __stdcall20 #define WINAPI __stdcall21 #define WIN32API __stdcall22 17 23 18 #ifndef IN … … 669 664 #endif 670 665 671 SOCKET PASCALFAR OS2accept (SOCKET s, struct sockaddr *addr,666 SOCKET WIN32API FAR OS2accept (SOCKET s, struct sockaddr *addr, 672 667 int *addrlen); 673 668 674 int PASCALFAR OS2bind (SOCKET s, const struct sockaddr FAR *addr, int namelen);675 676 int PASCALFAR OS2closesocket (SOCKET s);677 678 int PASCALFAR OS2connect (SOCKET s, const struct sockaddr FAR *name, int namelen);679 680 int PASCALFAR OS2ioctlsocket (SOCKET s, long cmd, u_long FAR *argp);681 682 int PASCALFAR OS2getpeername (SOCKET s, struct sockaddr FAR *name,669 int WIN32API FAR OS2bind (SOCKET s, const struct sockaddr FAR *addr, int namelen); 670 671 int WIN32API FAR OS2closesocket (SOCKET s); 672 673 int WIN32API FAR OS2connect (SOCKET s, const struct sockaddr FAR *name, int namelen); 674 675 int WIN32API FAR OS2ioctlsocket (SOCKET s, long cmd, u_long FAR *argp); 676 677 int WIN32API FAR OS2getpeername (SOCKET s, struct sockaddr FAR *name, 683 678 int FAR * namelen); 684 679 685 int PASCALFAR OS2getsockname (SOCKET s, struct sockaddr FAR *name,680 int WIN32API FAR OS2getsockname (SOCKET s, struct sockaddr FAR *name, 686 681 int FAR * namelen); 687 682 688 int PASCALFAR OS2getsockopt (SOCKET s, int level, int optname,683 int WIN32API FAR OS2getsockopt (SOCKET s, int level, int optname, 689 684 char FAR * optval, int FAR *optlen); 690 685 691 u_long PASCALFAR OS2htonl (u_long hostlong);692 693 u_short PASCALFAR OS2htons (u_short hostshort);694 695 unsigned long PASCALFAR OS2inet_addr (const char FAR * cp);696 697 char FAR * PASCALFAR OS2inet_ntoa (struct in_addr in);698 699 int PASCALFAR OS2listen (SOCKET s, int backlog);700 701 u_long PASCALFAR OS2ntohl (u_long netlong);702 703 u_short PASCALFAR OS2ntohs (u_short netshort);704 705 int PASCALFAR OS2recv (SOCKET s, char FAR * buf, int len, int flags);706 707 int PASCALFAR OS2recvfrom (SOCKET s, char FAR * buf, int len, int flags,686 u_long WIN32API FAR OS2htonl (u_long hostlong); 687 688 u_short WIN32API FAR OS2htons (u_short hostshort); 689 690 unsigned long WIN32API FAR OS2inet_addr (const char FAR * cp); 691 692 char FAR * WIN32API FAR OS2inet_ntoa (struct in_addr in); 693 694 int WIN32API FAR OS2listen (SOCKET s, int backlog); 695 696 u_long WIN32API FAR OS2ntohl (u_long netlong); 697 698 u_short WIN32API FAR OS2ntohs (u_short netshort); 699 700 int WIN32API FAR OS2recv (SOCKET s, char FAR * buf, int len, int flags); 701 702 int WIN32API FAR OS2recvfrom (SOCKET s, char FAR * buf, int len, int flags, 708 703 struct sockaddr FAR *from, int FAR * fromlen); 709 704 710 int PASCALFAR OS2select (int nfds, Wfd_set FAR *readfds, Wfd_set FAR *writefds,705 int WIN32API FAR OS2select (int nfds, Wfd_set FAR *readfds, Wfd_set FAR *writefds, 711 706 Wfd_set FAR *exceptfds, const struct Wtimeval FAR *timeout); 712 707 713 int PASCALFAR OS2send (SOCKET s, const char FAR * buf, int len, int flags);714 715 int PASCALFAR OS2sendto (SOCKET s, const char FAR * buf, int len, int flags,708 int WIN32API FAR OS2send (SOCKET s, const char FAR * buf, int len, int flags); 709 710 int WIN32API FAR OS2sendto (SOCKET s, const char FAR * buf, int len, int flags, 716 711 const struct sockaddr FAR *to, int tolen); 717 712 718 int PASCALFAR OS2setsockopt (SOCKET s, int level, int optname,713 int WIN32API FAR OS2setsockopt (SOCKET s, int level, int optname, 719 714 const char FAR * optval, int optlen); 720 715 721 int PASCALFAR OS2shutdown (SOCKET s, int how);722 723 SOCKET PASCALFAR OS2socket (int af, int type, int protocol);716 int WIN32API FAR OS2shutdown (SOCKET s, int how); 717 718 SOCKET WIN32API FAR OS2socket (int af, int type, int protocol); 724 719 725 720 /* Database function prototypes */ 726 721 727 struct Whostent FAR * PASCALFAR OS2gethostbyaddr(const char FAR * addr,722 struct Whostent FAR * WIN32API FAR OS2gethostbyaddr(const char FAR * addr, 728 723 int len, int type); 729 724 730 struct Whostent FAR * PASCALFAR OS2gethostbyname(const char FAR * name);731 732 int PASCALFAR OS2gethostname (char FAR * name, int namelen);733 734 struct Wservent FAR * PASCALFAR OS2getservbyport(int port, const char FAR * proto);735 736 struct Wservent FAR * PASCALFAR OS2getservbyname(const char FAR * name,725 struct Whostent FAR * WIN32API FAR OS2gethostbyname(const char FAR * name); 726 727 int WIN32API FAR OS2gethostname (char FAR * name, int namelen); 728 729 struct Wservent FAR * WIN32API FAR OS2getservbyport(int port, const char FAR * proto); 730 731 struct Wservent FAR * WIN32API FAR OS2getservbyname(const char FAR * name, 737 732 const char FAR * proto); 738 733 739 struct Wprotoent FAR * PASCALFAR OS2getprotobynumber(int proto);740 741 struct Wprotoent FAR * PASCALFAR OS2getprotobyname(const char FAR * name);734 struct Wprotoent FAR * WIN32API FAR OS2getprotobynumber(int proto); 735 736 struct Wprotoent FAR * WIN32API FAR OS2getprotobyname(const char FAR * name); 742 737 743 738 /* Microsoft Windows Extension function prototypes */ 744 739 745 int PASCALFAR OS2WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData);746 747 int PASCALFAR OS2WSACleanup(void);748 749 void PASCALFAR OS2WSASetLastError(int iError);750 751 int PASCALFAR OS2WSAGetLastError(void);752 753 BOOL PASCALFAR OS2WSAIsBlocking(void);754 755 int PASCALFAR OS2WSAUnhookBlockingHook(void);756 757 FARPROC PASCALFAR OS2WSASetBlockingHook(FARPROC lpBlockFunc);758 759 int PASCALFAR OS2WSACancelBlockingCall(void);760 761 HANDLE PASCALFAR OS2WSAAsyncGetServByName(HWND hWnd, u_int wMsg,740 int WIN32API FAR OS2WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData); 741 742 int WIN32API FAR OS2WSACleanup(void); 743 744 void WIN32API FAR OS2WSASetLastError(int iError); 745 746 int WIN32API FAR OS2WSAGetLastError(void); 747 748 BOOL WIN32API FAR OS2WSAIsBlocking(void); 749 750 int WIN32API FAR OS2WSAUnhookBlockingHook(void); 751 752 FARPROC WIN32API FAR OS2WSASetBlockingHook(FARPROC lpBlockFunc); 753 754 int WIN32API FAR OS2WSACancelBlockingCall(void); 755 756 HANDLE WIN32API FAR OS2WSAAsyncGetServByName(HWND hWnd, u_int wMsg, 762 757 const char FAR * name, 763 758 const char FAR * proto, 764 759 char FAR * buf, int buflen); 765 760 766 HANDLE PASCALFAR OS2WSAAsyncGetServByPort(HWND hWnd, u_int wMsg, int port,761 HANDLE WIN32API FAR OS2WSAAsyncGetServByPort(HWND hWnd, u_int wMsg, int port, 767 762 const char FAR * proto, char FAR * buf, 768 763 int buflen); 769 764 770 HANDLE PASCALFAR OS2WSAAsyncGetProtoByName(HWND hWnd, u_int wMsg,765 HANDLE WIN32API FAR OS2WSAAsyncGetProtoByName(HWND hWnd, u_int wMsg, 771 766 const char FAR * name, char FAR * buf, 772 767 int buflen); 773 768 774 HANDLE PASCALFAR OS2WSAAsyncGetProtoByNumber(HWND hWnd, u_int wMsg,769 HANDLE WIN32API FAR OS2WSAAsyncGetProtoByNumber(HWND hWnd, u_int wMsg, 775 770 int number, char FAR * buf, 776 771 int buflen); 777 772 778 HANDLE PASCALFAR OS2WSAAsyncGetHostByName(HWND hWnd, u_int wMsg,773 HANDLE WIN32API FAR OS2WSAAsyncGetHostByName(HWND hWnd, u_int wMsg, 779 774 const char FAR * name, char FAR * buf, 780 775 int buflen); 781 776 782 HANDLE PASCALFAR OS2WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg,777 HANDLE WIN32API FAR OS2WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg, 783 778 const char FAR * addr, int len, int type, 784 779 char FAR * buf, int buflen); 785 780 786 int PASCALFAR OS2WSACancelAsyncRequest(HANDLE hAsyncTaskHandle);787 788 int PASCALFAR OS2WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg,781 int WIN32API FAR OS2WSACancelAsyncRequest(HANDLE hAsyncTaskHandle); 782 783 int WIN32API FAR OS2WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg, 789 784 long lEvent); 790 785 791 int PASCALFAR OS2WSARecvEx (SOCKET s, char FAR * buf, int len, int FAR *flags);786 int WIN32API FAR OS2WSARecvEx (SOCKET s, char FAR * buf, int len, int FAR *flags); 792 787 793 788 typedef struct _TRANSMIT_FILE_BUFFERS { … … 809 804 810 805 BOOL 811 PASCALFAR806 WIN32API FAR 812 807 OS2TransmitFile ( 813 808 IN SOCKET hSocket,
Note:
See TracChangeset
for help on using the changeset viewer.