Changeset 819
- Timestamp:
- Sep 4, 1999, 7:56:41 PM (26 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
-
changelog (modified) (28 diffs)
-
src/user32/new/makefile (modified) (2 diffs)
-
src/user32/new/pmwindow.cpp (modified) (2 diffs)
-
src/user32/new/user32.def (modified) (2 diffs)
-
src/user32/new/win32class.h (modified) (4 diffs)
-
src/user32/new/win32wbase.cpp (modified) (83 diffs)
-
src/user32/new/win32wbase.h (modified) (7 diffs)
-
src/user32/new/wingdi.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/changelog
r817 r819 1 /* $Id: changelog,v 1.173 1999-09-04 12:42:27 sandervl Exp $ */ 1 /* $Id: changelog,v 1.174 1999-09-04 17:55:55 dengert Exp $ */ 2 3 99-09-04: Daniela Engert <dani@ngrt.de> 4 - USER32\NEW: beginning with 'DAXifying' of our windows 2 5 3 6 99-09-04: Sander van Leeuwen <sandervl@xs4all.nl> … … 10 13 99-09-03: Sander van Leeuwen <sandervl@xs4all.nl> 11 14 - USER32\NEW: MDI child/client improvement (not all wine code has 12 been ported though)15 been ported though) 13 16 14 17 99-09-01: Patrick Haller <phaller@gmx.net> 15 - *: Cleanup of include files, some ICOM issues in particular, 18 - *: Cleanup of include files, some ICOM issues in particular, 16 19 also fixes LONGLONG problem (now names LONGLONG_W) 17 20 - SHELL32\NEW: introduction of a straight port of WINE's SHELL32 implementation … … 27 30 99-09-01: Sander van Leeuwen <sandervl@xs4all.nl> 28 31 - USER32\NEW: Fixed GetWindowDC (Freecell 'Cards Left' string drawn 29 at the right place)32 at the right place) 30 33 31 34 99-09-01: Jens Wiessner <wiessnej@rfi.de> … … 34 37 35 38 99-08-31: Patrick Haller <phaller@gmx.net> 36 - WINMM: revision of timer services (C&C RA)37 - KERNEL32: temporary fix for DuplicateHandle for non-HandleManager handles39 - WINMM: revision of timer services (C&C RA) 40 - KERNEL32: temporary fix for DuplicateHandle for non-HandleManager handles 38 41 little improvement in console properties 39 42 incorrect anchor class for mutexes, events and semaphores … … 45 48 - USER32\NEW: Fixed menu apis 46 49 - KERNEL32\NEW: Changed makefile to generate response file (linker 47 cmd line too long)48 Created resource class for menus (Win32MenuRes)49 - INC:Changed debug makefiles to include /dbgpack linker option50 (compresses debug info)50 cmd line too long) 51 Created resource class for menus (Win32MenuRes) 52 - INC: Changed debug makefiles to include /dbgpack linker option 53 (compresses debug info) 51 54 52 55 99-08-31: Rene Pronk <R.Pronk@twi.tudelft.nl> … … 59 62 99-08-30: Sander van Leeuwen <sandervl@xs4all.nl> 60 63 - USER32\NEW: Redesign. Create base class for all window types 61 Delete Open32 class atoms before recreating them.62 Added skeleton class for MDI client window.64 Delete Open32 class atoms before recreating them. 65 Added skeleton class for MDI client window. 63 66 64 67 99-08-29: Sander van Leeuwen <sandervl@xs4all.nl> 65 68 - USER32\NEW: Changed behaviour of mouse messages (send NC messages 66 when in non-client area + send WM_SETCURSOR msgs)67 Don't send WM_MOUSEMOVE when mouse is captured.69 when in non-client area + send WM_SETCURSOR msgs) 70 Don't send WM_MOUSEMOVE when mouse is captured. 68 71 Changed CreateMDIWindowA/W (don't call Open32 api anymore, 69 but post WM_MDICREATE msg)70 72 but post WM_MDICREATE msg) 73 71 74 - KERNEL32 Interlock apis ported from Wine (with help of Patrick Haller) 72 75 - INC: Removed Masm compatible flag for ALP and enabled debugging 73 info in debug build76 info in debug build 74 77 75 78 99-08-29: Jens Wiessner <wiessnej@rfi.de> … … 79 82 80 83 99-08-28: Sander van Leeuwen <sandervl@xs4all.nl> 81 - USER32\NEW: Use shared memory for window & class objects84 - USER32\NEW: Use shared memory for window & class objects 82 85 Implemented FindWindow(Ex). Not yet tested 83 Fixed window names.84 Created shared heap using VAC's _ucreate.85 Separate window handle creation (in shared memory array)86 Fixed window names. 87 Created shared heap using VAC's _ucreate. 88 Separate window handle creation (in shared memory array) 86 89 PostMessage fixes (didn't work between two processes) 87 90 - KERNEL32: Fixed exception handling for kill signals & termination 88 Changed VMutex constructor (also allows creation of89 shared mutex semaphores)90 NOTE: This requires a complete recompile!!91 Changed VMutex constructor (also allows creation of 92 shared mutex semaphores) 93 NOTE: This requires a complete recompile!! 91 94 92 95 99-08-28: Daniela Engert <dani@ngrt.de> … … 95 98 96 99 99-08-28: Achim Hasenmueller <achimha@innotek.de> 97 - COMCTL32: Merged with latest WINE updates (990815)100 - COMCTL32: Merged with latest WINE updates (990815) 98 101 99 102 99-08-28: Yuri Dario <mc6530@mclink.it> … … 101 104 102 105 99-08-27: Daniela Engert <dani@ngrt.de> 103 - USER32\NEW: window creation, window relationship, window sizing and104 positioning enhanced.105 - USER32\NEW: window and client rectangles are in sync with the WINE106 structures now.106 - USER32\NEW: window creation, window relationship, window sizing and 107 positioning enhanced. 108 - USER32\NEW: window and client rectangles are in sync with the WINE 109 structures now. 107 110 108 111 99-08-27: Sander van Leeuwen <sandervl@xs4all.nl> 109 112 - KERNEL32: Rewrote memory mapped files for multiple views 110 113 Increased default nr of pages loaded so loading 111 large apps doesn't take forever to start in IPMD.114 large apps doesn't take forever to start in IPMD. 112 115 - KERNEL32: Process dll exports before imports in order to support 113 circular dll dependencies.116 circular dll dependencies. 114 117 - KERNEL32: Replaced fopen/fclose calls in windll.cpp; they mess up FS. 115 Init full path of image during Init method.118 Init full path of image during Init method. 116 119 117 120 99-08-27: Patrick Haller <phaller@gmx.net> … … 120 123 99-08-26: Sander van Leeuwen <sandervl@xs4all.nl> 121 124 - KERNEL32: Cleaned up. (removed os2native.cpp & os2util.cpp and 122 replaced them with oslibdos.* & oslibmisc.*; put 123 Virtual* win32 apis in virtual.cpp)125 replaced them with oslibdos.* & oslibmisc.*; put 126 Virtual* win32 apis in virtual.cpp) 124 127 - KERNEL32: Added workaround for (what seems to be) an OS/2 bug. 125 Fixes crashes when reading from the memory mapped file.126 (see comments in kernel32\mmap.cpp)127 Bugfixes for VirtualProtect & VirtualQuery128 Fixes crashes when reading from the memory mapped file. 129 (see comments in kernel32\mmap.cpp) 130 Bugfixes for VirtualProtect & VirtualQuery 128 131 129 132 99-08-25: Jens Wiessner <wiessnej@rfi.de> … … 132 135 99-08-25: Sander van Leeuwen <sandervl@xs4all.nl> 133 136 - KERNEL32: Use memory mapped files for PE loader 134 Readonly memory mapped files work. Read/Write has not135 been tested yet. Shared mmaps don't work at this time.137 Readonly memory mapped files work. Read/Write has not 138 been tested yet. Shared mmaps don't work at this time. 136 139 - KERNEL32: Set exception handler chain to -1 (not 0) in KillWin32Process 137 -> fixes large nr of exceptions140 -> fixes large nr of exceptions 138 141 - KERNEL32: Several changes for memory mapped files. 139 Put back handlemanager changes. (i.e. MapViewOfFile)142 Put back handlemanager changes. (i.e. MapViewOfFile) 140 143 - USER32\NEW: Deleted win32type.h 141 144 - ADVAPI32: Fixed some incorrect definitions of security apis 142 145 - INCLUDE\WIN: Changed WINE_NAME_AW definition (now you can use 143 apis without the 'A' or 'W' suffix)146 apis without the 'A' or 'W' suffix) 144 147 - INCLUDE: Added makefile for VAC 3.6.5 145 To compile use i.e.: nmake DEBUG=1 CCENV=VAC36148 To compile use i.e.: nmake DEBUG=1 CCENV=VAC36 146 149 - KERNEL32: Changed VIRTUAL_MapFileA/W 147 Changed OS2ImageInit from public to protected150 Changed OS2ImageInit from public to protected 148 151 - KERNEL32: Added DuplicateHandle to Handle Manager (wasn't working before) 149 NOTE: Only works for file handles at this time!150 The rest still needs to be implemented.152 NOTE: Only works for file handles at this time! 153 The rest still needs to be implemented. 151 154 - USER32\NEW: Changed loadres.cpp call to VIRTUAL_MapFileA 152 155 … … 155 158 - KERNEL32: HandleManager support for memory mapped files 156 159 Added FindFirstFileW, FindNextFileW 157 Bugfix in ExitProcess / iConsoleWaitClose160 Bugfix in ExitProcess / iConsoleWaitClose 158 161 Bugfix in OS2Heap::OS2Heap (Heap 0 always valid for NT programs?) 159 162 160 163 99-08-24: Sander van Leeuwen <sandervl@xs4all.nl> 161 164 - USER32\NEW: One mutex per type of generic object + mutex protection 162 of linked list access in win32 classes165 of linked list access in win32 classes 163 166 - KERNEL32: Implemented VirtualQuery (not yet tested) 164 VirtualQueryEx calls VirtualQuery, VirtualProtectEx calls165 VirtualProtect166 NOTE: VirtualQueryEx & VirtualProtectEx can't handle addresses of other167 processes167 VirtualQueryEx calls VirtualQuery, VirtualProtectEx calls 168 VirtualProtect 169 NOTE: VirtualQueryEx & VirtualProtectEx can't handle addresses of other 170 processes 168 171 - KERNEL32: Added memory mapped file class (not hooked up to apis or 169 exception handler yet; just committing my preliminary code)172 exception handler yet; just committing my preliminary code) 170 173 171 174 99-08-23: Sander van Leeuwen <sandervl@xs4all.nl> 172 175 - KERNEL32: Dll load order bugfix (PE loader) 173 176 - USER32\NEW: Added two dummy exports so comdlg32 will load 174 NOTE: This is a temporary hack and needs to be changed.177 NOTE: This is a temporary hack and needs to be changed. 175 178 - USER32\NEW: Fix for OSLibWinCreateIcon (supports single icons now) 176 179 - KERNEL32: Logging change, now creates a unique logfile for each 177 process. (multiple win32 apps active -> multiple logfiles)180 process. (multiple win32 apps active -> multiple logfiles) 178 181 179 182 99-08-23: Patrick Haller <phaller@gmx.net> 180 - USER32/NEW: partial (not compiling yet) port of DIALOG.C181 - USER32: fix: Win32Proc constructor crash (GetClassInfoA(of a Systemclass))183 - USER32/NEW: partial (not compiling yet) port of DIALOG.C 184 - USER32: fix: Win32Proc constructor crash (GetClassInfoA(of a Systemclass)) 182 185 183 186 … … 188 191 - KERNEL32: Fixed some PE resource dll load bugs 189 192 - KERNEL32: Moved CloseLogFile call to after DestroyTIB (fixes crashes 190 as WriteLog was still called in DestroyTIB & WriteOutProfiles)193 as WriteLog was still called in DestroyTIB & WriteOutProfiles) 191 194 - KERNEL32: Added exception handling code for each thread, entrypoint & 192 TLS callbach handler.193 OS2ExceptionHandler (in exceptions.cpp) is registered as the194 main exception handler.195 NOTE: Still needs to call original win32 exception handler196 from OS2ExceptionHandler.195 TLS callbach handler. 196 OS2ExceptionHandler (in exceptions.cpp) is registered as the 197 main exception handler. 198 NOTE: Still needs to call original win32 exception handler 199 from OS2ExceptionHandler. 197 200 - USER32/NEW: Changed WM_ERASEBKGND handling. Fixes FreeCell background. 198 (but might not be completely correct)201 (but might not be completely correct) 199 202 - INCLUDE\WIN: Added custcntl.h & fixed GetObject definition 200 203 - INCLUDE\WIN, WIN\WINE: Added several files, updated OLE headers … … 203 206 99-08-21: Sander van Leeuwen <sandervl@xs4all.nl> 204 207 - USER32\NEW: Fixed window class bug. Freecell menu now properly 205 loaded.206 - USER32\NEW: Changed LoadBitmapA/W to load bitmaps internally 207 (also ported some Wine code for that purpose)208 Not correct yet: some of Solitaire's bitmaps look bad208 loaded. 209 - USER32\NEW: Changed LoadBitmapA/W to load bitmaps internally 210 (also ported some Wine code for that purpose) 211 Not correct yet: some of Solitaire's bitmaps look bad 209 212 - KERNEL32: Fixed name id lookup bug for PE loader resources 210 213 - KERNEL32: AllocFixedMemory bugfix + added Aurora flag to DosAllocMem 211 214 - KERNEL32: Close logfile in kernel32 exit list -> last log messages 212 before crash now properly saved215 before crash now properly saved 213 216 - PELDR: Corrected makefile 214 217 215 218 99-08-21: Yuri Dario <mc6530@mclink.it> 216 219 - Makefiles: Link with predefined VAC lib (RTLLIB(_O)) 217 Needed for VAC 3.6.5220 Needed for VAC 3.6.5 218 221 219 222 99-08-20: Sander van Leeuwen <sandervl@xs4all.nl> … … 221 224 - USER32/NEW: Changes to Load* resource apis 222 225 - USER32/NEW: Put back LoadBitmap for now 223 Rewrote LoadIconA/W & LoadCursorA/W + added224 extra code to oslib.226 Rewrote LoadIconA/W & LoadCursorA/W + added 227 extra code to oslib. 225 228 226 229 99-08-20: Patrick Haller <phaller@gmx.net> 227 - ODINWRAP: fixed invalid macros230 - ODINWRAP: fixed invalid macros 228 231 229 232 99-08-19: Patrick Haller <phaller@gmx.net> 230 - ODINWRAP: fixed invalid recursion in ODINFUNCTION0-Debug231 - WINMM: odinwrap macros232 - TAPI32: odinwrap macros233 - MPR:odinwrap macros234 - COMDLG32: odinwrap macros235 - WNETAP32: odinwrap macros236 - WINSPOOL: odinwrap macros233 - ODINWRAP: fixed invalid recursion in ODINFUNCTION0-Debug 234 - WINMM: odinwrap macros 235 - TAPI32: odinwrap macros 236 - MPR: odinwrap macros 237 - COMDLG32: odinwrap macros 238 - WNETAP32: odinwrap macros 239 - WINSPOOL: odinwrap macros 237 240 238 241 99-08-19: Sander van Leeuwen <sandervl@xs4all.nl> 239 242 - KERNEL32: PE loader resource fixes + ConvertNameId bugfix 240 Added pe2lx conversion code for menus, accelerators, 241 bitmaps, icons, cursors, icon & cursor groups.242 Put back _CreateWin32Exe export in kernel32exp.def243 Added pe2lx conversion code for menus, accelerators, 244 bitmaps, icons, cursors, icon & cursor groups. 245 Put back _CreateWin32Exe export in kernel32exp.def 243 246 - KERNEL32: Used Odin wrappers for profile apis (mess up FS) 244 - USER32 & USER32\NEW: Cleaned up icon code 247 - USER32 & USER32\NEW: Cleaned up icon code 245 248 246 249 99-08-18: Patrick Haller <phaller@gmx.net> 247 - NTDLL: tons of new stubs and crt functions248 - WNETAP32: tons of new stubs250 - NTDLL: tons of new stubs and crt functions 251 - WNETAP32: tons of new stubs 249 252 250 253 99-08-18: Sander van Leeuwen <sandervl@xs4all.nl> … … 252 255 we don't want a kernel32 dependency there) 253 256 - PELDR/KERNEL32: Use reserved memory by peldr.dll to store win32 exe 254 sections. (now loads exes without fixups & low base address)255 Added TLS support.257 sections. (now loads exes without fixups & low base address) 258 Added TLS support. 256 259 - KERNEL32: Lots of changes for the ring 3 PE loader (not completed) 257 Store PE header at start of module in memory, module handle258 set to image base of module. 260 Store PE header at start of module in memory, module handle 261 set to image base of module. 259 262 260 263 99-08-18: Przemyslaw Dobrowolski <dobrawka@asua.org.pl> 261 - KERNEL32: Profile bugfix (line 506) && removed redundant '\r' 262 (except on line 199)263 264 - KERNEL32: Profile bugfix (line 506) && removed redundant '\r' 265 (except on line 199) 266 264 267 99-08-17: Sander van Leeuwen <sandervl@xs4all.nl> 265 268 - KERNEL32/LZ32: Fixed compilation problems introduced by changes below 266 269 - ODINCRT: Rewrote __threadid Clib function to get rid of crashes 267 (restores OS/2 FS selector before accessing PIB ptr and268 puts back original FS selector afterwards)270 (restores OS/2 FS selector before accessing PIB ptr and 271 puts back original FS selector afterwards) 269 272 NOTE: No longer necessary to use ODIN_FS_BEGIN/ODIN_FS_END macros 270 273 - DDRAW: Removed ODIN_FS_BEGIN/ODIN_FS_END calls 271 Fixed bugs in divewrap.h. Incorrect wrappers called themselves272 instead of the original Dive apis.274 Fixed bugs in divewrap.h. Incorrect wrappers called themselves 275 instead of the original Dive apis. 273 276 274 277 99-08-17: Patrick Haller <phaller@gmx.net> 275 - LZ32: can't export LZCopy as ID0, changed to alphanumeric export278 - LZ32: can't export LZCopy as ID0, changed to alphanumeric export 276 279 277 280 99-08-16: Sander van Leeuwen <sandervl@xs4all.nl> … … 279 282 - ODINCRT: Changed compile & link options 280 283 - ODINCRT: Don't export ctordtorInit/Term. These functions must exists 281 locally for each dll/exe. Fixes crashes in pe loader and282 corrupt converted exes generated by pe2lx284 locally for each dll/exe. Fixes crashes in pe loader and 285 corrupt converted exes generated by pe2lx 283 286 - ALL: Makefile changes & initterm.cpp no longer calls c/c++ library 284 init & termination functions (should only be done in odincrt.dll)287 init & termination functions (should only be done in odincrt.dll) 285 288 286 289 99-08-16: Patrick Haller <phaller@gmx.net> 287 - SHELL32: integrated Christoph Bratschis SHELL32 stubs288 - WSOCK32: odinwrap macros290 - SHELL32: integrated Christoph Bratschis SHELL32 stubs 291 - WSOCK32: odinwrap macros 289 292 290 293 99-08-16: Christoph Bratschi <cbratschi@datacomm.ch> … … 292 295 293 296 99-08-15: Christoph Bratschi <cbratschi@datacomm.ch> 294 - USER32\NEW: controls: wine-990731 update297 - USER32\NEW: controls: wine-990731 update 295 298 296 299 99-08-14: Christoph Bratschi <cbratschi@datacomm.ch> 297 - COMCTL32: wine-990731 update300 - COMCTL32: wine-990731 update 298 301 299 302 99-08-14: Sander van Leeuwen <sandervl@xs4all.nl> … … 310 313 - ODINCRT: ordinal exports 311 314 - ADVAPI32:odinwrap macros (partially) 312 - LZ32: odinwrap macros315 - LZ32: odinwrap macros 313 316 314 317 99-08-10: Sander van Leeuwen <sandervl@xs4all.nl> … … 329 332 99-08-05: Patrick Haller <phaller@gmx.net> 330 333 - KERNEL32: interactive control over UnhandledExceptionFilter 331 - KERNEL32: FormatMessageAW fixed. Do not mix ODIN's heap functions with VAC heap functions334 - KERNEL32: FormatMessageAW fixed. Do not mix ODIN's heap functions with VAC heap functions 332 335 - KERNEL32: added WINE-style string functions in Heapstring.cpp 333 336 - SHELL3232: RestartDialog @59 stub added. IE2 can load now with NT4's URL.DLL. … … 335 338 99-08-05: Sander van Leeuwen <sandervl@xs4all.nl> 336 339 - KERNEL32: Bitmap conversion bugfix; always recalculate bitmap size 337 (bitmap in donut.exe (ddraw sample) contains wrong size)340 (bitmap in donut.exe (ddraw sample) contains wrong size) 338 341 339 342 99-08-04: Patrick Haller <phaller@gmx.net> … … 343 346 99-08-04: Sander van Leeuwen <sandervl@xs4all.nl> 344 347 - PE2LX: Bugfix for icon conversion (heap corruption for ra95.exe; as 345 reported by Patrick Haller)346 348 reported by Patrick Haller) 349 347 350 99-08-04: Patrick Haller <phaller@gmx.net> 348 351 - KERNEL32: Heap modification … … 358 361 - USER32/NEW: Lots of changes; Solitaire displays cards correctly 359 362 Status bar correctly drawn 360 Mouse msg translation still wrong.363 Mouse msg translation still wrong. 361 364 Paint not correct. 362 365 … … 385 388 99-07-21: Edgar Buerkle <100566.557@compuserve.com> 386 389 - KERNEL32: Fix for LoadResource; should return pointer to resource data 387 LockResource just returns the pointer returned by LoadResource390 LockResource just returns the pointer returned by LoadResource 388 391 389 392 99-07-20: Sander van Leeuwen <sandervl@xs4all.nl> 390 - USER32/NEW: Added support for window icons and accelerators. 393 - USER32/NEW: Added support for window icons and accelerators. 391 394 Accelerators don't work yet. 392 - PE2LX: Save icons in different format (BITMAPINFOHEADER2) 395 - PE2LX: Save icons in different format (BITMAPINFOHEADER2) 393 396 394 397 99-07-19: Sander van Leeuwen <sandervl@xs4all.nl> 395 398 - KERNEL32: Added method for retrieving converted OS/2 resource 396 (which will be changed later on)399 (which will be changed later on) 397 400 - USER32/NEW: CreateWindowEx now works and menus are displayed 398 401 399 402 99-07-17: Sander van Leeuwen <sandervl@xs4all.nl> 400 - KERNEL32: Exports for getting TEB & THDB added401 403 - KERNEL32: Exports for getting TEB & THDB added 404 402 405 99-07-15: Sander van Leeuwen <sandervl@xs4all.nl> 403 - USER32/NEW: Unicode & window handle translation bugfixes406 - USER32/NEW: Unicode & window handle translation bugfixes 404 407 405 408 99-07-14: Christoph Bratschi <cbratschi@datacomm.ch> 406 - USER32/NEW: several bugs fixed, compiles now407 CreateWindow doesn't work yet409 - USER32/NEW: several bugs fixed, compiles now 410 CreateWindow doesn't work yet 408 411 409 412 99-07-13: Sander van Leeuwen <sandervl@xs4all.nl> 410 413 - USER32/NEW: *VERY* preliminary/alpha code for Open32 replacement in user32 411 Compiles, but not tested at all.414 Compiles, but not tested at all. 412 415 413 416 99-07-12: Patrick Haller <phaller@gmx.net> … … 420 423 - KERNEL32/PE2LX: Added support for TLS sections 421 424 - KERNEL32: Added thread attach/detach messages for dlls 422 Fixed some bugs, cleaned up code425 Fixed some bugs, cleaned up code 423 426 NOTE: THIS CHANGE BREAKS ALL PREVIOUSLY CONVERTED APPLICATIONS 424 RECOMPILE ALL DLLS AND CONVERT EVERYTHING AGAIN!!!!!!!!!427 RECOMPILE ALL DLLS AND CONVERT EVERYTHING AGAIN!!!!!!!!! 425 428 THIS CHANGE ALSO BREAKS WIN32K! 426 429 … … 432 435 433 436 99-07-05: Patrick Haller <phaller@gmx.net> 434 - SHELL32: SheSetCurDrive stub, ...437 - SHELL32: SheSetCurDrive stub, ... 435 438 436 439 99-07-05: Sander van Leeuwen <sandervl@xs4all.nl> 437 - LIB\libconv.def: Added name with '_' appended. (or else Watcom won't438 link pe2lx\misc.cpp properly)440 - LIB\libconv.def: Added name with '_' appended. (or else Watcom won't 441 link pe2lx\misc.cpp properly) 439 442 440 443 99-07-05: Edgar Buerkle <100566.557@compuserve.com> 441 - PE2LX: Preliminary support for codepages444 - PE2LX: Preliminary support for codepages 442 445 443 446 99-07-05: Patrick Haller <phaller@gmx.net> 444 - KERNEL32: HandleManager fixes as suggested by Edgar Buerkle447 - KERNEL32: HandleManager fixes as suggested by Edgar Buerkle 445 448 446 449 99-07-04: Christoph Bratschi <cbratschi@datacomm.ch> 447 - PE2LX/USER32: Dialog default font set to WarpSans + fixes450 - PE2LX/USER32: Dialog default font set to WarpSans + fixes 448 451 449 452 99-07-02: Christoph Bratschi <cbratschi@datacomm.ch> 450 - PE2LX/USER32: Dialog bugfix for entryfield strings453 - PE2LX/USER32: Dialog bugfix for entryfield strings 451 454 452 455 99-06-30: Christoph Bratschi <cbratschi@datacomm.ch> 453 - KERNEL32: Unicode changes (unicode.cpp)454 lstrcpynA/W (kernel32.cpp455 - USER32: LoadStringA unicode conversion bugfix456 - USER32: Changed SystemParameterInfo for default font (now 9.WarpSans)456 - KERNEL32: Unicode changes (unicode.cpp) 457 lstrcpynA/W (kernel32.cpp 458 - USER32: LoadStringA unicode conversion bugfix 459 - USER32: Changed SystemParameterInfo for default font (now 9.WarpSans) 457 460 458 461 99-06-30: Przemysaw Dobrowolski <dobrawka@asua.org.pl> 459 - WINMM: Implemented remaining joystick apis + bugfixes462 - WINMM: Implemented remaining joystick apis + bugfixes 460 463 461 464 99-06-29: Patrick Haller <phaller@gmx.net> 462 - KERNEL32: GetLocaleInfoA bugfix (lang.cpp)465 - KERNEL32: GetLocaleInfoA bugfix (lang.cpp) 463 466 464 467 99-06-29: Przemysaw Dobrowolski <dobrawka@asua.org.pl> 465 - WINMM: Implemented most of the joystick apis468 - WINMM: Implemented most of the joystick apis 466 469 467 470 99-06-28: Christoph Bratschi 468 - USER32: AsciiToUnicodeN bugfix (unicode.cpp)471 - USER32: AsciiToUnicodeN bugfix (unicode.cpp) 469 472 470 473 99-06-28: Sander van Leeuwen 471 - USER32: Get/SetWindowLongA bugfix for dialog controls474 - USER32: Get/SetWindowLongA bugfix for dialog controls 472 475 473 476 99-06-27: Sander van Leeuwen 474 - USER32: Message handler updates & lots of bugfixes475 - USER32: Fix for GetWindowLongA, if Open32 returns 0xffff it really476 means 0xffffffff -> fixes Winhlp32 buttons.477 - USER32: Fixed bug when changing window procedures for dialog box478 controls477 - USER32: Message handler updates & lots of bugfixes 478 - USER32: Fix for GetWindowLongA, if Open32 returns 0xffff it really 479 means 0xffffffff -> fixes Winhlp32 buttons. 480 - USER32: Fixed bug when changing window procedures for dialog box 481 controls 479 482 480 483 99-06-26: Sander van Leeuwen 481 - USER32: Changes for message spy & several message handler changes482 - USER32: Restore win32 tib in window msg callback483 - KERNEL32/include: Restore OS/2 tib on entering Open32 or OS/2 apis484 - KERNEL32/lang.cpp: Bugfix for GetLocaleInfoA (if buf ptr == null,485 only return size of memory block required to hold info)484 - USER32: Changes for message spy & several message handler changes 485 - USER32: Restore win32 tib in window msg callback 486 - KERNEL32/include: Restore OS/2 tib on entering Open32 or OS/2 apis 487 - KERNEL32/lang.cpp: Bugfix for GetLocaleInfoA (if buf ptr == null, 488 only return size of memory block required to hold info) 486 489 487 490 99-06-25: Achim Hasenmueller 488 - Finally fixed changelog date format to be compliant with489 the official EU date format :)491 - Finally fixed changelog date format to be compliant with 492 the official EU date format :) 490 493 491 494 99-06-25: Christoph Bratschi 492 - USER32: GetSysColorPen bugfix (syscolor.cpp)495 - USER32: GetSysColorPen bugfix (syscolor.cpp) 493 496 494 497 99-06-24: Patrick Haller 495 - SHELL32: partial port form WINE498 - SHELL32: partial port form WINE 496 499 497 500 99-06-24: Edgar Buerkle 498 - KERNEL32: Implemented GetLocaleInfoA/W501 - KERNEL32: Implemented GetLocaleInfoA/W 499 502 500 503 99-06-24: Sander van Leeuwen 501 - include\winos2def.h: Changed OS/2 apis to use wrappers502 (FS save/restore) and added DosQueryCtryInfo504 - include\winos2def.h: Changed OS/2 apis to use wrappers 505 (FS save/restore) and added DosQueryCtryInfo 503 506 504 507 99-06-23: Patrick Haller 505 - Fixed date format in changlog .g.506 - NTDLL: a dozen c runtime functions added507 - USER32: IsHungAppWindow dummy added508 - SHELL32: few more APIs added509 - KERNEL32: HandleManager, Console, fixes510 - COMDLG32: basic unicode support added, thou broken somehow511 - source code splitups and beautification ;-)508 - Fixed date format in changlog .g. 509 - NTDLL: a dozen c runtime functions added 510 - USER32: IsHungAppWindow dummy added 511 - SHELL32: few more APIs added 512 - KERNEL32: HandleManager, Console, fixes 513 - COMDLG32: basic unicode support added, thou broken somehow 514 - source code splitups and beautification ;-) 512 515 513 516 99-06-23: Achim Hasenmueller 514 - ported latest WINE fixes and additions for comctl32. Changes515 involve better undoc. DSA APIs, right colors for the tab control,516 many improvements for the listview...517 - ported latest WINE fixes and additions for comctl32. Changes 518 involve better undoc. DSA APIs, right colors for the tab control, 519 many improvements for the listview... 517 520 518 521 99-06-21: Achim Hasenmueller 519 - ported latest WINE DrawEdge code and moved everything to the520 new file src/user32/uitools.cpp522 - ported latest WINE DrawEdge code and moved everything to the 523 new file src/user32/uitools.cpp 521 524 522 525 99-06-21: Sander van Leeuwen 523 - include\os2wrap.h, removed calling convention526 - include\os2wrap.h, removed calling convention 524 527 525 528 99-06-21: Christoph Bratschi 526 - COMCTL32: Progress bar finished (progress.c, USER32 bugs to fix)527 - COMCTL32: Trackbar finished (trackbar.c)529 - COMCTL32: Progress bar finished (progress.c, USER32 bugs to fix) 530 - COMCTL32: Trackbar finished (trackbar.c) 528 531 529 532 99-06-20: Sander van Leeuwen 530 - KERNEL32: Call HMInitialize from initterm, not winexe object creation531 - KERNEL32: Added comctl to list of system dlls (windll.cpp)532 - KERNEL32: Fixed dll detach (windll.cpp) for converted win32 dlls533 - KERNEL32: Module name detection (windll.cpp)534 - KERNEL32: Activated Win32 TIB code; a selector + memory is allocated535 for the main thread and every thread created.536 When it's completed, it should fix several problems due to537 differences between OS/2's TIB and Win32's TEB.538 - COMCTL32: Fixed crash on exit (moved unregister of class into exit list handler)539 - USER32: Changed bugfix (WS_CLIPCHILDREN) for winhlp32 (same as Wine now)540 - USER32: Fixed bug in wndproc.cpp (release build only)541 - USER32: Added preliminary support for parent notification533 - KERNEL32: Call HMInitialize from initterm, not winexe object creation 534 - KERNEL32: Added comctl to list of system dlls (windll.cpp) 535 - KERNEL32: Fixed dll detach (windll.cpp) for converted win32 dlls 536 - KERNEL32: Module name detection (windll.cpp) 537 - KERNEL32: Activated Win32 TIB code; a selector + memory is allocated 538 for the main thread and every thread created. 539 When it's completed, it should fix several problems due to 540 differences between OS/2's TIB and Win32's TEB. 541 - COMCTL32: Fixed crash on exit (moved unregister of class into exit list handler) 542 - USER32: Changed bugfix (WS_CLIPCHILDREN) for winhlp32 (same as Wine now) 543 - USER32: Fixed bug in wndproc.cpp (release build only) 544 - USER32: Added preliminary support for parent notification 542 545 543 546 99-06-19: Sander van Leeuwen 544 - ALL (except dsound/ddraw): Include <os2wrap.h> instead of <os2.h>545 - KERNEL32: Changes for win32 TEB (not active)547 - ALL (except dsound/ddraw): Include <os2wrap.h> instead of <os2.h> 548 - KERNEL32: Changes for win32 TEB (not active) 546 549 547 550 99-06-07: Sander van Leeuwen 548 - Removed unecessary files549 - Modified os2win.h to save FS selector before calling Open32 api550 and restoring it afterwards.551 - Renamed all .C files (except comctl32) to .CPP and fixed compiler errors552 - GDI32: Fixed SetDIBitsToDevice bugfix (palette size)553 - USER32: Fixed RegisterSystemClasses551 - Removed unecessary files 552 - Modified os2win.h to save FS selector before calling Open32 api 553 and restoring it afterwards. 554 - Renamed all .C files (except comctl32) to .CPP and fixed compiler errors 555 - GDI32: Fixed SetDIBitsToDevice bugfix (palette size) 556 - USER32: Fixed RegisterSystemClasses 554 557 555 558 99-06-07: Achim Hasenmueller 556 - Added comctl32, mostly untested includes all controls, some undocumented557 APIs missing558 - Added internal GetSysColorPen() to user32 - handy API used in WINE559 Modified syscolor.cpp to support new Win98 colors and create pens559 - Added comctl32, mostly untested includes all controls, some undocumented 560 APIs missing 561 - Added internal GetSysColorPen() to user32 - handy API used in WINE 562 Modified syscolor.cpp to support new Win98 colors and create pens 560 563 561 564 99-06-06: Sander van Leeuwen 562 - Bugfixes in VirtualAlloc (KERNEL32), GetScrollPos & RegisterSystemClasses (USER32)563 as reported on mailinglist by Edgar Buerkle.564 Also FindResourceA/W.565 - Bugfixes in VirtualAlloc (KERNEL32), GetScrollPos & RegisterSystemClasses (USER32) 566 as reported on mailinglist by Edgar Buerkle. 567 Also FindResourceA/W. 565 568 566 569 99-06-01: David Raison 567 - OLE32: Changed everything to make it compile with the new headers568 - include/win/ole.2 - line 170569 - include/wine/win/obj_oleview.h - line 32 & 36570 - OLE32: Changed everything to make it compile with the new headers 571 - include/win/ole.2 - line 170 572 - include/wine/win/obj_oleview.h - line 32 & 36 570 573 571 574 99-05-23: Sander van Leeuwen 572 - ADVAPI32: Fixed Open32 bugs in RegOpenKeyA (set return key to 0 when failed)573 Fixed key definition conflict in convertkey.574 - KERNEL32: Fixed exception handler, don't continue after process termination575 exception! (fixes annoying exitlist hangs)575 - ADVAPI32: Fixed Open32 bugs in RegOpenKeyA (set return key to 0 when failed) 576 Fixed key definition conflict in convertkey. 577 - KERNEL32: Fixed exception handler, don't continue after process termination 578 exception! (fixes annoying exitlist hangs) 576 579 577 580 99-05-19: Sander van Leeuwen 578 - KERNEL32: Corrected wrong export for HeapSize (reported by Vit Timchishin)581 - KERNEL32: Corrected wrong export for HeapSize (reported by Vit Timchishin) 579 582 580 583 99-05-15: Sander van Leeuwen 581 - Fixed a number of bugs introduced during the Wine header update582 - KERNEL32: Added high/low fixup support for pe loader584 - Fixed a number of bugs introduced during the Wine header update 585 - KERNEL32: Added high/low fixup support for pe loader 583 586 584 587 99-05-13: Sander van Leeuwen 585 - Updated USER32586 - Fixed unicode apis in USER32587 - Added .def files for ADVAPI32, COMDLG32, GDI32, KERNEL32 & USER32 that588 export all apis with the correct names. (_apiname@nrofparameterbytes)588 - Updated USER32 589 - Fixed unicode apis in USER32 590 - Added .def files for ADVAPI32, COMDLG32, GDI32, KERNEL32 & USER32 that 591 export all apis with the correct names. (_apiname@nrofparameterbytes) 589 592 590 593 99-05-12: Sander van Leeuwen 591 - Finished KERNEL32592 - Updated WINMM594 - Finished KERNEL32 595 - Updated WINMM 593 596 594 597 99-05-10: Vince Vielhaber 595 - Rewrote WSOCK32 for Wine headers598 - Rewrote WSOCK32 for Wine headers 596 599 597 600 99-05-08: Sander van Leeuwen 598 - Updated CAPI32, COMDLG32 & GDI32, MPR, NTDLL, TAPI32, WINSPOOL, WNETAP32599 for new headers600 - Started with KERNEL32 changes (75% done)601 - Made basic changes to OLE32 for new headers, but still tons of errors602 - Fixed some unicode apis in GDI32601 - Updated CAPI32, COMDLG32 & GDI32, MPR, NTDLL, TAPI32, WINSPOOL, WNETAP32 602 for new headers 603 - Started with KERNEL32 changes (75% done) 604 - Made basic changes to OLE32 for new headers, but still tons of errors 605 - Fixed some unicode apis in GDI32 603 606 604 607 99-05-04: Sander van Leeuwen 605 - Stripped os2win.h and put it in include directory606 - WINE header files in include\win607 (some modified for IBM VAC)608 - All Open32 apis have 'O32_' as prefix, Open32 specific declarations609 are appended with _O32.608 - Stripped os2win.h and put it in include directory 609 - WINE header files in include\win 610 (some modified for IBM VAC) 611 - All Open32 apis have 'O32_' as prefix, Open32 specific declarations 612 are appended with _O32. 610 613 611 614 99-05-01: Sander van Leeuwen 612 - Changed makefile structure:613 nmake DEBUG=1builds debug version614 nmakebuilds release version615 - Changed makefile structure: 616 nmake DEBUG=1 builds debug version 617 nmake builds release version 615 618 616 619 99-04-11: Sander van Leeuwen 617 - Everything except user32 & kernel32: copyrights added to most files618 Moved a few header files in \include619 - Fixed import problem in peldr (include\winimage.h), SetFullPath must620 be a virtual method.620 - Everything except user32 & kernel32: copyrights added to most files 621 Moved a few header files in \include 622 - Fixed import problem in peldr (include\winimage.h), SetFullPath must 623 be a virtual method. 621 624 622 625 98-10-26: Sander van Leeuwen 623 - OLE32: CoInitialize takes one parameter, not 0626 - OLE32: CoInitialize takes one parameter, not 0 624 627 625 628 98-10-11: Sander van Leeuwen 626 - KERNEL32: except.asm Wrong calling convention for SetExceptionChain627 - KERNEL32: exceptions.cpp/wprocess.cpp SetExceptionChain(-1) instead of SetExceptionChain(0)629 - KERNEL32: except.asm Wrong calling convention for SetExceptionChain 630 - KERNEL32: exceptions.cpp/wprocess.cpp SetExceptionChain(-1) instead of SetExceptionChain(0) 628 631 629 632 98-09-28: Sander van Leeuwen 630 - PE2LX: icon.cpp: palette only for <= 8 bpp631 - PE2LX: icon.cpp: check if image size in bmp header is correct before using it633 - PE2LX: icon.cpp: palette only for <= 8 bpp 634 - PE2LX: icon.cpp: check if image size in bmp header is correct before using it 632 635 633 636 98-09-25: Sander van Leeuwen 634 - PE2LX: Don't fail if an exe/dll doesn't contain any imports (pe.cpp:ProcessImports)637 - PE2LX: Don't fail if an exe/dll doesn't contain any imports (pe.cpp:ProcessImports) 635 638 636 639 ******************************************************************************** … … 638 641 ******************************************************************************** 639 642 98-09-15: KSO 640 - WIN32K: pe2lx\misc.cpp changes643 - WIN32K: pe2lx\misc.cpp changes 641 644 642 645 98-09-13: Sander van Leeuwen 643 - KERNEL32: windll.cpp: fixed bug with szModule not being initialized644 - PE2LX: pe.cpp: Only read first 1 MB for huge files. (as they are most645 likely InstallShield archives; exe appended with646 installation data)646 - KERNEL32: windll.cpp: fixed bug with szModule not being initialized 647 - PE2LX: pe.cpp: Only read first 1 MB for huge files. (as they are most 648 likely InstallShield archives; exe appended with 649 installation data) 647 650 648 651 98-09-12: Sander van Leeuwen 649 - WSOCK32: Changed fd_set to Wfd_set or else it won't compile over here650 - KERNEL32: Winimage.cpp, extra checks added651 - KERNEL32: OS2GetModuleFileName bugfix652 - INCLUDE/MISC.H: Error printf that prints to stdout (more reliable than653 a logfile)654 - GDI32: GetDeviceCaps -> NT returns -1 when using 16 bits colors, NOT 65536!655 - GDI32: CreateDIBSection -> StarCraft uses bitmap with negative height ->656 flip image when blitting657 - GDI32: DIBSection ctor: bug in BITMAPINFO2 malloc658 - GDI32: BitBlt: (dibsection) HDC == HPS (thank you, IBM!)652 - WSOCK32: Changed fd_set to Wfd_set or else it won't compile over here 653 - KERNEL32: Winimage.cpp, extra checks added 654 - KERNEL32: OS2GetModuleFileName bugfix 655 - INCLUDE/MISC.H: Error printf that prints to stdout (more reliable than 656 a logfile) 657 - GDI32: GetDeviceCaps -> NT returns -1 when using 16 bits colors, NOT 65536! 658 - GDI32: CreateDIBSection -> StarCraft uses bitmap with negative height -> 659 flip image when blitting 660 - GDI32: DIBSection ctor: bug in BITMAPINFO2 malloc 661 - GDI32: BitBlt: (dibsection) HDC == HPS (thank you, IBM!) 659 662 660 663 98-09-02: Sander van Leeuwen 661 - KERNEL32/USER32: Split up code662 - USER32 (/new): Started with new class & window managment code663 (not compiled nor tested, so don't change it)664 - KERNEL32/USER32: Split up code 665 - USER32 (/new): Started with new class & window managment code 666 (not compiled nor tested, so don't change it) 664 667 665 668 98-09-01: Patrick Haller 666 - WSOCK32: Circular linker dependency removed669 - WSOCK32: Circular linker dependency removed 667 670 668 671 98-08-31: kso 669 - KERNEL32: changed lfile.c to use OS2CreateFile,OS2CloseHandle,.... as670 NT does. Notepad (W95) is now working better.671 - KERNEL32: fixed a open32 bug (or win32 feature) - WriteFile with672 nrbytes = 0 is equal to a SetEndOfFile(..);672 - KERNEL32: changed lfile.c to use OS2CreateFile,OS2CloseHandle,.... as 673 NT does. Notepad (W95) is now working better. 674 - KERNEL32: fixed a open32 bug (or win32 feature) - WriteFile with 675 nrbytes = 0 is equal to a SetEndOfFile(..); 673 676 674 677 98-08-17: Sander van Leeuwen 675 - KERNEL32: Changed LoadLibraryA(W/ExA/ExW) to try to load the dll676 directly first and if that fails, load it manually.678 - KERNEL32: Changed LoadLibraryA(W/ExA/ExW) to try to load the dll 679 directly first and if that fails, load it manually. 677 680 678 681 98-08-15: Sander van Leeuwen 679 - DDRAW: LOTS of changes,additions and fixes680 (ddex1-ddex5 DirectX SDK samples work(ed) + Quake 2 in681 DirectDraw mode)682 - DSOUND: Skeleton code extended682 - DDRAW: LOTS of changes,additions and fixes 683 (ddex1-ddex5 DirectX SDK samples work(ed) + Quake 2 in 684 DirectDraw mode) 685 - DSOUND: Skeleton code extended 683 686 684 687 98-08-13: Sander van Leeuwen 685 - PE2LX: Replaced stack page removal code; (adjusted GetNrPages instead)688 - PE2LX: Replaced stack page removal code; (adjusted GetNrPages instead) 686 689 687 690 98-08-13: KSO: 688 - PE2LX: Borland bugfixes691 - PE2LX: Borland bugfixes 689 692 690 693 98-08-08: Sander van Leeuwen 691 - pe2lx (pe.cpp), call SetNrOfExports(0) for dlls without exports692 to set the module name in the resident name table693 (otherwise converted dll will not load)694 - Version resource apis work now695 - LocalReAlloc bugfix, notepad assumes it returns the same696 address when the new size is smaller than the old one.694 - pe2lx (pe.cpp), call SetNrOfExports(0) for dlls without exports 695 to set the module name in the resident name table 696 (otherwise converted dll will not load) 697 - Version resource apis work now 698 - LocalReAlloc bugfix, notepad assumes it returns the same 699 address when the new size is smaller than the old one. 697 700 698 701 98-08-03 KSO: 699 - pe.cpp:line 600 - added OS2Exe to the parameterlist700 - bitmap.cpp: replace file - much.701 - bitmap.h: replace file - typo (BitMap to Bitmap)702 - icon.h: replace file- #define BI_*702 - pe.cpp: line 600 - added OS2Exe to the parameterlist 703 - bitmap.cpp: replace file - much. 704 - bitmap.h: replace file - typo (BitMap to Bitmap) 705 - icon.h: replace file - #define BI_* 703 706 704 707 98-07-23: Knut Osmundsen 705 - PE2LX: Borland exe changes (import stuff)708 - PE2LX: Borland exe changes (import stuff) 706 709 707 710 98-07-18: Sander van Leeuwen 708 - KERNEL32/PE2LX: Changed version checks; version nr is put into the709 converted exe/dll as a parameter to one of the kernel32710 entry points711 - USER32: Changed class managment code712 - USER32: Removed all SYNCPAINT stuff as it breaks many apps713 - USER32: Removed in CreateWindowExA that checks for values of x, y, nHeight & nWidth714 (this broke generic.exe, notepad.exe and probably many others)715 - USER32: Finished GetMenuStringW (MSPaint), not working right though716 it should return 'Recent File', but returns 'Decent File'717 Well, whatever.718 - VERSION/KERNEL32/PE2LX: Version resource API implemention started719 - PE2LX: Increased some fixup limits to convert dynhgi35.dll720 - KERNEL32: AsciiToUnicode fixed (only terminate with one 0; doing721 it twice corrupts the heap as our stuff allocates exactly722 enough for string + 0 terminator)711 - KERNEL32/PE2LX: Changed version checks; version nr is put into the 712 converted exe/dll as a parameter to one of the kernel32 713 entry points 714 - USER32: Changed class managment code 715 - USER32: Removed all SYNCPAINT stuff as it breaks many apps 716 - USER32: Removed in CreateWindowExA that checks for values of x, y, nHeight & nWidth 717 (this broke generic.exe, notepad.exe and probably many others) 718 - USER32: Finished GetMenuStringW (MSPaint), not working right though 719 it should return 'Recent File', but returns 'Decent File' 720 Well, whatever. 721 - VERSION/KERNEL32/PE2LX: Version resource API implemention started 722 - PE2LX: Increased some fixup limits to convert dynhgi35.dll 723 - KERNEL32: AsciiToUnicode fixed (only terminate with one 0; doing 724 it twice corrupts the heap as our stuff allocates exactly 725 enough for string + 0 terminator) 723 726 724 727 98-07-14: Sander van Leeuwen 725 - KERNEL32: Changed OS2GetProcAddress to call the ordinal or name getApi726 method728 - KERNEL32: Changed OS2GetProcAddress to call the ordinal or name getApi 729 method 727 730 728 731 98-07-13: Patrick Haller 729 - USER32: Unicode fix for wvsprintfW "%s" -> "%ls"730 - USER32: fix in Win32WindowProc destructor when "window" becomes NULL731 - ADVAPI32: RegConnectRegistry for connection to local machine732 - USER32: Unicode fix for wvsprintfW "%s" -> "%ls" 733 - USER32: fix in Win32WindowProc destructor when "window" becomes NULL 734 - ADVAPI32: RegConnectRegistry for connection to local machine 732 735 733 736 98-07-13: Patrick Haller 734 - KERNEL32: Unicode fix that garbled CommandLineToArgv and others737 - KERNEL32: Unicode fix that garbled CommandLineToArgv and others 735 738 736 739 98-07-12: Patrick Haller 737 - NTDLL: new functions in NTDLL (-> critical sections)738 - SHELL32: few new stubs in SHELL32739 - GDI32: fix in GDI32\DIBSECT\CreateDIBSection for M$ Backup740 - USER32: experimental fix (CS_SYNCPAINT) for WinHlp32 to741 display navigation buttons, but crashes SOL.EXE :(740 - NTDLL: new functions in NTDLL (-> critical sections) 741 - SHELL32: few new stubs in SHELL32 742 - GDI32: fix in GDI32\DIBSECT\CreateDIBSection for M$ Backup 743 - USER32: experimental fix (CS_SYNCPAINT) for WinHlp32 to 744 display navigation buttons, but crashes SOL.EXE :( 742 745 743 746 98-07-10: Patrick Haller 744 - stubs for NETAPI32 100%747 - stubs for NETAPI32 100% 745 748 746 749 98-07-09: Patrick Haller 747 - stubs for Winspool 100%750 - stubs for Winspool 100% 748 751 749 752 98-07-01 Joel Troster 750 - KERNEL32: update to nameid.cpp753 - KERNEL32: update to nameid.cpp 751 754 752 755 98-06-07 Joel Troster 753 - WINMM: WaveOpen bugfix756 - WINMM: WaveOpen bugfix 754 757 755 758 98-06-07 Felix Maschek 756 - CAPI32: bugfix759 - CAPI32: bugfix 757 760 758 761 98-06-15: Patrick Haller 759 - GDI32: stubs for all missing functions760 - ADVAPI32: stubs for all missing functions761 - USER32: implementation of some real functions762 some unknown functions stubbed (IDA/2)762 - GDI32: stubs for all missing functions 763 - ADVAPI32: stubs for all missing functions 764 - USER32: implementation of some real functions 765 some unknown functions stubbed (IDA/2) 763 766 764 767 98-06-14: KSO 765 - GDI32: Stubs for Office 97766 - PE2LX: Formatted output767 - ADVPI32: Stubs for Office 97768 - VERSION: Stubs for Office 97768 - GDI32: Stubs for Office 97 769 - PE2LX: Formatted output 770 - ADVPI32: Stubs for Office 97 771 - VERSION: Stubs for Office 97 769 772 770 773 98-06-12: Patrick Haller 771 - NTDLL: ported over the NTDLL code from WINE, subject to the GNU Copyleft772 some applications open this module explicitly773 - KERNEL32: few fixes to Unicode handling774 - KERNEL32: console window sizing (still buggy) and property fixes775 - KERNEL32: stubs for all missing functions776 - GDI32: bugfix for DIB allocation (MS Paint)777 - WINMM: functions for FOURCC handling778 - PE2LX: CURSOR.CPP: hotspot.y is upside down (fixed for Winhlp32)779 - PE2LX: DIALOG.CPP: combobox style translation CBS_ fixed780 - PE2LX: DIALOG.CPP: style translation for WINES_MULTILINE781 causes MLE control to be generated.782 Experimental.783 - KERNEL32: WINDLL.CPP: fixed endless loop in Win32DLL::StripPath()774 - NTDLL: ported over the NTDLL code from WINE, subject to the GNU Copyleft 775 some applications open this module explicitly 776 - KERNEL32: few fixes to Unicode handling 777 - KERNEL32: console window sizing (still buggy) and property fixes 778 - KERNEL32: stubs for all missing functions 779 - GDI32: bugfix for DIB allocation (MS Paint) 780 - WINMM: functions for FOURCC handling 781 - PE2LX: CURSOR.CPP: hotspot.y is upside down (fixed for Winhlp32) 782 - PE2LX: DIALOG.CPP: combobox style translation CBS_ fixed 783 - PE2LX: DIALOG.CPP: style translation for WINES_MULTILINE 784 causes MLE control to be generated. 785 Experimental. 786 - KERNEL32: WINDLL.CPP: fixed endless loop in Win32DLL::StripPath() 784 787 785 788 98-05-25: Patrick Haller 786 - KERNEL32: Added few NTDLL stubs, mainly for support of MSACM32/NT787 - KERNEL32: Resource fix789 - KERNEL32: Added few NTDLL stubs, mainly for support of MSACM32/NT 790 - KERNEL32: Resource fix 788 791 789 792 98-05-03: Joel Troster 790 - WINMM: Stubbed most of the remaining mmedia apis793 - WINMM: Stubbed most of the remaining mmedia apis 791 794 792 795 98-04-28: Patrick Haller 793 - KERNEL32: Console fixes794 - KERNEL32: Console properties (partially)795 - KERNEL32: Handlemanager fixes796 - KERNEL32: OS2iGetModuleName fixes796 - KERNEL32: Console fixes 797 - KERNEL32: Console properties (partially) 798 - KERNEL32: Handlemanager fixes 799 - KERNEL32: OS2iGetModuleName fixes 797 800 798 801 ******************************************************************************** … … 801 804 802 805 98-04-05: Patrick Haller 803 - KERNEL32: Resource bugfix806 - KERNEL32: Resource bugfix 804 807 805 808 98-03-30: Joel Troster 806 - WINMM: midiStream* stubs added809 - WINMM: midiStream* stubs added 807 810 808 811 98-03-30: Sander van Leeuwen 809 - PE2LX: Set console flag when exe has no resources812 - PE2LX: Set console flag when exe has no resources 810 813 811 814 98-03-27: Joel Troster 812 - WINMM: Midi changes/bugfixes, mci* api stubs added813 - GDI32: SetObjectOwner stub added815 - WINMM: Midi changes/bugfixes, mci* api stubs added 816 - GDI32: SetObjectOwner stub added 814 817 815 818 25-03-98: Sander van Leeuwen 816 - KERNEL32: Several changes in resource code819 - KERNEL32: Several changes in resource code 817 820 818 821 19-03-98: Felix Maschek 819 - KERNEL32: Comm stubs added822 - KERNEL32: Comm stubs added 820 823 821 824 19-03-98: Sander van Leeuwen 822 - KERNEL32: Pop up a dialog box when a missing api is called823 - KERNEL32: dll bugfix824 - KERNEL32: CreateProcessA/W fix825 - KERNEL32: GetProcAddr completed for PE loader & PE2LX825 - KERNEL32: Pop up a dialog box when a missing api is called 826 - KERNEL32: dll bugfix 827 - KERNEL32: CreateProcessA/W fix 828 - KERNEL32: GetProcAddr completed for PE loader & PE2LX 826 829 827 830 19-03-98: Peter Fitzsimmons 828 - created include\version.h829 - changed pe2lx\lx.cpp(call SetVersion())830 - changed pe2lx\misc.cpp (code for SetVersion(), setea())831 - changed pe2lx\misc.h(add prototypes)832 - changed pe2lx\pe.cpp(moved DosClose() up a few lines, so DosSetPathInfo() could write to the file)833 - changed pe2lx\makefile \834 - changed pe2lx\makefile.wat / Build setver.exe, getver.exe.I didn't copy835 these exe's to ..\bin in purpose; they836 aren't supposed to go to end users.837 - Added one line ("..\server $@") to all makfiles838 839 - added getea() to kernel32\os2util.c840 - added a few lines in kernel32/wprocess.cpp/RegisterDll()841 842 - Edit all initterm.c's to remove that rand() crap (that is from a843 sample project!). Also added new version check to each. Also #include "misc.h"844 845 - wsock32: edited makefile to remove reference to ..\kernel32\misc.obj and846 replace with kernel32.dll.847 848 - src\makefile: build kernel32 before wsock849 - src\kernel32\makefile: remove reference to wsock32.lib850 - src\kernel32\network.cpp: remove call to wsock32831 - created include\version.h 832 - changed pe2lx\lx.cpp (call SetVersion()) 833 - changed pe2lx\misc.cpp (code for SetVersion(), setea()) 834 - changed pe2lx\misc.h (add prototypes) 835 - changed pe2lx\pe.cpp (moved DosClose() up a few lines, so DosSetPathInfo() could write to the file) 836 - changed pe2lx\makefile \ 837 - changed pe2lx\makefile.wat / Build setver.exe, getver.exe. I didn't copy 838 these exe's to ..\bin in purpose; they 839 aren't supposed to go to end users. 840 - Added one line ("..\server $@") to all makfiles 841 842 - added getea() to kernel32\os2util.c 843 - added a few lines in kernel32/wprocess.cpp/RegisterDll() 844 845 - Edit all initterm.c's to remove that rand() crap (that is from a 846 sample project!). Also added new version check to each. Also #include "misc.h" 847 848 - wsock32: edited makefile to remove reference to ..\kernel32\misc.obj and 849 replace with kernel32.dll. 850 851 - src\makefile: build kernel32 before wsock 852 - src\kernel32\makefile: remove reference to wsock32.lib 853 - src\kernel32\network.cpp: remove call to wsock32 851 854 852 855 16-03-98: Joel Troster 853 - GDI32: Added SetObjectOwner stub856 - GDI32: Added SetObjectOwner stub 854 857 855 858 15-03-98: Joel Troster 856 - WINMM: RTMIDI dependency removed859 - WINMM: RTMIDI dependency removed 857 860 858 861 15-03-98: Sander van Leeuwen 859 - All dlls, C++ init+termination call added to initterm.c860 - KERNEL32: Icon conversion bugfix861 - KERNEL32: Removed reroute of exe reading862 - KERNEL32: Major rewrite of dll & exe handling including863 LoadLibary(Ex)A/W, CreateProcessA/W, GetModuleFileNameA/W,864 FreeLibrary & GetCommandLineA/W865 Side effect: Crash at Quake 2 exit fixed866 867 - KERNEL32: Additional code for PE loader868 - PE: Created OS/2 ring 3 PE loader869 syntax: pe win32exe commandline870 Reads win32exe & all imported dlls, calls all dll entry points and871 finally calls the exe entry point.872 TODO: No fixups and low startup address873 TODO: Resources874 TODO: CreateProcess doesn't work right862 - All dlls, C++ init+termination call added to initterm.c 863 - KERNEL32: Icon conversion bugfix 864 - KERNEL32: Removed reroute of exe reading 865 - KERNEL32: Major rewrite of dll & exe handling including 866 LoadLibary(Ex)A/W, CreateProcessA/W, GetModuleFileNameA/W, 867 FreeLibrary & GetCommandLineA/W 868 Side effect: Crash at Quake 2 exit fixed 869 870 - KERNEL32: Additional code for PE loader 871 - PE: Created OS/2 ring 3 PE loader 872 syntax: pe win32exe commandline 873 Reads win32exe & all imported dlls, calls all dll entry points and 874 finally calls the exe entry point. 875 TODO: No fixups and low startup address 876 TODO: Resources 877 TODO: CreateProcess doesn't work right 875 878 876 879 13-03-98: Sander van Leeuwen 877 - KERNEL32: Dll unloading fixed880 - KERNEL32: Dll unloading fixed 878 881 879 882 13-03-98: Peter Fitzsimmons 880 - KERNEL32: Fixed CompareStringA/W883 - KERNEL32: Fixed CompareStringA/W 881 884 882 885 12-03-98: Joel Troster 883 - WINMM: Stubbed all the mixer APIs and updated support for MidiMapper886 - WINMM: Stubbed all the mixer APIs and updated support for MidiMapper 884 887 885 888 10-03-98: Sander van Leeuwen 886 - WSOCK32: WSAStartup fix and ioctl addition887 (Quake 2 Multiplayer working)888 - KERNEL32: Resource lookup bug fixed889 - WSOCK32: WSAStartup fix and ioctl addition 890 (Quake 2 Multiplayer working) 891 - KERNEL32: Resource lookup bug fixed 889 892 890 893 10-03-98: Joel Troster 891 - KERNEL32: SetThreadLocale added894 - KERNEL32: SetThreadLocale added 892 895 893 896 09-03-98: Patrick Haller 894 - KERNEL32: Fix in GetStdHandle within HandleManager895 896 - KERNEL32: Console APIs completed, input and output is complete,897 however not thoroughly tested, SHORT 0.98D is working.898 Codepage support, Unicode support missing.899 I'm working on cosmetics and properties dialog.900 901 - EXECHECK: tool to check executables for convertibility via pe2lx902 and keeping track of our APIs, as well as imported/exported903 functions of executables (PE import is currently implemented)897 - KERNEL32: Fix in GetStdHandle within HandleManager 898 899 - KERNEL32: Console APIs completed, input and output is complete, 900 however not thoroughly tested, SHORT 0.98D is working. 901 Codepage support, Unicode support missing. 902 I'm working on cosmetics and properties dialog. 903 904 - EXECHECK: tool to check executables for convertibility via pe2lx 905 and keeping track of our APIs, as well as imported/exported 906 functions of executables (PE import is currently implemented) 904 907 905 908 09-03-98: Sander van Leeuwen 906 - KERNEL32: Put dll & exe apis in wprocess.cpp907 - KERNEL32: Reroute file io from own exe to original909 - KERNEL32: Put dll & exe apis in wprocess.cpp 910 - KERNEL32: Reroute file io from own exe to original 908 911 909 912 08-03-98: Joel Troster 910 - KERNEL32: Unicode changes (lstrcatW, lstrcmpW, lstrcpyW lstrcpynW)911 - WINMM: Unicode midi apis added to .def file913 - KERNEL32: Unicode changes (lstrcatW, lstrcmpW, lstrcpyW lstrcpynW) 914 - WINMM: Unicode midi apis added to .def file 912 915 913 916 08-03-98: Sander van Leeuwen 914 - WINMM: Aux* apis implemented (not tested and not 100% correct)915 - include: added mmddk.h from win95 ddk917 - WINMM: Aux* apis implemented (not tested and not 100% correct) 918 - include: added mmddk.h from win95 ddk 916 919 917 920 07-03-98: Peter Fitzsimmons 918 - Added KERNEL32.GetSystemDefaultLangID() -- I copied GetUserDefaultLangID, which919 always returns "US ENGLISH".920 (NOTE: Already added)921 - Added ADVAPI32.ReportEventA(). Stub.922 - Added ADVAPI32.OS2SetSecurityDescriptorDacl(). Stub that returns ERROR.923 - Added ADVAPI32.* a bunch more stubs.921 - Added KERNEL32.GetSystemDefaultLangID() -- I copied GetUserDefaultLangID, which 922 always returns "US ENGLISH". 923 (NOTE: Already added) 924 - Added ADVAPI32.ReportEventA(). Stub. 925 - Added ADVAPI32.OS2SetSecurityDescriptorDacl(). Stub that returns ERROR. 926 - Added ADVAPI32.* a bunch more stubs. 924 927 925 928 07-03-98: Sander van Leeuwen 926 - KERNEL32: Implemented Local* memory apis with new heap927 (in win32 you can mix Heap and Local apis)928 - KERNEL32: Corrected key mapping bugs for arrow, insert/del/home/end929 page up/down keys.930 Doesn't work 100% right yet. (strafing in Quake = alt-arrow)929 - KERNEL32: Implemented Local* memory apis with new heap 930 (in win32 you can mix Heap and Local apis) 931 - KERNEL32: Corrected key mapping bugs for arrow, insert/del/home/end 932 page up/down keys. 933 Doesn't work 100% right yet. (strafing in Quake = alt-arrow) 931 934 932 935 06-03-98: Sander van Leeuwen 933 - WINMM: Added WaveOutGetNumDevs and corrected the calling934 convention for several apis (WIN32API, not WINAPI)935 - KERNEL32: Added GetSystemDefaultLangID and moved several936 language apis to lang.cpp937 - KERNEL32: Added EnumSystemLocalesA/W (US English only)938 - PE2LX: command line option change: pe2lx win32file > logfile939 Now makes a backup copy of the win32 file and creates940 an OS/2 version with the same name936 - WINMM: Added WaveOutGetNumDevs and corrected the calling 937 convention for several apis (WIN32API, not WINAPI) 938 - KERNEL32: Added GetSystemDefaultLangID and moved several 939 language apis to lang.cpp 940 - KERNEL32: Added EnumSystemLocalesA/W (US English only) 941 - PE2LX: command line option change: pe2lx win32file > logfile 942 Now makes a backup copy of the win32 file and creates 943 an OS/2 version with the same name 941 944 942 945 05-03-98: Joel Troster 943 - KERNEL32: Use OS/2 unicode apis944 - USER32: Use OS/2 unicode apis946 - KERNEL32: Use OS/2 unicode apis 947 - USER32: Use OS/2 unicode apis 945 948 946 949 04-03-98: Sander van Leeuwen 947 - KERNEL32: Use OS2gethostname (wsock32.dll) instead of gethostname950 - KERNEL32: Use OS2gethostname (wsock32.dll) instead of gethostname 948 951 949 952 03-03-98: Knut Osmundsen 950 - KERNEL32: VirtualAlloc bugfixes & high memory support (SMP)953 - KERNEL32: VirtualAlloc bugfixes & high memory support (SMP) 951 954 952 955 03-03-98: Patrick Haller 953 - PECHECK: Initial code for pecheck.exe956 - PECHECK: Initial code for pecheck.exe 954 957 955 958 03-03-98: Joel Troster 956 - KERNEL32: Stubs added for Virtual(Un)Lock957 - WINMM: Unicode midi apis added, MIDIMAP faked, some bugs fixed959 - KERNEL32: Stubs added for Virtual(Un)Lock 960 - WINMM: Unicode midi apis added, MIDIMAP faked, some bugs fixed 958 961 959 962 03-03-98: Sander van Leeuwen 960 - KERNEL32: Fixed logbuffer overflow with strlen WriteLogs961 - KERNEL32: Use tcp32dll instead of pmwsock962 - PE2LX: Fixed memory corruption in icon.cpp963 - KERNEL32: Fixed logbuffer overflow with strlen WriteLogs 964 - KERNEL32: Use tcp32dll instead of pmwsock 965 - PE2LX: Fixed memory corruption in icon.cpp 963 966 964 967 02-03-98: Sander van Leeuwen 965 - KERNEL32: kernel32.c -> kernel32.cpp966 - KERNEL32: Merged exception logging with my latest code967 - include: win32type.h968 - WSOCK32: Removed pmwsock.lib from makefile968 - KERNEL32: kernel32.c -> kernel32.cpp 969 - KERNEL32: Merged exception logging with my latest code 970 - include: win32type.h 971 - WSOCK32: Removed pmwsock.lib from makefile 969 972 970 973 01-03-98: Patrick Haller 971 - KERNEL32: Extensions to the exception handler (logging)972 - KERNEL32: HandleManager for pseudo-devices (CONIN$,CONOUT$,etc)973 - KERNEL32: Hooks for HandleManager974 - KERNEL32: Very early console support for stdout is there ...975 Console also has context menue.974 - KERNEL32: Extensions to the exception handler (logging) 975 - KERNEL32: HandleManager for pseudo-devices (CONIN$,CONOUT$,etc) 976 - KERNEL32: Hooks for HandleManager 977 - KERNEL32: Very early console support for stdout is there ... 978 Console also has context menue. 976 979 ******************************************************************************** 977 980 ***** Release 0.01 978 981 ******************************************************************************** 979 982 28-02-98: Sander van Leeuwen 980 - DDRAW: Initial work for Direct3D981 - KERNEL32/PE2LX, Changes for console applications (flag)982 - KERNEL32: Kill process when a fatal exception occurs983 (prevents some kind of eternal loop in OS/2; probably due to984 invalid exception records or difference in exception handler985 calling convention)986 - KERNEL32: Added a try/catch statement around the dll exit list987 processing in ExitProcess. Seems to cure the trap988 at exit.983 - DDRAW: Initial work for Direct3D 984 - KERNEL32/PE2LX, Changes for console applications (flag) 985 - KERNEL32: Kill process when a fatal exception occurs 986 (prevents some kind of eternal loop in OS/2; probably due to 987 invalid exception records or difference in exception handler 988 calling convention) 989 - KERNEL32: Added a try/catch statement around the dll exit list 990 processing in ExitProcess. Seems to cure the trap 991 at exit. 989 992 990 993 27-02-98: Patrick haller 991 - MPR: stubs for all documented MPR functions,992 should be complete now994 - MPR: stubs for all documented MPR functions, 995 should be complete now 993 996 994 997 26-02-98: Patrick haller 995 - USER32: stubs for all documented USER32 functions,996 should be complete now997 - USER32: Windows95's SHELL32.DLL requires a few undocumented functions998 - USER32: stubs for all documented USER32 functions, 999 should be complete now 1000 - USER32: Windows95's SHELL32.DLL requires a few undocumented functions 998 1001 999 1002 24-02-98: Joel Troster 1000 - WINMM: Midi working1003 - WINMM: Midi working 1001 1004 1002 1005 24-02-98: Sander van Leeuwen 1003 - KERNEL32: Exit list changes; terminate all dlls right before1004 ExitProcess or in kernel32 exitlist in case of a trap1005 (prevents unkillable processes in most cases)1006 - KERNEL32: Exit list changes; terminate all dlls right before 1007 ExitProcess or in kernel32 exitlist in case of a trap 1008 (prevents unkillable processes in most cases) 1006 1009 1007 1010 23-02-98: Joel Troster 1008 - KERNEL32: PMPrintf version of WriteLog added1011 - KERNEL32: PMPrintf version of WriteLog added 1009 1012 1010 1013 22-02-98: Sander van Leeuwen 1011 - ALL DLLs: Call C/C++ lib cleanup proc in exit list1012 - PE2LX: Use exit lists in converted win32 dlls to terminate them1013 - WINMM: Remove test code in timer emulation (multiplied time by 10)1014 - KERNEL32: Release winmod objects properly1015 - KERNEL32: Call dll exit proc in FreeLibrary1014 - ALL DLLs: Call C/C++ lib cleanup proc in exit list 1015 - PE2LX: Use exit lists in converted win32 dlls to terminate them 1016 - WINMM: Remove test code in timer emulation (multiplied time by 10) 1017 - KERNEL32: Release winmod objects properly 1018 - KERNEL32: Call dll exit proc in FreeLibrary 1016 1019 1017 1020 21-02-98: Sander van Leeuwen 1018 - KERNEL32: VirtualProtect size change to include all pages1019 referenced1021 - KERNEL32: VirtualProtect size change to include all pages 1022 referenced 1020 1023 1021 1024 19-02-98: Sander van Leeuwen 1022 - PE2LX: Change order of dlls in import module name table1023 - KERNEL32: Don't call the C/C++ lib cleanup procedure at1024 dll termination1025 - PE2LX: Change order of dlls in import module name table 1026 - KERNEL32: Don't call the C/C++ lib cleanup procedure at 1027 dll termination 1025 1028 1026 1029 18-02-98: Joel Troster 1027 - WINMM: Midi changes, wave in/out stubs added1030 - WINMM: Midi changes, wave in/out stubs added 1028 1031 1029 1032 16-02-98: Sander van Leeuwen 1030 - KERNEL32: Heap bugfix1033 - KERNEL32: Heap bugfix 1031 1034 1032 1035 16-02-98: Joel Troster 1033 - WINMM: Midi updates1036 - WINMM: Midi updates 1034 1037 1035 1038 15-02-98: Sander van Leeuwen 1036 - KERNEL32: Changed heap allocation again. (now uses malloc/free)1037 - KERNEL32: QueryPerformanceFrequency/Counter uses DosTmrQueryTime/1038 DosTmrQueryFreq now, so the normal xf86sup.sys can1039 be used.1039 - KERNEL32: Changed heap allocation again. (now uses malloc/free) 1040 - KERNEL32: QueryPerformanceFrequency/Counter uses DosTmrQueryTime/ 1041 DosTmrQueryFreq now, so the normal xf86sup.sys can 1042 be used. 1040 1043 1041 1044 11-02-98: Sander van Leeuwen 1042 - MPR: Changed/Corrected ordinals1045 - MPR: Changed/Corrected ordinals 1043 1046 1044 1047 Mon 98-02-09 Peter Fitzsimmons 1045 - lx.cpp -- put in check for MAX_SECTIONS (was bombing out in one1046 of "visio technical"'s dlls.1047 - lx.cpp increase MAX_SECTIONS (lx.h) from 16 to 32 (where'd the1048 original value come from?).1049 - kernel32.c: added stub for FlushInstructionCache()1050 - kernel32.c: added stub for OS2GetPrivateProfileSectionA()1051 1052 - advapi32: GetUserNameA() stub. Always says a person named1053 "USER" is logged on.1054 1055 - MPR: WNetGetConnection(). NEEDS PROPER ORDINAL IN *.def file.1048 - lx.cpp -- put in check for MAX_SECTIONS (was bombing out in one 1049 of "visio technical"'s dlls. 1050 - lx.cpp increase MAX_SECTIONS (lx.h) from 16 to 32 (where'd the 1051 original value come from?). 1052 - kernel32.c: added stub for FlushInstructionCache() 1053 - kernel32.c: added stub for OS2GetPrivateProfileSectionA() 1054 1055 - advapi32: GetUserNameA() stub. Always says a person named 1056 "USER" is logged on. 1057 1058 - MPR: WNetGetConnection(). NEEDS PROPER ORDINAL IN *.def file. 1056 1059 1057 1060 9-02-1998: Joel Troster 1058 - USER32: Added Set/GetDefaultMenuItem (stub)1061 - USER32: Added Set/GetDefaultMenuItem (stub) 1059 1062 1060 1063 7-02-1998: Sander van Leeuwen 1061 - KERNEL32/WINMM: Added VMutex to KERNEL32 (imported by WINMM)1062 - KERNEL32: New heap implementation (heap.cpp & os2heap.cpp)1063 - KERNEL32: Replace exception handler for each new thread1064 - KERNEL32: Set previous exception handler to 0 instead of -11065 (fixes endless exception handler calls)1066 - Added macro dprintf & dassert to include\misc.h (no more need1067 for #ifdef DEBUG's)1064 - KERNEL32/WINMM: Added VMutex to KERNEL32 (imported by WINMM) 1065 - KERNEL32: New heap implementation (heap.cpp & os2heap.cpp) 1066 - KERNEL32: Replace exception handler for each new thread 1067 - KERNEL32: Set previous exception handler to 0 instead of -1 1068 (fixes endless exception handler calls) 1069 - Added macro dprintf & dassert to include\misc.h (no more need 1070 for #ifdef DEBUG's) 1068 1071 1069 1072 31-01-1998: Sander van Leeuwen 1070 - USER32: Fixed two bugs in CreateWindowExA/W1071 - WINMM: Fixed wave playback problem1073 - USER32: Fixed two bugs in CreateWindowExA/W 1074 - WINMM: Fixed wave playback problem 1072 1075 1073 1076 18-01-1998: Sander van Leeuwen 1074 - GDI32: Changed GetDIBColor & SetDIBColor1075 - GDI32: Fixed CreateDIBSection1076 - Quake 2 working in a window!1077 - GDI32: Changed GetDIBColor & SetDIBColor 1078 - GDI32: Fixed CreateDIBSection 1079 - Quake 2 working in a window! 1077 1080 1078 1081 17-01-1998: Sander van Leeuwen 1079 - WINMM: Waveout working, Quake 2 WITH sound now!1080 - GDI32: Implemented GetDIBColor & SetDIBColor1082 - WINMM: Waveout working, Quake 2 WITH sound now! 1083 - GDI32: Implemented GetDIBColor & SetDIBColor 1081 1084 1082 1085 11-01-1998: Sander van Leeuwen 1083 - KERNEL32: Exception handler fix1084 - WINMM: Started with WaveOut implementation1086 - KERNEL32: Exception handler fix 1087 - WINMM: Started with WaveOut implementation 1085 1088 1086 1089 11-01-1998: Felix Maschek 1087 - TAPI32: Fixes1090 - TAPI32: Fixes 1088 1091 1089 1092 10-01-1998: Sander van Leeuwen 1090 - Changes to makefile and wsock32.c to make it compile with VAC1091 - VirtualAlloc bugfix (reserve)1092 - Dialog fix (font name)1093 - WINMM now uses mmsystem.h from win32 SDK1093 - Changes to makefile and wsock32.c to make it compile with VAC 1094 - VirtualAlloc bugfix (reserve) 1095 - Dialog fix (font name) 1096 - WINMM now uses mmsystem.h from win32 SDK 1094 1097 1095 1098 10-01-1998: Chris McKillop 1096 - New build tree1099 - New build tree 1097 1100 1098 1101 10-01-1998: Vince Vielhaber 1099 - Winsock32 changes1102 - Winsock32 changes 1100 1103 1101 1104 31-12-1997: Sander van Leeuwen 1102 - Remove all 'OS2' strings from imports/exports (dlls/pe2lx)1105 - Remove all 'OS2' strings from imports/exports (dlls/pe2lx) 1103 1106 1104 1107 28-12-1997: Sander van Leeuwen 1105 - KERNEL32: Code to allow IO in ring 3 added (xf86sup.sys)1106 Set environment variable WIN32_IOPL2 to enable this1107 1108 - KERNEL32: Fixed GetStartupInfoA/W (WINE)1109 - GDI32: Added CreateDIBSection from Wine (not complete)1110 - Lots of stubs added1111 - Almost got Quake II running....1108 - KERNEL32: Code to allow IO in ring 3 added (xf86sup.sys) 1109 Set environment variable WIN32_IOPL2 to enable this 1110 1111 - KERNEL32: Fixed GetStartupInfoA/W (WINE) 1112 - GDI32: Added CreateDIBSection from Wine (not complete) 1113 - Lots of stubs added 1114 - Almost got Quake II running.... 1112 1115 1113 1116 23-12-1997: Felix Maschek 1114 - CAPI2032: Complete implementation of CAPI1117 - CAPI2032: Complete implementation of CAPI 1115 1118 1116 1119 20-12-1997: Felix Maschek 1117 - TAPI32: Stub dll1120 - TAPI32: Stub dll 1118 1121 1119 1122 20-12-1997: Sander van Leeuwen 1120 - KERNEL32: Bug in winmod.cpp1121 - KERNEL32: Added code for exception handling (not fool proof)1122 - KERNEL32: Fixed HeapCreate (now reserves 32 MB instead of 64 kb)1123 - KERNEL32: Catch FPU exception, mask fpu exceptions, fix stack and continue execution1124 - PE2LX: Removed stack size & base switch1125 - WINMM: Added joyGetPos stub1123 - KERNEL32: Bug in winmod.cpp 1124 - KERNEL32: Added code for exception handling (not fool proof) 1125 - KERNEL32: Fixed HeapCreate (now reserves 32 MB instead of 64 kb) 1126 - KERNEL32: Catch FPU exception, mask fpu exceptions, fix stack and continue execution 1127 - PE2LX: Removed stack size & base switch 1128 - WINMM: Added joyGetPos stub 1126 1129 1127 1130 14-12-1997: Sander van Leeuwen 1128 - KERNEL32: Added QueryPerformanceFrequency, QueryPerformanceCounter1129 - USER32: Added some stubs1130 - GDI32: Added some stubs1131 - WINMM: Added some stubs1132 - WNETAP32: New (NETAPI32)1133 - PE2LX: Change module import name NETAPI32 to WNETAP32 (name conflict with OS/2 NETAPI32)1134 - PE2LX: Cut long dll names to 8 chars1135 - MPR:Added WNetGetUserA stub1131 - KERNEL32: Added QueryPerformanceFrequency, QueryPerformanceCounter 1132 - USER32: Added some stubs 1133 - GDI32: Added some stubs 1134 - WINMM: Added some stubs 1135 - WNETAP32: New (NETAPI32) 1136 - PE2LX: Change module import name NETAPI32 to WNETAP32 (name conflict with OS/2 NETAPI32) 1137 - PE2LX: Cut long dll names to 8 chars 1138 - MPR: Added WNetGetUserA stub 1136 1139 1137 1140 31-11-1997: Sander van Leeuwen 1138 - KERNEL32: Fixed GetEnvironmentStringsW1139 - KERNEL32: Added DeviceIOControl (devio.c, map.c, iccio.asm; last two from XFree86 driver src)1140 - KERNEL32: Changed CreateFile to open an OS/2 driver if required1141 - Last two changes for win32 Glide dll.1142 1143 - Fixed window creation (wndproc.cpp), Open32 isn't sending WM_NCCREATE msgs!1144 - Filter out CBS_OWNERDRAWFIXED & CBS_OWNERDRAWVARIABLE combobox styles1145 in CreateWindowExA/W (not finished)1146 - Added FormatMessageA/W from Wine (kernel32)1147 - USER32:1148 - Fixed GetSystemParameterInfoA/W, SPI_GETNONCLIENTMETRICS/SPI_SETNONCLIENTMETRICS1149 (ConvertFontAW/ConvertFontWA macros)1150 - Progress comclt32 class working1151 - ADVAPI32, fixed:1152 - RegEnumKeyW1153 - RegEnumKeyExW1154 - RegEnumValueW1155 - RegQueryInfoKeyW1156 - RegQueryValueW1157 1158 - USER32:1159 - Fixed DrawEdge(borrowed from Wine)1160 - Added ChangeMenuA/W(borrowed from Wine)1161 - Fixed some color problems1162 - Trackbar win32 SDK example working (toolbar comctl32 class)1141 - KERNEL32: Fixed GetEnvironmentStringsW 1142 - KERNEL32: Added DeviceIOControl (devio.c, map.c, iccio.asm; last two from XFree86 driver src) 1143 - KERNEL32: Changed CreateFile to open an OS/2 driver if required 1144 - Last two changes for win32 Glide dll. 1145 1146 - Fixed window creation (wndproc.cpp), Open32 isn't sending WM_NCCREATE msgs! 1147 - Filter out CBS_OWNERDRAWFIXED & CBS_OWNERDRAWVARIABLE combobox styles 1148 in CreateWindowExA/W (not finished) 1149 - Added FormatMessageA/W from Wine (kernel32) 1150 - USER32: 1151 - Fixed GetSystemParameterInfoA/W, SPI_GETNONCLIENTMETRICS/SPI_SETNONCLIENTMETRICS 1152 (ConvertFontAW/ConvertFontWA macros) 1153 - Progress comclt32 class working 1154 - ADVAPI32, fixed: 1155 - RegEnumKeyW 1156 - RegEnumKeyExW 1157 - RegEnumValueW 1158 - RegQueryInfoKeyW 1159 - RegQueryValueW 1160 1161 - USER32: 1162 - Fixed DrawEdge (borrowed from Wine) 1163 - Added ChangeMenuA/W (borrowed from Wine) 1164 - Fixed some color problems 1165 - Trackbar win32 SDK example working (toolbar comctl32 class) -
trunk/src/user32/new/makefile
r760 r819 1 # $Id: makefile,v 1.4 0 1999-08-31 17:14:51 sandervlExp $1 # $Id: makefile,v 1.41 1999-09-04 17:56:40 dengert Exp $ 2 2 3 3 # … … 102 102 pmwindow.obj: pmwindow.cpp win32class.h win32wbase.h win32dlg.h pmwindow.h win32wndchild.h $(PDWIN32_INCLUDE)\wprocess.h oslibgdi.h oslibwin.h 103 103 win32class.obj: win32class.cpp win32class.h win32wbase.h win32dlg.h gen_object.h heapshared.h oslibwin.h win32wndchild.h 104 win32wbase.obj: win32wbase.cpp win32class.h win32wbase.h win32dlg.h gen_object.h heapshared.h oslibwin.h win32wndchild.h $(PDWIN32_INCLUDE)\winres.h oslibres.h win32wndhandle.h oslibdos.h 104 win32wbase.obj: win32wbase.cpp win32class.h win32wbase.h win32dlg.h gen_object.h heapshared.h oslibwin.h win32wndchild.h $(PDWIN32_INCLUDE)\winres.h oslibres.h win32wndhandle.h oslibdos.h open32wbase.h 105 105 win32wnd.obj: win32wnd.cpp win32class.h win32wbase.h win32wnd.h win32dlg.h gen_object.h heapshared.h oslibwin.h win32wndchild.h $(PDWIN32_INCLUDE)\winres.h oslibres.h win32wndhandle.h oslibdos.h oslibmenu.h 106 106 win32dlg.obj: win32dlg.cpp win32class.h win32wbase.h win32dlg.h gen_object.h heapshared.h oslibwin.h win32wndchild.h -
trunk/src/user32/new/pmwindow.cpp
r741 r819 1 /* $Id: pmwindow.cpp,v 1.2 6 1999-08-30 11:59:53 sandervlExp $ */1 /* $Id: pmwindow.cpp,v 1.27 1999-09-04 17:56:40 dengert Exp $ */ 2 2 /* 3 3 * Win32 Window Managment Code for OS/2 … … 131 131 case WM_CLOSE: 132 132 dprintf(("OS2: WM_CLOSE %x", hwnd)); 133 win32wnd->RemoveFakeOpen32(); 133 134 if(win32wnd->MsgClose()) { 134 135 goto RunDefWndProc; -
trunk/src/user32/new/user32.def
r729 r819 1 ; $Id: user32.def,v 1. 6 1999-08-28 19:32:46 sandervlExp $1 ; $Id: user32.def,v 1.7 1999-09-04 17:56:40 dengert Exp $ 2 2 3 3 ;Created by BLAST for IBM's compiler … … 9 9 _GLOBALDATA CLASS 'DATA' SHARED LOADONCALL READWRITE 10 10 11 IMPORTS 12 WinQueryDAXData = PMMERGE.5447 13 WinSetDAXData = PMMERGE.5448 14 11 15 EXPORTS 12 16 ActivateKeyboardLayout = _ActivateKeyboardLayout@8 @1 13 AdjustWindowRect = _AdjustWindowRect@12@214 AdjustWindowRectEx = _AdjustWindowRectEx@16 @315 AnyPopup = _AnyPopup@0@416 AppendMenuA = _AppendMenuA@16@517 AppendMenuW = _AppendMenuW@16@617 AdjustWindowRect = _AdjustWindowRect@12 @2 18 AdjustWindowRectEx = _AdjustWindowRectEx@16 @3 19 AnyPopup = _AnyPopup@0 @4 20 AppendMenuA = _AppendMenuA@16 @5 21 AppendMenuW = _AppendMenuW@16 @6 18 22 ArrangeIconicWindows = _ArrangeIconicWindows@4 @7 19 AttachThreadInput = _AttachThreadInput@12@823 AttachThreadInput = _AttachThreadInput@12 @8 20 24 BeginDeferWindowPos = _BeginDeferWindowPos@4 @9 21 BeginPaint = _BeginPaint@8@1022 BringWindowToTop = _BringWindowToTop@4@1125 BeginPaint = _BeginPaint@8 @10 26 BringWindowToTop = _BringWindowToTop@4 @11 23 27 BroadcastSystemMessage = _BroadcastSystemMessage@20 @12 24 ; CalcChildScroll = _CalcChildScroll@??@1325 CallMsgFilter = _CallMsgFilterA@8@1426 CallMsgFilterA = _CallMsgFilterA@8@1527 CallMsgFilterW = _CallMsgFilterW@8@1628 CallNextHookEx = _CallNextHookEx@16@1729 CallWindowProcA = _CallWindowProcA@20@1830 CallWindowProcW = _CallWindowProcW@20@1928 ; CalcChildScroll = _CalcChildScroll@?? @13 29 CallMsgFilter = _CallMsgFilterA@8 @14 30 CallMsgFilterA = _CallMsgFilterA@8 @15 31 CallMsgFilterW = _CallMsgFilterW@8 @16 32 CallNextHookEx = _CallNextHookEx@16 @17 33 CallWindowProcA = _CallWindowProcA@20 @18 34 CallWindowProcW = _CallWindowProcW@20 @19 31 35 CascadeChildWindows = _CascadeChildWindows@8 @20 32 CascadeWindows = _CascadeWindows@20@2136 CascadeWindows = _CascadeWindows@20 @21 33 37 ChangeClipboardChain = _ChangeClipboardChain@8 @22 34 38 ChangeDisplaySettingsA = _ChangeDisplaySettingsA@8 @23 35 39 ChangeDisplaySettingsW = _ChangeDisplaySettingsW@8 @24 36 ChangeMenuA = _ChangeMenuA@20@2537 ChangeMenuW = _ChangeMenuW@20@2638 CharLowerA = _CharLowerA@4@2739 CharLowerBuffA = _CharLowerBuffA@8@2840 CharLowerBuffW = _CharLowerBuffW@8@2941 CharLowerW = _CharLowerW@4@3042 CharNextA = _CharNextA@4@3143 CharNextExA = _CharNextExA@12@3244 CharNextExW = _CharNextExW@12@3345 CharNextW = _CharNextW@4@3446 CharPrevA = _CharPrevA@8@3547 CharPrevExA = _CharPrevExA@16@3648 CharPrevExW = _CharPrevExW@16@3749 CharPrevW = _CharPrevW@8@3850 CharToOemA = _CharToOemA@8@3951 CharToOemBuffA = _CharToOemBuffA@12@4052 CharToOemBuffW = _CharToOemBuffW@12@4153 CharToOemW = _CharToOemW@8@4254 CharUpperA = _CharUpperA@4@4355 CharUpperBuffA = _CharUpperBuffA@8@4456 CharUpperBuffW = _CharUpperBuffW@8@4557 CharUpperW = _CharUpperW@4@4658 CheckDlgButton = _CheckDlgButton@12@4759 CheckMenuItem = _CheckMenuItem@12@4860 CheckMenuRadioItem = _CheckMenuRadioItem@20 @4961 CheckRadioButton = _CheckRadioButton@16@5040 ChangeMenuA = _ChangeMenuA@20 @25 41 ChangeMenuW = _ChangeMenuW@20 @26 42 CharLowerA = _CharLowerA@4 @27 43 CharLowerBuffA = _CharLowerBuffA@8 @28 44 CharLowerBuffW = _CharLowerBuffW@8 @29 45 CharLowerW = _CharLowerW@4 @30 46 CharNextA = _CharNextA@4 @31 47 CharNextExA = _CharNextExA@12 @32 48 CharNextExW = _CharNextExW@12 @33 49 CharNextW = _CharNextW@4 @34 50 CharPrevA = _CharPrevA@8 @35 51 CharPrevExA = _CharPrevExA@16 @36 52 CharPrevExW = _CharPrevExW@16 @37 53 CharPrevW = _CharPrevW@8 @38 54 CharToOemA = _CharToOemA@8 @39 55 CharToOemBuffA = _CharToOemBuffA@12 @40 56 CharToOemBuffW = _CharToOemBuffW@12 @41 57 CharToOemW = _CharToOemW@8 @42 58 CharUpperA = _CharUpperA@4 @43 59 CharUpperBuffA = _CharUpperBuffA@8 @44 60 CharUpperBuffW = _CharUpperBuffW@8 @45 61 CharUpperW = _CharUpperW@4 @46 62 CheckDlgButton = _CheckDlgButton@12 @47 63 CheckMenuItem = _CheckMenuItem@12 @48 64 CheckMenuRadioItem = _CheckMenuRadioItem@20 @49 65 CheckRadioButton = _CheckRadioButton@16 @50 62 66 ChildWindowFromPoint = _ChildWindowFromPoint@12 @51 63 67 ChildWindowFromPointEx = _ChildWindowFromPointEx@16 @52 64 ; ClientThreadConnect = _ClientThreadConnect@?? @5365 ClientToScreen = _ClientToScreen@8@5466 ClipCursor = _ClipCursor@4@5567 CloseClipboard = _CloseClipboard@0@5668 CloseDesktop = _CloseDesktop@4@5769 CloseWindow = _CloseWindow@4@5870 CloseWindowStation = _CloseWindowStation@4@5968 ; ClientThreadConnect = _ClientThreadConnect@?? @53 69 ClientToScreen = _ClientToScreen@8 @54 70 ClipCursor = _ClipCursor@4 @55 71 CloseClipboard = _CloseClipboard@0 @56 72 CloseDesktop = _CloseDesktop@4 @57 73 CloseWindow = _CloseWindow@4 @58 74 CloseWindowStation = _CloseWindowStation@4 @59 71 75 CopyAcceleratorTableA = _CopyAcceleratorTableA@12 @60 72 76 CopyAcceleratorTableW = _CopyAcceleratorTableW@12 @61 73 CopyIcon = _CopyIcon@4@6274 CopyImage = _CopyImage@20@6375 CopyRect = _CopyRect@8@6477 CopyIcon = _CopyIcon@4 @62 78 CopyImage = _CopyImage@20 @63 79 CopyRect = _CopyRect@8 @64 76 80 CountClipboardFormats = _CountClipboardFormats@0 @65 77 81 CreateAcceleratorTableA = _CreateAcceleratorTableA@8 @66 78 82 CreateAcceleratorTableW = _CreateAcceleratorTableW@8 @67 79 CreateCaret = _CreateCaret@16@6880 CreateCursor = _CreateCursor@28@6981 CreateDesktopA = _CreateDesktopA@24@7082 CreateDesktopW = _CreateDesktopW@24@7183 CreateDialogIndirectParamA = _CreateDialogIndirectParamA@20 @7284 CreateDialogIndirectParamW = _CreateDialogIndirectParamW@20 @7385 CreateDialogParamA = _CreateDialogParamA@20 @7486 CreateDialogParamW = _CreateDialogParamW@20 @7587 CreateIcon = _CreateIcon@28@7683 CreateCaret = _CreateCaret@16 @68 84 CreateCursor = _CreateCursor@28 @69 85 CreateDesktopA = _CreateDesktopA@24 @70 86 CreateDesktopW = _CreateDesktopW@24 @71 87 CreateDialogIndirectParamA = _CreateDialogIndirectParamA@20 @72 88 CreateDialogIndirectParamW = _CreateDialogIndirectParamW@20 @73 89 CreateDialogParamA = _CreateDialogParamA@20 @74 90 CreateDialogParamW = _CreateDialogParamW@20 @75 91 CreateIcon = _CreateIcon@28 @76 88 92 CreateIconFromResource = _CreateIconFromResource@16 @77 89 93 CreateIconFromResourceEx = _CreateIconFromResourceEx@28 @78 90 CreateIconIndirect = _CreateIconIndirect@4@7991 CreateMDIWindowA = _CreateMDIWindowA@40@8092 CreateMDIWindowW = _CreateMDIWindowW@40@8193 CreateMenu = _CreateMenu@0@8294 CreatePopupMenu = _CreatePopupMenu@0@8395 CreateWindowExA = _CreateWindowExA@48@8496 CreateWindowExW = _CreateWindowExW@48@8594 CreateIconIndirect = _CreateIconIndirect@4 @79 95 CreateMDIWindowA = _CreateMDIWindowA@40 @80 96 CreateMDIWindowW = _CreateMDIWindowW@40 @81 97 CreateMenu = _CreateMenu@0 @82 98 CreatePopupMenu = _CreatePopupMenu@0 @83 99 CreateWindowExA = _CreateWindowExA@48 @84 100 CreateWindowExW = _CreateWindowExW@48 @85 97 101 CreateWindowStationA = _CreateWindowStationA@16 @86 98 102 CreateWindowStationW = _CreateWindowStationW@16 @87 99 103 DdeAbandonTransaction = _DdeAbandonTransaction@12 @88 100 DdeAccessData = _DdeAccessData@8@89101 DdeAddData = _DdeAddData@16@90104 DdeAccessData = _DdeAccessData@8 @89 105 DdeAddData = _DdeAddData@16 @90 102 106 DdeClientTransaction = _DdeClientTransaction@32 @91 103 107 DdeCmpStringHandles = _DdeCmpStringHandles@8 @92 104 DdeConnect = _DdeConnect@16@93105 DdeConnectList = _DdeConnectList@20@94108 DdeConnect = _DdeConnect@16 @93 109 DdeConnectList = _DdeConnectList@20 @94 106 110 DdeCreateDataHandle = _DdeCreateDataHandle@28 @95 107 111 DdeCreateStringHandleA = _DdeCreateStringHandleA@12 @96 108 112 DdeCreateStringHandleW = _DdeCreateStringHandleW@12 @97 109 DdeDisconnect = _DdeDisconnect@4@98110 DdeDisconnectList = _DdeDisconnectList@4@99111 DdeEnableCallback = _DdeEnableCallback@12@100112 DdeFreeDataHandle = _DdeFreeDataHandle@4@101113 DdeDisconnect = _DdeDisconnect@4 @98 114 DdeDisconnectList = _DdeDisconnectList@4 @99 115 DdeEnableCallback = _DdeEnableCallback@12 @100 116 DdeFreeDataHandle = _DdeFreeDataHandle@4 @101 113 117 DdeFreeStringHandle = _DdeFreeStringHandle@8 @102 114 DdeGetData = _DdeGetData@16@103115 DdeGetLastError = _DdeGetLastError@4@104118 DdeGetData = _DdeGetData@16 @103 119 DdeGetLastError = _DdeGetLastError@4 @104 116 120 DdeImpersonateClient = _DdeImpersonateClient@4 @105 117 DdeInitializeA = _DdeInitializeA@16@106118 DdeInitializeW = _DdeInitializeW@16@107121 DdeInitializeA = _DdeInitializeA@16 @106 122 DdeInitializeW = _DdeInitializeW@16 @107 119 123 DdeKeepStringHandle = _DdeKeepStringHandle@8 @108 120 DdeNameService = _DdeNameService@16@109121 DdePostAdvise = _DdePostAdvise@12@110122 DdeQueryConvInfo = _DdeQueryConvInfo@12@111123 DdeQueryNextServer = _DdeQueryNextServer@8@112124 DdeQueryStringA = _DdeQueryStringA@20@113125 DdeQueryStringW = _DdeQueryStringW@20@114126 DdeReconnect = _DdeReconnect@4@115124 DdeNameService = _DdeNameService@16 @109 125 DdePostAdvise = _DdePostAdvise@12 @110 126 DdeQueryConvInfo = _DdeQueryConvInfo@12 @111 127 DdeQueryNextServer = _DdeQueryNextServer@8 @112 128 DdeQueryStringA = _DdeQueryStringA@20 @113 129 DdeQueryStringW = _DdeQueryStringW@20 @114 130 DdeReconnect = _DdeReconnect@4 @115 127 131 DdeSetQualityOfService = _DdeSetQualityOfService@12 @116 128 DdeSetUserHandle = _DdeSetUserHandle@12@117129 DdeUnaccessData = _DdeUnaccessData@4@118130 DdeUninitialize = _DdeUninitialize@4@119131 DefDlgProcA = _DefDlgProcA@16@120132 DefDlgProcW = _DefDlgProcW@16@121133 DefFrameProcA = _DefFrameProcA@20@122134 DefFrameProcW = _DefFrameProcW@20@123135 DefMDIChildProcA = _DefMDIChildProcA@16@124136 DefMDIChildProcW = _DefMDIChildProcW@16@125137 DefWindowProcA = _DefWindowProcA@16@126138 DefWindowProcW = _DefWindowProcW@16@127139 DeferWindowPos = _DeferWindowPos@32@128140 DeleteMenu = _DeleteMenu@12@129132 DdeSetUserHandle = _DdeSetUserHandle@12 @117 133 DdeUnaccessData = _DdeUnaccessData@4 @118 134 DdeUninitialize = _DdeUninitialize@4 @119 135 DefDlgProcA = _DefDlgProcA@16 @120 136 DefDlgProcW = _DefDlgProcW@16 @121 137 DefFrameProcA = _DefFrameProcA@20 @122 138 DefFrameProcW = _DefFrameProcW@20 @123 139 DefMDIChildProcA = _DefMDIChildProcA@16 @124 140 DefMDIChildProcW = _DefMDIChildProcW@16 @125 141 DefWindowProcA = _DefWindowProcA@16 @126 142 DefWindowProcW = _DefWindowProcW@16 @127 143 DeferWindowPos = _DeferWindowPos@32 @128 144 DeleteMenu = _DeleteMenu@12 @129 141 145 DestroyAcceleratorTable = _DestroyAcceleratorTable@4 @130 142 DestroyCaret = _DestroyCaret@0@131143 DestroyCursor = _DestroyCursor@4@132144 DestroyIcon = _DestroyIcon@4@133145 DestroyMenu = _DestroyMenu@4@134146 DestroyWindow = _DestroyWindow@4@135146 DestroyCaret = _DestroyCaret@0 @131 147 DestroyCursor = _DestroyCursor@4 @132 148 DestroyIcon = _DestroyIcon@4 @133 149 DestroyMenu = _DestroyMenu@4 @134 150 DestroyWindow = _DestroyWindow@4 @135 147 151 DialogBoxIndirectParamA = _DialogBoxIndirectParamA@20 @136 148 152 DialogBoxIndirectParamW = _DialogBoxIndirectParamW@20 @137 149 DialogBoxParamA = _DialogBoxParamA@20@138150 DialogBoxParamW = _DialogBoxParamW@20@139151 DispatchMessageA = _DispatchMessageA@4@140152 DispatchMessageW = _DispatchMessageW@4@141153 DlgDirListA = _DlgDirListA@20@142153 DialogBoxParamA = _DialogBoxParamA@20 @138 154 DialogBoxParamW = _DialogBoxParamW@20 @139 155 DispatchMessageA = _DispatchMessageA@4 @140 156 DispatchMessageW = _DispatchMessageW@4 @141 157 DlgDirListA = _DlgDirListA@20 @142 154 158 DlgDirListComboBoxA = _DlgDirListComboBoxA@20 @143 155 159 DlgDirListComboBoxW = _DlgDirListComboBoxW@20 @144 156 DlgDirListW = _DlgDirListW@20@145160 DlgDirListW = _DlgDirListW@20 @145 157 161 DlgDirSelectComboBoxExA = _DlgDirSelectComboBoxExA@16 @146 158 162 DlgDirSelectComboBoxExW = _DlgDirSelectComboBoxExW@16 @147 159 DlgDirSelectExA = _DlgDirSelectExA@16@148160 DlgDirSelectExW = _DlgDirSelectExW@16@149161 DragDetect = _DragDetect@12@150162 DragObject = _DragObject@20@151163 DrawAnimatedRects = _DrawAnimatedRects@16@152164 DrawCaption = _DrawCaption@16@153165 DrawCaptionTempA = _DrawCaptionTempA@28@154166 DrawCaptionTempW = _DrawCaptionTempW@28@155167 DrawEdge = _DrawEdge@16@156168 DrawFocusRect = _DrawFocusRect@8@157169 ; DrawFrame = _DrawFrame@??@158170 DrawFrameControl = _DrawFrameControl@16@159171 DrawIcon = _DrawIcon@16@160172 DrawIconEx = _DrawIconEx@36@161173 DrawMenuBar = _DrawMenuBar@4@162174 DrawStateA = _DrawStateA@40@163175 DrawStateW = _DrawStateW@40@164176 DrawTextA = _DrawTextA@20@165177 DrawTextExA = _DrawTextExA@24@166178 DrawTextExW = _DrawTextExW@24@167179 DrawTextW = _DrawTextW@20@168180 ; EditWndProc = _EditWndProc@??@169181 EmptyClipboard = _EmptyClipboard@0@170182 EnableMenuItem = _EnableMenuItem@12@171183 EnableScrollBar = _EnableScrollBar@12@172184 EnableWindow = _EnableWindow@8@173185 EndDeferWindowPos = _EndDeferWindowPos@4@174186 EndDialog = _EndDialog@8@175187 EndPaint = _EndPaint@8@176188 EndTask = _EndTask@12@177189 EnumChildWindows = _EnumChildWindows@12@178163 DlgDirSelectExA = _DlgDirSelectExA@16 @148 164 DlgDirSelectExW = _DlgDirSelectExW@16 @149 165 DragDetect = _DragDetect@12 @150 166 DragObject = _DragObject@20 @151 167 DrawAnimatedRects = _DrawAnimatedRects@16 @152 168 DrawCaption = _DrawCaption@16 @153 169 DrawCaptionTempA = _DrawCaptionTempA@28 @154 170 DrawCaptionTempW = _DrawCaptionTempW@28 @155 171 DrawEdge = _DrawEdge@16 @156 172 DrawFocusRect = _DrawFocusRect@8 @157 173 ; DrawFrame = _DrawFrame@?? @158 174 DrawFrameControl = _DrawFrameControl@16 @159 175 DrawIcon = _DrawIcon@16 @160 176 DrawIconEx = _DrawIconEx@36 @161 177 DrawMenuBar = _DrawMenuBar@4 @162 178 DrawStateA = _DrawStateA@40 @163 179 DrawStateW = _DrawStateW@40 @164 180 DrawTextA = _DrawTextA@20 @165 181 DrawTextExA = _DrawTextExA@24 @166 182 DrawTextExW = _DrawTextExW@24 @167 183 DrawTextW = _DrawTextW@20 @168 184 ; EditWndProc = _EditWndProc@?? @169 185 EmptyClipboard = _EmptyClipboard@0 @170 186 EnableMenuItem = _EnableMenuItem@12 @171 187 EnableScrollBar = _EnableScrollBar@12 @172 188 EnableWindow = _EnableWindow@8 @173 189 EndDeferWindowPos = _EndDeferWindowPos@4 @174 190 EndDialog = _EndDialog@8 @175 191 EndPaint = _EndPaint@8 @176 192 EndTask = _EndTask@12 @177 193 EnumChildWindows = _EnumChildWindows@12 @178 190 194 EnumClipboardFormats = _EnumClipboardFormats@4 @179 191 EnumDesktopWindows = _EnumDesktopWindows@12 @180192 EnumDesktopsA = _EnumDesktopsA@12@181193 EnumDesktopsW = _EnumDesktopsW@12@182195 EnumDesktopWindows = _EnumDesktopWindows@12 @180 196 EnumDesktopsA = _EnumDesktopsA@12 @181 197 EnumDesktopsW = _EnumDesktopsW@12 @182 194 198 EnumDisplaySettingsA = _EnumDisplaySettingsA@12 @183 195 199 EnumDisplaySettingsW = _EnumDisplaySettingsW@12 @184 196 EnumPropsA = _EnumPropsA@8@185197 EnumPropsExA = _EnumPropsExA@12@186198 EnumPropsExW = _EnumPropsExW@12@187199 EnumPropsW = _EnumPropsW@8@188200 EnumThreadWindows = _EnumThreadWindows@12@189200 EnumPropsA = _EnumPropsA@8 @185 201 EnumPropsExA = _EnumPropsExA@12 @186 202 EnumPropsExW = _EnumPropsExW@12 @187 203 EnumPropsW = _EnumPropsW@8 @188 204 EnumThreadWindows = _EnumThreadWindows@12 @189 201 205 EnumWindowStationsA = _EnumWindowStationsA@8 @190 202 206 EnumWindowStationsW = _EnumWindowStationsW@8 @191 203 EnumWindows = _EnumWindows@8@192204 EqualRect = _EqualRect@8@193205 ExcludeUpdateRgn = _ExcludeUpdateRgn@8@194206 ExitWindowsEx = _ExitWindowsEx@8@195207 FillRect = _FillRect@12@196208 FindWindowA = _FindWindowA@8@197209 FindWindowExA = _FindWindowExA@16@198210 FindWindowExW = _FindWindowExW@16@199211 FindWindowW = _FindWindowW@8@200212 FlashWindow = _FlashWindow@8@201213 FrameRect = _FrameRect@12@202214 FreeDDElParam = _FreeDDElParam@8@203215 GetActiveWindow = _GetActiveWindow@0@204216 GetAsyncKeyState = _GetAsyncKeyState@4@205217 GetCapture = _GetCapture@0@206218 GetCaretBlinkTime = _GetCaretBlinkTime@0@207219 GetCaretPos = _GetCaretPos@4@208220 GetClassInfoA = _GetClassInfoA@12@209221 GetClassInfoExA = _GetClassInfoExA@12@210222 GetClassInfoExW = _GetClassInfoExW@12@211223 GetClassInfoW = _GetClassInfoW@12@212224 GetClassLongA = _GetClassLongA@8@213225 GetClassLongW = _GetClassLongW@8@214226 GetClassNameA = _GetClassNameA@12@215227 GetClassNameW = _GetClassNameW@12@216228 GetClassWord = _GetClassWord@8@217229 GetClientRect = _GetClientRect@8@218230 GetClipCursor = _GetClipCursor@4@219231 GetClipboardData = _GetClipboardData@4@220207 EnumWindows = _EnumWindows@8 @192 208 EqualRect = _EqualRect@8 @193 209 ExcludeUpdateRgn = _ExcludeUpdateRgn@8 @194 210 ExitWindowsEx = _ExitWindowsEx@8 @195 211 FillRect = _FillRect@12 @196 212 FindWindowA = _FindWindowA@8 @197 213 FindWindowExA = _FindWindowExA@16 @198 214 FindWindowExW = _FindWindowExW@16 @199 215 FindWindowW = _FindWindowW@8 @200 216 FlashWindow = _FlashWindow@8 @201 217 FrameRect = _FrameRect@12 @202 218 FreeDDElParam = _FreeDDElParam@8 @203 219 GetActiveWindow = _GetActiveWindow@0 @204 220 GetAsyncKeyState = _GetAsyncKeyState@4 @205 221 GetCapture = _GetCapture@0 @206 222 GetCaretBlinkTime = _GetCaretBlinkTime@0 @207 223 GetCaretPos = _GetCaretPos@4 @208 224 GetClassInfoA = _GetClassInfoA@12 @209 225 GetClassInfoExA = _GetClassInfoExA@12 @210 226 GetClassInfoExW = _GetClassInfoExW@12 @211 227 GetClassInfoW = _GetClassInfoW@12 @212 228 GetClassLongA = _GetClassLongA@8 @213 229 GetClassLongW = _GetClassLongW@8 @214 230 GetClassNameA = _GetClassNameA@12 @215 231 GetClassNameW = _GetClassNameW@12 @216 232 GetClassWord = _GetClassWord@8 @217 233 GetClientRect = _GetClientRect@8 @218 234 GetClipCursor = _GetClipCursor@4 @219 235 GetClipboardData = _GetClipboardData@4 @220 232 236 GetClipboardFormatNameA = _GetClipboardFormatNameA@12 @221 233 237 GetClipboardFormatNameW = _GetClipboardFormatNameW@12 @222 234 GetClipboardOwner = _GetClipboardOwner@0@223235 GetClipboardViewer = _GetClipboardViewer@0@224236 GetCursor = _GetCursor@0@225237 GetCursorPos = _GetCursorPos@4@226238 GetDC = _GetDC@4@227239 GetDCEx = _GetDCEx@12@228240 GetDesktopWindow = _GetDesktopWindow@0@229241 GetDialogBaseUnits = _GetDialogBaseUnits@0@230242 GetDlgCtrlID = _GetDlgCtrlID@4@231243 GetDlgItem = _GetDlgItem@8@232244 GetDlgItemInt = _GetDlgItemInt@16@233245 GetDlgItemTextA = _GetDlgItemTextA@16@234246 GetDlgItemTextW = _GetDlgItemTextW@16@235247 GetDoubleClickTime = _GetDoubleClickTime@0@236248 GetFocus = _GetFocus@0@237238 GetClipboardOwner = _GetClipboardOwner@0 @223 239 GetClipboardViewer = _GetClipboardViewer@0 @224 240 GetCursor = _GetCursor@0 @225 241 GetCursorPos = _GetCursorPos@4 @226 242 GetDC = _GetDC@4 @227 243 GetDCEx = _GetDCEx@12 @228 244 GetDesktopWindow = _GetDesktopWindow@0 @229 245 GetDialogBaseUnits = _GetDialogBaseUnits@0 @230 246 GetDlgCtrlID = _GetDlgCtrlID@4 @231 247 GetDlgItem = _GetDlgItem@8 @232 248 GetDlgItemInt = _GetDlgItemInt@16 @233 249 GetDlgItemTextA = _GetDlgItemTextA@16 @234 250 GetDlgItemTextW = _GetDlgItemTextW@16 @235 251 GetDoubleClickTime = _GetDoubleClickTime@0 @236 252 GetFocus = _GetFocus@0 @237 249 253 GetForegroundWindow = _GetForegroundWindow@0 @238 250 GetIconInfo = _GetIconInfo@8@239251 ; GetInputDesktop = _GetInputDesktop@??@240252 GetInputState = _GetInputState@0@241254 GetIconInfo = _GetIconInfo@8 @239 255 ; GetInputDesktop = _GetInputDesktop@?? @240 256 GetInputState = _GetInputState@0 @241 253 257 GetInternalWindowPos = _GetInternalWindowPos@12 @242 254 GetKBCodePage = _GetKBCodePage@0@243255 GetKeyNameTextA = _GetKeyNameTextA@12@244256 GetKeyNameTextW = _GetKeyNameTextW@12@245257 GetKeyState = _GetKeyState@4@246258 GetKeyboardLayout = _GetKeyboardLayout@4@247258 GetKBCodePage = _GetKBCodePage@0 @243 259 GetKeyNameTextA = _GetKeyNameTextA@12 @244 260 GetKeyNameTextW = _GetKeyNameTextW@12 @245 261 GetKeyState = _GetKeyState@4 @246 262 GetKeyboardLayout = _GetKeyboardLayout@4 @247 259 263 GetKeyboardLayoutList = _GetKeyboardLayoutList@8 @248 260 264 GetKeyboardLayoutNameA = _GetKeyboardLayoutNameA@4 @249 261 265 GetKeyboardLayoutNameW = _GetKeyboardLayoutNameW@4 @250 262 GetKeyboardState = _GetKeyboardState@4@251263 GetKeyboardType = _GetKeyboardType@4@252264 GetLastActivePopup = _GetLastActivePopup@4@253265 GetMenu = _GetMenu@4@254266 GetMenuCheckMarkDimensions = _GetMenuCheckMarkDimensions@0 @255266 GetKeyboardState = _GetKeyboardState@4 @251 267 GetKeyboardType = _GetKeyboardType@4 @252 268 GetLastActivePopup = _GetLastActivePopup@4 @253 269 GetMenu = _GetMenu@4 @254 270 GetMenuCheckMarkDimensions = _GetMenuCheckMarkDimensions@0 @255 267 271 GetMenuContextHelpId = _GetMenuContextHelpId@4 @256 268 GetMenuDefaultItem = _GetMenuDefaultItem@12 @257269 GetMenuItemCount = _GetMenuItemCount@4@258270 GetMenuItemID = _GetMenuItemID@8@259271 GetMenuItemInfoA = _GetMenuItemInfoA@16@260272 GetMenuItemInfoW = _GetMenuItemInfoW@16@261273 GetMenuItemRect = _GetMenuItemRect@16@262274 GetMenuState = _GetMenuState@12@263275 GetMenuStringA = _GetMenuStringA@20@264276 GetMenuStringW = _GetMenuStringW@20@265277 GetMessageA = _GetMessageA@16@266272 GetMenuDefaultItem = _GetMenuDefaultItem@12 @257 273 GetMenuItemCount = _GetMenuItemCount@4 @258 274 GetMenuItemID = _GetMenuItemID@8 @259 275 GetMenuItemInfoA = _GetMenuItemInfoA@16 @260 276 GetMenuItemInfoW = _GetMenuItemInfoW@16 @261 277 GetMenuItemRect = _GetMenuItemRect@16 @262 278 GetMenuState = _GetMenuState@12 @263 279 GetMenuStringA = _GetMenuStringA@20 @264 280 GetMenuStringW = _GetMenuStringW@20 @265 281 GetMessageA = _GetMessageA@16 @266 278 282 GetMessageExtraInfo = _GetMessageExtraInfo@0 @267 279 GetMessagePos = _GetMessagePos@0@268280 GetMessageTime = _GetMessageTime@0@269281 GetMessageW = _GetMessageW@16@270283 GetMessagePos = _GetMessagePos@0 @268 284 GetMessageTime = _GetMessageTime@0 @269 285 GetMessageW = _GetMessageW@16 @270 282 286 GetNextDlgGroupItem = _GetNextDlgGroupItem@12 @271 283 GetNextDlgTabItem = _GetNextDlgTabItem@12@272284 GetNextQueueWindow = _GetNextQueueWindow@8@273287 GetNextDlgTabItem = _GetNextDlgTabItem@12 @272 288 GetNextQueueWindow = _GetNextQueueWindow@8 @273 285 289 GetOpenClipboardWindow = _GetOpenClipboardWindow@0 @274 286 GetParent = _GetParent@4@275287 GetPriorityClipboardFormat = _GetPriorityClipboardFormat@8 @276290 GetParent = _GetParent@4 @275 291 GetPriorityClipboardFormat = _GetPriorityClipboardFormat@8 @276 288 292 GetProcessWindowStation = _GetProcessWindowStation@0 @277 289 GetProgmanWindow = _GetProgmanWindow@0;@289290 GetPropA = _GetPropA@8@278291 GetPropW = _GetPropW@8@279292 GetQueueStatus = _GetQueueStatus@4@280293 GetScrollInfo = _GetScrollInfo@12@281294 GetScrollPos = _GetScrollPos@8@282295 GetScrollRange = _GetScrollRange@16@283296 GetShellWindow = _GetShellWindow@0@284297 GetSubMenu = _GetSubMenu@8@285298 GetSysColor = _GetSysColor@4@286299 GetSysColorBrush = _GetSysColorBrush@4@287300 GetSystemMenu = _GetSystemMenu@8@288301 GetSystemMetrics = _GetSystemMetrics@4@289293 GetProgmanWindow = _GetProgmanWindow@0 ;@289 294 GetPropA = _GetPropA@8 @278 295 GetPropW = _GetPropW@8 @279 296 GetQueueStatus = _GetQueueStatus@4 @280 297 GetScrollInfo = _GetScrollInfo@12 @281 298 GetScrollPos = _GetScrollPos@8 @282 299 GetScrollRange = _GetScrollRange@16 @283 300 GetShellWindow = _GetShellWindow@0 @284 301 GetSubMenu = _GetSubMenu@8 @285 302 GetSysColor = _GetSysColor@4 @286 303 GetSysColorBrush = _GetSysColorBrush@4 @287 304 GetSystemMenu = _GetSystemMenu@8 @288 305 GetSystemMetrics = _GetSystemMetrics@4 @289 302 306 GetTabbedTextExtentA = _GetTabbedTextExtentA@20 @290 303 307 GetTabbedTextExtentW = _GetTabbedTextExtentW@20 @291 304 GetTaskmanWindow = _GetTaskmanWindow@0;@304305 GetThreadDesktop = _GetThreadDesktop@4@292306 GetTopWindow = _GetTopWindow@4@293307 GetUpdateRect = _GetUpdateRect@12@294308 GetUpdateRgn = _GetUpdateRgn@12@295308 GetTaskmanWindow = _GetTaskmanWindow@0 ;@304 309 GetThreadDesktop = _GetThreadDesktop@4 @292 310 GetTopWindow = _GetTopWindow@4 @293 311 GetUpdateRect = _GetUpdateRect@12 @294 312 GetUpdateRgn = _GetUpdateRgn@12 @295 309 313 GetUserObjectInformationA = _GetUserObjectInformationA@20 @296 310 314 GetUserObjectInformationW = _GetUserObjectInformationW@20 @297 311 315 GetUserObjectSecurity = _GetUserObjectSecurity@20 @298 312 GetWindow = _GetWindow@8@299316 GetWindow = _GetWindow@8 @299 313 317 GetWindowContextHelpId = _GetWindowContextHelpId@4 @300 314 GetWindowDC = _GetWindowDC@4@301315 GetWindowLongA = _GetWindowLongA@8@302316 GetWindowLongW = _GetWindowLongW@8@303317 GetWindowPlacement = _GetWindowPlacement@8@304318 GetWindowRect = _GetWindowRect@8@305319 GetWindowRgn = _GetWindowRgn@8@306320 GetWindowTextA = _GetWindowTextA@12@307318 GetWindowDC = _GetWindowDC@4 @301 319 GetWindowLongA = _GetWindowLongA@8 @302 320 GetWindowLongW = _GetWindowLongW@8 @303 321 GetWindowPlacement = _GetWindowPlacement@8 @304 322 GetWindowRect = _GetWindowRect@8 @305 323 GetWindowRgn = _GetWindowRgn@8 @306 324 GetWindowTextA = _GetWindowTextA@12 @307 321 325 GetWindowTextLengthA = _GetWindowTextLengthA@4 @308 322 326 GetWindowTextLengthW = _GetWindowTextLengthW@4 @309 323 GetWindowTextW = _GetWindowTextW@12@310327 GetWindowTextW = _GetWindowTextW@12 @310 324 328 GetWindowThreadProcessId = _GetWindowThreadProcessId@8 @311 325 GetWindowWord = _GetWindowWord@8@312326 GrayStringA = _GrayStringA@36@313327 GrayStringW = _GrayStringW@36@314328 HideCaret = _HideCaret@4@315329 HiliteMenuItem = _HiliteMenuItem@16@316330 ImpersonateDdeClientWindow = _ImpersonateDdeClientWindow@8 @317331 InSendMessage = _InSendMessage@0@318332 InflateRect = _InflateRect@12@319333 ; InitSharedTable = _InitSharedTable@??@320334 ; InitTask = _InitTask@??@321335 InsertMenuA = _InsertMenuA@20@322336 InsertMenuItemA = _InsertMenuItemA@16@323337 InsertMenuItemW = _InsertMenuItemW@16@324338 InsertMenuW = _InsertMenuW@20@325329 GetWindowWord = _GetWindowWord@8 @312 330 GrayStringA = _GrayStringA@36 @313 331 GrayStringW = _GrayStringW@36 @314 332 HideCaret = _HideCaret@4 @315 333 HiliteMenuItem = _HiliteMenuItem@16 @316 334 ImpersonateDdeClientWindow = _ImpersonateDdeClientWindow@8 @317 335 InSendMessage = _InSendMessage@0 @318 336 InflateRect = _InflateRect@12 @319 337 ; InitSharedTable = _InitSharedTable@?? @320 338 ; InitTask = _InitTask@?? @321 339 InsertMenuA = _InsertMenuA@20 @322 340 InsertMenuItemA = _InsertMenuItemA@16 @323 341 InsertMenuItemW = _InsertMenuItemW@16 @324 342 InsertMenuW = _InsertMenuW@20 @325 339 343 InternalGetWindowText = _InternalGetWindowText@12 @326 340 IntersectRect = _IntersectRect@12@327341 InvalidateRect = _InvalidateRect@12@328342 InvalidateRgn = _InvalidateRgn@12@329343 InvertRect = _InvertRect@8@330344 IsCharAlphaA = _IsCharAlphaA@4@331344 IntersectRect = _IntersectRect@12 @327 345 InvalidateRect = _InvalidateRect@12 @328 346 InvalidateRgn = _InvalidateRgn@12 @329 347 InvertRect = _InvertRect@8 @330 348 IsCharAlphaA = _IsCharAlphaA@4 @331 345 349 IsCharAlphaNumericA = _IsCharAlphaNumericA@4 @332 346 350 IsCharAlphaNumericW = _IsCharAlphaNumericW@4 @333 347 IsCharAlphaW = _IsCharAlphaW@4@334348 IsCharLowerA = _IsCharLowerA@4@335349 IsCharLowerW = _IsCharLowerW@4@336350 IsCharUpperA = _IsCharUpperA@4@337351 IsCharUpperW = _IsCharUpperW@4@338352 IsChild = _IsChild@8@339353 IsClipboardFormatAvailable = _IsClipboardFormatAvailable@4 @340354 IsDialogMessage = _IsDialogMessageA@8@341355 IsDialogMessageA = _IsDialogMessageA@8@342356 IsDialogMessageW = _IsDialogMessageW@8@343357 IsDlgButtonChecked = _IsDlgButtonChecked@8@344358 IsHungThread = _IsHungThread@4@345359 IsHungAppWindow = _IsHungAppWindow@8360 IsIconic = _IsIconic@4@346361 IsMenu = _IsMenu@4@347362 IsRectEmpty = _IsRectEmpty@4@348363 IsWindow = _IsWindow@4@349364 IsWindowEnabled = _IsWindowEnabled@4@350365 IsWindowUnicode = _IsWindowUnicode@4@351366 IsWindowVisible = _IsWindowVisible@4@352367 IsZoomed = _IsZoomed@4@353368 KillTimer = _KillTimer@8@354369 LoadAcceleratorsA = _LoadAcceleratorsA@8@355370 LoadAcceleratorsW = _LoadAcceleratorsW@8@356371 LoadBitmapA = _LoadBitmapA@8@357372 LoadBitmapW = _LoadBitmapW@8@358373 LoadCursorA = _LoadCursorA@8@359351 IsCharAlphaW = _IsCharAlphaW@4 @334 352 IsCharLowerA = _IsCharLowerA@4 @335 353 IsCharLowerW = _IsCharLowerW@4 @336 354 IsCharUpperA = _IsCharUpperA@4 @337 355 IsCharUpperW = _IsCharUpperW@4 @338 356 IsChild = _IsChild@8 @339 357 IsClipboardFormatAvailable = _IsClipboardFormatAvailable@4 @340 358 IsDialogMessage = _IsDialogMessageA@8 @341 359 IsDialogMessageA = _IsDialogMessageA@8 @342 360 IsDialogMessageW = _IsDialogMessageW@8 @343 361 IsDlgButtonChecked = _IsDlgButtonChecked@8 @344 362 IsHungThread = _IsHungThread@4 @345 363 IsHungAppWindow = _IsHungAppWindow@8 364 IsIconic = _IsIconic@4 @346 365 IsMenu = _IsMenu@4 @347 366 IsRectEmpty = _IsRectEmpty@4 @348 367 IsWindow = _IsWindow@4 @349 368 IsWindowEnabled = _IsWindowEnabled@4 @350 369 IsWindowUnicode = _IsWindowUnicode@4 @351 370 IsWindowVisible = _IsWindowVisible@4 @352 371 IsZoomed = _IsZoomed@4 @353 372 KillTimer = _KillTimer@8 @354 373 LoadAcceleratorsA = _LoadAcceleratorsA@8 @355 374 LoadAcceleratorsW = _LoadAcceleratorsW@8 @356 375 LoadBitmapA = _LoadBitmapA@8 @357 376 LoadBitmapW = _LoadBitmapW@8 @358 377 LoadCursorA = _LoadCursorA@8 @359 374 378 LoadCursorFromFileA = _LoadCursorFromFileA@4 @360 375 379 LoadCursorFromFileW = _LoadCursorFromFileW@4 @361 376 LoadCursorW = _LoadCursorW@8@362377 LoadIconA = _LoadIconA@8@363378 LoadIconW = _LoadIconW@8@364379 LoadImageA = _LoadImageA@24@365380 LoadImageW = _LoadImageW@24@366380 LoadCursorW = _LoadCursorW@8 @362 381 LoadIconA = _LoadIconA@8 @363 382 LoadIconW = _LoadIconW@8 @364 383 LoadImageA = _LoadImageA@24 @365 384 LoadImageW = _LoadImageW@24 @366 381 385 LoadKeyboardLayoutA = _LoadKeyboardLayoutA@8 @367 382 386 LoadKeyboardLayoutW = _LoadKeyboardLayoutW@8 @368 383 LoadMenuA = _LoadMenuA@8@369384 LoadMenuIndirectA = _LoadMenuIndirectA@4@370385 LoadMenuIndirectW = _LoadMenuIndirectW@4@371386 LoadMenuW = _LoadMenuW@8@372387 LoadStringA = _LoadStringA@16@373388 LoadStringW = _LoadStringW@16@374389 ; LockWindowStation = _LockWindowStation@?? @375390 LockWindowUpdate = _LockWindowUpdate@4@376387 LoadMenuA = _LoadMenuA@8 @369 388 LoadMenuIndirectA = _LoadMenuIndirectA@4 @370 389 LoadMenuIndirectW = _LoadMenuIndirectW@4 @371 390 LoadMenuW = _LoadMenuW@8 @372 391 LoadStringA = _LoadStringA@16 @373 392 LoadStringW = _LoadStringW@16 @374 393 ; LockWindowStation = _LockWindowStation@?? @375 394 LockWindowUpdate = _LockWindowUpdate@4 @376 391 395 LookupIconIdFromDirectory = _LookupIconIdFromDirectory@8 @377 392 396 LookupIconIdFromDirectoryEx = _LookupIconIdFromDirectoryEx@20 @378 393 MapDialogRect = _MapDialogRect@8@379394 MapVirtualKeyA = _MapVirtualKeyA@8@380395 MapVirtualKeyExA = _MapVirtualKeyExA@12@381396 MapVirtualKeyExW = _MapVirtualKeyExW@12@382397 MapVirtualKeyW = _MapVirtualKeyW@8@383398 MapWindowPoints = _MapWindowPoints@16@384399 MenuItemFromPoint = _MenuItemFromPoint@16@385400 MessageBeep = _MessageBeep@4@386401 MessageBoxA = _MessageBoxA@16@387402 MessageBoxExA = _MessageBoxExA@20@388403 MessageBoxExW = _MessageBoxExW@20@389397 MapDialogRect = _MapDialogRect@8 @379 398 MapVirtualKeyA = _MapVirtualKeyA@8 @380 399 MapVirtualKeyExA = _MapVirtualKeyExA@12 @381 400 MapVirtualKeyExW = _MapVirtualKeyExW@12 @382 401 MapVirtualKeyW = _MapVirtualKeyW@8 @383 402 MapWindowPoints = _MapWindowPoints@16 @384 403 MenuItemFromPoint = _MenuItemFromPoint@16 @385 404 MessageBeep = _MessageBeep@4 @386 405 MessageBoxA = _MessageBoxA@16 @387 406 MessageBoxExA = _MessageBoxExA@20 @388 407 MessageBoxExW = _MessageBoxExW@20 @389 404 408 MessageBoxIndirectA = _MessageBoxIndirectA@4 @390 405 409 MessageBoxIndirectW = _MessageBoxIndirectW@4 @391 406 MessageBoxW = _MessageBoxW@16@392407 ; ModifyAccess = _ModifyAccess@??@393408 ModifyMenuA = _ModifyMenuA@20@394409 ModifyMenuW = _ModifyMenuW@20@395410 MoveWindow = _MoveWindow@24@396410 MessageBoxW = _MessageBoxW@16 @392 411 ; ModifyAccess = _ModifyAccess@?? @393 412 ModifyMenuA = _ModifyMenuA@20 @394 413 ModifyMenuW = _ModifyMenuW@20 @395 414 MoveWindow = _MoveWindow@24 @396 411 415 MsgWaitForMultipleObjects = _MsgWaitForMultipleObjects@20 @397 412 OemKeyScan = _OemKeyScan@4@398413 OemToCharA = _OemToCharA@8@399414 OemToCharBuffA = _OemToCharBuffA@12@400415 OemToCharBuffW = _OemToCharBuffW@12@401416 OemToCharW = _OemToCharW@8@402417 OffsetRect = _OffsetRect@12@403418 OpenClipboard = _OpenClipboard@4@404419 OpenDesktopA = _OpenDesktopA@16@405420 OpenDesktopW = _OpenDesktopW@16@406421 OpenIcon = _OpenIcon@4@407422 OpenInputDesktop = _OpenInputDesktop@12@408423 OpenWindowStationA = _OpenWindowStationA@12 @409424 OpenWindowStationW = _OpenWindowStationW@12 @410425 PackDDElParam = _PackDDElParam@12@411426 PaintDesktop = _PaintDesktop@4@412427 PeekMessageA = _PeekMessageA@20@413428 PeekMessageW = _PeekMessageW@20@414429 PlaySoundEvent = _PlaySoundEvent@4@415430 PostMessageA = _PostMessageA@16@416431 PostMessageW = _PostMessageW@16@417432 PostQuitMessage = _PostQuitMessage@4@418433 PostThreadMessageA = _PostThreadMessageA@16 @419434 PostThreadMessageW = _PostThreadMessageW@16 @420435 PtInRect = _PtInRect@12@421436 RedrawWindow = _RedrawWindow@16@422437 RegisterClassA = _RegisterClassA@4@423438 RegisterClassExA = _RegisterClassExA@4@424439 RegisterClassExW = _RegisterClassExW@4@425440 RegisterClassW = _RegisterClassW@4@426416 OemKeyScan = _OemKeyScan@4 @398 417 OemToCharA = _OemToCharA@8 @399 418 OemToCharBuffA = _OemToCharBuffA@12 @400 419 OemToCharBuffW = _OemToCharBuffW@12 @401 420 OemToCharW = _OemToCharW@8 @402 421 OffsetRect = _OffsetRect@12 @403 422 OpenClipboard = _OpenClipboard@4 @404 423 OpenDesktopA = _OpenDesktopA@16 @405 424 OpenDesktopW = _OpenDesktopW@16 @406 425 OpenIcon = _OpenIcon@4 @407 426 OpenInputDesktop = _OpenInputDesktop@12 @408 427 OpenWindowStationA = _OpenWindowStationA@12 @409 428 OpenWindowStationW = _OpenWindowStationW@12 @410 429 PackDDElParam = _PackDDElParam@12 @411 430 PaintDesktop = _PaintDesktop@4 @412 431 PeekMessageA = _PeekMessageA@20 @413 432 PeekMessageW = _PeekMessageW@20 @414 433 PlaySoundEvent = _PlaySoundEvent@4 @415 434 PostMessageA = _PostMessageA@16 @416 435 PostMessageW = _PostMessageW@16 @417 436 PostQuitMessage = _PostQuitMessage@4 @418 437 PostThreadMessageA = _PostThreadMessageA@16 @419 438 PostThreadMessageW = _PostThreadMessageW@16 @420 439 PtInRect = _PtInRect@12 @421 440 RedrawWindow = _RedrawWindow@16 @422 441 RegisterClassA = _RegisterClassA@4 @423 442 RegisterClassExA = _RegisterClassExA@4 @424 443 RegisterClassExW = _RegisterClassExW@4 @425 444 RegisterClassW = _RegisterClassW@4 @426 441 445 RegisterClipboardFormatA = _RegisterClipboardFormatA@4 @427 442 446 RegisterClipboardFormatW = _RegisterClipboardFormatW@4 @428 443 RegisterHotKey = _RegisterHotKey@16@429444 ; RegisterLogonProcess = _RegisterLogonProcess@?? @430447 RegisterHotKey = _RegisterHotKey@16 @429 448 ; RegisterLogonProcess = _RegisterLogonProcess@?? @430 445 449 RegisterNetworkCapabilities = _RegisterNetworkCapabilities@8 @431 446 450 RegisterSystemThread = _RegisterSystemThread@8 @432 447 RegisterTasklist = _RegisterTasklist@4@433451 RegisterTasklist = _RegisterTasklist@4 @433 448 452 RegisterWindowMessageA = _RegisterWindowMessageA@4 @434 449 453 RegisterWindowMessageW = _RegisterWindowMessageW@4 @435 450 ReleaseCapture = _ReleaseCapture@0@436451 ReleaseDC = _ReleaseDC@8@437452 RemoveMenu = _RemoveMenu@12@438453 RemovePropA = _RemovePropA@8@439454 RemovePropW = _RemovePropW@8@440455 ReplyMessage = _ReplyMessage@4@441456 ReuseDDElParam = _ReuseDDElParam@20@442457 ScreenToClient = _ScreenToClient@8@443458 ScrollDC = _ScrollDC@28@444459 ScrollWindow = _ScrollWindow@20@445460 ScrollWindowEx = _ScrollWindowEx@32@446454 ReleaseCapture = _ReleaseCapture@0 @436 455 ReleaseDC = _ReleaseDC@8 @437 456 RemoveMenu = _RemoveMenu@12 @438 457 RemovePropA = _RemovePropA@8 @439 458 RemovePropW = _RemovePropW@8 @440 459 ReplyMessage = _ReplyMessage@4 @441 460 ReuseDDElParam = _ReuseDDElParam@20 @442 461 ScreenToClient = _ScreenToClient@8 @443 462 ScrollDC = _ScrollDC@28 @444 463 ScrollWindow = _ScrollWindow@20 @445 464 ScrollWindowEx = _ScrollWindowEx@32 @446 461 465 SendDlgItemMessageA = _SendDlgItemMessageA@20 @447 462 466 SendDlgItemMessageW = _SendDlgItemMessageW@20 @448 463 SendMessageA = _SendMessageA@16@449467 SendMessageA = _SendMessageA@16 @449 464 468 SendMessageCallbackA = _SendMessageCallbackA@24 @450 465 469 SendMessageCallbackW = _SendMessageCallbackW@24 @451 466 470 SendMessageTimeoutA = _SendMessageTimeoutA@28 @452 467 471 SendMessageTimeoutW = _SendMessageTimeoutW@28 @453 468 SendMessageW = _SendMessageW@16@454469 SendNotifyMessageA = _SendNotifyMessageA@16 @455470 SendNotifyMessageW = _SendNotifyMessageW@16 @456471 SetActiveWindow = _SetActiveWindow@4@457472 SetCapture = _SetCapture@4@458473 SetCaretBlinkTime = _SetCaretBlinkTime@4@459474 SetCaretPos = _SetCaretPos@8@460475 SetClassLongA = _SetClassLongA@12@461476 SetClassLongW = _SetClassLongW@12@462477 SetClassWord = _SetClassWord@12@463478 SetClipboardData = _SetClipboardData@8@464479 SetClipboardViewer = _SetClipboardViewer@4@465480 SetCursor = _SetCursor@4@466481 SetCursorPos = _SetCursorPos@8@467482 SetDebugErrorLevel = _SetDebugErrorLevel@4@468483 ; SetDeskWallpaper = _SetDeskWallpaper@??@469484 ; SetDesktopBitmap = _SetDesktopBitmap@??@470485 SetDlgItemInt = _SetDlgItemInt@16@471486 SetDlgItemTextA = _SetDlgItemTextA@12@472487 SetDlgItemTextW = _SetDlgItemTextW@12@473488 SetDoubleClickTime = _SetDoubleClickTime@4@474489 SetFocus = _SetFocus@4@475472 SendMessageW = _SendMessageW@16 @454 473 SendNotifyMessageA = _SendNotifyMessageA@16 @455 474 SendNotifyMessageW = _SendNotifyMessageW@16 @456 475 SetActiveWindow = _SetActiveWindow@4 @457 476 SetCapture = _SetCapture@4 @458 477 SetCaretBlinkTime = _SetCaretBlinkTime@4 @459 478 SetCaretPos = _SetCaretPos@8 @460 479 SetClassLongA = _SetClassLongA@12 @461 480 SetClassLongW = _SetClassLongW@12 @462 481 SetClassWord = _SetClassWord@12 @463 482 SetClipboardData = _SetClipboardData@8 @464 483 SetClipboardViewer = _SetClipboardViewer@4 @465 484 SetCursor = _SetCursor@4 @466 485 SetCursorPos = _SetCursorPos@8 @467 486 SetDebugErrorLevel = _SetDebugErrorLevel@4 @468 487 ; SetDeskWallpaper = _SetDeskWallpaper@?? @469 488 ; SetDesktopBitmap = _SetDesktopBitmap@?? @470 489 SetDlgItemInt = _SetDlgItemInt@16 @471 490 SetDlgItemTextA = _SetDlgItemTextA@12 @472 491 SetDlgItemTextW = _SetDlgItemTextW@12 @473 492 SetDoubleClickTime = _SetDoubleClickTime@4 @474 493 SetFocus = _SetFocus@4 @475 490 494 SetForegroundWindow = _SetForegroundWindow@4 @476 491 495 SetInternalWindowPos = _SetInternalWindowPos@16 @477 492 SetKeyboardState = _SetKeyboardState@4@478493 SetLastErrorEx = _SetLastErrorEx@8@479494 ; SetLogonNotifyWindow = _SetLogonNotifyWindow@?? @480495 SetMenu = _SetMenu@8@481496 SetKeyboardState = _SetKeyboardState@4 @478 497 SetLastErrorEx = _SetLastErrorEx@8 @479 498 ; SetLogonNotifyWindow = _SetLogonNotifyWindow@?? @480 499 SetMenu = _SetMenu@8 @481 496 500 SetMenuContextHelpId = _SetMenuContextHelpId@8 @482 497 SetMenuDefaultItem = _SetMenuDefaultItem@12 @483498 SetMenuItemBitmaps = _SetMenuItemBitmaps@20 @484499 SetMenuItemInfoA = _SetMenuItemInfoA@16@485500 SetMenuItemInfoW = _SetMenuItemInfoW@16@486501 SetMenuDefaultItem = _SetMenuDefaultItem@12 @483 502 SetMenuItemBitmaps = _SetMenuItemBitmaps@20 @484 503 SetMenuItemInfoA = _SetMenuItemInfoA@16 @485 504 SetMenuItemInfoW = _SetMenuItemInfoW@16 @486 501 505 SetMessageExtraInfo = _SetMessageExtraInfo@4 @487 502 SetMessageQueue = _SetMessageQueue@4@488503 SetParent = _SetParent@8@489506 SetMessageQueue = _SetMessageQueue@4 @488 507 SetParent = _SetParent@8 @489 504 508 SetProcessWindowStation = _SetProcessWindowStation@4 @490 505 SetProgmanWindow = _SetProgmanWindow@4;@522 ?506 SetPropA = _SetPropA@12@491507 SetPropW = _SetPropW@12@492508 SetRect = _SetRect@20@493509 SetRectEmpty = _SetRectEmpty@4@494510 SetScrollInfo = _SetScrollInfo@16@495511 SetScrollPos = _SetScrollPos@16@496512 SetScrollRange = _SetScrollRange@20@497513 SetShellWindow = _SetShellWindow@4@498514 SetShellWindowEx = _SetShellWindowEx@8;@531 ?515 SetSysColors = _SetSysColors@12@499516 SetSysColorsTemp = _SetSysColorsTemp@0@500517 SetSystemCursor = _SetSystemCursor@8@501518 SetTaskmanWindow = _SetTaskmanWindow@4;@537519 SetThreadDesktop = _SetThreadDesktop@4@502520 SetTimer = _SetTimer@16@503509 SetProgmanWindow = _SetProgmanWindow@4 ;@522 ? 510 SetPropA = _SetPropA@12 @491 511 SetPropW = _SetPropW@12 @492 512 SetRect = _SetRect@20 @493 513 SetRectEmpty = _SetRectEmpty@4 @494 514 SetScrollInfo = _SetScrollInfo@16 @495 515 SetScrollPos = _SetScrollPos@16 @496 516 SetScrollRange = _SetScrollRange@20 @497 517 SetShellWindow = _SetShellWindow@4 @498 518 SetShellWindowEx = _SetShellWindowEx@8 ;@531 ? 519 SetSysColors = _SetSysColors@12 @499 520 SetSysColorsTemp = _SetSysColorsTemp@0 @500 521 SetSystemCursor = _SetSystemCursor@8 @501 522 SetTaskmanWindow = _SetTaskmanWindow@4 ;@537 523 SetThreadDesktop = _SetThreadDesktop@4 @502 524 SetTimer = _SetTimer@16 @503 521 525 SetUserObjectInformationA = _SetUserObjectInformationA@16 @504 522 526 SetUserObjectInformationW = _SetUserObjectInformationW@16 @505 523 527 SetUserObjectSecurity = _SetUserObjectSecurity@12 @506 524 528 SetWindowContextHelpId = _SetWindowContextHelpId@8 @507 525 ; SetWindowFullScreenState = _SetWindowFullScreenState@?? @508526 SetWindowLongA = _SetWindowLongA@12@509527 SetWindowLongW = _SetWindowLongW@12@510528 SetWindowPlacement = _SetWindowPlacement@8@511529 SetWindowPos = _SetWindowPos@28@512530 SetWindowRgn = _SetWindowRgn@12@513531 SetWindowTextA = _SetWindowTextA@8@514532 SetWindowTextW = _SetWindowTextW@8@515533 SetWindowWord = _SetWindowWord@12@516534 SetWindowsHookA = _SetWindowsHookA@8@517535 SetWindowsHookExA = _SetWindowsHookExA@16@518536 SetWindowsHookExW = _SetWindowsHookExW@16@519537 SetWindowsHookW = _SetWindowsHookW@8@520538 ShowCaret = _ShowCaret@4@521539 ShowCursor = _ShowCursor@4@522540 ShowOwnedPopups = _ShowOwnedPopups@8@523541 ShowScrollBar = _ShowScrollBar@12@524542 ShowWindow = _ShowWindow@8@525543 ShowWindowAsync = _ShowWindowAsync@8@526544 SubtractRect = _SubtractRect@12@527545 SwapMouseButton = _SwapMouseButton@4@528546 SwitchDesktop = _SwitchDesktop@4@529547 SwitchToThisWindow = _SwitchToThisWindow@8@530548 SysErrorBox = _SysErrorBox@12@531529 ; SetWindowFullScreenState = _SetWindowFullScreenState@?? @508 530 SetWindowLongA = _SetWindowLongA@12 @509 531 SetWindowLongW = _SetWindowLongW@12 @510 532 SetWindowPlacement = _SetWindowPlacement@8 @511 533 SetWindowPos = _SetWindowPos@28 @512 534 SetWindowRgn = _SetWindowRgn@12 @513 535 SetWindowTextA = _SetWindowTextA@8 @514 536 SetWindowTextW = _SetWindowTextW@8 @515 537 SetWindowWord = _SetWindowWord@12 @516 538 SetWindowsHookA = _SetWindowsHookA@8 @517 539 SetWindowsHookExA = _SetWindowsHookExA@16 @518 540 SetWindowsHookExW = _SetWindowsHookExW@16 @519 541 SetWindowsHookW = _SetWindowsHookW@8 @520 542 ShowCaret = _ShowCaret@4 @521 543 ShowCursor = _ShowCursor@4 @522 544 ShowOwnedPopups = _ShowOwnedPopups@8 @523 545 ShowScrollBar = _ShowScrollBar@12 @524 546 ShowWindow = _ShowWindow@8 @525 547 ShowWindowAsync = _ShowWindowAsync@8 @526 548 SubtractRect = _SubtractRect@12 @527 549 SwapMouseButton = _SwapMouseButton@4 @528 550 SwitchDesktop = _SwitchDesktop@4 @529 551 SwitchToThisWindow = _SwitchToThisWindow@8 @530 552 SysErrorBox = _SysErrorBox@12 @531 549 553 SystemParametersInfoA = _SystemParametersInfoA@16 @532 550 554 SystemParametersInfoW = _SystemParametersInfoW@16 @533 551 TabbedTextOutA = _TabbedTextOutA@32@534552 TabbedTextOutW = _TabbedTextOutW@32@535553 TileChildWindows = _TileChildWindows@8@536554 TileWindows = _TileWindows@20@537555 ToAscii = _ToAscii@20@538556 ToAsciiEx = _ToAsciiEx@24@539557 ToUnicode = _ToUnicode@24@540558 TrackPopupMenu = _TrackPopupMenu@28@541559 TrackPopupMenuEx = _TrackPopupMenuEx@24@542555 TabbedTextOutA = _TabbedTextOutA@32 @534 556 TabbedTextOutW = _TabbedTextOutW@32 @535 557 TileChildWindows = _TileChildWindows@8 @536 558 TileWindows = _TileWindows@20 @537 559 ToAscii = _ToAscii@20 @538 560 ToAsciiEx = _ToAsciiEx@24 @539 561 ToUnicode = _ToUnicode@24 @540 562 TrackPopupMenu = _TrackPopupMenu@28 @541 563 TrackPopupMenuEx = _TrackPopupMenuEx@24 @542 560 564 TranslateAccelerator = _TranslateAcceleratorA@12 @543 561 565 TranslateAcceleratorA = _TranslateAcceleratorA@12 @544 562 566 TranslateAcceleratorW = _TranslateAcceleratorW@12 @545 563 567 TranslateMDISysAccel = _TranslateMDISysAccel@8 @546 564 TranslateMessage = _TranslateMessage@4@547565 UnhookWindowsHook = _UnhookWindowsHook@8@548568 TranslateMessage = _TranslateMessage@4 @547 569 UnhookWindowsHook = _UnhookWindowsHook@8 @548 566 570 UnhookWindowsHookEx = _UnhookWindowsHookEx@4 @549 567 UnionRect = _UnionRect@12@550571 UnionRect = _UnionRect@12 @550 568 572 UnloadKeyboardLayout = _UnloadKeyboardLayout@4 @551 569 ; UnlockWindowStation = _UnlockWindowStation@?? @552570 UnpackDDElParam = _UnpackDDElParam@16@553571 UnregisterClassA = _UnregisterClassA@8@554572 UnregisterClassW = _UnregisterClassW@8@555573 UnregisterHotKey = _UnregisterHotKey@8@556574 UpdateWindow = _UpdateWindow@4@557575 ; UserClientDllInitialize = _UserClientDllInitialize@?? @558576 UserSignalProc = _UserSignalProc@16@559577 ValidateRect = _ValidateRect@8@560578 ValidateRgn = _ValidateRgn@8@561579 VkKeyScanA = _VkKeyScanA@4@562580 VkKeyScanExA = _VkKeyScanExA@8@563581 VkKeyScanExW = _VkKeyScanExW@8@564582 VkKeyScanW = _VkKeyScanW@4@565583 ; WNDPROC_CALLBACK = _WNDPROC_CALLBACK@??@566584 WaitForInputIdle = _WaitForInputIdle@8@567585 WaitMessage = _WaitMessage@0@568586 WinHelpA = _WinHelpA@16@569587 WinHelpW = _WinHelpW@16@570573 ; UnlockWindowStation = _UnlockWindowStation@?? @552 574 UnpackDDElParam = _UnpackDDElParam@16 @553 575 UnregisterClassA = _UnregisterClassA@8 @554 576 UnregisterClassW = _UnregisterClassW@8 @555 577 UnregisterHotKey = _UnregisterHotKey@8 @556 578 UpdateWindow = _UpdateWindow@4 @557 579 ; UserClientDllInitialize = _UserClientDllInitialize@?? @558 580 UserSignalProc = _UserSignalProc@16 @559 581 ValidateRect = _ValidateRect@8 @560 582 ValidateRgn = _ValidateRgn@8 @561 583 VkKeyScanA = _VkKeyScanA@4 @562 584 VkKeyScanExA = _VkKeyScanExA@8 @563 585 VkKeyScanExW = _VkKeyScanExW@8 @564 586 VkKeyScanW = _VkKeyScanW@4 @565 587 ; WNDPROC_CALLBACK = _WNDPROC_CALLBACK@?? @566 588 WaitForInputIdle = _WaitForInputIdle@8 @567 589 WaitMessage = _WaitMessage@0 @568 590 WinHelpA = _WinHelpA@16 @569 591 WinHelpW = _WinHelpW@16 @570 588 592 WinOldAppHackoMatic = _WinOldAppHackoMatic@4 @571 589 WindowFromDC = _WindowFromDC@4@572590 WindowFromPoint = _WindowFromPoint@8@573591 YieldTask = _YieldTask@0@574592 keybd_event = _keybd_event@16@575593 mouse_event = _mouse_event@20@576594 wsprintfA = _wsprintfA@577595 wsprintfW = _wsprintfW@578596 wvsprintfA = _wvsprintfA@12@579597 wvsprintfW = _wvsprintfW@12@580598 GetMonitorInfoW = _GetMonitorInfoW@8@1000599 GetMonitorInfoA = _GetMonitorInfoA@8@1001600 MonitorFromWindow = _MonitorFromWindow@8@1002601 MonitorFromRect = _MonitorFromRect@8@1003602 MonitorFromPoint = _MonitorFromPoint@12@1004603 EnumDisplayMonitors = _EnumDisplayMonitors@16 @1005593 WindowFromDC = _WindowFromDC@4 @572 594 WindowFromPoint = _WindowFromPoint@8 @573 595 YieldTask = _YieldTask@0 @574 596 keybd_event = _keybd_event@16 @575 597 mouse_event = _mouse_event@20 @576 598 wsprintfA = _wsprintfA @577 599 wsprintfW = _wsprintfW @578 600 wvsprintfA = _wvsprintfA@12 @579 601 wvsprintfW = _wvsprintfW@12 @580 602 GetMonitorInfoW = _GetMonitorInfoW@8 @1000 603 GetMonitorInfoA = _GetMonitorInfoA@8 @1001 604 MonitorFromWindow = _MonitorFromWindow@8 @1002 605 MonitorFromRect = _MonitorFromRect@8 @1003 606 MonitorFromPoint = _MonitorFromPoint@12 @1004 607 EnumDisplayMonitors = _EnumDisplayMonitors@16 @1005 604 608 605 CreateWindowProc @2000609 CreateWindowProc @2000 606 610 GetOS2Callback__15Win32WindowProcFv = GetOS2Callback__Fv @2001 607 611 608 612 ; Wine helper function 609 GetSysColorPen = _GetSysColorPen@4@2002613 GetSysColorPen = _GetSysColorPen@4 @2002 610 614 ; COMCTL32 helper functions 611 NativeDlgBoxIP = _NativeDlgBoxIP@24@2003612 NativeCreateDlgIP = _NativeCreateDlgIP@24@2004613 NativeLoadBitmap = _NativeLoadBitmap@8@2005615 NativeDlgBoxIP = _NativeDlgBoxIP@24 @2003 616 NativeCreateDlgIP = _NativeCreateDlgIP@24 @2004 617 NativeLoadBitmap = _NativeLoadBitmap@8 @2005 -
trunk/src/user32/new/win32class.h
r728 r819 1 /* $Id: win32class.h,v 1. 6 1999-08-28 17:24:45dengert Exp $ */1 /* $Id: win32class.h,v 1.7 1999-09-04 17:56:41 dengert Exp $ */ 2 2 /* 3 3 * Win32 Window Class Managment Code for OS/2 … … 55 55 56 56 BOOL hasClassName(LPSTR classname, BOOL fUnicode = 0); 57 57 58 58 static void UnregisterClassA(HINSTANCE hinst, LPSTR id); 59 59 … … 64 64 65 65 //Standard class words/longs 66 ULONG windowStyle; //GCL_STYLE * must be offset 14h * 66 67 ULONG nrExtraClassWords; //GCL_CBCLSEXTRA 67 68 ULONG nrExtraWindowWords; //GCL_CBWNDEXTRA … … 72 73 PCHAR menuNameA; //GCL_MENUNAME 73 74 WCHAR *menuNameW; //GCL_MENUNAME 74 ULONG windowStyle; //GCL_STYLE75 75 WNDPROC windowProc; //GCL_WNDPROC 76 76 ULONG classAtom; //GCW_ATOM -
trunk/src/user32/new/win32wbase.cpp
r780 r819 1 /* $Id: win32wbase.cpp,v 1. 5 1999-09-01 19:12:22 phallerExp $ */1 /* $Id: win32wbase.cpp,v 1.6 1999-09-04 17:56:41 dengert Exp $ */ 2 2 /* 3 3 * Win32 Window Base Class for OS/2 … … 62 62 //****************************************************************************** 63 63 Win32BaseWindow::Win32BaseWindow(CREATESTRUCTA *lpCreateStructA, ATOM classAtom, BOOL isUnicode) 64 : GenericObject(&windows, OBJTYPE_WINDOW), ChildWindow()64 : GenericObject(&windows, OBJTYPE_WINDOW), ChildWindow() 65 65 { 66 66 Init(); … … 72 72 void Win32BaseWindow::Init() 73 73 { 74 isUnicode = FALSE;75 fCreated = FALSE;76 fFirstShow = TRUE;77 78 windowNameA = NULL;79 windowNameW = NULL;74 isUnicode = FALSE; 75 fCreated = FALSE; 76 fFirstShow = TRUE; 77 78 windowNameA = NULL; 79 windowNameW = NULL; 80 80 wndNameLength = 0; 81 81 … … 83 83 nrUserWindowLong = 0; 84 84 85 magic = WIN32PM_MAGIC;86 OS2Hwnd = 0;87 OS2HwndFrame = 0;88 OS2HwndMenu = 0;89 Win32Hwnd = 0;85 magic = WIN32PM_MAGIC; 86 OS2Hwnd = 0; 87 OS2HwndFrame = 0; 88 OS2HwndMenu = 0; 89 Win32Hwnd = 0; 90 90 91 91 if(HwAllocateWindowHandle(&Win32Hwnd, (ULONG)this) == FALSE) 92 92 { 93 dprintf(("Win32BaseWindow::Init HwAllocateWindowHandle failed!!"));94 DebugInt3();95 } 96 97 posx = posy = 0;93 dprintf(("Win32BaseWindow::Init HwAllocateWindowHandle failed!!")); 94 DebugInt3(); 95 } 96 97 posx = posy = 0; 98 98 width = height = 0; 99 99 100 dwExStyle = 0;101 dwStyle = 0;102 win32wndproc = 0;103 hInstance = 0;104 windowId = 0xFFFFFFFF;//default = -1105 userData = 0;100 dwExStyle = 0; 101 dwStyle = 0; 102 win32wndproc = 0; 103 hInstance = 0; 104 windowId = 0xFFFFFFFF; //default = -1 105 userData = 0; 106 106 107 107 hwndLinkAfter = HWND_BOTTOM; 108 flags = 0;109 isIcon = FALSE;108 flags = 0; 109 isIcon = FALSE; 110 110 lastHitTestVal = 0; 111 owner = NULL;112 windowClass = 0;111 owner = NULL; 112 windowClass = 0; 113 113 114 114 acceltableResource = NULL; 115 menuResource = NULL;116 iconResource = NULL;115 menuResource = NULL; 116 iconResource = NULL; 117 117 } 118 118 //****************************************************************************** … … 125 125 126 126 if(Win32Hwnd) 127 HwFreeWindowHandle(Win32Hwnd);127 HwFreeWindowHandle(Win32Hwnd); 128 128 129 129 if(userWindowLong) 130 free(userWindowLong);130 free(userWindowLong); 131 131 if(windowNameA) { 132 free(windowNameA);133 windowNameA = NULL;132 free(windowNameA); 133 windowNameA = NULL; 134 134 } 135 135 if(windowNameW) { 136 free(windowNameW);137 windowNameW = NULL;136 free(windowNameW); 137 windowNameW = NULL; 138 138 } 139 139 } … … 157 157 if (cs->hwndParent) 158 158 { 159 Win32BaseWindow *window = GetWindowFromHandle(cs->hwndParent);160 if(!window) {161 dprintf(("Bad parent %04x\n", cs->hwndParent ));162 SetLastError(ERROR_INVALID_PARAMETER);163 return FALSE;164 }165 /* Make sure parent is valid */166 if (!window->IsWindow() )167 {168 dprintf(("Bad parent %04x\n", cs->hwndParent ));169 SetLastError(ERROR_INVALID_PARAMETER);170 return FALSE;171 }159 Win32BaseWindow *window = GetWindowFromHandle(cs->hwndParent); 160 if(!window) { 161 dprintf(("Bad parent %04x\n", cs->hwndParent )); 162 SetLastError(ERROR_INVALID_PARAMETER); 163 return FALSE; 164 } 165 /* Make sure parent is valid */ 166 if (!window->IsWindow() ) 167 { 168 dprintf(("Bad parent %04x\n", cs->hwndParent )); 169 SetLastError(ERROR_INVALID_PARAMETER); 170 return FALSE; 171 } 172 172 } 173 173 else 174 174 if ((cs->style & WS_CHILD) && !(cs->style & WS_POPUP)) { 175 dprintf(("No parent for child window\n" ));176 SetLastError(ERROR_INVALID_PARAMETER);177 return FALSE; /* WS_CHILD needs a parent, but WS_POPUP doesn't */175 dprintf(("No parent for child window\n" )); 176 SetLastError(ERROR_INVALID_PARAMETER); 177 return FALSE; /* WS_CHILD needs a parent, but WS_POPUP doesn't */ 178 178 } 179 179 … … 182 182 if (!windowClass) 183 183 { 184 GlobalGetAtomNameA( classAtom, buffer, sizeof(buffer) );185 dprintf(("Bad class '%s'\n", buffer ));186 return 0;184 GlobalGetAtomNameA( classAtom, buffer, sizeof(buffer) ); 185 dprintf(("Bad class '%s'\n", buffer )); 186 return 0; 187 187 } 188 188 … … 192 192 */ 193 193 if (!HIWORD(cs->lpszClass) ) { 194 if (isUnicode) {195 GlobalGetAtomNameW( classAtom, (LPWSTR)buffer, sizeof(buffer) );196 }197 else {198 GlobalGetAtomNameA( classAtom, buffer, sizeof(buffer) );199 }200 cs->lpszClass = buffer;194 if (isUnicode) { 195 GlobalGetAtomNameW( classAtom, (LPWSTR)buffer, sizeof(buffer) ); 196 } 197 else { 198 GlobalGetAtomNameA( classAtom, buffer, sizeof(buffer) ); 199 } 200 cs->lpszClass = buffer; 201 201 } 202 202 … … 204 204 if (cs->x == CW_USEDEFAULT || cs->x == CW_USEDEFAULT16) 205 205 { 206 // PDB *pdb = PROCESS_Current();206 // PDB *pdb = PROCESS_Current(); 207 207 208 208 /* Never believe Microsoft's documentation... CreateWindowEx doc says 209 * that if an overlapped window is created with WS_VISIBLE style bit210 * set and the x parameter is set to CW_USEDEFAULT, the system ignores211 * the y parameter. However, disassembling NT implementation (WIN32K.SYS)212 * reveals that213 *214 * 1) not only if checks for CW_USEDEFAULT but also for CW_USEDEFAULT16215 * 2) it does not ignore the y parameter as the docs claim; instead, it216 * uses it as second parameter to ShowWindow() unless y is either217 * CW_USEDEFAULT or CW_USEDEFAULT16.218 *219 * The fact that we didn't do 2) caused bogus windows pop up when wine220 * was running apps that were using this obscure feature. Example -221 * calc.exe that comes with Win98 (only Win98, it's different from222 * the one that comes with Win95 and NT)223 */224 if (cs->y != CW_USEDEFAULT && cs->y != CW_USEDEFAULT16) sw = cs->y;225 226 /* We have saved cs->y, now we can trash it */209 * that if an overlapped window is created with WS_VISIBLE style bit 210 * set and the x parameter is set to CW_USEDEFAULT, the system ignores 211 * the y parameter. However, disassembling NT implementation (WIN32K.SYS) 212 * reveals that 213 * 214 * 1) not only if checks for CW_USEDEFAULT but also for CW_USEDEFAULT16 215 * 2) it does not ignore the y parameter as the docs claim; instead, it 216 * uses it as second parameter to ShowWindow() unless y is either 217 * CW_USEDEFAULT or CW_USEDEFAULT16. 218 * 219 * The fact that we didn't do 2) caused bogus windows pop up when wine 220 * was running apps that were using this obscure feature. Example - 221 * calc.exe that comes with Win98 (only Win98, it's different from 222 * the one that comes with Win95 and NT) 223 */ 224 if (cs->y != CW_USEDEFAULT && cs->y != CW_USEDEFAULT16) sw = cs->y; 225 226 /* We have saved cs->y, now we can trash it */ 227 227 #if 0 228 if ( !(cs->style & (WS_CHILD | WS_POPUP))229 &&(pdb->env_db->startup_info->dwFlags & STARTF_USEPOSITION) )230 {231 cs->x = pdb->env_db->startup_info->dwX;232 cs->y = pdb->env_db->startup_info->dwY;233 }228 if ( !(cs->style & (WS_CHILD | WS_POPUP)) 229 && (pdb->env_db->startup_info->dwFlags & STARTF_USEPOSITION) ) 230 { 231 cs->x = pdb->env_db->startup_info->dwX; 232 cs->y = pdb->env_db->startup_info->dwY; 233 } 234 234 #endif 235 cs->x = 0;236 cs->y = 0;237 // }235 cs->x = 0; 236 cs->y = 0; 237 // } 238 238 } 239 239 if (cs->cx == CW_USEDEFAULT || cs->cx == CW_USEDEFAULT16) 240 240 { 241 241 #if 0 242 PDB *pdb = PROCESS_Current();243 if ( !(cs->style & (WS_CHILD | WS_POPUP))244 &&(pdb->env_db->startup_info->dwFlags & STARTF_USESIZE) )245 {246 cs->cx = pdb->env_db->startup_info->dwXSize;247 cs->cy = pdb->env_db->startup_info->dwYSize;248 }249 else250 {242 PDB *pdb = PROCESS_Current(); 243 if ( !(cs->style & (WS_CHILD | WS_POPUP)) 244 && (pdb->env_db->startup_info->dwFlags & STARTF_USESIZE) ) 245 { 246 cs->cx = pdb->env_db->startup_info->dwXSize; 247 cs->cy = pdb->env_db->startup_info->dwYSize; 248 } 249 else 250 { 251 251 #endif 252 cs->cx = 600; /* FIXME */253 cs->cy = 400;254 // }252 cs->cx = 600; /* FIXME */ 253 cs->cy = 400; 254 // } 255 255 } 256 256 … … 261 261 nrUserWindowLong = windowClass->getExtraWndWords(); 262 262 if(nrUserWindowLong) { 263 userWindowLong = (ULONG *)_smalloc(nrUserWindowLong);264 memset(userWindowLong, 0, nrUserWindowLong);263 userWindowLong = (ULONG *)_smalloc(nrUserWindowLong); 264 memset(userWindowLong, 0, nrUserWindowLong); 265 265 } 266 266 267 267 if ((cs->style & WS_CHILD) && cs->hwndParent) 268 268 { 269 SetParent(cs->hwndParent);270 owner = GetWindowFromHandle(cs->hwndParent);271 if(owner == NULL)272 {273 dprintf(("HwGetWindowHandleData couldn't find owner window %x!!!", cs->hwndParent));274 return FALSE;275 }269 SetParent(cs->hwndParent); 270 owner = GetWindowFromHandle(cs->hwndParent); 271 if(owner == NULL) 272 { 273 dprintf(("HwGetWindowHandleData couldn't find owner window %x!!!", cs->hwndParent)); 274 return FALSE; 275 } 276 276 } 277 277 else 278 278 { 279 if (!cs->hwndParent) {280 owner = NULL;281 }282 else283 {284 owner = GetWindowFromHandle(cs->hwndParent);285 if(owner == NULL)286 {287 dprintf(("HwGetWindowHandleData couldn't find owner window %x!!!", cs->hwndParent));288 return FALSE;289 }290 }279 if (!cs->hwndParent) { 280 owner = NULL; 281 } 282 else 283 { 284 owner = GetWindowFromHandle(cs->hwndParent); 285 if(owner == NULL) 286 { 287 dprintf(("HwGetWindowHandleData couldn't find owner window %x!!!", cs->hwndParent)); 288 return FALSE; 289 } 290 } 291 291 } 292 292 … … 297 297 298 298 hwndLinkAfter = ((cs->style & (WS_CHILD|WS_MAXIMIZE)) == WS_CHILD) 299 ? HWND_BOTTOM : HWND_TOP;299 ? HWND_BOTTOM : HWND_TOP; 300 300 301 301 #if 0 … … 306 306 { 307 307 CBT_CREATEWNDA cbtc; 308 LRESULT ret;308 LRESULT ret; 309 309 310 310 cbtc.lpcs = cs; 311 311 cbtc.hwndInsertAfter = hwndLinkAfter; 312 ret = unicode ? HOOK_CallHooksW(WH_CBT, HCBT_CREATEWND, Win32Hwnd, (LPARAM)&cbtc)313 : HOOK_CallHooksA(WH_CBT, HCBT_CREATEWND, Win32Hwnd, (LPARAM)&cbtc);314 if (ret)312 ret = unicode ? HOOK_CallHooksW(WH_CBT, HCBT_CREATEWND, Win32Hwnd, (LPARAM)&cbtc) 313 : HOOK_CallHooksA(WH_CBT, HCBT_CREATEWND, Win32Hwnd, (LPARAM)&cbtc); 314 if (ret) 315 315 { 316 TRACE_(win)("CBT-hook returned 0\n");317 wndPtr->pDriver->pFinalize(wndPtr);318 retvalue =0;319 goto end;316 TRACE_(win)("CBT-hook returned 0\n"); 317 wndPtr->pDriver->pFinalize(wndPtr); 318 retvalue = 0; 319 goto end; 320 320 } 321 321 } … … 328 328 if (!(cs->style & WS_CHILD)) 329 329 { 330 dwStyle |= WS_CLIPSIBLINGS;331 if (!(cs->style & WS_POPUP))332 {333 dwStyle |= WS_CAPTION;334 flags |= WIN_NEED_SIZE;335 }330 dwStyle |= WS_CLIPSIBLINGS; 331 if (!(cs->style & WS_POPUP)) 332 { 333 dwStyle |= WS_CAPTION; 334 flags |= WIN_NEED_SIZE; 335 } 336 336 } 337 337 if (cs->dwExStyle & WS_EX_DLGMODALFRAME) dwStyle &= ~WS_THICKFRAME; … … 348 348 if ((cs->style & WS_THICKFRAME) || !(cs->style & (WS_POPUP | WS_CHILD))) 349 349 { 350 GetMinMaxInfo(&maxSize, &maxPos, &minTrack, &maxTrack);351 if (maxSize.x < cs->cx) cs->cx = maxSize.x;352 if (maxSize.y < cs->cy) cs->cy = maxSize.y;353 if (cs->cx < minTrack.x ) cs->cx = minTrack.x;354 if (cs->cy < minTrack.y ) cs->cy = minTrack.y;350 GetMinMaxInfo(&maxSize, &maxPos, &minTrack, &maxTrack); 351 if (maxSize.x < cs->cx) cs->cx = maxSize.x; 352 if (maxSize.y < cs->cy) cs->cy = maxSize.y; 353 if (cs->cx < minTrack.x ) cs->cx = minTrack.x; 354 if (cs->cy < minTrack.y ) cs->cy = minTrack.y; 355 355 } 356 356 357 357 if(cs->style & WS_CHILD) 358 358 { 359 if(cs->cx < 0) cs->cx = 0;360 if(cs->cy < 0) cs->cy = 0;359 if(cs->cx < 0) cs->cx = 0; 360 if(cs->cy < 0) cs->cy = 0; 361 361 } 362 362 else 363 363 { 364 if (cs->cx <= 0) cs->cx = 1;365 if (cs->cy <= 0) cs->cy = 1;364 if (cs->cx <= 0) cs->cx = 1; 365 if (cs->cy <= 0) cs->cy = 1; 366 366 } 367 367 … … 370 370 rectWindow.right = cs->x + cs->cx; 371 371 rectWindow.bottom = cs->y + cs->cy; 372 rectClient = rectWindow;372 rectClient = rectWindow; 373 373 374 374 DWORD dwOSWinStyle, dwOSFrameStyle; … … 379 379 #if 1 380 380 if(cs->style & WS_CHILD) { 381 dwOSFrameStyle = 0;381 dwOSFrameStyle = 0; 382 382 } 383 383 #endif 384 384 385 385 if(cs->lpszName) 386 SetWindowText((LPSTR)cs->lpszName);386 SetWindowText((LPSTR)cs->lpszName); 387 387 388 388 OS2Hwnd = OSLibWinCreateWindow((getParent()) ? getParent()->getOS2WindowHandle() : OSLIB_HWND_DESKTOP, 389 dwOSWinStyle, dwOSFrameStyle, (char *)windowNameA,390 (owner) ? owner->getOS2WindowHandle() : OSLIB_HWND_DESKTOP,391 (hwndLinkAfter == HWND_BOTTOM) ? TRUE : FALSE,392 &OS2HwndFrame);389 dwOSWinStyle, dwOSFrameStyle, (char *)windowNameA, 390 (owner) ? owner->getOS2WindowHandle() : OSLIB_HWND_DESKTOP, 391 (hwndLinkAfter == HWND_BOTTOM) ? TRUE : FALSE, 392 &OS2HwndFrame); 393 393 394 394 if(OS2Hwnd == 0) { 395 dprintf(("Window creation failed!!"));396 return FALSE;395 dprintf(("Window creation failed!!")); 396 return FALSE; 397 397 } 398 398 399 399 if(OSLibWinSetWindowULong(OS2Hwnd, OFFSET_WIN32WNDPTR, (ULONG)this) == FALSE) { 400 dprintf(("WM_CREATE: WinSetWindowULong %X failed!!", OS2Hwnd));401 return FALSE;400 dprintf(("WM_CREATE: WinSetWindowULong %X failed!!", OS2Hwnd)); 401 return FALSE; 402 402 } 403 403 if(OSLibWinSetWindowULong(OS2Hwnd, OFFSET_WIN32PM_MAGIC, WIN32PM_MAGIC) == FALSE) { 404 dprintf(("WM_CREATE: WinSetWindowULong2 %X failed!!", OS2Hwnd));405 return FALSE;404 dprintf(("WM_CREATE: WinSetWindowULong2 %X failed!!", OS2Hwnd)); 405 return FALSE; 406 406 } 407 407 //SvL: Need to store the shared memory base, or else other apps can map it into their memory space 408 408 if(OSLibWinSetWindowULong(OS2Hwnd, OFFSET_WIN32PM_SHAREDMEM, HeapGetSharedMemBase()) == FALSE) { 409 dprintf(("WM_CREATE: WinSetWindowULong2 %X failed!!", OS2Hwnd));410 return FALSE;409 dprintf(("WM_CREATE: WinSetWindowULong2 %X failed!!", OS2Hwnd)); 410 return FALSE; 411 411 } 412 412 #if 0 413 413 if(OS2Hwnd != OS2HwndFrame) { 414 414 if(OSLibWinSetWindowULong(OS2HwndFrame, OFFSET_WIN32WNDPTR, (ULONG)this) == FALSE) { 415 dprintf(("WM_CREATE: WinSetWindowULong %X failed!!", OS2HwndFrame));416 return FALSE;415 dprintf(("WM_CREATE: WinSetWindowULong %X failed!!", OS2HwndFrame)); 416 return FALSE; 417 417 } 418 418 if(OSLibWinSetWindowULong(OS2HwndFrame, OFFSET_WIN32PM_MAGIC, WIN32PM_MAGIC) == FALSE) { 419 dprintf(("WM_CREATE: WinSetWindowULong2 %X failed!!", OS2HwndFrame));420 return FALSE;419 dprintf(("WM_CREATE: WinSetWindowULong2 %X failed!!", OS2HwndFrame)); 420 return FALSE; 421 421 } 422 422 //SvL: Need to store the shared memory base, or else other apps can map it into their memory space 423 423 if(OSLibWinSetWindowULong(OS2HwndFrame, OFFSET_WIN32PM_SHAREDMEM, HeapGetSharedMemBase()) == FALSE) { 424 dprintf(("WM_CREATE: WinSetWindowULong2 %X failed!!", OS2HwndFrame));425 return FALSE;424 dprintf(("WM_CREATE: WinSetWindowULong2 %X failed!!", OS2HwndFrame)); 425 return FALSE; 426 426 } 427 427 } 428 428 #endif 429 430 fakeWinBase.hwndThisObject = OS2Hwnd; 431 fakeWinBase.pWindowClass = windowClass; 432 *(PULONG)&fakeWinBase -= 0x90 - 8; 433 // SetFakeOpen32(); 429 434 430 435 /* Set the window menu */ 431 436 if ((dwStyle & (WS_CAPTION | WS_CHILD)) == WS_CAPTION ) 432 437 { 433 if (cs->hMenu) SetMenu(cs->hMenu);434 else435 {436 if (windowClass->getMenuNameA()) {437 cs->hMenu = LoadMenuA(cs->hInstance, windowClass->getMenuNameA());438 if (cs->hMenu) SetMenu(cs->hMenu );439 }440 }441 } 442 else windowId = (UINT)cs->hMenu;438 if (cs->hMenu) SetMenu(cs->hMenu); 439 else 440 { 441 if (windowClass->getMenuNameA()) { 442 cs->hMenu = LoadMenuA(cs->hInstance, windowClass->getMenuNameA()); 443 if (cs->hMenu) SetMenu(cs->hMenu ); 444 } 445 } 446 } 447 else windowId = (UINT)cs->hMenu; 443 448 444 449 //Set icon from class 445 450 if(windowClass->getIcon()) 446 SetIcon(windowClass->getIcon());451 SetIcon(windowClass->getIcon()); 447 452 448 453 if(getParent()) { 449 SetWindowPos(getParent()->getWindowHandle(), rectClient.left, rectClient.top,450 rectClient.right-rectClient.left,451 rectClient.bottom-rectClient.top,452 SWP_NOACTIVATE | SWP_NOZORDER);454 SetWindowPos(getParent()->getWindowHandle(), rectClient.left, rectClient.top, 455 rectClient.right-rectClient.left, 456 rectClient.bottom-rectClient.top, 457 SWP_NOACTIVATE | SWP_NOZORDER); 453 458 } 454 459 else { 455 SetWindowPos(HWND_TOP, rectClient.left, rectClient.top,456 rectClient.right-rectClient.left,457 rectClient.bottom-rectClient.top,458 SWP_NOACTIVATE);460 SetWindowPos(HWND_TOP, rectClient.left, rectClient.top, 461 rectClient.right-rectClient.left, 462 rectClient.bottom-rectClient.top, 463 SWP_NOACTIVATE); 459 464 } 460 465 //Get the client window rectangle … … 470 475 if(SendInternalMessage(WM_NCCREATE, 0, (LPARAM)cs) ) 471 476 { 472 //doesn't work right, messes up client rectangle477 //doesn't work right, messes up client rectangle 473 478 #if 0 474 SendNCCalcSize(FALSE, &rectWindow, NULL, NULL, 0, &rectClient );479 SendNCCalcSize(FALSE, &rectWindow, NULL, NULL, 0, &rectClient ); 475 480 #endif 476 OffsetRect(&rectWindow, maxPos.x - rectWindow.left, maxPos.y - rectWindow.top);477 dprintf(("Sending WM_CREATE"));478 if( (SendInternalMessage(WM_CREATE, 0, (LPARAM)cs )) != -1 )479 {480 if(!(flags & WIN_NEED_SIZE)) {481 SendMessageA(WM_SIZE, SIZE_RESTORED,482 MAKELONG(rectClient.right-rectClient.left,483 rectClient.bottom-rectClient.top));484 SendMessageA(WM_MOVE, 0, MAKELONG( rectClient.left, rectClient.top ) );485 }486 if (cs->style & WS_VISIBLE) ShowWindow( sw );481 OffsetRect(&rectWindow, maxPos.x - rectWindow.left, maxPos.y - rectWindow.top); 482 dprintf(("Sending WM_CREATE")); 483 if( (SendInternalMessage(WM_CREATE, 0, (LPARAM)cs )) != -1 ) 484 { 485 if(!(flags & WIN_NEED_SIZE)) { 486 SendMessageA(WM_SIZE, SIZE_RESTORED, 487 MAKELONG(rectClient.right-rectClient.left, 488 rectClient.bottom-rectClient.top)); 489 SendMessageA(WM_MOVE, 0, MAKELONG( rectClient.left, rectClient.top ) ); 490 } 491 if (cs->style & WS_VISIBLE) ShowWindow( sw ); 487 492 488 493 #if 0 489 /* Call WH_SHELL hook */490 491 if (!(dwStyle & WS_CHILD) && !owner)492 HOOK_CallHooks16( WH_SHELL, HSHELL_WINDOWCREATED, hwnd, 0 );494 /* Call WH_SHELL hook */ 495 496 if (!(dwStyle & WS_CHILD) && !owner) 497 HOOK_CallHooks16( WH_SHELL, HSHELL_WINDOWCREATED, hwnd, 0 ); 493 498 #endif 494 SetLastError(0);495 return TRUE;496 }499 SetLastError(0); 500 return TRUE; 501 } 497 502 } 498 503 fCreated = FALSE; … … 504 509 #if 0 505 510 /*********************************************************************** 506 * WINPOS_MinMaximize511 * WINPOS_MinMaximize 507 512 * 508 513 * Fill in lpRect and return additional flags to be used with SetWindowPos(). … … 523 528 if( dwStyle & WS_MINIMIZE ) 524 529 { 525 if( !SendInternalMessageA(WM_QUERYOPEN, 0, 0L ) )526 return (SWP_NOSIZE | SWP_NOMOVE);527 swpFlags |= SWP_NOCOPYBITS;530 if( !SendInternalMessageA(WM_QUERYOPEN, 0, 0L ) ) 531 return (SWP_NOSIZE | SWP_NOMOVE); 532 swpFlags |= SWP_NOCOPYBITS; 528 533 } 529 534 switch( cmd ) 530 535 { 531 case SW_MINIMIZE:532 if( dwStyle & WS_MAXIMIZE)533 {534 flags |= WIN_RESTORE_MAX;535 dwStyle &= ~WS_MAXIMIZE;536 }537 else538 flags &= ~WIN_RESTORE_MAX;539 dwStyle |= WS_MINIMIZE;536 case SW_MINIMIZE: 537 if( dwStyle & WS_MAXIMIZE) 538 { 539 flags |= WIN_RESTORE_MAX; 540 dwStyle &= ~WS_MAXIMIZE; 541 } 542 else 543 flags &= ~WIN_RESTORE_MAX; 544 dwStyle |= WS_MINIMIZE; 540 545 541 546 #if 0 542 if( flags & WIN_NATIVE )543 if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, TRUE ) )544 swpFlags |= MINMAX_NOSWP;547 if( flags & WIN_NATIVE ) 548 if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, TRUE ) ) 549 swpFlags |= MINMAX_NOSWP; 545 550 #endif 546 551 547 lpPos->ptIconPos = WINPOS_FindIconPos( wndPtr, lpPos->ptIconPos );548 549 SetRect(lpRect, lpPos->ptIconPos.x, lpPos->ptIconPos.y,550 GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON) );551 swpFlags |= SWP_NOCOPYBITS;552 break;553 554 case SW_MAXIMIZE:555 WINPOS_GetMinMaxInfo( wndPtr, &size, &pt, NULL, NULL );556 557 if( dwStyle & WS_MINIMIZE )558 {559 if( flags & WIN_NATIVE )560 if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, FALSE ) )561 swpFlags |= MINMAX_NOSWP;562 563 WINPOS_ShowIconTitle( wndPtr, FALSE );564 dwStyle &= ~WS_MINIMIZE;565 }566 dwStyle |= WS_MAXIMIZE;567 568 SetRect16( lpRect, lpPos->ptMaxPos.x, lpPos->ptMaxPos.y,569 size.x, size.y );570 break;571 572 case SW_RESTORE:573 if( dwStyle & WS_MINIMIZE )574 {575 if( flags & WIN_NATIVE )576 if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, FALSE ) )577 swpFlags |= MINMAX_NOSWP;578 579 dwStyle &= ~WS_MINIMIZE;580 WINPOS_ShowIconTitle( wndPtr, FALSE );581 582 if( flags & WIN_RESTORE_MAX)583 {584 /* Restore to maximized position */585 CONV_POINT16TO32( &lpPos->ptMaxPos, &pt );586 WINPOS_GetMinMaxInfo( wndPtr, &size, &pt, NULL, NULL);587 CONV_POINT32TO16( &pt, &lpPos->ptMaxPos );588 dwStyle |= WS_MAXIMIZE;589 SetRect16( lpRect, lpPos->ptMaxPos.x, lpPos->ptMaxPos.y, size.x, size.y );590 break;591 }592 }593 else594 if( !(dwStyle & WS_MAXIMIZE) ) return (UINT16)(-1);595 else dwStyle &= ~WS_MAXIMIZE;596 597 /* Restore to normal position */598 599 *lpRect = lpPos->rectNormal;600 lpRect->right -= lpRect->left;601 lpRect->bottom -= lpRect->top;602 603 break;552 lpPos->ptIconPos = WINPOS_FindIconPos( wndPtr, lpPos->ptIconPos ); 553 554 SetRect(lpRect, lpPos->ptIconPos.x, lpPos->ptIconPos.y, 555 GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON) ); 556 swpFlags |= SWP_NOCOPYBITS; 557 break; 558 559 case SW_MAXIMIZE: 560 WINPOS_GetMinMaxInfo( wndPtr, &size, &pt, NULL, NULL ); 561 562 if( dwStyle & WS_MINIMIZE ) 563 { 564 if( flags & WIN_NATIVE ) 565 if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, FALSE ) ) 566 swpFlags |= MINMAX_NOSWP; 567 568 WINPOS_ShowIconTitle( wndPtr, FALSE ); 569 dwStyle &= ~WS_MINIMIZE; 570 } 571 dwStyle |= WS_MAXIMIZE; 572 573 SetRect16( lpRect, lpPos->ptMaxPos.x, lpPos->ptMaxPos.y, 574 size.x, size.y ); 575 break; 576 577 case SW_RESTORE: 578 if( dwStyle & WS_MINIMIZE ) 579 { 580 if( flags & WIN_NATIVE ) 581 if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, FALSE ) ) 582 swpFlags |= MINMAX_NOSWP; 583 584 dwStyle &= ~WS_MINIMIZE; 585 WINPOS_ShowIconTitle( wndPtr, FALSE ); 586 587 if( flags & WIN_RESTORE_MAX) 588 { 589 /* Restore to maximized position */ 590 CONV_POINT16TO32( &lpPos->ptMaxPos, &pt ); 591 WINPOS_GetMinMaxInfo( wndPtr, &size, &pt, NULL, NULL); 592 CONV_POINT32TO16( &pt, &lpPos->ptMaxPos ); 593 dwStyle |= WS_MAXIMIZE; 594 SetRect16( lpRect, lpPos->ptMaxPos.x, lpPos->ptMaxPos.y, size.x, size.y ); 595 break; 596 } 597 } 598 else 599 if( !(dwStyle & WS_MAXIMIZE) ) return (UINT16)(-1); 600 else dwStyle &= ~WS_MAXIMIZE; 601 602 /* Restore to normal position */ 603 604 *lpRect = lpPos->rectNormal; 605 lpRect->right -= lpRect->left; 606 lpRect->bottom -= lpRect->top; 607 608 break; 604 609 } 605 610 } else swpFlags |= SWP_NOSIZE | SWP_NOMOVE; … … 608 613 #endif 609 614 /******************************************************************* 610 * GetMinMaxInfo615 * GetMinMaxInfo 611 616 * 612 617 * Get the minimized and maximized information for a window. 613 618 */ 614 619 void Win32BaseWindow::GetMinMaxInfo(POINT *maxSize, POINT *maxPos, 615 POINT *minTrack, POINT *maxTrack )620 POINT *minTrack, POINT *maxTrack ) 616 621 { 617 622 MINMAXINFO MinMax; … … 630 635 else if (HAS_DLGFRAME( dwStyle, dwExStyle )) 631 636 { 632 xinc = GetSystemMetrics(SM_CXDLGFRAME);633 yinc = GetSystemMetrics(SM_CYDLGFRAME);637 xinc = GetSystemMetrics(SM_CXDLGFRAME); 638 yinc = GetSystemMetrics(SM_CYDLGFRAME); 634 639 } 635 640 else 636 641 { 637 xinc = yinc = 0;638 if (HAS_THICKFRAME(dwStyle))639 {640 xinc += GetSystemMetrics(SM_CXFRAME);641 yinc += GetSystemMetrics(SM_CYFRAME);642 }643 if (dwStyle & WS_BORDER)644 {645 xinc += GetSystemMetrics(SM_CXBORDER);646 yinc += GetSystemMetrics(SM_CYBORDER);647 }642 xinc = yinc = 0; 643 if (HAS_THICKFRAME(dwStyle)) 644 { 645 xinc += GetSystemMetrics(SM_CXFRAME); 646 yinc += GetSystemMetrics(SM_CYFRAME); 647 } 648 if (dwStyle & WS_BORDER) 649 { 650 xinc += GetSystemMetrics(SM_CXBORDER); 651 yinc += GetSystemMetrics(SM_CYBORDER); 652 } 648 653 } 649 654 MinMax.ptMaxSize.x += 2 * xinc; … … 653 658 lpPos = (LPINTERNALPOS)GetPropA( hwndSelf, atomInternalPos ); 654 659 if( lpPos && !EMPTYPOINT(lpPos->ptMaxPos) ) 655 CONV_POINT16TO32( &lpPos->ptMaxPos, &MinMax.ptMaxPosition );660 CONV_POINT16TO32( &lpPos->ptMaxPos, &MinMax.ptMaxPosition ); 656 661 else 657 662 { 658 663 #endif 659 MinMax.ptMaxPosition.x = -xinc;660 MinMax.ptMaxPosition.y = -yinc;664 MinMax.ptMaxPosition.x = -xinc; 665 MinMax.ptMaxPosition.y = -yinc; 661 666 // } 662 667 … … 666 671 667 672 dprintf(("GetMinMaxInfo: %ld %ld / %ld %ld / %ld %ld / %ld %ld\n", 668 MinMax.ptMaxSize.x, MinMax.ptMaxSize.y,669 MinMax.ptMaxPosition.x, MinMax.ptMaxPosition.y,670 MinMax.ptMaxTrackSize.x, MinMax.ptMaxTrackSize.y,671 MinMax.ptMinTrackSize.x, MinMax.ptMinTrackSize.y));673 MinMax.ptMaxSize.x, MinMax.ptMaxSize.y, 674 MinMax.ptMaxPosition.x, MinMax.ptMaxPosition.y, 675 MinMax.ptMaxTrackSize.x, MinMax.ptMaxTrackSize.y, 676 MinMax.ptMinTrackSize.x, MinMax.ptMinTrackSize.y)); 672 677 MinMax.ptMaxTrackSize.x = MAX( MinMax.ptMaxTrackSize.x, 673 MinMax.ptMinTrackSize.x );678 MinMax.ptMinTrackSize.x ); 674 679 MinMax.ptMaxTrackSize.y = MAX( MinMax.ptMaxTrackSize.y, 675 MinMax.ptMinTrackSize.y );680 MinMax.ptMinTrackSize.y ); 676 681 677 682 if (maxSize) *maxSize = MinMax.ptMaxSize; … … 681 686 } 682 687 /*********************************************************************** 683 * WINPOS_SendNCCalcSize688 * WINPOS_SendNCCalcSize 684 689 * 685 690 * Send a WM_NCCALCSIZE message to a window. … … 689 694 */ 690 695 LONG Win32BaseWindow::SendNCCalcSize(BOOL calcValidRect, RECT *newWindowRect, RECT *oldWindowRect, 691 RECT *oldClientRect, WINDOWPOS *winpos,692 RECT *newClientRect )696 RECT *oldClientRect, WINDOWPOS *winpos, 697 RECT *newClientRect ) 693 698 { 694 699 NCCALCSIZE_PARAMS params; … … 699 704 if (calcValidRect) 700 705 { 701 winposCopy = *winpos;702 params.rgrc[1] = *oldWindowRect;703 params.rgrc[2] = *oldClientRect;704 params.lppos = &winposCopy;706 winposCopy = *winpos; 707 params.rgrc[1] = *oldWindowRect; 708 params.rgrc[2] = *oldClientRect; 709 params.lppos = &winposCopy; 705 710 } 706 711 result = SendInternalMessageA(WM_NCCALCSIZE, calcValidRect, 707 (LPARAM)¶ms );712 (LPARAM)¶ms ); 708 713 *newClientRect = params.rgrc[0]; 709 714 return result; … … 727 732 { 728 733 if(SendInternalMessageA(WM_CLOSE, 0, 0) == 0) { 729 return 0; //app handles this message734 return 0; //app handles this message 730 735 } 731 736 delete this; … … 762 767 #if 1 763 768 if(fCreated == FALSE) { 764 return 1;769 return 1; 765 770 } 766 771 #endif … … 774 779 #if 1 775 780 if(fCreated == FALSE) { 776 return 1;781 return 1; 777 782 } 778 783 #endif … … 785 790 dprintf(("MsgMove to (%d,%d)", x, y)); 786 791 if(fCreated == FALSE) { 787 return 1;792 return 1; 788 793 } 789 794 … … 796 801 switch(cmd) { 797 802 case CMD_MENU: 798 return SendInternalMessageA(WM_COMMAND, MAKELONG(Id, 0), 0);803 return SendInternalMessageA(WM_COMMAND, MAKELONG(Id, 0), 0); 799 804 case CMD_CONTROL: 800 return 0; //todo805 return 0; //todo 801 806 case CMD_ACCELERATOR: 802 dprintf(("accelerator command"));803 return 0; //todo807 dprintf(("accelerator command")); 808 return 0; //todo 804 809 } 805 810 return 0; … … 820 825 821 826 if(fCreated == FALSE) {//Solitaire crashes if it receives a WM_SIZE during CreateWindowEx (normal or our fault?) 822 return 1;827 return 1; 823 828 } 824 829 825 830 if(fMinimize) { 826 fwSizeType = SIZE_MINIMIZED;831 fwSizeType = SIZE_MINIMIZED; 827 832 } 828 833 else 829 834 if(fMaximize) { 830 fwSizeType = SIZE_MAXIMIZED;835 fwSizeType = SIZE_MAXIMIZED; 831 836 } 832 837 else fwSizeType = SIZE_RESTORED; … … 840 845 if(SendInternalMessageA(WM_NCACTIVATE, fActivate, 0) == FALSE) 841 846 { 842 if(!fActivate) {843 return 1;844 }847 if(!fActivate) { 848 return 1; 849 } 845 850 } 846 851 return SendInternalMessageA(WM_ACTIVATE, (fActivate) ? WA_ACTIVE : WA_INACTIVE, hwnd); … … 862 867 lParam |= (scancode << 16); 863 868 if(keyflags & KEY_ALTDOWN) 864 lParam |= (1<<29);869 lParam |= (1<<29); 865 870 if(keyflags & KEY_PREVDOWN) 866 lParam |= (1<<30);871 lParam |= (1<<30); 867 872 if(keyflags & KEY_UP) 868 lParam |= (1<<31);873 lParam |= (1<<31); 869 874 if(keyflags & KEY_DEADKEY) { 870 dprintf(("WM_DEADCHAR: %x %x %08x", OS2Hwnd, cmd, lParam));871 return SendInternalMessageA(WM_DEADCHAR, cmd, lParam);875 dprintf(("WM_DEADCHAR: %x %x %08x", OS2Hwnd, cmd, lParam)); 876 return SendInternalMessageA(WM_DEADCHAR, cmd, lParam); 872 877 } 873 878 else { 874 dprintf(("WM_CHAR: %x %x %08x", OS2Hwnd, cmd, lParam));875 return SendInternalMessageA(WM_CHAR, cmd, lParam);879 dprintf(("WM_CHAR: %x %x %08x", OS2Hwnd, cmd, lParam)); 880 return SendInternalMessageA(WM_CHAR, cmd, lParam); 876 881 } 877 882 } … … 881 886 { 882 887 if(hwnd == 0) { 883 //other app lost focus884 SendInternalMessageA(WM_ACTIVATEAPP, TRUE, 0); //TODO: Need thread id from hwnd app888 //other app lost focus 889 SendInternalMessageA(WM_ACTIVATEAPP, TRUE, 0); //TODO: Need thread id from hwnd app 885 890 } 886 891 return SendInternalMessageA(WM_SETFOCUS, hwnd, 0); … … 891 896 { 892 897 if(hwnd == 0) { 893 //other app lost focus894 SendInternalMessageA(WM_ACTIVATEAPP, FALSE, 0); //TODO: Need thread id from hwnd app898 //other app lost focus 899 SendInternalMessageA(WM_ACTIVATEAPP, FALSE, 0); //TODO: Need thread id from hwnd app 895 900 } 896 901 return SendInternalMessageA(WM_KILLFOCUS, hwnd, 0); … … 905 910 dprintf(("MsgButton to (%d,%d)", ncx, ncy)); 906 911 switch(msg) { 907 case BUTTON_LEFTDOWN:908 win32msg = WM_LBUTTONDOWN;909 win32ncmsg = WM_NCLBUTTONDOWN;910 break;911 case BUTTON_LEFTUP:912 win32msg = WM_LBUTTONUP;913 win32ncmsg = WM_NCLBUTTONUP;914 break;915 case BUTTON_LEFTDBLCLICK:916 win32msg = WM_LBUTTONDBLCLK;917 win32ncmsg = WM_NCLBUTTONDBLCLK;918 break;919 case BUTTON_RIGHTUP:920 win32msg = WM_RBUTTONUP;921 win32ncmsg = WM_NCRBUTTONUP;922 break;923 case BUTTON_RIGHTDOWN:924 win32msg = WM_RBUTTONDOWN;925 win32ncmsg = WM_NCRBUTTONDOWN;926 break;927 case BUTTON_RIGHTDBLCLICK:928 win32msg = WM_RBUTTONDBLCLK;929 win32ncmsg = WM_NCRBUTTONDBLCLK;930 break;931 case BUTTON_MIDDLEUP:932 win32msg = WM_MBUTTONUP;933 win32ncmsg = WM_NCMBUTTONUP;934 break;935 case BUTTON_MIDDLEDOWN:936 win32msg = WM_MBUTTONDOWN;937 win32ncmsg = WM_NCMBUTTONDOWN;938 break;939 case BUTTON_MIDDLEDBLCLICK:940 win32msg = WM_MBUTTONDBLCLK;941 win32ncmsg = WM_NCMBUTTONDBLCLK;942 break;943 default:944 dprintf(("Win32BaseWindow::Button: invalid msg!!!!"));945 return 1;912 case BUTTON_LEFTDOWN: 913 win32msg = WM_LBUTTONDOWN; 914 win32ncmsg = WM_NCLBUTTONDOWN; 915 break; 916 case BUTTON_LEFTUP: 917 win32msg = WM_LBUTTONUP; 918 win32ncmsg = WM_NCLBUTTONUP; 919 break; 920 case BUTTON_LEFTDBLCLICK: 921 win32msg = WM_LBUTTONDBLCLK; 922 win32ncmsg = WM_NCLBUTTONDBLCLK; 923 break; 924 case BUTTON_RIGHTUP: 925 win32msg = WM_RBUTTONUP; 926 win32ncmsg = WM_NCRBUTTONUP; 927 break; 928 case BUTTON_RIGHTDOWN: 929 win32msg = WM_RBUTTONDOWN; 930 win32ncmsg = WM_NCRBUTTONDOWN; 931 break; 932 case BUTTON_RIGHTDBLCLICK: 933 win32msg = WM_RBUTTONDBLCLK; 934 win32ncmsg = WM_NCRBUTTONDBLCLK; 935 break; 936 case BUTTON_MIDDLEUP: 937 win32msg = WM_MBUTTONUP; 938 win32ncmsg = WM_NCMBUTTONUP; 939 break; 940 case BUTTON_MIDDLEDOWN: 941 win32msg = WM_MBUTTONDOWN; 942 win32ncmsg = WM_NCMBUTTONDOWN; 943 break; 944 case BUTTON_MIDDLEDBLCLICK: 945 win32msg = WM_MBUTTONDBLCLK; 946 win32ncmsg = WM_NCMBUTTONDBLCLK; 947 break; 948 default: 949 dprintf(("Win32BaseWindow::Button: invalid msg!!!!")); 950 return 1; 946 951 } 947 952 if(win32msg == WM_MBUTTONDBLCLK || win32msg == WM_RBUTTONDBLCLK || win32msg == WM_LBUTTONDBLCLK) { 948 if(!(windowClass->getClassLongA(GCL_STYLE) & CS_DBLCLKS)) {949 return 1;950 }953 if(!(windowClass->getClassLongA(GCL_STYLE) & CS_DBLCLKS)) { 954 return 1; 955 } 951 956 } 952 957 SendInternalMessageA(WM_SETCURSOR, Win32Hwnd, MAKELONG(lastHitTestVal, win32ncmsg)); … … 954 959 //WM_NC*BUTTON* is posted when the cursor is in a non-client area of the window 955 960 if(lastHitTestVal != HTCLIENT) { 956 SendInternalMessageA(win32ncmsg, lastHitTestVal, MAKELONG(ncx, ncy)); //TODO:961 SendInternalMessageA(win32ncmsg, lastHitTestVal, MAKELONG(ncx, ncy)); //TODO: 957 962 } 958 963 return SendInternalMessageA(win32msg, 0, MAKELONG(clx, cly)); … … 966 971 967 972 if(keystate & WMMOVE_LBUTTON) 968 winstate |= MK_LBUTTON;973 winstate |= MK_LBUTTON; 969 974 if(keystate & WMMOVE_RBUTTON) 970 winstate |= MK_RBUTTON;975 winstate |= MK_RBUTTON; 971 976 if(keystate & WMMOVE_MBUTTON) 972 winstate |= MK_MBUTTON;977 winstate |= MK_MBUTTON; 973 978 if(keystate & WMMOVE_SHIFT) 974 winstate |= MK_SHIFT;979 winstate |= MK_SHIFT; 975 980 if(keystate & WMMOVE_CTRL) 976 winstate |= MK_CONTROL;981 winstate |= MK_CONTROL; 977 982 978 983 if(lastHitTestVal != HTCLIENT) { 979 setcursormsg = WM_NCMOUSEMOVE;984 setcursormsg = WM_NCMOUSEMOVE; 980 985 } 981 986 //TODO: hiword should be 0 if window enters menu mode (SDK docs) … … 984 989 //WM_NCMOUSEMOVE is posted when the cursor moves into a non-client area of the window 985 990 if(lastHitTestVal != HTCLIENT) { 986 SendInternalMessageA(WM_NCMOUSEMOVE, lastHitTestVal, MAKELONG(x, y));991 SendInternalMessageA(WM_NCMOUSEMOVE, lastHitTestVal, MAKELONG(x, y)); 987 992 } 988 993 return SendInternalMessageA(WM_MOUSEMOVE, keystate, MAKELONG(x, y)); … … 996 1001 //****************************************************************************** 997 1002 //TODO: Is the clipper region of the window DC equal to the invalidated rectangle? 998 // (or are we simply erasing too much here)1003 // (or are we simply erasing too much here) 999 1004 //****************************************************************************** 1000 1005 ULONG Win32BaseWindow::MsgEraseBackGround(HDC hdc) … … 1004 1009 1005 1010 if (hdcErase == 0) 1006 hdcErase = O32_GetDC(OS2Hwnd);1011 hdcErase = O32_GetDC(OS2Hwnd); 1007 1012 1008 1013 if(isIcon) 1009 rc = SendInternalMessageA(WM_ICONERASEBKGND, hdcErase, 0);1014 rc = SendInternalMessageA(WM_ICONERASEBKGND, hdcErase, 0); 1010 1015 else 1011 rc = SendInternalMessageA(WM_ERASEBKGND, hdcErase, 0);1016 rc = SendInternalMessageA(WM_ERASEBKGND, hdcErase, 0); 1012 1017 if (hdc == 0) 1013 O32_ReleaseDC(OS2Hwnd, hdcErase);1018 O32_ReleaseDC(OS2Hwnd, hdcErase); 1014 1019 return (rc); 1015 1020 } … … 1019 1024 { 1020 1025 if(isUnicode) { 1021 return SendInternalMessageW(WM_SETTEXT, 0, (LPARAM)lpsz);1026 return SendInternalMessageW(WM_SETTEXT, 0, (LPARAM)lpsz); 1022 1027 } 1023 1028 else return SendInternalMessageA(WM_SETTEXT, 0, (LPARAM)lpsz); … … 1035 1040 { 1036 1041 if(isUnicode) { 1037 SendInternalMessageW(WM_GETTEXT, wndNameLength, (LPARAM)windowNameW);1042 SendInternalMessageW(WM_GETTEXT, wndNameLength, (LPARAM)windowNameW); 1038 1043 } 1039 1044 else { 1040 SendInternalMessageA(WM_GETTEXT, wndNameLength, (LPARAM)windowNameA);1045 SendInternalMessageA(WM_GETTEXT, wndNameLength, (LPARAM)windowNameA); 1041 1046 } 1042 1047 return windowNameA; … … 1049 1054 { 1050 1055 case WM_GETTEXTLENGTH: 1051 return wndNameLength;1056 return wndNameLength; 1052 1057 1053 1058 case WM_GETTEXT: //TODO: SS_ICON controls 1054 strncpy((LPSTR)lParam, windowNameA, wParam);1055 return min(wndNameLength, wParam);1059 strncpy((LPSTR)lParam, windowNameA, wParam); 1060 return min(wndNameLength, wParam); 1056 1061 1057 1062 case WM_SETTEXT: 1058 return 0;1063 return 0; 1059 1064 1060 1065 case WM_SETREDRAW: 1061 if(wParam)1062 SetWindowLongA (GWL_STYLE, GetWindowLongA (GWL_STYLE) | WS_VISIBLE);1063 elseSetWindowLongA (GWL_STYLE, GetWindowLongA (GWL_STYLE) & ~WS_VISIBLE);1064 1065 return 0; //TODO1066 if(wParam) 1067 SetWindowLongA (GWL_STYLE, GetWindowLongA (GWL_STYLE) | WS_VISIBLE); 1068 else SetWindowLongA (GWL_STYLE, GetWindowLongA (GWL_STYLE) & ~WS_VISIBLE); 1069 1070 return 0; //TODO 1066 1071 1067 1072 case WM_NCCREATE: 1068 return(TRUE);1073 return(TRUE); 1069 1074 1070 1075 case WM_CTLCOLORMSGBOX: … … 1075 1080 case WM_CTLCOLORSTATIC: 1076 1081 case WM_CTLCOLORSCROLLBAR: 1077 SetBkColor((HDC)wParam, GetSysColor(COLOR_WINDOW));1078 SetTextColor((HDC)wParam, GetSysColor(COLOR_WINDOWTEXT));1079 return GetSysColorBrush(COLOR_BTNFACE);1082 SetBkColor((HDC)wParam, GetSysColor(COLOR_WINDOW)); 1083 SetTextColor((HDC)wParam, GetSysColor(COLOR_WINDOWTEXT)); 1084 return GetSysColorBrush(COLOR_BTNFACE); 1080 1085 1081 1086 case WM_PARENTNOTIFY: 1082 return 0;1087 return 0; 1083 1088 1084 1089 case WM_MOUSEACTIVATE: 1085 1090 { 1086 DWORD dwStyle = GetWindowLongA(GWL_STYLE);1087 DWORD dwExStyle = GetWindowLongA(GWL_EXSTYLE);1088 dprintf(("DefWndProc: WM_MOUSEACTIVATE for %x Msg %s", Win32Hwnd, GetMsgText(HIWORD(lParam))));1089 if(dwStyle & WS_CHILD && !(dwExStyle & WS_EX_NOPARENTNOTIFY) )1090 {1091 if(getParent()) {1092 LRESULT rc = getParent()->SendMessageA(WM_MOUSEACTIVATE, wParam, lParam );1093 if(rc)return rc;1094 }1095 }1096 return (LOWORD(lParam) == HTCAPTION) ? MA_NOACTIVATE : MA_ACTIVATE;1091 DWORD dwStyle = GetWindowLongA(GWL_STYLE); 1092 DWORD dwExStyle = GetWindowLongA(GWL_EXSTYLE); 1093 dprintf(("DefWndProc: WM_MOUSEACTIVATE for %x Msg %s", Win32Hwnd, GetMsgText(HIWORD(lParam)))); 1094 if(dwStyle & WS_CHILD && !(dwExStyle & WS_EX_NOPARENTNOTIFY) ) 1095 { 1096 if(getParent()) { 1097 LRESULT rc = getParent()->SendMessageA(WM_MOUSEACTIVATE, wParam, lParam ); 1098 if(rc) return rc; 1099 } 1100 } 1101 return (LOWORD(lParam) == HTCAPTION) ? MA_NOACTIVATE : MA_ACTIVATE; 1097 1102 } 1098 1103 case WM_SETCURSOR: 1099 1104 { 1100 DWORD dwStyle = GetWindowLongA(GWL_STYLE);1101 DWORD dwExStyle = GetWindowLongA(GWL_EXSTYLE);1102 dprintf(("DefWndProc: WM_SETCURSOR for %x Msg %s", Win32Hwnd, GetMsgText(HIWORD(lParam))));1103 if(dwStyle & WS_CHILD && !(dwExStyle & WS_EX_NOPARENTNOTIFY) )1104 {1105 if(getParent()) {1106 LRESULT rc = getParent()->SendMessageA(WM_SETCURSOR, wParam, lParam);1107 if(rc)return rc;1108 }1109 }1110 return 1;1105 DWORD dwStyle = GetWindowLongA(GWL_STYLE); 1106 DWORD dwExStyle = GetWindowLongA(GWL_EXSTYLE); 1107 dprintf(("DefWndProc: WM_SETCURSOR for %x Msg %s", Win32Hwnd, GetMsgText(HIWORD(lParam)))); 1108 if(dwStyle & WS_CHILD && !(dwExStyle & WS_EX_NOPARENTNOTIFY) ) 1109 { 1110 if(getParent()) { 1111 LRESULT rc = getParent()->SendMessageA(WM_SETCURSOR, wParam, lParam); 1112 if(rc) return rc; 1113 } 1114 } 1115 return 1; 1111 1116 } 1112 1117 case WM_MOUSEMOVE: 1113 return 0;1118 return 0; 1114 1119 1115 1120 case WM_WINDOWPOSCHANGED: … … 1117 1122 1118 1123 /* undocumented SWP flags - from SDK 3.1 */ 1119 #define SWP_NOCLIENTSIZE 0x08001120 #define SWP_NOCLIENTMOVE 0x10001121 1122 PWINDOWPOS wpos = (PWINDOWPOS)lParam;1123 WPARAM wp= SIZE_RESTORED;1124 1125 if (!(wpos->flags & SWP_NOCLIENTMOVE))1126 SendMessageA(WM_MOVE, 0, MAKELONG(rectClient.left, rectClient.top));1127 1128 if (!(wpos->flags & SWP_NOCLIENTSIZE))1129 {1130 if (dwStyle & WS_MAXIMIZE) wp = SIZE_MAXIMIZED;1131 else if (dwStyle & WS_MINIMIZE) wp = SIZE_MINIMIZED;1132 1133 SendMessageA(WM_SIZE, wp, MAKELONG(rectClient.right- rectClient.left,1134 rectClient.bottom - rectClient.top));1135 }1136 return 0;1124 #define SWP_NOCLIENTSIZE 0x0800 1125 #define SWP_NOCLIENTMOVE 0x1000 1126 1127 PWINDOWPOS wpos = (PWINDOWPOS)lParam; 1128 WPARAM wp = SIZE_RESTORED; 1129 1130 if (!(wpos->flags & SWP_NOCLIENTMOVE)) 1131 SendMessageA(WM_MOVE, 0, MAKELONG(rectClient.left, rectClient.top)); 1132 1133 if (!(wpos->flags & SWP_NOCLIENTSIZE)) 1134 { 1135 if (dwStyle & WS_MAXIMIZE) wp = SIZE_MAXIMIZED; 1136 else if (dwStyle & WS_MINIMIZE) wp = SIZE_MINIMIZED; 1137 1138 SendMessageA(WM_SIZE, wp, MAKELONG(rectClient.right - rectClient.left, 1139 rectClient.bottom - rectClient.top)); 1140 } 1141 return 0; 1137 1142 } 1138 1143 case WM_ERASEBKGND: … … 1142 1147 int rc; 1143 1148 1144 if (!windowClass->getBackgroundBrush()) return 0;1145 1146 /* Since WM_ERASEBKGND may receive either a window dc or a */1147 /* client dc, the area to be erased has to be retrieved from */1148 /* the device context.*/1149 rc = GetClipBox( (HDC)wParam, &rect );1150 if ((rc == SIMPLEREGION) || (rc == COMPLEXREGION))1151 FillRect( (HDC)wParam, &rect, windowClass->getBackgroundBrush());1152 1153 return 1;1149 if (!windowClass->getBackgroundBrush()) return 0; 1150 1151 /* Since WM_ERASEBKGND may receive either a window dc or a */ 1152 /* client dc, the area to be erased has to be retrieved from */ 1153 /* the device context. */ 1154 rc = GetClipBox( (HDC)wParam, &rect ); 1155 if ((rc == SIMPLEREGION) || (rc == COMPLEXREGION)) 1156 FillRect( (HDC)wParam, &rect, windowClass->getBackgroundBrush()); 1157 1158 return 1; 1154 1159 } 1155 1160 … … 1163 1168 case WM_NCMBUTTONUP: 1164 1169 case WM_NCMBUTTONDBLCLK: 1165 return 0;//TODO: Send WM_SYSCOMMAND if required1170 return 0; //TODO: Send WM_SYSCOMMAND if required 1166 1171 1167 1172 case WM_NCHITTEST: //TODO: Calculate position of 1168 return HTCLIENT;1173 return HTCLIENT; 1169 1174 1170 1175 default: 1171 return 1;1176 return 1; 1172 1177 } 1173 1178 } … … 1179 1184 { 1180 1185 case WM_GETTEXTLENGTH: 1181 return wndNameLength;1186 return wndNameLength; 1182 1187 1183 1188 case WM_GETTEXT: //TODO: SS_ICON controls 1184 lstrcpynW((LPWSTR)lParam, windowNameW, wParam);1185 return min(wndNameLength, wParam);1189 lstrcpynW((LPWSTR)lParam, windowNameW, wParam); 1190 return min(wndNameLength, wParam); 1186 1191 1187 1192 default: 1188 return DefWindowProcA(Msg, wParam, lParam);1193 return DefWindowProcA(Msg, wParam, lParam); 1189 1194 } 1190 1195 } … … 1194 1199 { 1195 1200 if(PostSpyMessage(getWindowHandle(), Msg, wParam, lParam) == FALSE) 1196 dprintf(("SendMessageA %s for %x %x %x", GetMsgText(Msg), getWindowHandle(), wParam, lParam));1201 dprintf(("SendMessageA %s for %x %x %x", GetMsgText(Msg), getWindowHandle(), wParam, lParam)); 1197 1202 1198 1203 if(HkCBT::OS2HkCBTProc(getWindowHandle(), Msg, wParam, lParam) == TRUE) {//hook swallowed msg 1199 return(0);1204 return(0); 1200 1205 } 1201 1206 switch(Msg) 1202 1207 { 1203 case WM_CREATE:1204 {1205 if(win32wndproc(getWindowHandle(), WM_NCCREATE, 0, lParam) == 0) {1206 dprintf(("WM_NCCREATE returned FALSE\n"));1207 return(-1); //don't create window1208 }1209 if(win32wndproc(getWindowHandle(), WM_CREATE, 0, lParam) == -1) {1210 dprintf(("WM_CREATE returned -1\n"));1211 return(-1); //don't create window1212 }1213 NotifyParent(Msg, wParam, lParam);1214 1215 return(0);1216 }1217 case WM_SETTEXT: //TODO: Nothing happens if passed to DefWindowProc1218 return win32wndproc(getWindowHandle(), WM_SETTEXT, wParam, lParam);1219 1220 case WM_LBUTTONDOWN:1221 case WM_MBUTTONDOWN:1222 case WM_RBUTTONDOWN:1223 NotifyParent(Msg, wParam, lParam);1224 return win32wndproc(getWindowHandle(), Msg, wParam, lParam);1225 1226 case WM_DESTROY:1227 win32wndproc(getWindowHandle(), WM_NCDESTROY, 0, 0);1228 NotifyParent(Msg, wParam, lParam);1229 return win32wndproc(getWindowHandle(), WM_DESTROY, 0, 0);1230 default:1231 return win32wndproc(getWindowHandle(), Msg, wParam, lParam);1208 case WM_CREATE: 1209 { 1210 if(win32wndproc(getWindowHandle(), WM_NCCREATE, 0, lParam) == 0) { 1211 dprintf(("WM_NCCREATE returned FALSE\n")); 1212 return(-1); //don't create window 1213 } 1214 if(win32wndproc(getWindowHandle(), WM_CREATE, 0, lParam) == -1) { 1215 dprintf(("WM_CREATE returned -1\n")); 1216 return(-1); //don't create window 1217 } 1218 NotifyParent(Msg, wParam, lParam); 1219 1220 return(0); 1221 } 1222 case WM_SETTEXT: //TODO: Nothing happens if passed to DefWindowProc 1223 return win32wndproc(getWindowHandle(), WM_SETTEXT, wParam, lParam); 1224 1225 case WM_LBUTTONDOWN: 1226 case WM_MBUTTONDOWN: 1227 case WM_RBUTTONDOWN: 1228 NotifyParent(Msg, wParam, lParam); 1229 return win32wndproc(getWindowHandle(), Msg, wParam, lParam); 1230 1231 case WM_DESTROY: 1232 win32wndproc(getWindowHandle(), WM_NCDESTROY, 0, 0); 1233 NotifyParent(Msg, wParam, lParam); 1234 return win32wndproc(getWindowHandle(), WM_DESTROY, 0, 0); 1235 default: 1236 return win32wndproc(getWindowHandle(), Msg, wParam, lParam); 1232 1237 } 1233 1238 } … … 1237 1242 { 1238 1243 if(PostSpyMessage(getWindowHandle(), Msg, wParam, lParam) == FALSE) 1239 dprintf(("SendMessageA %s for %x %x %x", GetMsgText(Msg), getWindowHandle(), wParam, lParam));1244 dprintf(("SendMessageA %s for %x %x %x", GetMsgText(Msg), getWindowHandle(), wParam, lParam)); 1240 1245 1241 1246 if(HkCBT::OS2HkCBTProc(getWindowHandle(), Msg, wParam, lParam) == TRUE) {//hook swallowed msg 1242 return(0);1247 return(0); 1243 1248 } 1244 1249 switch(Msg) 1245 1250 { 1246 case WM_CREATE:1247 {1248 if(win32wndproc(getWindowHandle(), WM_NCCREATE, 0, lParam) == 0) {1249 dprintf(("WM_NCCREATE returned FALSE\n"));1250 return(0); //don't create window1251 }1252 if(win32wndproc(getWindowHandle(), WM_CREATE, 0, lParam) == 0) {1253 dprintf(("WM_CREATE returned FALSE\n"));1254 return(0); //don't create window1255 }1256 NotifyParent(Msg, wParam, lParam);1257 1258 return(1);1259 }1260 case WM_SETTEXT: //TODO: Nothing happens if passed to DefWindowProc1261 return win32wndproc(getWindowHandle(), WM_SETTEXT, wParam, lParam);1262 1263 case WM_LBUTTONDOWN:1264 case WM_MBUTTONDOWN:1265 case WM_RBUTTONDOWN:1266 NotifyParent(Msg, wParam, lParam);1267 return win32wndproc(getWindowHandle(), Msg, wParam, lParam);1268 1269 case WM_DESTROY:1270 win32wndproc(getWindowHandle(), WM_NCDESTROY, 0, 0);1271 NotifyParent(Msg, wParam, lParam);1272 return win32wndproc(getWindowHandle(), WM_DESTROY, 0, 0);1273 1274 default:1275 return win32wndproc(getWindowHandle(), Msg, wParam, lParam);1251 case WM_CREATE: 1252 { 1253 if(win32wndproc(getWindowHandle(), WM_NCCREATE, 0, lParam) == 0) { 1254 dprintf(("WM_NCCREATE returned FALSE\n")); 1255 return(0); //don't create window 1256 } 1257 if(win32wndproc(getWindowHandle(), WM_CREATE, 0, lParam) == 0) { 1258 dprintf(("WM_CREATE returned FALSE\n")); 1259 return(0); //don't create window 1260 } 1261 NotifyParent(Msg, wParam, lParam); 1262 1263 return(1); 1264 } 1265 case WM_SETTEXT: //TODO: Nothing happens if passed to DefWindowProc 1266 return win32wndproc(getWindowHandle(), WM_SETTEXT, wParam, lParam); 1267 1268 case WM_LBUTTONDOWN: 1269 case WM_MBUTTONDOWN: 1270 case WM_RBUTTONDOWN: 1271 NotifyParent(Msg, wParam, lParam); 1272 return win32wndproc(getWindowHandle(), Msg, wParam, lParam); 1273 1274 case WM_DESTROY: 1275 win32wndproc(getWindowHandle(), WM_NCDESTROY, 0, 0); 1276 NotifyParent(Msg, wParam, lParam); 1277 return win32wndproc(getWindowHandle(), WM_DESTROY, 0, 0); 1278 1279 default: 1280 return win32wndproc(getWindowHandle(), Msg, wParam, lParam); 1276 1281 } 1277 1282 } … … 1282 1287 { 1283 1288 if(PostSpyMessage(getWindowHandle(), Msg, wParam, lParam) == FALSE) 1284 dprintf(("SendInternalMessageA %s for %x %x %x", GetMsgText(Msg), getWindowHandle(), wParam, lParam));1289 dprintf(("SendInternalMessageA %s for %x %x %x", GetMsgText(Msg), getWindowHandle(), wParam, lParam)); 1285 1290 1286 1291 if(HkCBT::OS2HkCBTProc(getWindowHandle(), Msg, wParam, lParam) == TRUE) {//hook swallowed msg 1287 return(0);1292 return(0); 1288 1293 } 1289 1294 switch(Msg) 1290 1295 { 1291 case WM_CREATE:1292 {1293 if(win32wndproc(getWindowHandle(), WM_NCCREATE, 0, lParam) == 0) {1294 dprintf(("WM_NCCREATE returned FALSE\n"));1295 return(0); //don't create window1296 }1297 if(win32wndproc(getWindowHandle(), WM_CREATE, 0, lParam) == 0) {1298 dprintf(("WM_CREATE returned FALSE\n"));1299 return(0); //don't create window1300 }1301 NotifyParent(Msg, wParam, lParam);1302 1303 return(1);1304 }1305 case WM_LBUTTONDOWN:1306 case WM_MBUTTONDOWN:1307 case WM_RBUTTONDOWN:1308 NotifyParent(Msg, wParam, lParam);1309 return win32wndproc(getWindowHandle(), Msg, wParam, lParam);1310 1311 case WM_DESTROY:1312 win32wndproc(getWindowHandle(), WM_NCDESTROY, 0, 0);1313 NotifyParent(Msg, wParam, lParam);1314 return win32wndproc(getWindowHandle(), WM_DESTROY, 0, 0);1315 default:1316 return win32wndproc(getWindowHandle(), Msg, wParam, lParam);1296 case WM_CREATE: 1297 { 1298 if(win32wndproc(getWindowHandle(), WM_NCCREATE, 0, lParam) == 0) { 1299 dprintf(("WM_NCCREATE returned FALSE\n")); 1300 return(0); //don't create window 1301 } 1302 if(win32wndproc(getWindowHandle(), WM_CREATE, 0, lParam) == 0) { 1303 dprintf(("WM_CREATE returned FALSE\n")); 1304 return(0); //don't create window 1305 } 1306 NotifyParent(Msg, wParam, lParam); 1307 1308 return(1); 1309 } 1310 case WM_LBUTTONDOWN: 1311 case WM_MBUTTONDOWN: 1312 case WM_RBUTTONDOWN: 1313 NotifyParent(Msg, wParam, lParam); 1314 return win32wndproc(getWindowHandle(), Msg, wParam, lParam); 1315 1316 case WM_DESTROY: 1317 win32wndproc(getWindowHandle(), WM_NCDESTROY, 0, 0); 1318 NotifyParent(Msg, wParam, lParam); 1319 return win32wndproc(getWindowHandle(), WM_DESTROY, 0, 0); 1320 default: 1321 return win32wndproc(getWindowHandle(), Msg, wParam, lParam); 1317 1322 } 1318 1323 } … … 1324 1329 { 1325 1330 if(PostSpyMessage(getWindowHandle(), Msg, wParam, lParam) == FALSE) 1326 dprintf(("SendInternalMessageW %s for %x %x %x", GetMsgText(Msg), getWindowHandle(), wParam, lParam));1331 dprintf(("SendInternalMessageW %s for %x %x %x", GetMsgText(Msg), getWindowHandle(), wParam, lParam)); 1327 1332 1328 1333 if(HkCBT::OS2HkCBTProc(getWindowHandle(), Msg, wParam, lParam) == TRUE) {//hook swallowed msg 1329 return(0);1334 return(0); 1330 1335 } 1331 1336 switch(Msg) 1332 1337 { 1333 case WM_CREATE:1334 {1335 if(win32wndproc(getWindowHandle(), WM_NCCREATE, 0, lParam) == 0) {1336 dprintf(("WM_NCCREATE returned FALSE\n"));1337 return(0); //don't create window1338 }1339 if(win32wndproc(getWindowHandle(), WM_CREATE, 0, lParam) == 0) {1340 dprintf(("WM_CREATE returned FALSE\n"));1341 return(0); //don't create window1342 }1343 NotifyParent(Msg, wParam, lParam);1344 1345 return(1);1346 }1347 case WM_LBUTTONDOWN:1348 case WM_MBUTTONDOWN:1349 case WM_RBUTTONDOWN:1350 NotifyParent(Msg, wParam, lParam);1351 return win32wndproc(getWindowHandle(), Msg, wParam, lParam);1352 1353 case WM_DESTROY:1354 win32wndproc(getWindowHandle(), WM_NCDESTROY, 0, 0);1355 NotifyParent(Msg, wParam, lParam);1356 return win32wndproc(getWindowHandle(), WM_DESTROY, 0, 0);1357 default:1358 return win32wndproc(getWindowHandle(), Msg, wParam, lParam);1338 case WM_CREATE: 1339 { 1340 if(win32wndproc(getWindowHandle(), WM_NCCREATE, 0, lParam) == 0) { 1341 dprintf(("WM_NCCREATE returned FALSE\n")); 1342 return(0); //don't create window 1343 } 1344 if(win32wndproc(getWindowHandle(), WM_CREATE, 0, lParam) == 0) { 1345 dprintf(("WM_CREATE returned FALSE\n")); 1346 return(0); //don't create window 1347 } 1348 NotifyParent(Msg, wParam, lParam); 1349 1350 return(1); 1351 } 1352 case WM_LBUTTONDOWN: 1353 case WM_MBUTTONDOWN: 1354 case WM_RBUTTONDOWN: 1355 NotifyParent(Msg, wParam, lParam); 1356 return win32wndproc(getWindowHandle(), Msg, wParam, lParam); 1357 1358 case WM_DESTROY: 1359 win32wndproc(getWindowHandle(), WM_NCDESTROY, 0, 0); 1360 NotifyParent(Msg, wParam, lParam); 1361 return win32wndproc(getWindowHandle(), WM_DESTROY, 0, 0); 1362 default: 1363 return win32wndproc(getWindowHandle(), Msg, wParam, lParam); 1359 1364 } 1360 1365 } … … 1381 1386 while(window) 1382 1387 { 1383 if(window->getStyle() & WS_CHILD && !(window->getExStyle() & WS_EX_NOPARENTNOTIFY) )1384 {1385 /* Notify the parent window only */1386 parentwindow = window->getParent();1387 if(parentwindow) {1388 if(Msg == WM_CREATE || Msg == WM_DESTROY) {1389 parentwindow->SendInternalMessageA(WM_PARENTNOTIFY, MAKEWPARAM(Msg, window->getWindowId()), (LPARAM)window->getWindowHandle());1390 }1391 elseparentwindow->SendInternalMessageA(WM_PARENTNOTIFY, MAKEWPARAM(Msg, window->getWindowId()), lParam );1392 }1393 }1394 elsebreak;1395 1396 window = parentwindow;1388 if(window->getStyle() & WS_CHILD && !(window->getExStyle() & WS_EX_NOPARENTNOTIFY) ) 1389 { 1390 /* Notify the parent window only */ 1391 parentwindow = window->getParent(); 1392 if(parentwindow) { 1393 if(Msg == WM_CREATE || Msg == WM_DESTROY) { 1394 parentwindow->SendInternalMessageA(WM_PARENTNOTIFY, MAKEWPARAM(Msg, window->getWindowId()), (LPARAM)window->getWindowHandle()); 1395 } 1396 else parentwindow->SendInternalMessageA(WM_PARENTNOTIFY, MAKEWPARAM(Msg, window->getWindowId()), lParam ); 1397 } 1398 } 1399 else break; 1400 1401 window = parentwindow; 1397 1402 } 1398 1403 } … … 1401 1406 BOOL Win32BaseWindow::SetMenu(HMENU hMenu) 1402 1407 { 1403 PVOID menutemplate;1408 PVOID menutemplate; 1404 1409 Win32Resource *winres = (Win32Resource *)hMenu; 1405 1410 1406 1411 dprintf(("SetMenu %x", hMenu)); 1407 1412 if(HIWORD(winres) == 0) { 1408 dprintf(("Win32BaseWindow:: Win32Resource *winres == 0"));1409 SetLastError(ERROR_INVALID_PARAMETER);1410 return FALSE;1413 dprintf(("Win32BaseWindow:: Win32Resource *winres == 0")); 1414 SetLastError(ERROR_INVALID_PARAMETER); 1415 return FALSE; 1411 1416 } 1412 1417 menutemplate = winres->lockOS2Resource(); 1413 1418 if(menutemplate == NULL) 1414 1419 { 1415 dprintf(("Win32BaseWindow::SetMenu menutemplate == 0"));1416 return FALSE;1420 dprintf(("Win32BaseWindow::SetMenu menutemplate == 0")); 1421 return FALSE; 1417 1422 } 1418 1423 OS2HwndMenu = OSLibWinCreateMenu(OS2HwndFrame, menutemplate); 1419 1424 if(OS2HwndMenu == 0) { 1420 dprintf(("Win32BaseWindow::SetMenu OS2HwndMenu == 0"));1421 return FALSE;1425 dprintf(("Win32BaseWindow::SetMenu OS2HwndMenu == 0")); 1426 return FALSE; 1422 1427 } 1423 1428 winres->setOS2Handle(OS2HwndMenu); … … 1430 1435 { 1431 1436 Win32Resource *winres = (Win32Resource *)hAccel; 1432 HANDLE accelhandle;1437 HANDLE accelhandle; 1433 1438 1434 1439 if(HIWORD(hAccel) == 0) { 1435 dprintf(("SetAccelTable: hAccel %x invalid", hAccel));1436 SetLastError(ERROR_INVALID_PARAMETER);1437 return FALSE;1440 dprintf(("SetAccelTable: hAccel %x invalid", hAccel)); 1441 SetLastError(ERROR_INVALID_PARAMETER); 1442 return FALSE; 1438 1443 } 1439 1444 acceltableResource = winres; … … 1457 1462 dprintf(("ShowWindow %x", nCmdShow)); 1458 1463 if(fFirstShow) { 1459 if(isFrameWindow() && IS_OVERLAPPED(getStyle())) {1460 SendMessageA(WM_SIZE, SIZE_RESTORED,1461 MAKELONG(rectClient.right-rectClient.left,1462 rectClient.bottom-rectClient.top));1463 SendMessageA(WM_MOVE, 0, MAKELONG( rectClient.left, rectClient.top ) );1464 1465 }1466 fFirstShow = FALSE;1464 if(isFrameWindow() && IS_OVERLAPPED(getStyle())) { 1465 SendMessageA(WM_SIZE, SIZE_RESTORED, 1466 MAKELONG(rectClient.right-rectClient.left, 1467 rectClient.bottom-rectClient.top)); 1468 SendMessageA(WM_MOVE, 0, MAKELONG( rectClient.left, rectClient.top ) ); 1469 1470 } 1471 fFirstShow = FALSE; 1467 1472 } 1468 1473 switch(nCmdShow) … … 1470 1475 case SW_SHOW: 1471 1476 case SW_SHOWDEFAULT: //todo 1472 showstate = SWPOS_SHOW | SWPOS_ACTIVATE;1473 break;1477 showstate = SWPOS_SHOW | SWPOS_ACTIVATE; 1478 break; 1474 1479 case SW_HIDE: 1475 showstate = SWPOS_HIDE;1476 break;1480 showstate = SWPOS_HIDE; 1481 break; 1477 1482 case SW_RESTORE: 1478 showstate = SWPOS_RESTORE | SWPOS_SHOW | SWPOS_ACTIVATE;1479 break;1483 showstate = SWPOS_RESTORE | SWPOS_SHOW | SWPOS_ACTIVATE; 1484 break; 1480 1485 case SW_MINIMIZE: 1481 showstate = SWPOS_MINIMIZE;1482 break;1486 showstate = SWPOS_MINIMIZE; 1487 break; 1483 1488 case SW_SHOWMAXIMIZED: 1484 showstate = SWPOS_MAXIMIZE | SWPOS_SHOW | SWPOS_ACTIVATE;1485 break;1489 showstate = SWPOS_MAXIMIZE | SWPOS_SHOW | SWPOS_ACTIVATE; 1490 break; 1486 1491 case SW_SHOWMINIMIZED: 1487 showstate = SWPOS_MINIMIZE | SWPOS_SHOW | SWPOS_ACTIVATE;1488 break;1492 showstate = SWPOS_MINIMIZE | SWPOS_SHOW | SWPOS_ACTIVATE; 1493 break; 1489 1494 case SW_SHOWMINNOACTIVE: 1490 showstate = SWPOS_MINIMIZE | SWPOS_SHOW;1491 break;1495 showstate = SWPOS_MINIMIZE | SWPOS_SHOW; 1496 break; 1492 1497 case SW_SHOWNA: 1493 showstate = SWPOS_SHOW;1494 break;1498 showstate = SWPOS_SHOW; 1499 break; 1495 1500 case SW_SHOWNOACTIVATE: 1496 showstate = SWPOS_SHOW;1497 break;1501 showstate = SWPOS_SHOW; 1502 break; 1498 1503 case SW_SHOWNORMAL: 1499 showstate = SWPOS_RESTORE | SWPOS_ACTIVATE | SWPOS_SHOW;1500 break;1504 showstate = SWPOS_RESTORE | SWPOS_ACTIVATE | SWPOS_SHOW; 1505 break; 1501 1506 } 1502 1507 return OSLibWinShowWindow(OS2HwndFrame, showstate); … … 1512 1517 dprintf (("SetWindowPos %x %x (%d,%d)(%d,%d) %x", Win32Hwnd, hwndInsertAfter, x, y, cx, cy, fuFlags)); 1513 1518 1514 /* Validate the flags passed in ... */1519 /* Validate the flags passed in ... */ 1515 1520 if ( fuFlags & 1516 ~(SWP_NOSIZE | SWP_NOMOVE| SWP_NOZORDER |1517 SWP_NOREDRAW| SWP_NOACTIVATE | SWP_FRAMECHANGED |1518 SWP_SHOWWINDOW | SWP_HIDEWINDOW | SWP_NOCOPYBITS |1519 SWP_NOOWNERZORDER) )1521 ~(SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | 1522 SWP_NOREDRAW | SWP_NOACTIVATE | SWP_FRAMECHANGED | 1523 SWP_SHOWWINDOW | SWP_HIDEWINDOW | SWP_NOCOPYBITS | 1524 SWP_NOOWNERZORDER) ) 1520 1525 { 1521 1526 return FALSE; … … 1528 1533 // Set up with Windows values. 1529 1534 //**************************** 1530 wpos.flags = fuFlags;1531 wpos.cy = cy;1532 wpos.cx = cx;1533 wpos.x = x;1534 wpos.y = y;1535 wpos.flags = fuFlags; 1536 wpos.cy = cy; 1537 wpos.cx = cx; 1538 wpos.x = x; 1539 wpos.y = y; 1535 1540 wpos.hwndInsertAfter = hwndInsertAfter; 1536 wpos.hwnd = getWindowHandle();1541 wpos.hwnd = getWindowHandle(); 1537 1542 1538 1543 //********************************************** … … 1542 1547 if (isChild()) 1543 1548 { 1544 hParent = getParent()->getOS2WindowHandle();1545 OSLibWinQueryWindowPos(OS2Hwnd, &swpOld);1549 hParent = getParent()->getOS2WindowHandle(); 1550 OSLibWinQueryWindowPos(OS2Hwnd, &swpOld); 1546 1551 } else 1547 OSLibWinQueryWindowPos(OS2HwndFrame, &swpOld);1552 OSLibWinQueryWindowPos(OS2HwndFrame, &swpOld); 1548 1553 } 1549 1554 OSLibMapWINDOWPOStoSWP(&wpos, &swp, &swpOld, hParent, OS2HwndFrame); … … 1590 1595 if (rc == FALSE) 1591 1596 { 1592 // SET_ERROR_LAST();1597 // SET_ERROR_LAST(); 1593 1598 } 1594 1599 else … … 1602 1607 ** a WM_UPDATEFRAME, which will provide the behavior of WM_NCCALCSIZE. 1603 1608 */ 1604 // if (fuFlags & SWP_FRAMECHANGED_W)1605 // WinSendMsg(hWindow, WM_UPDATEFRAME, (MPARAM)-1, 0);1609 // if (fuFlags & SWP_FRAMECHANGED_W) 1610 // WinSendMsg(hWindow, WM_UPDATEFRAME, (MPARAM)-1, 0); 1606 1611 } 1607 1612 … … 1622 1627 return getParent()->getWindowHandle(); 1623 1628 } 1624 else return 0;1629 else return 0; 1625 1630 } 1626 1631 //****************************************************************************** … … 1632 1637 1633 1638 if(getParent()) { 1634 oldhwnd = getParent()->getWindowHandle();1639 oldhwnd = getParent()->getWindowHandle(); 1635 1640 } 1636 1641 else oldhwnd = 0; … … 1638 1643 if(hwndNewParent == 0) {//desktop window = parent 1639 1644 setParent(NULL); 1640 OSLibWinSetParent(getOS2WindowHandle(), OSLIB_HWND_DESKTOP);1641 return oldhwnd;1645 OSLibWinSetParent(getOS2WindowHandle(), OSLIB_HWND_DESKTOP); 1646 return oldhwnd; 1642 1647 } 1643 1648 newparent = GetWindowFromHandle(hwndNewParent); 1644 1649 if(newparent) 1645 1650 { 1646 setParent(newparent);1647 OSLibWinSetParent(getOS2WindowHandle(), getParent()->getOS2WindowHandle());1648 return oldhwnd;1651 setParent(newparent); 1652 OSLibWinSetParent(getOS2WindowHandle(), getParent()->getOS2WindowHandle()); 1653 return oldhwnd; 1649 1654 } 1650 1655 SetLastError(ERROR_INVALID_PARAMETER); … … 1658 1663 return getParent()->getWindowHandle() == hwndParent; 1659 1664 } 1660 else return 0;1665 else return 0; 1661 1666 } 1662 1667 //****************************************************************************** … … 1677 1682 if(OSLibWinQueryUpdateRect(OS2Hwnd, &rect)) 1678 1683 {//update region not empty 1679 HDC hdc;1680 1681 hdc = O32_GetDC(OS2Hwnd);1682 if (isIcon)1683 {1684 SendInternalMessageA(WM_ICONERASEBKGND, (WPARAM)hdc, 0);1685 SendInternalMessageA(WM_PAINTICON, 0, 0);1686 } else1687 {1688 SendInternalMessageA(WM_ERASEBKGND, (WPARAM)hdc, 0);1689 SendInternalMessageA(WM_PAINT, 0, 0);1690 }1691 O32_ReleaseDC(OS2Hwnd, hdc);1684 HDC hdc; 1685 1686 hdc = O32_GetDC(OS2Hwnd); 1687 if (isIcon) 1688 { 1689 SendInternalMessageA(WM_ICONERASEBKGND, (WPARAM)hdc, 0); 1690 SendInternalMessageA(WM_PAINTICON, 0, 0); 1691 } else 1692 { 1693 SendInternalMessageA(WM_ERASEBKGND, (WPARAM)hdc, 0); 1694 SendInternalMessageA(WM_PAINT, 0, 0); 1695 } 1696 O32_ReleaseDC(OS2Hwnd, hdc); 1692 1697 } 1693 1698 return TRUE; … … 1705 1710 //****************************************************************************** 1706 1711 HWND Win32BaseWindow::FindWindowEx(HWND hwndParent, HWND hwndChildAfter, LPSTR lpszClass, LPSTR lpszWindow, 1707 BOOL fUnicode)1712 BOOL fUnicode) 1708 1713 { 1709 1714 Win32BaseWindow *parent = GetWindowFromHandle(hwndParent); … … 1714 1719 (hwndParent == OSLIB_HWND_DESKTOP && hwndChildAfter != 0)) 1715 1720 { 1716 dprintf(("Win32BaseWindow::FindWindowEx: parent or child not found %x %x", hwndParent, hwndChildAfter));1717 SetLastError(ERROR_INVALID_WINDOW_HANDLE);1718 return 0;1721 dprintf(("Win32BaseWindow::FindWindowEx: parent or child not found %x %x", hwndParent, hwndChildAfter)); 1722 SetLastError(ERROR_INVALID_WINDOW_HANDLE); 1723 return 0; 1719 1724 } 1720 1725 if(hwndParent != OSLIB_HWND_DESKTOP) 1721 1726 {//if the current process owns the window, just do a quick search 1722 child = (Win32BaseWindow *)parent->getFirstChild();1723 if(hwndChildAfter != 0)1724 {1725 while(child)1726 {1727 if(child->getWindowHandle() == hwndChildAfter)1728 {1729 child = (Win32BaseWindow *)child->getNextChild();1730 break;1731 }1732 child = (Win32BaseWindow *)child->getNextChild();1733 }1734 }1735 while(child)1736 {1737 if(child->getWindowClass()->hasClassName(lpszClass, fUnicode) &&1738 (!lpszWindow || child->hasWindowName(lpszWindow, fUnicode)))1739 {1740 dprintf(("FindWindowEx: Found window %x", child->getWindowHandle()));1741 return child->getWindowHandle();1742 }1743 child = (Win32BaseWindow *)child->getNextChild();1744 }1727 child = (Win32BaseWindow *)parent->getFirstChild(); 1728 if(hwndChildAfter != 0) 1729 { 1730 while(child) 1731 { 1732 if(child->getWindowHandle() == hwndChildAfter) 1733 { 1734 child = (Win32BaseWindow *)child->getNextChild(); 1735 break; 1736 } 1737 child = (Win32BaseWindow *)child->getNextChild(); 1738 } 1739 } 1740 while(child) 1741 { 1742 if(child->getWindowClass()->hasClassName(lpszClass, fUnicode) && 1743 (!lpszWindow || child->hasWindowName(lpszWindow, fUnicode))) 1744 { 1745 dprintf(("FindWindowEx: Found window %x", child->getWindowHandle())); 1746 return child->getWindowHandle(); 1747 } 1748 child = (Win32BaseWindow *)child->getNextChild(); 1749 } 1745 1750 } 1746 1751 else { 1747 Win32BaseWindow *wnd;1748 HWND henum, hwnd;1749 1750 henum = OSLibWinBeginEnumWindows(OSLIB_HWND_DESKTOP);1751 hwnd = OSLibWinGetNextWindow(henum);1752 1753 while(hwnd)1754 {1755 wnd = GetWindowFromOS2Handle(hwnd);1756 if(wnd == NULL) {1757 hwnd = OSLibWinQueryClientWindow(hwnd);1758 if(hwnd) wnd = GetWindowFromOS2Handle(hwnd);1759 }1760 1761 if(wnd) {1762 LPVOID sharedmembase = (LPVOID)OSLibWinGetWindowULong(hwnd, OFFSET_WIN32PM_SHAREDMEM);1763 1764 if(OSLibDosGetSharedMem(sharedmembase, MAX_HEAPSIZE, OSLIB_PAG_READ) != 0) {1765 dprintf(("OSLibDosGetSharedMem returned error for %x", wnd));1766 break;1767 }1768 if(wnd->getWindowClass()->hasClassName(lpszClass, fUnicode) &&1769 (!lpszWindow || wnd->hasWindowName(lpszWindow, fUnicode)))1770 {1771 OSLibWinEndEnumWindows(henum);1772 dprintf(("FindWindowEx: Found window %x", wnd->getWindowHandle()));1773 return wnd->getWindowHandle();1774 }1775 }1776 hwnd = OSLibWinGetNextWindow(henum);1777 }1778 OSLibWinEndEnumWindows(henum);1752 Win32BaseWindow *wnd; 1753 HWND henum, hwnd; 1754 1755 henum = OSLibWinBeginEnumWindows(OSLIB_HWND_DESKTOP); 1756 hwnd = OSLibWinGetNextWindow(henum); 1757 1758 while(hwnd) 1759 { 1760 wnd = GetWindowFromOS2Handle(hwnd); 1761 if(wnd == NULL) { 1762 hwnd = OSLibWinQueryClientWindow(hwnd); 1763 if(hwnd) wnd = GetWindowFromOS2Handle(hwnd); 1764 } 1765 1766 if(wnd) { 1767 LPVOID sharedmembase = (LPVOID)OSLibWinGetWindowULong(hwnd, OFFSET_WIN32PM_SHAREDMEM); 1768 1769 if(OSLibDosGetSharedMem(sharedmembase, MAX_HEAPSIZE, OSLIB_PAG_READ) != 0) { 1770 dprintf(("OSLibDosGetSharedMem returned error for %x", wnd)); 1771 break; 1772 } 1773 if(wnd->getWindowClass()->hasClassName(lpszClass, fUnicode) && 1774 (!lpszWindow || wnd->hasWindowName(lpszWindow, fUnicode))) 1775 { 1776 OSLibWinEndEnumWindows(henum); 1777 dprintf(("FindWindowEx: Found window %x", wnd->getWindowHandle())); 1778 return wnd->getWindowHandle(); 1779 } 1780 } 1781 hwnd = OSLibWinGetNextWindow(henum); 1782 } 1783 OSLibWinEndEnumWindows(henum); 1779 1784 } 1780 1785 SetLastError(ERROR_CANNOT_FIND_WND_CLASS); //TODO: not always correct … … 1787 1792 { 1788 1793 Win32BaseWindow *win32wnd; 1789 ULONG magic;1790 ULONG getcmd = 0;1791 HWND hwndRelated;1794 ULONG magic; 1795 ULONG getcmd = 0; 1796 HWND hwndRelated; 1792 1797 1793 1798 dprintf(("GetWindow %x %d NOT COMPLETE", getWindowHandle(), uCmd)); 1794 1799 switch(uCmd) 1795 1800 { 1796 case GW_CHILD:1797 getcmd = QWOS_TOP;1798 break;1799 case GW_HWNDFIRST:1800 if(getParent()) {1801 getcmd = QWOS_TOP; //top of child windows1802 }1803 else getcmd = QWOS_TOP; //TODO1804 break;1805 case GW_HWNDLAST:1806 if(getParent()) {1807 getcmd = QWOS_BOTTOM; //bottom of child windows1808 }1809 else getcmd = QWOS_BOTTOM; //TODO1810 break;1811 case GW_HWNDNEXT:1812 getcmd = QWOS_NEXT;1813 break;1814 case GW_HWNDPREV:1815 getcmd = QWOS_PREV;1816 break;1817 case GW_OWNER:1818 if(owner) {1819 return owner->getWindowHandle();1820 }1821 else return 0;1801 case GW_CHILD: 1802 getcmd = QWOS_TOP; 1803 break; 1804 case GW_HWNDFIRST: 1805 if(getParent()) { 1806 getcmd = QWOS_TOP; //top of child windows 1807 } 1808 else getcmd = QWOS_TOP; //TODO 1809 break; 1810 case GW_HWNDLAST: 1811 if(getParent()) { 1812 getcmd = QWOS_BOTTOM; //bottom of child windows 1813 } 1814 else getcmd = QWOS_BOTTOM; //TODO 1815 break; 1816 case GW_HWNDNEXT: 1817 getcmd = QWOS_NEXT; 1818 break; 1819 case GW_HWNDPREV: 1820 getcmd = QWOS_PREV; 1821 break; 1822 case GW_OWNER: 1823 if(owner) { 1824 return owner->getWindowHandle(); 1825 } 1826 else return 0; 1822 1827 } 1823 1828 hwndRelated = OSLibWinQueryWindow(OS2Hwnd, getcmd); 1824 1829 if(hwndRelated) 1825 1830 { 1826 win32wnd = (Win32BaseWindow *)OSLibWinGetWindowULong(hwndRelated, OFFSET_WIN32WNDPTR);1827 magic= OSLibWinGetWindowULong(hwndRelated, OFFSET_WIN32PM_MAGIC);1828 if(CheckMagicDword(magic) && win32wnd)1829 {1830 return win32wnd->getWindowHandle();1831 }1831 win32wnd = (Win32BaseWindow *)OSLibWinGetWindowULong(hwndRelated, OFFSET_WIN32WNDPTR); 1832 magic = OSLibWinGetWindowULong(hwndRelated, OFFSET_WIN32PM_MAGIC); 1833 if(CheckMagicDword(magic) && win32wnd) 1834 { 1835 return win32wnd->getWindowHandle(); 1836 } 1832 1837 } 1833 1838 return 0; … … 1856 1861 HWND Win32BaseWindow::GetActiveWindow() 1857 1862 { 1858 HWND hwndActive;1863 HWND hwndActive; 1859 1864 Win32BaseWindow *win32wnd; 1860 ULONG magic;1865 ULONG magic; 1861 1866 1862 1867 hwndActive = OSLibWinQueryActiveWindow(); … … 1866 1871 if(CheckMagicDword(magic) && win32wnd) 1867 1872 { 1868 return win32wnd->getWindowHandle();1873 return win32wnd->getWindowHandle(); 1869 1874 } 1870 1875 return hwndActive; … … 1899 1904 { 1900 1905 if(fUnicode) { 1901 return (lstrcmpW(windowNameW, (LPWSTR)wndname) == 0);1906 return (lstrcmpW(windowNameW, (LPWSTR)wndname) == 0); 1902 1907 } 1903 1908 else return (strcmp(windowNameA, wndname) == 0); … … 1920 1925 { 1921 1926 if(lpsz == NULL) 1922 return FALSE;1927 return FALSE; 1923 1928 1924 1929 if(isUnicode == FALSE) { 1925 windowNameA = (LPSTR)_smalloc(strlen(lpsz)+1);1926 strcpy(windowNameA, lpsz);1927 windowNameW = (LPWSTR)_smalloc((strlen(lpsz)+1)*sizeof(WCHAR));1928 lstrcpyAtoW(windowNameW, windowNameA);1930 windowNameA = (LPSTR)_smalloc(strlen(lpsz)+1); 1931 strcpy(windowNameA, lpsz); 1932 windowNameW = (LPWSTR)_smalloc((strlen(lpsz)+1)*sizeof(WCHAR)); 1933 lstrcpyAtoW(windowNameW, windowNameA); 1929 1934 } 1930 1935 else { 1931 windowNameW = (LPWSTR)_smalloc((lstrlenW((LPWSTR)lpsz)+1)*sizeof(WCHAR));1932 lstrcpyW(windowNameW, (LPWSTR)lpsz);1933 windowNameA = (LPSTR)_smalloc(lstrlenW((LPWSTR)lpsz)+1);1934 lstrcpyWtoA(windowNameA, windowNameW);1936 windowNameW = (LPWSTR)_smalloc((lstrlenW((LPWSTR)lpsz)+1)*sizeof(WCHAR)); 1937 lstrcpyW(windowNameW, (LPWSTR)lpsz); 1938 windowNameA = (LPSTR)_smalloc(lstrlenW((LPWSTR)lpsz)+1); 1939 lstrcpyWtoA(windowNameA, windowNameW); 1935 1940 } 1936 1941 wndNameLength = strlen(windowNameA)+1; //including 0 terminator 1937 1942 1938 1943 if(OS2Hwnd) 1939 return OSLibWinSetWindowText(OS2Hwnd, (LPSTR)windowNameA);1944 return OSLibWinSetWindowText(OS2Hwnd, (LPSTR)windowNameA); 1940 1945 1941 1946 return TRUE; … … 1948 1953 1949 1954 switch(index) { 1950 case GWL_EXSTYLE:1951 oldval = dwExStyle;1952 setExStyle(value);1953 return oldval;1954 case GWL_STYLE:1955 oldval = dwStyle;1956 setStyle(value);1957 return oldval;1958 case GWL_WNDPROC:1959 oldval = (LONG)getWindowProc();1960 setWindowProc((WNDPROC)value);1961 return oldval;1962 case GWL_HINSTANCE:1963 oldval = hInstance;1964 hInstance = value;1965 return oldval;1966 case GWL_HWNDPARENT:1967 return SetParent((HWND)value);1968 1969 case GWL_ID:1970 oldval = getWindowId();1971 setWindowId(value);1972 return oldval;1973 case GWL_USERDATA:1974 oldval = userData;1975 userData = value;1976 return oldval;1977 default:1978 if(index >= 0 && index/4 < nrUserWindowLong)1979 {1980 oldval = userWindowLong[index/4];1981 userWindowLong[index/4] = value;1982 return oldval;1983 }1984 SetLastError(ERROR_INVALID_PARAMETER);1985 return 0;1955 case GWL_EXSTYLE: 1956 oldval = dwExStyle; 1957 setExStyle(value); 1958 return oldval; 1959 case GWL_STYLE: 1960 oldval = dwStyle; 1961 setStyle(value); 1962 return oldval; 1963 case GWL_WNDPROC: 1964 oldval = (LONG)getWindowProc(); 1965 setWindowProc((WNDPROC)value); 1966 return oldval; 1967 case GWL_HINSTANCE: 1968 oldval = hInstance; 1969 hInstance = value; 1970 return oldval; 1971 case GWL_HWNDPARENT: 1972 return SetParent((HWND)value); 1973 1974 case GWL_ID: 1975 oldval = getWindowId(); 1976 setWindowId(value); 1977 return oldval; 1978 case GWL_USERDATA: 1979 oldval = userData; 1980 userData = value; 1981 return oldval; 1982 default: 1983 if(index >= 0 && index/4 < nrUserWindowLong) 1984 { 1985 oldval = userWindowLong[index/4]; 1986 userWindowLong[index/4] = value; 1987 return oldval; 1988 } 1989 SetLastError(ERROR_INVALID_PARAMETER); 1990 return 0; 1986 1991 } 1987 1992 } … … 1991 1996 { 1992 1997 switch(index) { 1993 case GWL_EXSTYLE:1994 return dwExStyle;1995 case GWL_STYLE:1996 return dwStyle;1997 case GWL_WNDPROC:1998 return (ULONG)getWindowProc();1999 case GWL_HINSTANCE:2000 return hInstance;2001 case GWL_HWNDPARENT:2002 if(getParent()) {2003 return getParent()->getWindowHandle();2004 }2005 elsereturn 0;2006 case GWL_ID:2007 return getWindowId();2008 case GWL_USERDATA:2009 return userData;2010 default:2011 if(index >= 0 && index/4 < nrUserWindowLong)2012 {2013 return userWindowLong[index/4];2014 }2015 SetLastError(ERROR_INVALID_PARAMETER);2016 return 0;1998 case GWL_EXSTYLE: 1999 return dwExStyle; 2000 case GWL_STYLE: 2001 return dwStyle; 2002 case GWL_WNDPROC: 2003 return (ULONG)getWindowProc(); 2004 case GWL_HINSTANCE: 2005 return hInstance; 2006 case GWL_HWNDPARENT: 2007 if(getParent()) { 2008 return getParent()->getWindowHandle(); 2009 } 2010 else return 0; 2011 case GWL_ID: 2012 return getWindowId(); 2013 case GWL_USERDATA: 2014 return userData; 2015 default: 2016 if(index >= 0 && index/4 < nrUserWindowLong) 2017 { 2018 return userWindowLong[index/4]; 2019 } 2020 SetLastError(ERROR_INVALID_PARAMETER); 2021 return 0; 2017 2022 } 2018 2023 } … … 2025 2030 if(index >= 0 && index/4 < nrUserWindowLong) 2026 2031 { 2027 oldval = ((WORD *)userWindowLong)[index/2];2028 ((WORD *)userWindowLong)[index/2] = value;2029 return oldval;2032 oldval = ((WORD *)userWindowLong)[index/2]; 2033 ((WORD *)userWindowLong)[index/2] = value; 2034 return oldval; 2030 2035 } 2031 2036 SetLastError(ERROR_INVALID_PARAMETER); … … 2038 2043 if(index >= 0 && index/4 < nrUserWindowLong) 2039 2044 { 2040 return ((WORD *)userWindowLong)[index/2];2045 return ((WORD *)userWindowLong)[index/2]; 2041 2046 } 2042 2047 SetLastError(ERROR_INVALID_PARAMETER); … … 2050 2055 2051 2056 if(HwGetWindowHandleData(hwnd, (DWORD *)&window) == TRUE) { 2052 return window;2057 return window; 2053 2058 } 2054 2059 else return NULL; … … 2059 2064 { 2060 2065 Win32BaseWindow *win32wnd; 2061 DWORD magic;2066 DWORD magic; 2062 2067 2063 2068 win32wnd = (Win32BaseWindow *)OSLibWinGetWindowULong(hwnd, OFFSET_WIN32WNDPTR); … … 2065 2070 2066 2071 if(win32wnd && CheckMagicDword(magic)) { 2067 return win32wnd;2072 return win32wnd; 2068 2073 } 2069 2074 return 0; -
trunk/src/user32/new/win32wbase.h
r808 r819 1 /* $Id: win32wbase.h,v 1. 3 1999-09-03 15:09:45 sandervlExp $ */1 /* $Id: win32wbase.h,v 1.4 1999-09-04 17:56:41 dengert Exp $ */ 2 2 /* 3 3 * Win32 Window Base Class for OS/2 … … 17 17 18 18 #include <win32class.h> 19 #include "open32wbase.h" 19 20 #include <gen_object.h> 20 21 #include <win32wndchild.h> … … 31 32 #define CheckMagicDword(a) (a==WIN32PM_MAGIC) 32 33 33 #define WIN32APP_USERMSGBASE 0x100034 #define WIN32APP_USERMSGBASE 0x1000 34 35 35 36 typedef struct { … … 110 111 PRECT getWindowRect() { return &rectWindow; }; 111 112 void setClientRect(LONG left, LONG top, LONG right, LONG bottom) 112 { 113 rectClient.left = left; rectClient.top = top;114 rectClient.right = right; rectClient.bottom = bottom;115 };116 void setWindowRect(LONG left, LONG top, LONG right, LONG bottom)117 { 118 rectWindow.left = left; rectWindow.top = top;119 rectWindow.right = right; rectWindow.bottom = bottom;120 };113 { 114 rectClient.left = left; rectClient.top = top; 115 rectClient.right = right; rectClient.bottom = bottom; 116 }; 117 void setWindowRect(LONG left, LONG top, LONG right, LONG bottom) 118 { 119 rectWindow.left = left; rectWindow.top = top; 120 rectWindow.right = right; rectWindow.bottom = bottom; 121 }; 121 122 void setWindowRect(PRECT rect) { rectWindow = *rect; }; 122 123 … … 158 159 BOOL hasWindowName(LPSTR wndname, BOOL fUnicode = 0); 159 160 Win32WndClass *getClass() { return windowClass; }; 160 char *getWindowNameA() { return windowNameA; };161 char *getWindowNameA() { return windowNameA; }; 161 162 Win32BaseWindow *getOwner() { return owner; }; 162 163 … … 175 176 static HWND Win32ToOS2Handle(HWND hwnd) 176 177 { 177 Win32BaseWindow *window = GetWindowFromHandle(hwnd);178 179 if(window) {180 return window->getOS2WindowHandle();181 }182 else return hwnd; //OS/2 window handle 178 Win32BaseWindow *window = GetWindowFromHandle(hwnd); 179 180 if(window) { 181 return window->getOS2WindowHandle(); 182 } 183 else return hwnd; //OS/2 window handle 183 184 } 184 185 185 186 static HWND OS2ToWin32Handle(HWND hwnd) 186 187 { 187 Win32BaseWindow *window = GetWindowFromOS2Handle(hwnd);188 189 if(window) {190 return window->getWindowHandle();191 }192 else return hwnd; //OS/2 window handle188 Win32BaseWindow *window = GetWindowFromOS2Handle(hwnd); 189 190 if(window) { 191 return window->getWindowHandle(); 192 } 193 else return hwnd; //OS/2 window handle 193 194 } 194 195 … … 265 266 } 266 267 #endif 268 269 public: 270 void SetFakeOpen32() { WinSetDAXData (OS2Hwnd, &fakeWinBase); } 271 void RemoveFakeOpen32() { WinSetDAXData (OS2Hwnd, NULL); } 272 273 fakeOpen32WinBaseClass fakeWinBase; 267 274 }; 268 275 -
trunk/src/user32/new/wingdi.cpp
r777 r819 1 /* $Id: wingdi.cpp,v 1.1 2 1999-09-01 18:48:50 sandervlExp $ */1 /* $Id: wingdi.cpp,v 1.13 1999-09-04 17:56:41 dengert Exp $ */ 2 2 /* 3 3 * Win32 Window graphics apis for OS/2 … … 32 32 return 0; 33 33 } 34 window->MsgEraseBackGround(hdc);34 // !! there is no HDC to paint on !!! window->MsgEraseBackGround(hdc); 35 35 #ifdef OPEN32_GDI 36 36 hdc = O32_BeginPaint(window->getOS2WindowHandle(),lps);
Note:
See TracChangeset
for help on using the changeset viewer.
