/* $Id: ChangeLog-2001,v 1.12 2002-02-21 23:10:45 sandervl Exp $ */ 2001-12-31: Sander van Leeuwen - GDI32: o Use critical section in dibsection class instead of vmutex 2001-12-31: knut st. osmundsen - Tools/CmdQd: o Corrected bad statement in the clean2 rule. 2001-12-30: Sander van Leeuwen - KERNEL32: o Fixed some wrong return values for disk functions (hmdisk) o GetVolumeInformation: use original volume name to determine maximum file name length - USER32: o Enforce WS_EX_WINDOWEDGE style (Wine) (fixes Opera 6 menu) - GDI32: o BitBlt, StretchBlt: sync dib section if selected into destination HDC (fixes Opera 6 background) 2001-12-28: Sander van Leeuwen - USER32: o Do not send WM_SETCURSOR when mouse is captured (SDK docs) 2001-12-26: Achim Hasenmueller - USER32: o don't use hardcoded font height values for menu fonts. Query graphics driver instead (DevQueryCaps) so that we correctly take font settings into account (small, medium, large) 2001-12-26: Sander van Leeuwen - USER32: o Use Wine version of DrawText(Ex)A/W (fixes underscore painting & positioning of text) o (Auto)Check, (Auto)Radio & (Auto)3State buttons send WM_CTLCOLORSTATIC instead of WM_CTLCOLORBTN (verified in NT4) (fixes opening dialog buttons in Opera 6 (choose interface)) o RedrawWindow change: call UpdateWindow if window has invalid rectangle and RDW_UPDATENOW flag set - GDI32: o Removed InternalDrawTextExA/W - ODINBUG: o Update by Herwig Bauernfeind (0.5.5) 2001-12-23: Sander van Leeuwen - WINMM: o DisableWaveAudio function added to disable wave audio (custom build) - GDI32: o CreateFont call wrong for DEFAULT_GUI_FONT (pointsize) 2001-12-22: Sander van Leeuwen - KERNEL32: o Print more information when a missing api is called (image that is responsible) 2001-12-20: Sander van Leeuwen - KERNEL32: o Allow all sections to be accessed when loading an executable/dll with LOAD_LIBRARY_AS_DATAFILE (fixes crashes when accessing resources outside the resource section in Opera 6 binaries) - GDI32: o DIB Section blit: don't check source & destination sizes with DC size (GpiDrawBits does that for us) (fixes the two bitmaps in the opening window of Opera 6 (choice between MDI & SDI interface)) - USER32: o GetClassNameW: return size in characters and truncate name if buffer not large enough (fixes crash in Opera 6 during startup) 2001-12-19: knut st. osmundsen - MAKEFILES:o Changed inference rules in /src/mesa/3dfx to support MULTIJOBS. o Fixed some problems with /tools/cmdqd while MULTIJOBS is enabled. - TOOLS: o Created a tiny preload script, PreloadTools.cmd, which preload the tools which will be invoked during a make. (Too bad we can't do this with rexx scripts too...) 2001-12-17: Sander van Leeuwen - KERNEL32: o GetVolumeInformation changes: - report JFS as NTFS - report UDF & CDFS as UDF & CDFS (no change) - report everthing else as FAT16 (some applications make assumptions about maximium file size based on the volume name) 2001-12-16: Sander van Leeuwen - USER32: o Fixed memory DC leak in DrawIcon & DrawIconEx 2001-12-15: Sander van Leeuwen - GDI32: o Added statistics for font, bitmap, pen, brush & region objects. 2001-12-14: Sander van Leeuwen - KERNEL32: o CancelIo & GetOverlappedResult added for custom device drivers o Enabled overlapped IO for custom device drivers 2001-12-13: Sander van Leeuwen - USER32: o Added function to override name of the PM keyboard hook dll (custombuild) - WINTRUST: o Added stub dll - KERNEL32/USER32/ODINCRT: o Collect some simple statistics about memory & DC usage (will be extended & enhanced in the future) 2001-12-12: Sander van Leeuwen - USER32: o Put back old windows key scancodes o Fix for handling Alt-F4 in default window handler o SendInput fix; send message and clear extra info afterwards - COMCTL32: o Comboex, rebar, tooltips, toolbar bugfixes: (Wine) NEVER delete the font object received by WM_SETFONT 2001-12-11: Sander van Leeuwen - USER32: o Swallow message if WH_KEYBOARD_LL hook returns TRUE o Fixed windows key scancodes o Do no generate a left control key message when Alt-Gr is pressed (experimental change) 2001-12-11: Patrick Haller - PMKBDHK: o Interception of PM Window Hoteys (i. e. Alt-F7) TODO: generate accelerators in Odin 2001-12-10: Sander van Leeuwen - KERNEL32: o Overlapped IO updates 2001-12-09: Sander van Leeuwen - KERNEL32: o Overlapped IO fix (poll & half or full duplex support) - MAKEFILES:o Delete dummy.c after copying custom library (CUSTOMBUILD=1) 2001-12-08: Sander van Leeuwen - KERNEL32: o Added read & write functions to custom driver interface o OdinSetVersion added to override windows version reported by Odin (Win98, WinME, NT4, Win2000, WinXP) o NEW DEFAULT WINDOWS VERSION IS WINDOWS 2000 SP2 (!) o New versions available for odin.ini version override [WinVersion] Version=Win98 -> Windows 98 Version=WinME -> Windows ME Version=NT4 -> Windows NT4 SP6 Version=Win2000 -> Windows 2000 SP2 (default) Version=WinXP -> Windows XP o IOCTL_STORAGE_GET_MEDIA_TYPES is identical to IOCTL_DISK_GET_MEDIA_TYPES o Support for Windows 2000 GetVersionEx extension (OSVERSIONINFOEX structure) added o Added symbolic link for Windows 2000 device driver names \\.\Global -> \\. o Clear GENERIC_WRITE flag if application tries to open readonly device (e.g. cdrom). This is not allowed in OS/2. - INSTALL: o Add font mapping for 'MS Shell Dlg 2' to WarpSans 2001-12-07: Sander van Leeuwen - KERNEL32: o GetFileType for parallel port device returns FILE_TYPE_PIPE (verified in NT4, SP6) o Comm functions not valid for parallel port handles o Overlapped IO updates o Com port now uses new overlapped class for overlapped IO o Call ExitProcess when executable entrypoint returns (LX images) o Be careful when cleaning up threads after ExitProcess has been called 2001-12-06: Sander van Leeuwen - KERNEL32: o Added FindFirstFileExA/FindFirstFileExW o Overlapped IO updates (still untested) - DINPUT: o Link with guidlib.lib - GUIDLIB: o Include dinput.h for DirectInput GUIDs 2001-12-05: Sander van Leeuwen - KERNEL32: o Merged WriteFile & WriteFileEx, ReadFile & ReadFileEx handle manager functions o Removed dwType handle manager structure member; added win32 handle to structure (NOTE: All work in progress for new framework for overlapped IO) o ReadFileEx/WriteFileEx: lpOverlapped->Offset & lpOverlapped->OffsetHigh must be 0 if used with named pipes 2001-12-04: Patrick Haller - KERNEL32: o parallel port support restricted to physical ports (LAN redirections not supported) 2001-12-04: Sander van Leeuwen - COMCTL32: o Hack added for proper resizing of wizard property sheet in CVP. Not sure if it's always correct or whether it has a bad effect on other apps (none found so far). - WININET: o HttpSendRequestA fix: strlen(NULL) crashes 2001-12-03: Patrick Haller - KERNEL32: o put in correct ioctl identifiers for parport support in winioctl.h o parallel port support (hardware configuration) enabled 2001-12-03: Sander van Leeuwen - KERNEL32: o Use DosSleep in Sleep (don't call WGSS) o GetThreadPriority: return priority stored in TEB o Rewrote SetThreadPriority; allow it to change priority classes too. WGSS only changes delta in SetThreadPriority and class in SetPriorityClass (but that one affects the whole process, so it is rarely used by applications) THREAD_PRIORITY_IDLE -> PRTYC_IDLETIME, 0 THREAD_PRIORITY_LOWEST -> PRTYC_REGULAR, PRTYD_MINIMUM THREAD_PRIORITY_BELOW_NORMAL -> PRTYC_REGULAR, -15 THREAD_PRIORITY_NORMAL -> PRTYC_REGULAR, 0 THREAD_PRIORITY_ABOVE_NORMAL -> PRTYC_REGULAR, 15 THREAD_PRIORITY_HIGHEST -> PRTYC_REGULAR, PRTYD_MAXIMUM THREAD_PRIORITY_TIME_CRITICAL -> PRTYC_TIMECRITICAL, 0 o SetPriorityClass; just return success for now 2001-12-02: Sander van Leeuwen - USER32: o Don't send WM_SIZE message to dialog before it receives WM_INITDIALOG (winzip 8.0 and Opera crash when sending this message too soon) (TODO: check in NT if this is really correct) - COMCTL32: o Restored old property sheet code as latest Wine version causes too many new problems. 2001-12-01: knut st. osmundsen - CRTDLL: o Include ctype.h from dir.c and string.c. (Noted by Ye][ow.) 2001-12-01: Sander van Leeuwen - KERNEL32: o Fixed GetThreadTEB macro & GetCurrentThreadId (completely broke debug build among other things) 2000-12-01: Yuri Dario - USER32: o MENU_FindItem: extra check added for loops in menus 2001-11-30: Patrick Haller - KERNEL32: o heapstring.cpp: improvement on HEAP_malloc, HEAP_free, HEAP_realloc, HEAP_size o acceleration on GetCurrentThreadId() - SHELL32: o use HEAP_xxx functions for frequently called APIs - ODINPROF: o Note: SET PROFILEHOOKS=1 before doing NMAKE PROFILE=1 This will enable the profiler in ODINCRTP.DLL (use release build ODINPROF.DLL), generates (pid).prof on process exit. - * o fixed out-of-scope TRACE,FIXME,WARN macros 2001-11-30: Sander van Leeuwen - USER32: o Changed menu hilite background to the color used by PM (OS/2 look) o DIALOG_IsAccelerator resync (Wine) - KERNEL32: o Partly implemented PurgeComm - * o Removed all the TRACE, FIXME & WARN redefinitions (temporary hack for better logging; didn't affect the release build anyway) TODO: we need better logging in Wine code 2001-11-29: Patrick Haller - KERNEL32: o Split dosdevice.cpp from stubs.cpp (DefineDosDevice, QueryDosDevice) o Fixed CDROM ioctls and disk access (previous fix failed or cause possible regression) - OLEAUT32: o olepicture.c: fixed null pointer exception cause: our TRACE, FIXME, etc. debugtools macros all go out of scope of a braceless if-statement before! Therefore, we're getting false (error) messages or even crashes. (to be fixed) 2001-11-29: Sander van Leeuwen - COMCTL32: o Listview: invalidate entire item for ownerdraw control (don't exclude report margin) - KERNEL32: o Fixed disk access (yesterday's changes broke it) - SHELL32: o Removed wrong call to ctordtorInit that caused the disk access problems in the custom build. 2001-11-28: Patrick Haller - KERNEL32: o fixes in ::CreateFile calls (return codes must be Win32) o fixes in symbolic link management o marked some important TBDs for phys. disk mgmt! o fixed HMCOMM to accept (what a good idea) \\.\COM1, COM1, COM1: but not "\\.\COM1:" (NT4SP6) o added support for AUX->COM1, PRN->LPT1, CON->CONOUT$ o added NUL device 2001-11-28: Sander van Leeuwen - KERNEL32: o WaitCommEvent fixes (must reset overlapped event semaphore & store result of overlapped operation in parameter) o Removed symbolic link for \\.\. Adding this is a very bad idea as CreateFile calls for device driver will be routed to files. Probably causes even more problems. - INCLUDE: o winbase.h: CBR_xxxx definitions wrong 2001-11-27: Patrick Haller - KERNEL32: o added \\.\ as standard symbolic link to the local namespace This is the clean way for alternative device names, local kludges in the device handlers should be avoided. o fix in name resolver 2001-11-27: Sander van Leeuwen - WSOCK32: o Missing FS wrapper macros added - KERNEL32: o Accept \\.\COMx as name for COM ports - USER32: o EnumChildWindow bugfix 2001-11-26: Sander van Leeuwen - KERNEL32: o Implemented CancelIo & GetOverlappedResult for serial comm o Preliminary work on overlapped IO for serial comm 2001-11-24: Sander van Leeuwen - KERNEL32: o Custom build fix; check for double call for inittermKernel32 o More informative message when non-existing api is called. Now displays dll + function name or ordinal. 2001-11-23: Patrick Haller - KERNEL32: o minor work in parallel port support (ioctls) o "Kernel Object Namespace" -> handlenames.cpp introduced (yet inactive) 2001-11-23: knut st. osmundsen - Misc. Makefiles: o Corrected the descriptions (on request from Ye][ow). 2001-11-22: Sander van Leeuwen - KERNEL32: o Check volume label during IOCTL_DISK_GET_DRIVE_GEOMETRY to see if the media has been changed or removed. o Implemented WriteFile & GetFileType for disk handles (write currently only allowed for drive A) - DSOUND: o Renamed DllGetClassObject & DllCanUnloadNow to avoid name conflicts in the custom build. 2001-11-22: Patrick Haller - ODINPROF: o initial version PROFILE images using ODINCRTP generate a .prof file (the optimized release build of ODINPROF should be used) No source code modification required. Problem: mapsym seems to corrupt kernel32.sym - KERNEL32: o additions to parallel port support 2001-11-21: knut st. osmundsen - src/makefile: o Added guidlib to NOTDLLS. 2001-11-21: Sander van Leeuwen - COMCTL32: o Tooltips bugfixes (wrong pointer used to free memory) - USER32: o GetMenu: check that window menu is indeed a menu and not an id (fixes failed assertion in ZOC) o Groupbox fix: if text changes; erase top border + old text 2001-11-20: Sander van Leeuwen - USER32: o Destroy CD notification window during dll unload o Focus fix for dialog windows Experiments in NT4 show that dialogs that are children don't receive focus. Not sure if this is always true. (couldn't find any info about this in the SDK docs) 2001-11-19: Sander van Leeuwen - GUIDLIB: o Library with all GUIDs used by Odin - COMDLG32, OLE32, OLEAUT32, SHLWAPI, SHELL32: o Removed guid source files and link with guidlib.lib 2001-11-18: Sander van Leeuwen - WS2_32: o Compile fix - OLEAUT32: o Don't include guid file in custom build library 2000-11-18: Yuri Dario - USER32: o WM_SETTEXT (unicode) fix (latest changes broke Opera among other things) 2001-11-16: Sander van Leeuwen - COMCTL32: o LISTVIEW_UpdateScroll update (from old control) - USER32: o Disallow nested calls to SetScrollRange. This is most likely not the right fix, but it works so far without negative side effects. (fixes crash in CVP listview with 4+ items) - GDI32: o Removed line draw speedup. If I have to choose between a performance loss of a few clock cycles and a code size increase of 2k, I prefer the 1st option. - WSOCK32: o ODINWRAP changes break winsock. This code still depended on FS save/restore. Now added a wrapper header for all OS/2 socket functions. 2001-11-16: Patrick Haller - ODINWRAP: o don't generate any frame procedure for RELEASE build anymore (even no FS: wrapper (meanwhile superfluous)) -> significant performance gain for logged micro functions - KERNEL32: o heap speedup (30%) - GDI32: o minor line drawing speedup 2001-11-14: Patrick Haller - KERNEL32: o fixed infinite loop in PE loader for corrupted or misinterpreted PE images (Opera 6) - OLEAUT32: o fixed Null pointer exception in VariantTimeToDosDate 2001-11-14: Sander van Leeuwen - KERNEL32, USER32, COMCTL32, SHELL32, OLE32: o Removed unnecessary string copy operation changes (heap -> stack) Performance improvement is minimal at best and stack corruption is MUCH harder to locate than heap corruption. 2001-11-13: Patrick Haller - fastdep: o IPF support. 2001-11-13: Patrick Haller - KERNEL32: o provided faster alternatives to HEAP_strdupXXX ... which operate on stack only (STACK_strdupXXX) This could slightly reduce heap pressure. - USER32: o avoid unnecessary strcpy/strlen when get/setting window text 2001-11-13: Sander van Leeuwen - KERNEL32: o Added missing entry in debug log table for hmparport (fixes crash in debug build with selective logging) - GDI32: o CalcBitmapSize bugfix o SetDIBitsToDevice workaround for bug in Matrox driver. When blitting 32 bpp data, the GpiDrawBits call will fail with an insufficient memory error. When that happens, convert data to 24 bpp and try again. (TODO: This can happen in more functions!!) o Fixes for wrong bit masks in several functions (24 & 32 bpp) o Refuse DeleteObject for DEFAULT_GUI_FONT handle 2001-11-12: Patrick Haller - ODINWRAP: o improved thread call path tracking (now collects i. e. HEAP_malloc->HeapAlloc paths) 2001-11-12: Sander van Leeuwen - USER32: o Fix for calculating font size for a dialog box 2001-11-11: knut st. osmundsen - KERNEL32: o Only declare OS/2 AFFINITY stuff if it isn't there. (Build breaker. Seems like someone has an old toolkit...) 2001-11-10: Sander van Leeuwen - KERNEL32: o Implemented Get/SetProcessAffinityMask & SetThreadAffinityMask 2001-11-08: Sander van Leeuwen - COMCTL32: o Ported latest Wine property sheet control (fixes some, but not all problems in CVP) 2001-11-08: Patrick Haller - KERNEL32: o first shot at parport support 2001-11-07: Sander van Leeuwen - USER32: o EndDialog fix for MFC dialog windows o static control fix: SS_CENTERIMAGE means fill remainder of client area with upper left pixel of bitmap - KERNEL32: o Fix for applications that use CreateFile to open a named pipe 2001-11-07: Patrick Haller - WININET: o http, internet: WINE sync 2001-11-05: Sander van Leeuwen - KERNEL32: o Call old DosOpen if DosOpenL not available 2001-10-31: knut st. osmundsen - CmdQd: o Dirty workaround for Ctrl-C on client waiting for output so it won't kill the daemon. 2001-10-30: Sander van Leeuwen - KERNEL32: o IOCTL_CDROM_READ_TOC bugfix o Handle opening of drive without disk and getting handle when disk is inserted o Use DosOpenL (if available) to open files, or else the large file apis won't work properly. 2001-10-29: Sander van Leeuwen - KERNEL32: o Always IOCTL_DISK/DSK_GETLOCKSTATUS for IOCTL_STORAGE_CHECK_VERIFY (handle doesn't need to be valid for this ioctl) - USER32: o Send WM_DEVICECHANGE to top-level windows when a CD is inserted or removed (poll CD status every 100ms) 2001-10-29: Achim Hasenmueller - BUILD: o strip EAs from binary before executing LXLITE on it to prevent errors in LXLITE if the file is on a LAN Server JFS volume 2001-10-29: knut st. osmundsen - NTDLL: o _ultow and RtlIntegerToUnicodeString. - Makefiles: o Remove dummy.c in clean rule. 2001-10-28: Sander van Leeuwen - COMCTL32: o LISTVIEW_GetItemWidth bugfix: item can never be bigger than the client area - USER32: o Fixes for Set/GetWindowLong for dialogs. (unicode flag not passed to parent class methods) o Added SetDialogHook function for custom build - KERNEL32: o Added RegisterCustomDriver o Added SetDefaultLanguage to override default language 2001-10-27: Sander van Leeuwen - KERNEL32: o IOCTL_SCSI_GET_ADDRESS: fail if wnaspi32 not loaded - WINMM: o Added option to turn off audio by setting a key in the registry HKEY_LOCAL_MACHINE\\System\\CustomBuild DisableAudio = [0|1] (DWORD type) - USER32: o CreateIconIndirect bugfix 2001-10-26: knut st. osmundsen - FastDep: o Corrected crash on bad dependency file. 2001-10-26: Achim Hasenmueller - WNASPI32: o don't fail DLL loading if ASPI library fails to init 2001-10-26: Sander van Leeuwen - KERNEL32: o Better implementation of IOCTL_CDROM(DISK/STORAGE)_CHECK_VERIFY o CDROM ioctls: Use signature returned by IOCD_IDENTIFY ioctl o Implemented IOCTL_CDROM_READ_TOC 2001-10-26: Patrick Haller - USER32: o fixed ESC keyboard event o fixed passing thru special key events to the frame window o partial fix for shift key processing o fixed right shift processing (and possibly numerous other extended keys) o fixed this &%$&%! Alt-Gr-Key-Emulation remaining issues: AltGr won't toggle GetAsyncKeyState() or GetKeyState() 2001-10-25: Patrick Haller - USER32: o fixed scancodes for [Pause] and [PrtScr] 2001-10-25: Sander van Leeuwen - USER32: o Fixed sending of WM_ACTIVATEAPP messages. Only send them to top-level windows when application gains or loses focus from/to a window of another process. o Fix for window tracking with thin frame (moving/sizing window left tracks on the screen (fullscreen dragging disabled)) - KERNEL32: o Never use DosError to disable hard errors! Use SetErrorMode *and* restore old error mode afterwards. o IOCTL_DISK_GET_DRIVE_GEOMETRY change: Applications can use this IOCTL to check if the floppy has been changed. OSLibDosGetDiskGeometry won't fail when that happens so we read one byte from the disk and return ERROR_MEDIA_CHANGED if it fails with ERROR_WRONG_DISK. - COMCTL32: o ListView: LVM_SETITEMA: update item even when 'new' text is the same. (CVP depends on this) 2001-10-24: Patrick Haller - USER32: o added translation between PM Scancodes and Windows Scancodes Note: Open32 uses always PM Scancodes! o fixed GetKeyNameText as far as possible Despite we'll have to implement a flexible keyboard layout scheme in the future. 2001-10-24: Achim Hasenmueller - PMKBDHK: o link statically with C runtime 2001-10-24: Sander van Leeuwen - USER32: o SCROLLBAR: Only set focus to scrollbar control if it has the WS_TABSTOP style (bugfix taken from Wine) o IsWindowVisible: check for WS_CHILD style before checking parents (CVP: fixes moving of dialog with invisible owner) o Frame tracking: activate and bring window to top when control key is not pressed (OS/2 look) (fixes activation by clicking on title bar and you can now track frame without activating it) o Double mouse click sent two up messages o Double click on system menu now closes window (SetCapture interferes with double click message generation) - WINMM: o Dynamically load MDM; Windows applications (that don't require sound) will no longer fail when MMPM/2 isn't available. 2001-10-23: Sander van Leeuwen - COMCTL32: o ListView: WM_KEYDOWN -> if WM_NOTIFY returns TRUE, then don't process key anymore; the app did it for us o ListView: First focus change didn't work o Partial implementation of draglists. Only sends DL_BEGINDRAG DRAGLISTMSGSTRING message which is enough for CVP. - USER32: o Fixed moving of window with RMB 2001-10-23: Patrick Haller - USER32: o major improvement on keyboard handling Special AltGr mapping missing yet o partial fix to GetKeyNameText(), two Open32 bugs remaining: (injected scancodes ignored (undoc), extended key bit ignored) 2001-10-22: Patrick Haller - TESTAPP: o added keyboard test program for low-level testing of the keyboard routines (Queue, WH_KEYBOARD, WH_KEYBOARD_LL) - PMKBDHK: o added initial version - USER32: o enabled PMKBDHK o fixed minor issue in WH_KEYBOARD_LL - SHELL32: o minor speedup in PIDL handling - KERNEL32: o removed experimental heap handle cache stats 2001-10-21: Sander van Leeuwen - WSOCK32: o Fix for sending FD_CLOSE notification when connection is closed at the remote end. 2001-10-20: Achim Hasenmueller - WNASPI32: o do not fail in init routine in case ASPIROUT.SYS is not present. Just return errors from all calls if this is the case. TODO: refine calls to not return any ASPI devices! 2001-10-19: Achim Hasenmueller - WSOCK32: o implemented error bit handling in Winsock 2.0 event semaphore notification for async select 2001-10-19: Patrick Haller - COMCTL32: o updated listview and status to wine level - COMDLG32: o fix crash in FileDlg95 (used freed memory object) 2001-10-18: knut stange osmundsen - odin32.*.vac3*.mk: o Added /noignorecase to ILIBFLAGS. Object libraries is now using case sensitive names. This removes some warnings during custombuild and fixes a duplicate symbol problem in kKrnlLibR3. 2001-10-18: Achim Hasenmueller - USER32: o temporarily backed out a change from earlier today in the color pointer conversion code that causes severe regressions. Look for @@@AH in oslibres.cpp 2001-10-18: Sander van Leeuwen - DDRAW: o Check if DirectDraw object is associated with Clipper. - SHELL32: o Compile fix for release build - USER32: o Fix for pointer conversion o Notify visible region callback when WM_SHOW arrives. For some reason we don't receive a WM_VRNENABLED message when a window is shown for the first time. - KERNEL32: o Check for NULL handler in RtlRaiseException/RtlUnwind - GDI32: o Removed wrong warnings about GpiQueryBitmapBits 2001-10-17: knut stange osmundsen - common: o Corrected bug in kFile buffering which caused impdef to crash in some cases. 2001-10-17: Patrick Haller - SHELL32: o WINE resync 20011017 - KERNEL32: o minor heap optimization - USER32: o minor handle mgmt optimizations - CRTDLL32: o RegisterLxDll() in initterm was missing (WINPROJ) 2001-10-17: Sander van Leeuwen - DDRAW: o Fixes for DDBLT_COLORFILL - WS2_32: o Added stubs for WSAEnumProtocolsA/W - USER32: o SetFocus fix; don't always activate window because that changes the z-order which interferes (among other things) with GetNextDlgTabItem & GetNextDlgGroupItem o Removed some GetNextDlgGroupItem changes which are no longer necessary due to the SetFocus fix 2001-10-16: Sander van Leeuwen - KERNEL32, CUSTOMBUILD, USER32: o Custom build fixes + changes o GlobalMemoryStatus: limit amount of virtual memory to 2GB - 1 Some applications interpret this value as a signed long. - USER32: o Fix for pointer conversion 2001-10-16: Patrick Haller - WSOCK32: o enabled receive and send timeout socket options (SO_SNDTIMEO, SO_RCVTIMEO) 2001-10-15: Sander van Leeuwen - KERNEL32, USER32, WNASPI32, DDRAW: o Custom build updates 2001-10-14: Sander van Leeuwen - USER32: o Convert color cursor to monochrome if it only uses two colors. This overcomes a silly limitation in some less advanced display drivers. (SDD still has no support for color cursors!) (fixes mouse cursor flickering & screen distortion when accessing the frame buffer directly) NOTE: This is a partial solution only. Real color cursors still use GRADD's rather poor software emulation. 2001-10-13: Sander van Leeuwen - WSOCK32: o Overwrite IP header length in sendto for raw sockets with IP_HDRINCL option set. (fixes errors for apps that use big endian format for the length word) o WSAEnumNetworkEvents now reports (some) events properly o Call WSACleanup during dll unload in case application forgot to do that. 2000-10-12: Yuri Dario - USER32: o GetNextDlgGroupItem fix for infinite loop in Opera 2001-10-12: Achim Hasenmueller - KERNEL32: o use bounce buffers if end of buffer crosses tiled region barrier, not start of buffer (yeah, being nit-picking here, OS/2 will actually never give you a memory object that crosses the boundary...) 2001-10-11: Patrick Haller - include: o debugtools.h: memory corruption in debugstr_() - KERNEL32: o (cheap) heap lookup acceleration o better profiler calibration :) o bounce buffers for DeviceIoControl() with high memory buffers - SHELL32: o ~10% speed improvement on shell folder operations ;-) 2001-10-11: Sander van Leeuwen - USER32: o SetScrollRange: return error if min > max or out of range (ERROR_INVALID_SCROLLBAR_RANGE) (behaviour of NT4, SP6) o Scrollbar control window not disabled properly when using EnableWindow instead of EnableScrollbar. (handle WM_ENABLE and call EnableScrollbar) o Forward WM_SYSCOMMAND to Parent (for scrollbar control window with size grip style) - WSOCK32: o Implemented IP_HDRINCL, IP_TTL & IP_TOS for set/getsockopt - WS2_32: o Translate IPPROTO_IP options in getsockopt before calling wsock32 2001-10-11: Patrick Haller - KERNEL32: o added ODIN performance profiler (perf_0.log for PROFILE builds) - SHELL32: o ~30% speed improvement on shell folder operations 2001-10-10: Sander van Leeuwen - USER32: o Do not blindly add ODIN_FUNCTION macros to functions that get called very often. (like IsWindow, GetParent & IsWindowVisible) This tends to make logfiles very big... - WSOCK32: o Added IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_MULTICAST_LOOP & IP_MULTICAST_TTL to setsockopt o Add support for WS2_32 IPPROTO_IP options - WS2_32: o Translate IPPROTO_IP options in setsockopt before calling wsock32 - DDRAW: o Commented out DiveAcquire/DeaquireFrameBuffer for now (surflock/unlock) 2001-10-10: Patrick Haller - KERNEL32: o added IOCTL_CDROM_EJECT_MEDIA IOCTL_CDROM_LOAD_MEDIA IOCTL_CDROM_PAUSE_AUDIO IOCTL_CDROM_STOP_AUDIO IOCTL_CDROM_RESUME_AUDIO IOCTL_CDROM_PLAY_AUDIO_MSF o added IOCTL_STORAGE_EJECT_MEDIA IOCTL_STORAGE_LOAD_MEDIA IOCTL_DISK_EJECT_MEDIA IOCTL_DISK_CHECK_VERIFY - IPHLPAPI: o added fake version of GetAdaptersInfo() - ODINWRAP: o standard C compiler compatibility - MAKE: o fixes to the profile make include - SHELL32: o PIDL: instrumentation for performance tuning 2001-10-09: Sander van Leeuwen - KERNEL32: o Image header page must be readonly o Temporarily disabled high memory usage for heap 2001-10-08: Patrick Haller - USER32: o enabled WH_KEYBOARD_LL hook, seems to work o added further messages to wndmsg.cpp - KERNEL32: o added further error codes to error2WinError 2001-10-08: Sander van Leeuwen - USER32: o WM_WINDOWPOSCHANGED: activation fix; must clear FF_NOACTIVATESWP if mp2 & AWP_ACTIVATE (fixes activation of some inactive windows; used to be activated but not brought to the top) 2001-10-07: Sander van Leeuwen - DDRAW: o Don't use Dive for blitting to/from 8 bpp surfaces - USER32: o Eliminated flickering during frame sizing due to unnecessary drawing o Fixed handling of WM_SIZING/WM_MOVING (changing rectangles) o WM_TRACKFRAME: call Frame_SysCommandSizeMove with SC_MOVE+HTCAPTION 2001-10-06: Sander van Leeuwen - QUARTZ/OLEAUT32: o Wine 20011004 resync - KERNEL32: o Reduce overhead for heap allocation o Always allocate heap memory from high memory (if available) o Allocate extra heap memory in 64kb units MUST use 64kb here or else we are at risk of running out of virtual memory space. (when allocating 4kb we actually get 4kb + 60k uncommited) (fixes out of resources error while loading big movies in The Playa) 2001-10-05: Sander van Leeuwen - DDRAW: o Added stretching support for blitting to the screen (the Playa can now play movies in fullscreen mode) 2001-10-03: Sander van Leeuwen - WINMM: o Allocate handle for new timer and verify handle is valid before using it. (prevents crashes when app attempts to delete timer twice (DivX 4)) - DDRAW: o Fixed memory leaks in SurfBlt4 (rectangles) o Take clipping into account in SurfBlt4. Windowed DirectDraw blitting now seems to work well. (only tried DivX 4; needs more testing) - USER32: o Rewrote sizing & moving of windows (frame tracking) (ported Wine version + fixed some bugs) Some applications (e.g. RealPlayer) resize themselves when receiving WM_SIZING msgs. Not possible to send those with PM's frame tracking. TODO: fix flickering of size border (dynamic drag off) TODO: WM_SIZING handling not 100% correct yet TODO: Must display size/move cursor when starting action from system menu o GetDCEx change; always call WinGetClipPS (!CS_OWNDC) - OLEAUT32: o Wine update 2001-10-02: Sander van Leeuwen - REGSVR32: o Must use LoadLibrary, not CoLoadLibrary (Some dlls (divx codec) call CoFreeUnusedLibraries which unloads the same dll if we use CoLoadLibrary (-> crash) NT's regsvr32 doesn't use CoLoadLibrary either) - USER32: o OSLibWinGetMsg bugfix 2001-10-01: Sander van Leeuwen - USER32: o Lastest Wine revision of GetNextDlgGroupItem ported + modified 2001-09-30: Sander van Leeuwen - INCLUDE: o Hook constants added to winconst.h (adding them to winuser.h only completely breaks Odin) - DDRAW: o Implemented IDirectDrawClipper class for windowed DirectDraw (only works if app uses clipping info for manual blitting; IDirectSurface blitting methods need to be updated to take clipping into account) - USER32: o Added export to register visible region change callback 2001-09-30: knut st. osmundsen - Makefiles: o Added a DOMAKES util which should be used when invoking other makefiles. (see /src/kernel32/makefile) o Silenced most of the command $(DO*) commands so the commandline doesn't show. o Added some colors on the output from the $(DO*) scripts to make it easier to separate directory and makefile switching from all the other output. Turn this off by using the env.var. BUILD_NOCOLOR. o Did some cleanup of the main Makefile and added some missing rules. o Made separate .depend file for the include files in the /include dir. This will speedup the 'dep' rule somewhat. o Autostart CmdQd with 7 workers if not started and MULTIJOBS are defined. o Profile builds uses ./bin/Profile.* subdir for output, not ./bin/Debug.*. o PROFILE mode (PROFILE=1) overrides DEBUG and RELEASE modes. o NMAKE version of the Watcom support since WMAKE sucks big time :-( These are the the odin32.*.watn.mk files. This caused introduction of the MKFILE macro for the compiler specific filename part. (Set CCENV=WAT and use NMAKE just like with VAC3.) o Enabled Watcom (NMAKE version) support in mostly all makefiles. (I.e. places we do compiler specific tweaks.) - Fastdep: o Corrected processing of C/C++ #include "someheader.h" to start the search in the source code directory. o Corrected handling of deleted files. o Increased some read and write buffers. - Win32k: o Changed PSZ to char *, since H2INC doesn't understand PSZ. - Custombulid: o Can now build object libraries for custombuild without separate makefiles. Define CUSTOMBUILD=1 (=1 is important!) to build an DLL. o To build all needed object libraries and the custom dll, go to /src and 'nmake custombuild'. There is currently no rule in the main makefile for this, so remember to make the libraries in /lib first. o Removed all the obsolete *lib.mak files. - Watcom: o ccollection.h: Include odin.h to get min/max. o odin.h: C INLINE/inline support. o odinwrap.h: Watcom has problems with the GetCurrentThreadId redeclaration. (DWORD != unsigned long int) Exclude prototype if watcomc. (workaround) o windef.h: __max and __min is defined in stdlib.h, undef before redefining them. o unicode.h: static inline workaround (just like VAC). o src/makefile: Temporarily ignore return codes from subdirs. o kernel32/console2.h: Don't include calling convetion for thread function. The default is the correct one usually. o kernel32/conbuffervio.cpp: Alloca is defines in malloc.h for watcom. VAC defines this in both malloc and stdlib.h. o kernel32/console.cpp: _beginthread is defined in process.h not stdlib.h as for VAC. 2001-09-29: Sander van Leeuwen - WGSS50: o WGSS update 2001-09-28: Patrick Haller - USER32: o added experimental support for WH_KEYBOARD_LL hook o implemented keybd_event, mouse_event (-> SendInput ) 2001-09-28: Sander van Leeuwen - PE2LX: o Added options to remove fixups and to reroute all imports to a custom odin dll 2001-09-27: Patrick Haller - USER32: o partial implementation of SendInput() - KERNEL32: o improved error code mapping (error2WinError) o keep HandleManager from reusing last handle too quickly (CreateFile after CloseHandle might return the same handle again, which is correct but doesn't put the spotlight on buggy apps) 2001-09-26: Sander van Leeuwen - WININET/ICMP/WS2_32/WINSPOOL/CTL3D32: o Makefiles added to build library with obj files - WININET: o Split up initterm - CUSTOMBUILD: o Ordinals definitions moved into ordinals.h 2001-09-26: knut st. osmundsen - Win32k: o Create development branch 'splittup' which in the splittup of win32k is being implemented. o BTW. I think I've found the jfs/fat32 + win32k problem. I left some dirty readonly heap pages behind... That is corrected in the splittup. - Some Makefiles: o Corrected the file header to state correct dllname. Ye][ow, which is doing some documentation stuff on the Odin32, pointed this out this for me. 2001-09-26: Patrick Haller - ODINWRAP: o fixed FNEPILOGUE position (MISC) o added support for calldepth tracing - OLE32: o fixed wrong prototype in regsvr32.cpp 2001-09-25: Sander van Leeuwen - COMCTL32: o Wine updates (MRU functions) - SHELL32: o Wine updates (SHAddToRecentDocs) - DDRAW/ADVAPI32: Added makefiles for building library with obj files 2001-09-24: Sander van Leeuwen - DDRAW: o Set screen resolution + bpp of primary surface to those of the PM desktop. (used to default to 640x480x8bpp) 2001-09-24: Patrick Haller - USER32: o added ODINWRAP debug tracing support to WINKEYBOARD.CPP 2001-09-23: Sander van Leeuwen - USER32: o MDI bugfix: set active child to 0 when last one is destroyed (fixes crash when closing mdi window in odinapp) - GDI32: o DIB Section sync bugfix; GpiQueryBitmapBits fails when cbImage is too small (compressed images only) This used to work. Maybe related to new SDD version. (CoolEdit 2000 hits breakpoint in debug build) 2001-09-23: Dietrich Teickner - SHELL32: o Small update for shfileop.c 2001-09-21: Sander van Leeuwen - USER32: o Focus changes - CTL3D32: o Added stub dll 2001-09-20: Sander van Leeuwen - USER32: o Activate window when it returns 0 for WM_MOUSEACTIVATE 0 is not documented, but experiments in NT4 show that the window will get activated when it returns this. (fixes activation of FreeCell when clicking on the window) o WM_NEXTMENU bugfix (from Wine) (fixes crash during menu navigation in MDI windows) - SHELL32: o Shell Folder bugfix from Wine added 2000-09-19: Oliver Braun - USER32: o PeekMessageW bugfix 2001-09-19: Sander van Leeuwen - USER32: o Changed GetLastActivePopup (still not complete) o Prevent loop in DIALOG_IsAccelerator o GetMenuItemInfoW bugfixes o Ported the Wine MDI control 2001-09-17: Patrick Haller - WS2_32: o added stub for WSAIoctl() (Parsec) - WINMM: o lowered minimum OS/2 timer resolution to 2ms (for the new CLOCKSCALE feature) 2001-09-17: Sander van Leeuwen - USER32: o Must return AWP_ACTIVATE/AWP_DEACTIVATE flags in WM_ADJUSTWINDOWPOS (SWP_ACTIVATE/SWP_DEACTIVATE). This ensures activation is handled properly. No longer necessary to manually send WM_ACTIVATE messages. o Only forward SC_CLOSE syscommand to top level window if generated by keyboard 2001-09-15: Sander van Leeuwen - USER32: o Some focus/activation changes o Translation fix for WM_SYSCOMMAND; SC_CLOSE now always directed to top-level window. (OS/2 look only) - ODINBUG: o Update by Herwig Bauernfeind - OLEAUT32/OLE32/QUARTZ/COMDLG32: o Wine updates - COMCTL32: o Wine updates for toolbar, pager & rebar controls o Treeview bugfix when deleting the selected item (fixes crash in UltraEdit when opening files) - * o Put back original sources. Extremely annoying to add tags and change tabs in files. 2001-09-11: knut st. osmundsen - kKrnlLib: o FYI: Win32k revamp/split-up. Not yet completed. 2001-09-10: Sander van Leeuwen - KERNEL32: o VirtualQuery fix; DosQueryMem doesn't always return region size in pages, so round up size to next page boundary (fixes loop during Netscape 4.7 startup) - GDI32: o DPtoLP fix; signed/unsigned comparison failed (fixes huge fonts in Netscape 4.7) o StretchDIBits fix; clear ulCompression for BI_BITFIELDS or else WGSS blit will fail (fixes black pictures in Netscape 4.7) 2001-09-09: Sander van Leeuwen - TAPI32: o Some updates - OLEAUT32: o Wine typelib updates 2001-09-07: Patrick Haller - include: o removed ./include/wine/server.h (Wine Server) because of collisiton with server.h in OS/2 toolkit - WNETAP32: o NetServerEnum implemented o split into numerous smaller source modules 2001-09-05: knut st. osmundsen - src\*: o Added/fixed CVS $Id tag in source files. Sorry, if this caused long checkout and compilation. :-) - tools\database: o Fixed a couple of bugs, just in case we get it online some day :-). o More or less implemented @design notes. - tools\dailybuild: o Added automatic uploading of current odin32 api database. (_test_ it at http://odin.netlabs.org/Odin32DBTest/Odin32DB.phtml) 2001-09-04: knut st. osmundsen - FastDep: o Synced FastDep with OS2Tools. 2001-09-01: knut st. osmundsen - Tools\CmdQd: o Do DosExecPgm directly on programs when possible. (It's not possible if multiple commands is specified in a job.) o Path search result caching. o Uses CMD.EXE nomatter what is in the COMSPEC. o Corrected memory overwrite in output read loop. 2001-08-31: Patrick Haller - KERNEL32: o Fix in MoveFileExW, MoveFileExA prevents stack corruption in MS ACMSETUP - USER32: o Fix in UnregisterClass for never reaching the destructor of Win32class. ACMSETUP now working. o graceful error handling if PostMessage fails due to shared heap shortage 2001-08-30: Patrick Haller - SHLWAPI: o Improvements on ordinal functions 2001-08-29: Patrick Haller - USER32: o BUTTON.CPP: don't draw invisible buttons (fixes MS ACMSETUP w/ OWNERDRAW pushbuttons) 2001-08-28: Sander van Leeuwen - GDI32: o CreateDIBitmap: reverse bitmap for negative height (fixes buttons in Abiword) 2001-08-27: Sander van Leeuwen - USER32: o FillRect fix: brush 0 means current selected brush (verified in NT4) (fixes background in registration dialog of CVP) 2001-08-26: Sander van Leeuwen - USER32: o Convert icon & cursor to OS/2 format in CreateIconIndirect, CreateCursor & CreateIcon o Convert RGB 555 to 565 for 16 bits icons and cursors (win to os/2 icon/cursor conversion) - SHELL32: o SHBrowseForFolderA fix: don't send dummy BFFM_SELCHANGED during WM_INITDIALOG (breaks folder dialog in CVP) 2001-08-25: Sander van Leeuwen - KERNEL32: o Set last error to ERROR_ALREADY_EXISTS when CreateMutex, CreateEvent or CreateSemaphore is called with existing semaphore name. - CUSTOMBUILD: o Added riched32 - RICHED32: o Changes for custom build 2000-08-25: Yuri Dario - USER32: o Button: don't send BN_PAINT/HILITE/UNHILITE/DISABLE (not done in Wine either) 2001-08-23: Sander van Leeuwen - OLEAUT32: o Wine updates - QUARTZ: o Wine updates 2001-08-19: Sander van Leeuwen - QUARTZ: o Added stub dll from Wine 2001-08-19: knut st. osmundsen - Win32k.lib: o OPEN_FLAGS_NOINHERIT when opening win32k. This is hopefully a temporary fix on the missing env. mem. lock cleaning for parent/child. 2001-08-16: Patrick Haller - GDI32: o Optimization for dibsect::findSection() (helps DeleteObject) 2001-08-16: Sander van Leeuwen - INSTALL: o Add date when odininst was last run to odin.ini [ODINSYSTEM] INSTALLDATE=Thu Aug 16 23:28:01 2001 2001-08-16: knut st. osmundsen - Tools\CmdQd: o Added command queue daemon which is used in the multiple job build feature. - Makefiles: o Implemented multiple job build feature. This works like GNU Make --jobs[=N].
  • Start the daemon tools\bin\cmdqd init where N is the then number of workers. Need tools have to be made first.
  • Define the env.var. MULTIJOBS to enable this feature.
  • Do make as usual.
  • tools\bin\cmdqd kill to kill the daemon.
o This feature will speedup make of single modules alot on SMP machines. 2000-08-14: Carsten Tenbrink - CAPI2032: o Fix for applications that register with CAPI twice 2001-08-10: Sander van Leeuwen - INSTALL: o Add COM registry keys for OLE32 & OLEAUT32 o Add OdinBug report generator made by Herwig Bauernfeind - USER32: o Work dir change for object creation 2001-08-09: Sander van Leeuwen - USER32: o Rewrote PostThreadMessage (fixes RealPlayer 8 install) o Use WinQueueFromID to query message queue handle of first thread o Convert 32x32 icon to 40x40 by centering it instead of scaling - KERNEL32: o Use WinQueueFromID to query message queue handle of new thread - SHELL32: o Fill in complete resource dir for icon conversion - OLEAUT32: o Updated olepicture + typelib with latest Wine code 2001-08-08: knut st. osmundsen - Win32k: o Ignore ERROR_DRIVE_LOCKED (chkdsk/format) error in Pe2Lx::openPath2. 2001-08-08: Sander van Leeuwen - SHELL32: o Fix for shell link with single icon instead of icon group o Shell icon save fix (again fopen without binary mode) - USER32: o Icon conversion moved here + fixed - KERNEL32: o Removed icon conversion - INSTALL: o Add program object for Registry Editor to Odin folder 2001-08-07: Sander van Leeuwen - INSTALL: o Create Odin folder with program objects for readme, changelog and license files. - USER32: o Added function to create program objects + folders - SHELL32: o Create program objects during installation of windows applications (Desktop objects created on the OS/2 desktop; program objects created in app folder inside Odin folder) - KERNEL32: o Put back source files to convert icons and icon groups (not working right yet) 2001-08-06: Sander van Leeuwen - KERNEL32: o Check for ERROR_ACCESS_DENIED in CreateProcess (fixes Notes + installers) o Memory map fixes (GetCurrentProcess returns handles that are not unique) o Init fix for logfile names of multiple processes o Support different ordinal base for custom build - CUSTOMBUILD: o Add SHLWAPI exports + changes for ordinal exports 2001-08-06: Dietrich Teickner - COMCTL32: o Datetime fixes 2001-08-04: knut st. osmundsen - Makefiles: o Depend on libraries. (Thanks goes to Yuri for this!) 2001-08-04: Sander van Leeuwen - CUSTOMBUILD: o Add registration of gdi32 & advapi32 o Use toupperW in kernel32 instead of toupper (C runtime lib) o Removed NTDLL dependency - CRTDLL: o Use toupperW in kernel32 instead of toupper (C runtime lib) - TESTDRV: o Added sample of device specific driver dll 2001-08-03: Sander van Leeuwen - KERNEL32: o Temporarily disabled new name lookup (resources) until the real problem is located (wrc). (fixes preference page in Opera) 2001-08-02: Sander van Leeuwen - GDI32: o Set codepage of HDC returned by CreateDCA - COMDLG32: o Set codepage of HDC returned by PrintDlgA (fixes codepage problems while printing in Opera) 2001-07-31: knut st. osmundsen - win32k: o Merged in a patch from Rafal which as a final attempt to find a symbol file will look thru the pmdfvers.lst file. 2001-07-31: Sander van Leeuwen - USER32: o PostThreadMessage & DDE callback change for new wgss 2001-07-29: knut st. osmundsen - Custombuild, Makefiles: o Made the custombuild simpler by reusing the common makefiles. Any initterm.obj is replaced by an empty dummy object and the make is invoked with CUSTOMBUILD=1. makefile in /src have the common targets all prefixed with custombuild_. o Merged odin32.post.emx.mk into odin32.post.vac3.mk. 2001-07-30: Sander van Leeuwen - WINMM: o Rewrote timeGetSystemTime & timeGetTime - KERNEL32: o Fix for names of dlls in custom build - USER32/GDI32/KERNEL32: o Custom build changes - WGSS50: o WGSS update 2001-07-29: knut st. osmundsen - Makefiles: o Force fastdep to scan all files if -a is specified to nmake. - Win32k/test: o Wrote stupid test app to profile child process execution on different OSes. Current results are found in source (PrfTstProcess.c). 2001-07-29: Sander van Leeuwen - COMCTL32/COMDLG32/GDI32/KERNEL32/MSVFW32/USER32/SHELL32/WSOCK32/WINMM RPCRT4: o Updates for custom build (different resource table names) - KERNEL32: o Added exports to change the root keys of the registry and to change the name of dlls to be loaded next - CUSTOMBUILD: o Updates 2001-07-28: Sander van Leeuwen - USER32: o Set/GetWindowWord changes (must handle GWW_ID, GWW_HINSTANCE and GWW_HWNDPARENT o Ported ArrangeIconicWindows from Wine (not complete yet) o Rewrote Get/SetDoubleClickTime & SwapMouseButton o Don't call O32_GetLastActivePopup (TODO: rewrite it) - KERNEL32: o Rewrote FatalAppExitA/W, FatalExit, Beep, IsBadHugeReadPtr, IsBadHugeWritePtr o Removed O32_HeapCreate/Destroy calls; return rtl heap handle o No longer use Open32's GetProcAddress or GetModuleFileName - USER32/KERNEL32: o Moved WaitForInputIdle & AttachThreadInput from user32 to kernel32 - TOOLS\INSTALL: o Create temp directory in windows dir 2001-07-22: Sander van Leeuwen - TOOLS\INSTALL: o Added some quartz.dll keys - COMCTL32: o Status window bugfix; check part number boundary (fixes crash in AudioGalaxy) - USER32: o IsWindowVisible fix; check WS_CHILD flag before calling GetParent (fixes invisible characters while typing in edit control of AudioGalaxy) 2001-07-21: Sander van Leeuwen - DINPUT, DPLAYX, ICMP, IMAGEHLP, IMM32, LZ32, MSVFW32, OLEPRO32, RICHED32, URLMON, VERSION, WININET o Added Wine license - AVIFIL32, SHELL32, COMCTL32, COMDLG32, MSACM32, NTDLL, OLE32, OLAUT32, SHDOCVW, SETUPAPI, SHLWAPI, OLECLI32, OLEDLG, OLESVR32, RPCRT4 o Replaced Wine license with updated version - COMCTL32: o Resync with Wine (20010720); comboex, comctl32undoc, rebar, imagelist, toolbar, pager - MSVFW32: o Resync with Wine (20010720); all - AVIFIL32: o Resync with Wine (20010720); all - GDI32: o Fixed brush leak in InternalTextOutA (fixes Macromedia Flash 5 error messages) 2001-07-20: Sander van Leeuwen - KERNEL32: o Moved wsnprintf to user32 - USER32: o Removed FatalAppExitA/W (already in kernel32) - SHLWAPI: o Removed WINE_StringFromCLSID & StringFromGUID2 (not used) o Removed several string function that were not used or exported - NTDLL: o Replaced 64 bits math assembly functions (disassembled Wine C code compiled with VAC 3.6.5) - ODINCRT: o Export 64 bits math rtl functions o Added 64 bits math rtl functions for VAC 3.0 (assembly; borrowed from VAC 3.6.5) NOTE: __divi64 might cause problems (in theory) since it uses the FPU and doesn't save the FPU state - OLE32/WINMM/KERNEL32/USER32/GDI32/COMCTL32/COMDLG32/SHLWAPI/SHELL32/ RPCRT4/WSOCK32/VERSION: o Rewrote initterm + debug logging to allow us to build a single dll containing the code of many Odin dlls - CUSTOMBUILD: o Example of creating a custom dll with the Odin32 environment that can be used for a ported win32 app. (not done yet) 2001-07-19: Sander van Leeuwen - DOC: o Added license for WGSS50 - TOOLS\INSTALL: o Include new license in WarpIN install script + package - TOOLS\DAILYBUILD: o Add WGSS50.lic to daily zipfiles - COMDLG32: o Use printer dialog function in WGSS50 - WGSS50: o Added new WGSS dll that fixes several printing problems - KERNEL32: o lstrncmpiA/W bugfix; broke resource lookup in Acrobat Distiller (did not exactly work the way Wine code expected it) 2001-07-19: Achim Hasenmueller - LICENSE: o added WGSS50.LIC which contains the official license of the WGSS50.DLL module that is included with all Odin builds. This is a license contract between InnoTek Systemberatung GmbH (http://www.innotek.de) and the individual Odin user. The library is provided free of charge. The main requirement is that every user need to own a valid OS/2 license (this also includes eComStation of course). Every distribution of Odin will also contain this license file and the WarpIn archives will show the license during installation and require acceptance. For any questions about the license, please contact me via email. Note that the Odin license specifically allows redistribution of Odin with custom applications and as soon as the WGSS50 license is included, this also applies to WGSS50.DLL. The reason we include WGSS50 (a subset of Open32 used by IBM for Netscape Communicator 4.61 for OS/2) is that it contains numerous improvements over Open32 and it allows us more easily to replace Open32/WGSS50 APIs by custom functions. 2001-07-17: Sander van Leeuwen - KERNEL32: o HeapCreate now creates a separate heap (_ucreate) instead of sharing the same heap as Odin. (lowers the chance of fatal crashes on heap corruption; hangs in exitlist) o Implemented HeapValidate o GlobalReAlloc bugfix; must check if pointer has a handle associated with it. (RealDraw install calls GlobalReAlloc with pointer returned by GlobalLock(handle)) 2001-07-16: Sander van Leeuwen - KERNEL32: o RegEnumKeyExW fix (lpszClass can be NULL) o Faster resource lookup functions (Wine) - USER32: o Allocate more memory for icon bitmap before calling GpiCreateBitmap. This function seems to touch more bytes than necessary (??). - GDI32: o AddFontResourceA: ignore if called with filename of PE executable (return 1; gets rid of error message in Photoshop 6) 2001-07-15: Sander van Leeuwen - COMDLG32: o Ported Wine printer dialog code (inactive due to missing functions in winspool) - USER32: o Translate WM_VSCROLL & WM_HSCROLL o Do not use imports not available in Warp 3's PMWINX (WaitForInputIdle & GetAsyncKeyState) o There is no close button in Warp 3 (OS/2 look & feel) - KERNEL32: o Do not call WaitForInputIdle in WinExec on Warp 3 systems. 2001-07-14: Sander van Leeuwen - PELDR: o Fix for parsing cmd line consisting of directory with spaces - USER32: o Get menu font from os2.ini (OS/2 look & feel) o Full window drag now works for Odin windows - GDI32: o Implemented StartDocW 2001-07-13: Sander van Leeuwen - COMDLG32: o Fix for windows 3.1 style file dialog - COMCTL32: o Bad listview pointer checks cause crashes in details view of file dialogs (TODO: Details view is still not right) - KERNEL32: o Check for NULL pointer in lstrlenA/W (fixes crash during AutoCAD 14 install) - USER32: o Removed very old check for negative x or y coordinates during window creation. (file open dialog in InstallShield doesn't show weird edit control anymore and the MS Word 97 main window looks better now) o RegisterClassA/W: check icon first before copying it (gets rid of some annoying warnings in the logfile) - GDI32: o Change BITMAPINFO height if negative (fixes failing StretchDIBits calls with Matrox display driver) 2001-07-12: Sander van Leeuwen - KERNEL32: o Atom fixes - OLEAUT32: o Added RegisterActiveObject, RevokeActiveObject & GetActiveObject from Wine. 2001-07-10: Sander van Leeuwen - COMDLG32: o Don't clear filename when selecting of switching directory is file open/save dialog. 2001-07-10: knut st. osmundsen - WIN32K: o Made DosKillProcessEx framework. o Tried to fix missing unlocks of environment block. - KERNEL32: o Tried to fix missing unlocks of environment block. o Fixed module not found problem when a Pe2Lx is dynamically loaded several times. o Defined env.var. ODIN32.FAIL_IF_UNREGISTEREDLX to make LoadLibraryEx fail on unregistered LX dlls. This will fix the most annoying int 3's when starting Opera on debug Odin. (Two int 3 per netscape/2 plugin checked.) 2001-07-09: knut st. osmundsen : - CRTDLL: o When renaming dlls we still use the original importlibrary and .def-file names. ORGTARGET exist for that purpose. - NTDLL: o Link with crtdll.lib. - VERSION: o Link with crtdll.lib. - WIN32K: o Updated LieList with CrtDll -> CrtDll32 renaming. 2001-07-09: Sander van Leeuwen - KERNEL32: o Directly import registry functions from REGISTRY.DLL - GDI32: o Never use object handle 0 (fixes bad icons in dialogs) - USER32: o Same edit fix as applied yesterday, but this time for single line edit control painting. (Opera url editbox now displays selected text properly) 2001-07-08: Achim Hasenmueller - WSOCK32: o error message to human readable text translation for WSASetLastError (debug version) o implemented IPPROTO_IP support for setsockopt (not fully done) o reset semaphore in WSAEnumNetworkEvents - USER32: o deleted user32\old. It is still in the CVS attic so in case you need it, you can get it from CVS 2001-07-08: Sander van Leeuwen - USER32: o Some icon fixes o Changed scrollbar behaviour in OS/2 mode; scrollbar doesn't jump back to last click position when moving the mouse outside the scroll window during scrolling. o Changed menu behaviour in OS/2 mode; no mouse tracking when right or left mouse button not pressed. o Clipboard (Get/SetClipboardData: must translated open32 to kernel32 global memory handles (due to Global memory api rewrite) o Key translation for arrow keys and insert/del, home/end, page up/down added (WM_CHAR message translation) o Edit control bugfix for drawing selected text - KERNEL32: o More pointer checks added to GlobalLock/Unlock o Add default rename entry for crtdll o Fixed FS corruption in atom functions (wrapper for LookupAtom) - CRTDLL: o Renamed to crtdll32 to avoid problems with some Lotus apps that come with their own crtdll - NTDLL: o Link with crtdll32.lib - VERSION: o Link with crtdll32.lib - SHLWAPI: o Link with crtdll32.lib - PELDR: o Fix for file not found error 2001-07-08: knut st. osmundsen - KERNEL32: o Added call in initterm to tell win32k where the Odin32 environment block is. (Its in Open32, and I don't think it is reallocated.) o Added early initiation of Win32k loaded EXE. This corrected problems with GetModuleHandleA returing -1 to MSVCRT. - WIN32K: o Fixed environment block problem. The environment variables is not updated in the original env.block. So, win32k needs to be told where to find the Odin32 environment block to correctly find dlls using the PATH. o Corrected crosspage fixup bug. o Set no internal fixups flag in LX header for most executables in an attempt to convice OS/2 to load them where they wanna be loaded (usually 0x00400000). o Can now tell difference between the debug kernels. 2001-07-07: Sander van Leeuwen - KERNEL32: o Rewrote atom functions (no longer relies on Open32) o Fixed GetAtomNameW - GDI32: o Don't use Open32 IsBad* memory functions directly - COMDLG32: o PrintDlg fix: must translated open32 to kernel32 global memory handles (due to Global memory api rewrite) 2001-07-07: Achim Hasenmueller - WS2_32: o import WSAEventSelect from WSOCK32 (although a Winsock 2.0 API, it makes more sense to be implemented in the Winsock 1.1 stack) o import WSAEnumNetworkEvents from WSOCK32 (same reason) - WSOCK32: o enhanced WSAAsyncSelect processing to allow both window handle and event semaphore notification o implemented WSAEventSelect o implemented WSAEnumNetworkEvents (not correct) 2001-07-07: knut st. osmundsen - URLMON: o Stubbed HlinkSimpleNavigateToString and RegisterBindStatusCallback to fix SYS2048 during RealPlayer install. - WIN32K: o Fixed the DBExpert bug in the longdllname code. BTW. Thanks to Randell at Sundial Systems and Alex Newman for reporting this and begin very helpful tracking it down. o The longdllname feature now differs from the OS/2 loader on one points:
It is able to find (DosQueryModuleHandle) for dlls using internal names which includes the .DLL extention.
The longdllname feature don't currently support names with extention .DLL like extentions with base name lengths from 4-7 chars. I will fix this some day.
2001-07-06: Sander van Leeuwen - KERNEL32: o HeapAlloc must return pointers aligned at 8 byte boundary o GlobalAlloc must return pointers aligned at 8 byte boundary (SDK docs + verified in NT4, SP6) o Better checks in GlobalFree for invalid handles/pointers (InvestmentView seems to call it with a GDI handle; why??) o LocalReAlloc bugfix - USER32: o Must return 16 bits icon & cursor handles (fixes crash in Acrobat Reader 4) - GDI32: o GetDIBits must only return color information when lpvBits is not NULL. (fixes Opera crash (heap corruption) with new heap code) - PELDR: o Report error when file not found. 2001-07-05: Sander van Leeuwen - USER32: o WM_WINDOWPOSCHANGED dispatch bugfix (introduced yesterday) o WinHelpA fixes (use shared memory for sending information to winhlp32) - KERNEL32: o Added GlobalFix and GlobalUnfix o Local memory functions now use Global memory functions o Ported Wine Global memory functions (we no longer depend on Open32 for these) 2001-07-04: Sander van Leeuwen - USER32: o Partial implementation of ToAsciiEx (just calls ToAscii) o VkKeyScanExA/W: call VkKeyScanA/W o MapVirtualKeyExA/W: call MapVirtualKeyA/W o SetParent bugfix; even though the win32 coordinates might not change, the PM coordinates can. We must make sure the child stays at the same position (y) relative to the (new) parent. (Cool Edit Pro LE play buttons now at the right position) o Send WM_SETICON to frame window with converted win32 icon (application icon now visible in task list) o Quick fix for window creation: Before a window has processed WM_NCCREATE: - GetTopWindow can't return that window handle - GetWindow(parent, GW_CHILD) can't return that window handle - IsChild works TODO: Does this affect more functions?? (other GetWindow ops) (verified in NT4, SP6) TODO: Must add window to parent's child list after WM_NCCREATE and rewrite GetWindow & GetTopWindow (fix for crash in MP3 Explorer) - GDI32: o Workaround for applications that depend on 16 bits GDI object handles. (TODO: must create our own 16 bits handles) (fixes crash in Cool Edit Pro LE) 2001-07-03: knut st. osmundsen - KERNEL32: o Improoved the Unhandled exception message by trying to provide modulename and some kind of obj/offset. - FastDep: o (synced with OS2Tools) Make better use of data in evt. existing .depend file so that only changed files are processed. 2001-07-03: Sander van Leeuwen - KERNEL32: o Executable load fix (fixes crash during RealPlayer 8 install) o Allow loading of OS/2 dlls for Odin32 apps (like Opera) - USER32: o ToAscii & GetKeyboardState fixes (for Putty keyboard input) 2001-06-27: knut st. osmundsen - fastdep: o Fixed a coupla bugs; RC files parsing and . o Support for filenames with spaces. 2001-06-27: Sander van Leeuwen - KERNEL32: o CreateProcess fixes for finding executables o Don't load debug information o Minor fix for PROCESSOR_IDENTIFIER environment variable (model & stepping were reversed) o Make sure stack is not aligned at 8 byte boundary before calling executable entrypoint. Some applications rely on this NT 'feature' and will suffer a performance penalty otherwise. (e.g. a certain Fortran compiler has startup code that pushes an uneven number of dwords on the stack before calling the Fortran code; FPU instructions don't like to access memory at misaligned addresses) 2001-06-25: knut st. osmundsen - include\odin.h: o Updated the EMX configuration so we can build WRC.exe using this definition. This also includes the check and calling convetions defined in windef.h. Just note that gcc don't decorate the stdcall function names like the other compilers. o Made the other compilers ignore __attribute__ so they can compile WRC.exe as well. o Defined INLINE, inline and __inline__ so they all make functions inline. (Someone should check this for Watcom C mode.) - include\win\wine\unicode.h: o Added extern "C" so the unicode libraries are compilable as C code. (kernel32\unicode was forced to compile as C++) o Removed inline workaround for C compilers. (Odin stuff) o Wrapped away static for those function which was declared as both static and inline. (the compiler was so noisy) - kernel32\unicode, kernel32: o Don't force it to C++. o Demangled the one export from unicode, get_char_typeW. o Curiosity: Made a minor correction to be able to compile unicode.lib with EMX. - OpenGL: o mesa\macros.h has been changed to not #define INLINE if allready defined. Hence inlining is now enabled! Concider this an experiment as we might run into VAC optimizer bugs... People are encouraged to play games ;-) - WRC: o Use semicolon when reading include paths. (This was what ALL I was supposed to fix today..) o Made it compile with VAC and EMX using standard Odin32 makefiles. flex and bison is not needed normally. But when changes which requires running of these are made, define HAVE_FLEX and HAVE_BISON in your environment. o WRC is now removed and made as a 'needed_tool' together with fastdep, impdef and the other stuff in the tools subdir. NB. Be careful not to accidentally resurrects the /tools/bin/wrc.exe archive! (May be we should rename the archive file later?) - include\odin32.*.emx.mk: o Made it working for WRC.exe. (release and debug, not profiling) Generats OMF. Linking using link386. - include\odin32.tools.*.mk: o Disabled historic current directory inference rules and replaced (some of them) with rules which puts object in OBJDIR. o Added precompiler inference rules. These are generate a *.pre-c or *.pre-cpp file in the current directory containing the output from the precompiler. (not implemented for watcom yet) This is very useful in when you wanna check a declaration... 2001-06-25: Sander van Leeuwen - USER32: o Minor WM_TIMER translation fix (weird check removed) 2001-06-24: Sander van Leeuwen - KERNEL32: o Rewrote CopyFile & MoveFile (just call DosCopy/Move) o Rewrote CreateDirectory & RemoveDirectory (call DosCreateDir & DosDeleteDir) o Fix for HeapRealloc; recent HeapSize fix broke it (listboxes empty) 2001-06-24: knut st. osmundsen - src/makefile: o Added empty subdir oslib to the NOTTOBEMADE list. (Please don't forget this when you create empty directories. All subdirs excluding the one mentioned in the lists in makefile is made. So don't add a new directory without either a makefile in it or updating /src/makefile.) 2001-06-23: Sander van Leeuwen - KERNEL32: o HeapSize must return -1 for invalid pointer o Semaphore updates (finished; not activated yet) o Implemented IOCTL_CDROM_GET_VOLUME & IOCTL_CDROM_SET_VOLUME 2001-06-23: knut st. osmundsen - KERNEL32: o Added Odin32 Spesific API for getting Odin build number. (Requested by Yuri.) 2001-06-23: Achim Hasenmueller - USER32: o added OS/2 INI file access library (oslibprf) o changed SystemParametersInfoA to no longer use Open32 o added more logging to GetMonitorInfoA/W 2001-06-22: Markus Montkowski - TWAIN_32: o Updated initterm.cpp to use OS/2 and not Win32 APIs when loading the OS/2 twain DLL. needed because of kernel32 change 2001-06-12 2001-06-22: Dietrich Teickner - COMCTL32: o Check for invalid lpItem in LISTVIEW_GetItemA 2001-06-22: Sander van Leeuwen - USER32: o Don't fill background of system icon if no system icon is present (could be seen in os/2 look mode) o Reserved one window ulong (QWL_USER) for Odin apps (like Opera) - KERNEL32: o Semaphore updates (still not activated) 2001-06-21: Sander van Leeuwen - KERNEL32: o Semaphore updates (still not activated) 2001-06-21: knut st. osmundsen - DDRAW: o io_init1, io_init2 and io_exit1 forgot to save/restore EBX. (Broke some apps when XF86Sup.sys is installed) 2001-06-20: Sander van Leeuwen - include\win\winioctl.h: o Added CDROM ioctls - KERNEL32: o Dummy CDROM ioctl support 2001-06-19: Sander van Leeuwen - KERNEL32: o Started with event, mutex & semaphore rewrite (code not activated) 2001-06-18: Sander van Leeuwen - USER32: o Added export entry for GetScrollBarInfo o Set ordinals for some exports o Correct size of SBS_SIZEBOX and SBS_SIZEGRIP scrollbars during creation. (if too high or wide) (CPOV bottom scrollbar now appears) - COMCTL32: o Wrong check in 6/17 comctl32 change 2001-06-17: Sander van Leeuwen - KERNEL32: o Implemented IOCTL_SCSI_PASS_THROUGH_DIRECT storage ioctl - USER32: o Fix for scrollbars with SBS_SIZEBOX or SBS_SIZEGRIP style (use size specified in CreateWindow only if SBS_SIZEBOXTOPLEFTALIGN nor SBS_SIZEBOXBOTTOMRIGHTALIGN style flags set) (CPOV window now has the right size) o Allow WS_VISIBLE changes in SetWindowLong (GWL_STYLE) (CPOV controls in bottom left corner now visible) 2001-06-17: Dietrich Teickner - COMCTL32: o Check for invalid lpItem in LISTVIEW_GetItemA (fixes crash in SpeedCommander 6) o Datetime control update with latest Wine code 2001-06-16: Sander van Leeuwen - DDRAW: o Save & Restore FS when calling io_init2 o Partly implemented DrawEnumDisplayModes4 - WINMM: o Resume failed (during waveOutWrite) after underrun (fixes audio error message in Atari Emulator) - KERNEL32: o Implemented IOCTL_DISK_GET_DRIVE_GEOMETRY & IOCTL_DISK_GET_MEDIA_TYPES o Allow direct sector reading from disk + changing read position with SetFilePointer o 6/14 kernel32 changes broke dynamic loading of LX dlls; getHMOD returned the wrong module handle 2001-06-15: Sander van Leeuwen - USER32: o Removed yesterday's getControl dialog change. (causes errors for certain installshield installers) o Add frame controls when app changes style flags (os/2 appearance) (fixes missing titlebar when switching between maximized & restored state for MDI windows in Opera) - KERNEL32: o PDB.exit_code is a pointer to an unknown structure in NT Fill it with a pointer to a memory block with 8th byte set to 1. (fixes crash in AssetAllocator install) 2001-06-14: knut st. osmundsen - KERNEL32: o Correct bug in LoadLibrary which prevented dynamically - WIN32K: o Forgot to close file on failure in ldrOpen. When Pe2Lx failed (due to wrong subsystem), the file remained open. 2001-06-14: Sander van Leeuwen - USER32: o OSLibWinGetMsg: dispatch untranslated message immediately and grab next one. o Manually change min/max/restore button states (OS/2 appearance) o Handle WM_SYSCOMMAND messages in frame window handler o Button fix (Wine bug) Must clear WS_TABSTOP of control that is already unchecked or else multiple control can have this style ((auto)radiobutton) and GetNextDlgTabItem will return the wrong one. Happens in Opera preferences dialog (multimedia) where all autoradio buttons have the WS_TABSTOP style. o Added temporary workaround for Open32 crashes in Opera 2001-06-13: Sander van Leeuwen - USER32: o Corrected position of PM titlebar control o Added SetWindowAppearance function that can be used by Odin32 apps to override the appearance (win32 or OS/2) of windows. o Changed menu font for OS/2 appearance (bold) o Draw system menu icon ourselves (OS/2 appearance) o SetWindowText fix (OS/2 appearance) o WM_ERASEBKGND handling changes for dialogs - GDI32: o CreateDIBSection bugfix (wrong ReleaseDC call) 2001-06-13: knut st. osmundsen - WIN16LDR: o Made it compile with Watcom and MSC60. Currently I can't link it with MSC60 form the DDK since there is no window libraries there. Watcom links fine. But the result is not tested. - VDMDBG: o Stubbed this DLL. (It's used by the NT TaskMgr.) (Documented in SDK, doc\misc\VDMDbg.Hlp. Which is included in the NT sdk distributed with Watcom v11 - %WATCOM\sdk.) - Win32k/Pe2Lx: o Allowed loading of images using the NATIVE subsystem. o Added symbols for build 14.065F (2001-05-08) all kernels. - DailyBuild: o Moved Odin.ini to system32 in daily .zips. - NTDLL: o Stubbed NtOpenThread. 2001-06-12: Sander van Leeuwen - USER32: o Partly fixed position of PM frame controls o FillRect fix for 0 brush o Workaround for windows with CS_CLASSDC class. Use same mechanism as CS_OWNDC. (might not always work though) No (easy) way to share a single DC between windows in PM. (fixes paint problems in MED) o Use critical sections for local hooks; faster than kernel mutex semaphore calls. - GDI32: o SetDIBColorTable bugfix - KERNEL32: o Fail to load OS/2 (non-Odin) dlls in LoadLibrary (Winbench tries this) - ADVAPI32: o Pretend no services found in EnumServicesStatusA/W instead of returning error. (prevents crash in Winbench) 2001-06-11: Sander van Leeuwen - USER32: o Reference count bugfixes - GDI32: o Added RGB555 conversion for CreateDIBitmap & SetDIBits 2001-06-10: Sander van Leeuwen - USER32: o SetParent bugfix (caused crashes in user32 after yesterday's changes) o Preliminary support added for OS/2 look and feel (not finished) Odin.ini option: [ODINSYSTEM] OS2Look=1 (default = 0) Creates OS/2 Titlebar, system menu & min/max/close buttons. Also overrides UseWinColors option (uses OS/2 colors). NOTE: Can interfere with windows applications that draw their own custom titlebar. (e.g. RealPlayer) - KERNEL32: o Added OpenProfileUserMapping & CloseProfileUserMapping stubs. o CreateProcess: launch win16 loader for NE executables - WIN16LDR: o Preliminary version of winos2 loader for 16 bits installers Overrides GetVersion & WinExec functions to return the version NT returns and to launch 32 bits programs (using pe). (NOT FINISHED and not included in daily build) - PELDR: o Execute win16 loader for NE executables. 2001-06-09: knut st. osmundsen - Win32API.h: o Added APIs required to compile user32. - src/makefile: o Relaxed the locks a little. - Win32k: o Separated VAC3 and VAC36 output. (Please re-run configure!) - makefiles/VAC36: o Ignore ILIB warnings. (like those in the opengl tree) 2001-06-09: Sander van Leeuwen - USER32: o Keep reference count for window and class objects. Only delete the objects when nobody else is using them anymore. (fixes crashes due to premature destruction of objects; e.g. during Napster startup) - KERNEL32: o heap checking accidentally turned on during logging (making the debug build extremely slow) o Open32's CreateProcess can fail with ERROR_FILE_NOT_FOUND for no apparent reason. Don't bail out when that happens, but try to create the process anyway. (fixes CreateProcess during Napster install) o Improved version of InterlockedIncrement & InterlockedDecrement (borrowed from Wine) 2001-06-08: Sander van Leeuwen - KERNEL32: o WinExec fixes o Ported Wine's WritePrivateProfileSectionA - GDI32: o DIB Section blits: translate all ROPs o GetDIBits fix; RGB conversion was not always performed; now only for requested scanlines. 2001-06-08: Patrick Haller - KERNEL32: o Optimizations for loading of PE images 2001-06-07: Sander van Leeuwen - OLE32: o More VAC 3.6.5 compile fixes 2001-06-06: knut st. osmundsen - FastDep: o Performance enh. Don't scan files more than 1 month older than existing .depend file. o Optimized AVL tree sligtly by not performing two strcmp on the same keys (but resuing the result from the first). o Improved dependencies genereated for OS/2 resource files. (TODO: Fix possible bad precompiler checks for C/C++ and RC.) o Code is now in sync with OS2Tools. 2001-06-06: Sander van Leeuwen - OLE32: o VAC 3.6.5 compile fix 2001-06-05: Patrick Haller - KERNEL32: o Fixed ordinal export resolving for PE executables (SO52 complained about missing exports) 2001-06-05: Sander van Leeuwen - COMCTL32: o Listview: Don't repaint subitem if changed text is the same as old one. (fixes endless repainting loop in WinRAR 2.80) - KERNEL32: o Optimized ordinal lookup even more. (6900 ordinal lookups takes (on average) 31 ms now instead of 78) 2001-06-04: Sander van Leeuwen - KERNEL32: o Added driver dll plugin for custom device driver emulation Enumerates keys in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services that contain 'DllName' keys. DllName contains the name of the plugin dll that exports DrvOpen, DrvClose & DrvIOCtl. o Dispatch breakpoint exception to application (release build only) Some nasty applications expect this. 2001-06-03: Sander van Leeuwen - USER32: o Ported & fixed ScrollDC (Wine) (fixes scrolling in Adobe Framemaker 5.5) - GDI32: o RGB 565->555 conversion in GetDIBits o RGB 555->565 conversion in DIB Section sync o Sync DIB section in RealizePalette if any colors changed (fixes PowerDVD colors) 2001-06-02: knut st. osmundsen - Win32k/configure.cmd: o Corrected search for the VAC compiler. o Removed stupid messages when -w is specified. 2001-06-02: Achim Hasenmueller - COMDLG32: o fix crash due to uninitialized COM object pointer in Win95 open file dialog browse mode o default to open mode in file dialog when the OFN_NOVALIDATE mode is used (fixes crash in FrameMaker 5.5 file dialog when opening a file that has broken image references) - KERNEL32: o log both error and no error conditions for GetLastError with default error level. Sometimes, we don't set an error where we should so this logging information is important o set last error to 2 (ERROR_FILE_NOT_FOUND) when using CreateFileA to open a non existing file. DosOpen returned 110 (ERROR_OPEN_FAILED) in this case. Verified with Windows 2000 SP2 (makes Acrobat Distiller 5.0 startup and work!) 2001-06-02: Sander van Leeuwen - WINMM: o Default waveout volume can be controlled by a key in odin.ini: [WINMM] DefVolume=50[0-100] Default waveout volume (default = 100) - USER32: o ScrollDC fix for translating clip & scroll rectangles (fixes scrolling in Adobe Framemaker 5.5) 2001-06-01: Sander van Leeuwen - USER32: o Send WM_HELP if F1 pressed & no menu active o Disabled system hooks (only work in one process) - KERNEL32: o Improved ordinal lookup a bit. (usually 4 times faster, but barely noticable with 'real' applications) - OLE32: o Added OleLoadPictureEx stub - GDI32: o GetDIBits fix for querying the bitmap information WGSS returns 0, but we should return the nr of scan lines requested o GetDIBits fix for memory dcs. WGSS messes things up if it's a memory DC. (fixes lower right button in AIM's logon window when typing in new name) o ExtTextOutA/W fix for filling rectangle with background color only. This doesn't seem to work (anymore) with GpiCharStringPosAt. (fixes border between menu & button bar in Odin MFC app & Acrobat Reader 4.05) o StretchDIBits fix for RGB555 bitmaps (fixes pictures in pdf files shown by Acrobat Reader 4.05) - SHLWAPI: o Added PathGetCharTypeA/W from Wine 2001-06-01: Patrick Haller - KERNEL32: o benchmarked new experimental loader and reverted to old but slightly optimized loader (processExport usually outweighs processImport, so lookup is less valuable than add to export list) - SHELL32: o SIC_Initialize took extremely long to pre-initialize its icon cache. Revert to on-demand loading of the icons, speeds up loading of SHELL32 (therefore most apps) by several seconds. 2001-05-31: Sander van Leeuwen - OLEAUT32: o Fixed ITypeInfoImpl_Invoke 2001-05-30: Patrick Haller - KERNEL32: o further performance improvement of hashtables o fixes for loader improvements (PE, LX) o Todo: measuring new code, reducing memory requirements 2001-05-30: Sander van Leeuwen - USER32: o RedrawWindow: don't clear erase background flag if the window is already (partly) invalidated. (fixes redrawing of dialogs controls in mIRC startup dialog window (when switching option windows)) - KERNEL32: o Put back old lookup code. New files renamed to winimagepeldr_new.cpp/h (Odin test app crashes; looks like MFC42 ordinal lookup fails somewhere) - OLEAUT32: o Added RegisterTypeLib (ported recent Wine patch) & UnRegisterTypeLib o Added ITypeInfoImpl_Invoke (ported Francois Jacques' (refused) patch and rewrote it to get rid of stack layout dependency. o VT_HRESULT -> VT_INT conversion added to Coerce (all needed for Quicken Deluxe 2001; still crashes, but gets passed data loading) - OLE32: o OleRun: check pointer with IsValidInterface (fixes crash in Quicken after data loading) 2001-05-30: Patrick Haller - KERNEL32: o replaced linear lists in PE loader with faster hashtables (ccollection.cpp, experimental) ToDo: measure any difference, revert eventualls 2001-05-29: Sander van Leeuwen - GDI32: o Set/GetDIBColorTable fixes for DIB sections with bpp > 8 o Don't sync DIB section in SelectPalette if bForceBackground is -1. (hack for bitmap buttons in Beyond Compare) - DCIMAN32: o Updated & return proper error codes 2001-05-28: Patrick Haller - GDI32: o Split GDI32.CPP into ICM.CPP and GDI32.CPP o CreateDC() accepts "display" instead of "DISPLAY" (fixes font-not-found problem in ZD Bench 99) - KERNEL32: o mmap.cpp: slightly accelerated ::findMapByView() o directory.cpp: don't trap in CreateDirectory(NULL, NULL) - DDRAW: o implemented DirectDrawCreateClipper() - WOW32: o created initial (fake) version of WOW32.DLL (SBLiveXP accesses this directly) 2001-05-27: Sander van Leeuwen - COMCTL32: o Listview: merged old LISTVIEW_EnsureVisible (gets rid of excessive repaints) - USER32: o Replaced TabbedTextOutA/W & GetTabbedTextExtentA/W with Wine version. GPI doesn't support strings > 512 characters. - GDI32: o Commented out InternalTabbedTextOutA/W & InternalGetTabbedTextExtentA/W 2001-05-26: Sander van Leeuwen - COMCTL32: o Datetime control resync with Wine (get/setrange added) 2001-05-25: Sander van Leeuwen - Odin.ini: o Removed MS Shell Dlg font mapping - GDI32: o Synchronize DIB Section after SelectPalette call (if selected in DC) (fixes wrong colors for some bitmaps) o Update bitmap and synchronize DIB Section in SetDIBits o Update color table during DIB sync too - USER32: o Dialog control x & y coordinates in dialog template are signed words. (fixes dialog controls with negative offset) o Rewrote Post(Thread)/SendMessage; filtering of posted/sent messages (by app) is now possible with Peek/GetMessage. o PeekMessage fix; got rid of double removal for untranslated messages 2001-05-24: Sander van Leeuwen - GDI32: o Commented out recent changes (color conversion) in SetDIBitsToDevice. Breaks startup bitmap of Acrobat Reader 4 o GetTextExtentPointA; call WGSS instead. Better result (strings not clipped). - KERNEL32: o OpenFile fix for OF_REOPEN flag (crashes when looking up handle) - IPHLPAPI o Added stub dll 2001-05-23: Sander van Leeuwen - USER32: o RedrawWindow with desktop window handle no longer returns an error. (fixes RealPlayer Auto Size window) - Odin.ini o Added font mapping for MS Shell Dlg to WarpSans (gets rid of ugly fonts (in dialogs) which also have the wrong size (text clipping)) - KERNEL32: o CreateFile for partitions; handle lookup fails if OS/2 handle is set to -1 (happens if disk not inserted) -> set to 0 instead 2001-05-22: Sander van Leeuwen - COMCTL32: o Partial merge of listview control with latest Wine o Listview: Send WM_MEASUREITEM for controls with LVS_OWNERDRAWFIXED style. (TODO: sets size for all items only) (fixes wrong item size for VirtualPC main window) - USER32: o Fixed minimizing & restoring of top-level windows - KERNEL32: o Check name before adding dependency for module in order to avoid circular dependencies (WNETAP32 (== NETAPI32) imports from NETAPI32) (fixes crash at exit in VirtualPC) 2001-05-20: Sander van Leeuwen - GDI32: o Fixed LPtoDP/DPtoLP again. - USER32: o Paint menu item first before destroying it (prevents menu control from painting selected item on desktop) o Don't show or hide scrollbar in SetScrollInfo if scroll parameters didn't change. (fixes loop in VirtualPC settings dialog) 2001-05-20: Dietrich Teickner - KERNEL32: o LOCALE_IFIRSTDAYOFWEEK fixes (Get/SetLocaleInfo) 2001-05-19: knut st. osmundsen - win32k: o Added improvements from Rafal, better validation of the paths which are found. Might cause some warnings for some of you, but just read and ignore them. Run configure.cmd (one of them)! 2001-05-19: Sander van Leeuwen - GDI32: o LPtoDP/DPtoLP: check input because GpiConvert doesn't like illegal values (TODO: check what NT does) (fixes huge buttons in VirtualPC dialog (font with wrong height created)) - INCLUDE\odinwrap.h: o ODINFUNCTIONNODBG & ODINPROCEDURENODBG should still save and restore FS!!! (FS corruption in release build; mainly affects wsock32) - WS2_32: o Added more exports - KERNEL32: o Export TryEnterCriticalSection o InterlockedCompareExchange bugfix; should not always return old destination; return whatever cmpxchg puts in eax - SHLWAPI: o Export SHSetValueW o Ordinal export 342 is InterlockedCompareExchange implementation Takes 3 parameters, not 4. (Wine bug) o Ordinal export 151 takes 3 parameters, not zero. o Implemented SHLWAPI_151 (case sensitive string compare with length; ascii version of SHLWAPI_152) o Implemented SHLWAPI_153 (case insensitive string compare with length (ascii)) o Added SHLWAPI_154 (case insensitive string compare with length (unicode)) - USER32: o Added TrackMouseEvent, GetGUIThreadInfo & SendInput stubs - ADVAPI32: o Added undocumented SystemFunctionXXX functions (stubs) o Set lasterror in EnumServicesStatusA/W stubs - GDI32: o GetTextExtentPointA now handles strings larger than 512 characters. 2001-05-19: Dietrich Teickner - KERNEL32: o LOCALE_IFIRSTDAYOFWEEK fix (GetLocaleInfo) 2001-05-18: Sander van Leeuwen - KERNEL32: o Fixed FS corruption in LCMapStringA/W o ole2nls: resync with latest Wine sources 2001-05-17: Sander van Leeuwen - USER32: o InvalidateRect & InvalidateRgn must call RedrawWindow with RDW_ALLCHILDREN flag. (RealPlayer 8 install dialog doesn't have WS_CLIPCHILDREN style -> InvalidateRect overwrites child windows (buttons)) 2001-05-17: Sander van Leeuwen - USER32: o Destroy menu windows when they are no longer used. (fixes activation problems with dialogs created after selecting a menu item) (TODO: sync with latest wine menu control sourcecode) o clientHeight bugfix (fixes crash in Solitaire) o Check if another app changed mouse cursor (Get/SetCursor) (previously mouse cursor did not change back if another app modified it) 2001-05-16: Sander van Leeuwen - USER32: o WM_SETREDRAW fix; must call WinEnableWindowUpdate for both client and frame window. (winhlp32 buttons are now visible again) 2001-05-15: knut st. osmundsen - Tools\bin:o Synced with other projects using the same tools. 2001-05-15: Sander van Leeuwen - USER32: o BeginPaint must return logical points instead of device points. (not the same if e.g. app changes page viewport) (fixes scaling in Opera) o SetFocus fix; manual activation of windows; PM sometimes changes the Z-order of the window being activated. Also call WH_CBT hook handler (if present) (fixes hotlist window in Opera) - KERNEL32: o OpenFile: check if filename ptr is NULL, return ERROR_INVALID_NAME if true. (verified in NT4, SP6) 2001-05-15: Dietrich Teickner - KERNEL32: o Added LOCALE_IFIRSTDAYOFWEEK case for GetLocaleInfoW - COMCTL32: o Commented out TRACE call in DATETIME_ParentNotify. Wrong assumption about lParam as it's not always a pointer (WM_CREATE WM_PARENTNOTIFY lParam == hwnd -> crash) 2001-05-13: Dietrich Teickner - COMCTL32: o Fixed wrong return values for datetime control (DTM_GETSYSTEMTIME & DTM_SETSYSTEMTIME) 2001-05-11: Sander van Leeuwen - USER32: o Rewrote window handling. Back to using frame and client windows for each win32 window. (fixes visible region problems with e.g. Opera) Frame windows never have the WS_CLIPCHILDREN style; this caused the transparency problems reported earlier when using this method. E.g.: Dialog parent, groupbox; invalidate part of groupbox -> painting algorithm stops top-down search when it finds a window with WS_CLIPCHILDREN style -> result: dialog window won't update groupbox background as groupbox only draws the border o UpdateWindow: Must use frame window handle even though UpdateWindow only updates the client area. If the frame window has a valid update region and we call WinUpdateWindow for the client window, then no WM_PAINT messages will be sent. o Don't erase background in RedrawWindow (invalidate) when RDW_ERASE flag not set. (gets rid of excessive background redraws (flickering) for progress windows in some installers) o Fixed ScrollWindow bug o WM_SHOWWINDOW sent twice o Mark window's visible region as changed when client receives WM_SIZE (PM). BeginPaint sends a WM_ERASEBKGND when this flag is set (regardless of erase flag set by RedrawWindow) o ScrollDC fix (window handle transation) o ScrollDC and ScrollWindowEx bugfix (setting update region) (fixes scrolling in MS Word 97) - GDI32: o SetDIBitsToDevice: RGB 555 is the default for 16 bits bitmaps (fixes pictures in (some) documents for Word 97) TODO: Probably need to check bitfields and convert for some other blit functions 2001-05-10: Shingo Tsuda - GDI32: o Rop conversion for DIB Section blits o Support for negative height (origin top left) in SetDIBitsToDevice + StretchDIBits 2001-05-10: Sander van Leeuwen - GDI32: o includeBottomRightPoint bugfix; if left == right or top == bottom then the rectangle isn't empty. (include/include input) (fixes e.g. missing erase background when slowly moving window over Odin window (full window dragging enabled)) 2001-05-09: knut st. osmundsen - src/ws2help, bin/debug, bin/release, src/win32k/list, src/win32k/debug: o Removed directories. These were either not needed or unused. I did this now since I was going to remove ws2help anyway and there by breaking your tree. - tools/bin/CVSRemoveDeletedDirs.cmd: o Rexx script which removes the above directories from your local tree. Run this from the root of the tree. To physically remove the directories you have to specify REMOVE as argument (no dash or slash!). 2001-05-08: knut st. osmundsen - src/makefile: o Ignore WS2HELP for the moment. (Never add empty subdirs to /src without making /src/makefile ignore it!) 2001-05-07: Patrick Haller - WS2_32: o created skeleton and added forwarders to WSOCK32 - KERNEL32: o CreateProcess error handling corrected, if O32_CreateProcess fails with specific reason 2001-05-04: Dietrich Teickner - SHELL32: o Update for SHFileOperationA (FO_MOVE) 2001-05-04: Sander van Leeuwen - USER32: o FrameTrackFrame bugfix for moving child windows 2000-05-03: Yuri Dario - USER32: o SendNCCalcSize call bugfix (client rectangle parameter) o Fix for groupbox WM_SETFONT handler. Must erase top part if font is changed. - OLEAUT32: o Fail for TLBMAGIC2 typelib type. 2001-04-30: Sander van Leeuwen - DSOUND: o DirectAudio interface updates - WINMM: o Odin.ini key to switch between DART & DirectAudio (see odin.ini.txt) 2001-04-29: Dietrich Teickner - SHELL32: o Update for SHFileOperationA (FO_COPY) 2001-04-29: Sander van Leeuwen - COMCTL32: o Resync with latest Wine (20010418) (animate, comboex, rebar, status, tab) - WINMM: o Don't start playback if stream is paused (waveOutWrite) (only affects DART playback; prevents out of sync video & audio in RealPlayer) - WSOCK32: o Save FS before calling _beginthread 2001-04-28: Dietrich Teickner - SHELL32: o Updates and fixes for SHFileOperationA (FO_COPY) 2000-04-28: Yuri Dario - WSOCK32: o Send FD_READ notification even if nr of bytes read = 0 o Corrected error return for recv (fixes for Opera) - KERNEL32: o dprintf(NULL) flushes log stream 2001-04-28: Sander van Leeuwen - SHELL32: o Resync with latest Wine (20010418) + merged Odin fixes/additions - SHLWAPI: o Resync with latest Wine (20010418) + merged Odin fixes/additions - KERNEL32: o Added GetSystemWindowsDirectoryA/W exports - USER32: o Don't use PM api directly in dialog message loop. Must call PeekMessageA & GetMessageA. (or else the WH_MSGFILTER hook won't be called) o Check WM_(SYS)MSGFILTER hooks in DoDialogBox 2001-04-28: Markus Montkowski - USER32: o Call WH_GETMESSAGE hook handler from GetMessage and PeekMessage (if message present) o Added (not 100% correct) filtering for nonclient mouse messages (fixes nonclient messages for MS Word 97 (frame & menu mouse actions)) o Recalculate HDC height of windows with CS_OWNDC style if window is resized. (fixes 28 pixel shift up in MS Word MDI window; Word calls GetDCEx once and does custom WM_PAINT handling (never calls Begin/EndPaint)) - KERNEL32: o HeapReAlloc: return old pointer if new size is smaller or equal to old size. - GDI32: o Limit length of converted strings in InternalDrawTextExW, InternalGetTabbedTextExtentW, InternalTabbedTextOutW & InternalTextOutW. (cbCount might be smaller than string length) (fixes crash in MS Word when it tries to display the about dialog) - INCLUDE\win\unicode: o strcpyW bugfix (didn't terminate string -> heap corruption) - DSOUND: o Preliminary code added for DirectAudio interface. (not finished & not activated) 2001-04-26: Sander van Leeuwen - KERNEL32: o Implemented FreeLibraryAndExitThread o Create HandleManager class for mailslots + partial implementation for mailslot APIs (using named pipes) o Fixed wrong return values for some CloseHandle methods o Fixed CreateNamedPipe; must not call DosCreateNPipe for existing pipe (at least according to the SDK docs; must verify this in NT!) o Implemented CreateFile and CloseHandle for named pipe class o Implemented SetNamedPipeHandleState o GetEnvironmentVariableW fix (breakpoint hit in debug build) - ADVAPI32: o IsTextUnicode forwarded to RtlIsTextUnicode (ntdll) - GDI32: o InternalTextOutW fix (breakpoint hit in debug build) - OLE32: o Resync with latest Wine build (20010418) 2001-04-25: Sander van Leeuwen - USER32: o Check visibility of parents in IsWindowVisible o Call ShowWindow(SW_MINIMIZE) in CloseWindow (for non-child windows) Don't use PM directly to minimize it. 2001-04-25: Shingo Tsuda - GDI32: o DBCS fix for looking up font name in font rename profile section 2001-04-24: Sander van Leeuwen - COMDLG32, DPLAYX, OLE32, OLEAUT32: o Compile fixes for VAC 3.6.5 (nameless unions & structs) - COMDLG32: o Resync with latest Wine code (directory changed after file chosen in file open dialog) 2001-04-23: Dietrich Teickner - SHELL32: o Updates and fixes for SHFileOperationA (FO_COPY) 2001-04-22: Sander van Leeuwen - DDRAW: o Wrong calling convention of io_init2. Parameter is pushed on the stack, not put in eax. (fixes crash in release ddraw & systems with xf86sup.sys installed) - KERNEL32: o Removed wrong segment definitions introduced by yesterday's EXC_CallHandler rewrite. (fixes global data section) o Build fake header for LX executable (fixes crash during Acrobat Reader 5 install (regsvr32.exe)) - NTDLL: o Updated rtlstr.c (Wine) o Wrote partial implementation of RtlGetAce. Not tested well. Enough to prevent Acrobat Reader 5 install from crashing. - ADVAPI32: o Forward AddAce, FindFirstFreeAce, GetAce & AddAccessAllowedAce to NTDLL - INSTALL: o Add Font registry keys [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Fonts] "Courier 10,12,15 (VGA res)"="COURE.FON" "MS Sans Serif 8,10,12,14,18,24 (VGA res)"="SSERIFE.FON" "MS Serif 8,10,12,14,18,24 (VGA res)"="SERIFE.FON" 2001-04-21: Sander van Leeuwen - KERNEL32: o DosWrite for stdout doesn't accept high addresses o Rewrote EXC_CallHandler in assembly (copied compiler output (opt. off)) No longer necessary to turn off optimizations for exceptions.cpp. o Added partial implementation of GetLongPathNameA/W 2001-04-20: Sander van Leeuwen - USER32: o Commented out RestoreCursor call in user32 exitlist handler. Seems to cause PM hangs on some (a lot?) machines for reasons unknown. 2001-04-20: Patrick Haller - DSOUND: o Fixes / Workaround for PowerDVD 3.0 Crashed when allocating sound object for 48kHz, 16-Bit, 4 channels o dynamically size the internal mixing buffer in DSMIXER 2001-04-19: Sander van Leeuwen - KERNEL32: o Fail properly when a dll can't be found or loaded. - SHELL32: o Ported latest shlfileop.c from Wine. (include functional SHFileOperation). TODO: Merge the rest. 2001-04-18: knut st. osmundsen - dailybuild: o Adjusted to new build pattern. o Copy all builds to local archive directory. - tools\install: o Added Xx2Lx. - Readme.txt: o Changed Pe2Lx to Xx2Lx. 2001-04-17: knut st. osmundsen - Unicode: o Minor addjustments to makefile. CFLAGS is the correct place to addjust flags for C compilation. And flags are compiler specific.. wrapped it in CCENV checks. - Tools\Common: o Revamped a couple of things - introduced interface classes. Not quite statisfied yet, but it's working. o Starting to make an kFileSDF class to access .SDF files SDF = Structure Definition Files - used by PMDF. Contains information about structures (struct _somthing_s). Needs this information for win32k. - Tools\Database: o Recreate makefiles, new style. GD is not compiled any longer. o Addjusted APIImport to fit changes in Tools\Common. - Tools\ImpLib: o Addjusted code to fit changes in Tools\Common. 2001-04-16: Sander van Leeuwen - KERNEL32: o Fix for LoadLibrary(Ex)W. (free must not be called for converted strings; use FreeAsciiString instead) - TOOLS\WRC:o Ported latest wrc. (has proper ascii -> unicode conversion and more features) o Open files in binary mode only; fixes load failures for shell32 icons (newlines were translated; bytes removed from icon data) - DPLAYX: o Compile fixes for header changes. - include\odin.h: o Changes for wrc. It chokes on calling conventions. o Got rid of annoying 'unused struct' warnings 2001-04-16: knut st. osmundsen - DSOUND: o Removed pmwinx.lib from makefile. Wasn't used; and it had bad path (ie. no path). 2001-04-15: Sander van Leeuwen - KERNEL32: o RegQueryValueExA/W broken. Reserved & type parameters reversed. (fixes crash in Notepad and possibly solves many other problems) - USER32: o SetCapture change; return immediately when new capture window is the same as old one. (fixes high cpu load in PowerDVD when holding mouse cursor over control window; PM kept sending WM_MOUSEMOVE messages) o Rewrote ClipCursor & GetClipCursor o Set PM style flags when WS_CLIPCHILDREN or WS_CLIPSIBLINGS flag is changed by the application using SetWindowLong. (fixes Lotus Notes size bar & upper left rectangle painting) 2001-04-14: knut st. osmundsen - configure,win32k: o Added option to Configure.cmd, -w, which omittes building of Win32k.sys. 2001-04-12: Shingo Tsuda - USER32: o Fixes for DBCS strings 2001-04-10: Sander van Leeuwen - PELDR: o Print module name that contributed to the failure of loading kernel32. 2001-04-06: Sander van Leeuwen - WINMM: o Clean up DirectAudio thread properly. 2001-04-05: Shingo Tsuda - KERNEL32: o WideCharToMultiByte/MultiByteToWideChar changes - srclen <= -1 -> calculate length (docs say only for -1) - source and destination pointer can't be the same (as docs also claim) (verified in Windows ME & Windows NT4, SP6) 2001-04-05: Sander van Leeuwen - USER32: o Rewrote ShowCursor 2001-04-04: Sander van Leeuwen - KERNEL32: o Removed AsciiToUnicode* & UnicodeToAscii* functions o lstrcpynWtoA & lstrcpynAtoW fixes o Removed WideCharToLocal & LocalToWideChar - INCLUDE\unicode.h: o AsciiToUnicode* & UnicodeToAscii* functions implemented with functions in heapstring.h - * o Compile fixes due to header changes 2001-04-03: Sander van Leeuwen - DDRAW: o Only reset physical palette in DirectDraw destructor if palette was really changed. (gets rid of excessive screen redraws in DXView) - KERNEL32: o Return GetUserDefaultLCID in GetSystemDefaultLCID o Return GetUserDefaultLangID in GetSystemDefaultLangID o Ported Wine's codepage, string & unicode functions (codepage.cpp) o Ported Wine's codepage unicode conversion functions & tables (kernel32\unicode) o Rewrote string functions (heapstring.cpp) to use new unicode functions. - USER32: o Ported Wine's Char* functions TODO: IsCharAlphaA & IsCharAlphaNumericA 2001-04-02: Sander van Leeuwen - USER32: o Mouse message translation fix (check capture) o Turn off WS_CAPTION style for dialogs with DS_CONTROL flag set (fixes file dialogs with OFN_ENABLETEMPLATE style) Verified behaviour in NT4, SP6 with DSShow sample - about dialog with DS_CONTROL -> no titlebar - file open dialog without DS_CONTROL -> titlebar + moveable 2nd dialog o Temporary workaround for file dialogs with template dialog child. They don't redraw when switching directories. For some reason the new child's (syslistview32) update rectangle stays empty after its parent is made visible with ShowWindow TODO: find real cause - MSACM32: o Ported latest Wine version - WINMM: o Ported latest Wine driver.c (necessary for msacm32 update) - DDRAW: o Back buffer fix; setup surface descriptor structure and don't clear DDSCAPS_BACKBUFFER flag (fix for WinDVD) o SurfLock: hEvent can be 0 as long as the DDLOCK_EVENT flag isn't set. Size of lpSurfaceDesc can be sizeof(DDSURFACEDESC2). (fix for WinDVD) - KERNEL32: o Check executable type (VIO/GUI) in CreateProcess and launch correct version of the pe loader (PE/PEC) 2001-04-02: Michal Necasek - KERNEL32: o Fix for importing from executable (fixes Blade Runner) - TESTAPP\EXCEPTIONS: o Small test apps to test exception handling 2001-04-01: Sander van Leeuwen - WININET: o Added missing exports to wininet.def - KERNEL32: o Removed yesterday's codepage change. (breaks Opera) - WINMM: o Increased nr of DART buffers used for wave playback - ODININST o Moved kernel32 init code into odininst o Create [HKEY_USERS\.DEFAULT\Control Panel\International] registry key with international settings - USER32: o Create dialog controls with CreateWindowExW o Use correct SendMessage(A/W) call during CreateWindow 2001-03-31: Sander van Leeuwen - KERNEL32: o Fix for loading executable with sections not starting on page boundary (LOAD_LIBRARY_AS_DATAFILE). (fixes crash during install of latest RealPlayer 8) o Change default code page back from 1252 to 0. (fixes umlauts in StarOffice 5.2) TODO: Need to find out how SO determines the codepage - USER32: o WindowFromPoint now works with overlapping siblings too o Bugfix in mouse message translation - COMCTL32: o Resynced with Wine (pager, datetime, flatsb, comboboxex, monthcal) o Fixed previous merge (INFOPTR structures too small) o Corrected ordinals of a lot of exports o Fixed bug in animate control merge; now it works again 2001-03-30: Sander van Leeuwen - USER32: o Rewrote WM_NCHITTEST handling. No longer relies on PM. o Put static control hittest workaround inside #ifndef ODIN_HITTEST statement (see 2001-03-25) o Send WM_NCHITTEST messages from WindowFromPoint + added checks (more like Wine now) TODO: New version isn't 100% correct. Doesn't take overlapping windows into account when window is transparent. Always continues with parent window. o Make copy of class icon in RegisterClassA/W (for hIconSm) (done by Wine) o Changed COLOR_APPWORKSPACE system color. Lotus Notes main window background now correct. (TODO: many differences with Wine's system color table; why?) 2001-03-29: Sander van Leeuwen - KERNEL32: o CreateFile (disk): disable error popus. NT allows an app to open a cdrom/dvd drive without a disk inside. OS/2 fails in that case with error ERROR_NOT_READY Ignore that error and return success. (removes annoying popups when starting windvd without DVD disk in drive) - GDI32: o Get correct height & width of HDC in DIB section blitting (fixes wrong (button) controls in WinDVD's control panel window) 2001-03-28: Sander van Leeuwen - KERNEL32: o GetSystemPowerStatus fix; SYSTEM_POWER_STATUS structure definition was wrong. (fixes crash in WinDVD) o Added translation for ERROR_NOT_READY to error2WinError - DDRAW: o Return proper error code for unsupported FOURCC surface creation 2001-03-27: Sander van Leeuwen - USER32: o Rewrote cursor handling. No longer use Open32, but convert cursor to OS/2 format during creation. (also fixes crash during WinDVD startup) o Ported Wine's cursor/icon cache code. Odin no longer leaks memory when apps reload icons/cursors. o Check for DIB section selection in ReleaseDC and unselect it. (only for non-CS_OWNDC hdcs) - KERNEL32: o Removed cursor & cursor group conversion code - GDI32: o SelectObject fixes for DIB sections o Check for DIB section selection in DeleteDC and unselect it. (fixes crash in WinDVD) 2001-03-27: Michal Necasek - OPENGL: o Less stict parameter checking in wglSetPixelFormat (fixes the game Hitman) 2001-03-25: Michal Necasek - KERNEL32: o Turn off all optimizations for exceptions.cpp in release build (!) - DINPUT/USER32: o Fixed keyboard handling. Now arrow keys should work right on both numpad and the separate arrow block among other things. 2001-03-25: Sander van Leeuwen - USER32: o If a static window has children, then we can't return HTTRANSPARENT for WM_NCHITTEST. For some reason PM then sends all mouse messages to the parent of the static window; even if they are intended for the children of the static window. TODO: This could break some win32 apps (parent not receiving mouse message for static window (non-child) area) Rewrite NCHITTEST handling. (don't use PM) (fixes Roger Wilco config window input) o Call GlobalAddAtomA/W in RegisterWindowMessageA/W (don't use Open32) - KERNEL32: o OSLibStripPath bugfix (wrong comparison if path contains both back- and forward slashes) 2001-03-24: Sander van Leeuwen - WINMM: o mmsystemGetVersion returned wrong version. Should be 0x030A. (returned in NT4, SP6) o Ported Wine's PlaySoundA/W, sndPlaySoundA/W o Enabled DirectAudio interface code for wave playback (available in upcoming SB Live driver version 0.70) (works well with WinAmp 2.72) - USER32: o GetAsyncKeyState implemented (calls Open32) 2001-03-23: Sander van Leeuwen - WINMM: o Wrong calling convention for timer thread handler (os2timer.cpp) o Preliminary code for DirectAudio wave playback (new audio interface in the upcoming SB Live driver) o Rewrote DART wave playback & recording classes o Added support for more callback types (event, thread) o Fixed wrong callback parameter (window callback) for waveIn/OutReset Note: Untested code. Will be tested & fixed tomorrow. 2001-03-22: Sander van Leeuwen - KERNEL32: o Ported Wine's GetBinaryTypeA/W o Wrote assembly wrapper for thread handler calling to cope with buggy applications that use the wrong calling convention for thread handlers. (like @#$@#% PowerDVD) (fixes crash in PowerDVD with release build of kernel32) 2001-03-22: Michal Necasek - USER32: o Show the mouse pointer in the exitlist handler of user32. (should restore the mouse pointer after a game crashes) 2001-03-21: Sander van Leeuwen - KERNEL32: o Added support for disabling logging for a specific thread - WINMM: o Pause playback after underrun & restart it properly when new buffers arrive. 2001-03-20: Michal Necasek - include/DDRAW: o Cleaned up so that it builds with Watcom. Still lots of warnings and Watcom build doesn't seem to work right now. 2001-03-21: knut st. osmundsen - Odin32Api: o Added sample makefile (from the Generic SDK sample) (Just remeber to rename the generic.rc to resource.orc.) 2001-03-20: Sander van Leeuwen - DPLAYX: o Fix for nameless unions & VAC 3.6.5 (makefile) 2001-03-19: Sander van Leeuwen - KERNEL32: o Fail properly when dll can't be found (pe loader) - WINMM: o Do not pause wave stream after underrun. Stop it instead. (writing audio buffers to a paused stream crashes MMPM2) (fixes crash while playing movie in PowerDVD) o Added level 2 logging support. o Recording callback bugfix o Several playback changes & fixes o Do not use TIB selector of thread that issues waveOut/InOpen. Instead query selector of main thread in DART callback thread. (fixes crash in WinAmp when pressing stop; thread that opened the playback stream is terminated before the stream is stopped) - GDI32: o Check y inversion when resyncing dib section 2001-03-19: knut st. osmundsen - Pe2Lx: o Convert CUI subsystem to VIO apps. CUI applications will now work as executed thru pec.exe. - Kernel32: o Init VIO Console for Pe2Lx CUI images. [DirectDraw] Fullscreen=[True|False|0|1] Don't blame me if your machine goes up in smoke after you've turned fullscreen on ;-) Note: It seems that fullscreen currently doesn't work right with newer SDD releases for 8bpp apps, though 16/24/32bpp should be OK (palette setting problems) 2001-03-15: knut st. osmundsen - tools/dailbuild: o Added jade and DocBook to the environment. - include/win32k.h: o Defines OBJ_ANY on demand. (For use with DosAllocMemEx().) - tools/fastdep: o Ported to NT by faking the necessary OS/2 APIs. Tested with Watcom C/C++ v11.0. Makefile target: fastdepnt.exe 2001-03-14: Markus Montkowski - DPLAYX: o Sync with latest WINE stuff - include\win\dplay.h o Syncd with WINE - include\win\dplobby.h o Syncd with WINE 2001-03-14: Bart van Leeuwen - USER32: o Wrong setting of fErase in PAINTSTRUCT (BeginPaint) (fixes background in CDRLabel) 2001-03-13: Sander van Leeuwen - KERNEL32: o Removed include from several files. (no longer necessary) - KERNEL32/USER32/GDI32/Dllentry/SHELL32/WINMM/WSOCK32 o Dll entrypoint changes for Watcom - USER32: o Set last error to ERROR_INVALID_WINDOW_HANDLE if application passes invalid window handle to BeginPaint. (verified in NT4, SP6) 2001-03-12: Sander van Leeuwen - KERNEL32: o Fix for SearchPathA with NULL parameter for output buffer (reported by Ahti Heinla) - USER32: o Fail if BeginPaint is called with NULL PAINTSTRUCT pointer (verified in NT4, SP6) - DDRAW/DSOUND: o Removed #ifdef IBMCPP statements (moved into initdll.h). 2001-03-11: knut st. osmundsen - Win32k, Pe2Lx, Elf2Lx, Xx2Lx: o Made generic Xx2Lx util for both Pe2Lx and Elf2Lx (and any future loaders). Pe2Lx.exe is now named Xx2Lx.exe! o Makefile fixes. o Elf2Lx compiles (non-working dummy). o Fixed vprint and vprintf16 to not skip multiple LF/CRs. - Configure.cmd: o Changed to configure Win32k as well. Re-run Configure.cmd!!! 2001-03-07: knut st. osmundsen - Win32k: o Fixed trap in k32QuerySystemMemInfo when VIRTUALADDRESSLIMIT=512. 2000-03-06: Michal Necasek - include o More changes and fixes for Watcom 2001-03-02: knut st. osmundsen - Win32k: o Fixed some 16-bit compiler problems. o Fixed 4.51 toolkit problems. 2001-02-29: Sander van Leeuwen - KERNEL32: o First check executable name during internal dll loading then try loading it as a dll. o Reroute ReadFile for standard handle class to Open32. 2001-02-28: Sander van Leeuwen - KERNEL32: o Added support for high memory override key in odin.ini: [ODINSYSTEM] HIGHMEM=0 Turns off high memory usage in Odin. Useful for Warp 4 (>fp12) systems that still use the old 16 bits TCPIP stack. (temporary workaround) NOTE: Turning this option off will prevent Odin from running applications that must be loaded in high memory (like MS Word). - NTDLL: o Committed update from Jan. 25th: Ported latest NtQuerySystemInformation from Wine (includes fix for IE5 install) - include\odinwrap.h: o Wrappers only detect FS problems when they should correct them. (fixes FS corruption in wsock32 (WSAStartup/WSACleanup)) 2001-02-27: Sander van Leeuwen - WINMM: o Added recording (still untested) o waveOutReset bugfix o Compile fix (midi.cpp) - USER32: o Ported latest wsprintf Wine functions (not much changed; only to stay in sync) 2001-02-26: Sander van Leeuwen - WINMM: o Fixed FS corruption in RTMidi class (wrappers for RTMIDI functions) 2001-02-25: Sander van Leeuwen - KERNEL32: o Check executable too when searching for imported modules (directly imported by PE dlls) 2001-02-24: Sander van Leeuwen - KERNEL32: o Set fExitProcess flag in WinExe destructor to prevent reloading dlls after loading of exe failed. 2001-02-23: Sander van Leeuwen - GDI32: o Removed old workaround for SetDIBitsToDevice. Incorrect for new implementation of this function with StretchDIBits. (fixes bitmaps in Minesweeper) - USER32: o WM_SETCURSOR change; don't check WS_EX_NOPARENTNOTIFY style when sending this message to the parent of a child window. o Redraw entire window when switching between minimized, maximized and restored windows state. o Added missing cursor to MDI client class (cursor now changes when moving cursor from mdi child to client window) - USER32, include\win\drive.h: o DRIVE_GetDosCwd bugfix (fixes crash in Cool Edit old-style file open dialog) 2000-02-22: knut st. osmundsen - Win32k: o Support for the 14062e kernels. o Removed the CALLTAB segment. o Hooked dh_SendEvent and RASRST for taskmanager hot-key support. o Enabled callgate on SMP kernel. 2001-02-22: Sander van Leeuwen - KERNEL32: o Changed error string when detecting version mismatch. - USER32: o Fixed incorrect index checking for class and window words. o Allow misaligned access to window words/longs (fixes crash in Quicken 99) o More minimize changes/fixes for MDI windows. o Update region fix in NotifyFrameChanged method 2001-02-21: Sander van Leeuwen - USER32: o Changes for minimizing windows. Not done yet. o Added CreateFakeWindowEx. Turns native OS/2 window into window recognized by Odin (with only very limited functionality) Useful for creating an Odin window with an OS/2 window as parent. Applications don't expect WM_NULL when fetching mouse messages from the queue. (fixes mouse jumping in Unreal) 2000-02-20: knut st. osmundsen - Win32k: o Moved calltabs to the code segments. Clears the WriteProtect(WP) flag in CR0 to be able to do this. The flags is of course restored when the calltabs are written. o Completed callgate code. Though is not activated for SMP kernels yet as I haven't tested that yet. The callgate works just as any other callgate in OS2, it calls kernel routines for entry and exit housekeeping. o Updated the win32k library and header to accomodate this. All IOCtl structures are changed. So, Install the new the new Odin32 and reboot before using it so the new win32k.sys is installed. 2001-02-20: Sander van Leeuwen - USER32: o Fix for position of system menu in (mdi) child windows o Use WinScrollWindow to scroll children again and manually notify children that they have moved. (PM only does this for windows with CS_MOVENOTIFY class) (much smoother scroll in Opera) o Use WinGetMaxPosition to determine default maximized position of toplevel window before sending WM_GETMINMAXINFO (maximized Odin windows no longer obscure WarpCenter) o Activation fixes for MDI windows 2000-02-19: Oliver Braun - KERNEL32: o OSLibDosAllocMem fix (better checks for errors + return 4kb aligned memory if 64kb alignment fails) (fixes StarOffice 5.2 install) 2000-02-19: knut st. osmundsen - KERNEL32: o Use DosAllocMemEx to 64KB align memory (OSLibDosAllocMem) when available. - Win32k: o Prepared API code for both callgate and IOCtl invokation. This caused changes in IOCtl parameter structures. Callgate code is completed but not used yet because it isn't tested yet. 2001-02-19: Sander van Leeuwen - COMDLG32: o Commented out Norse ChooseFont dialog (incomplete translation) Use the English version instead. - USER32: o Corrected invalidating nonclient parts of a window after a resize. (fixes resizing of mdi windows in mdi sample) 2000-02-18: knut st. osmundsen - Win32k: o Finished implementation of DosAllocMemEx. DosAllocMemEx is equal to DosAllocMem but takes some extra OBJ_ flags (defined in win32k.h). TODO: "Grow arena" problem when allocating memory at a specific location. I'll fix this ASAP and add a fix for the loader too (which has the same problems with loading EXEs without fixup above 64MB). 2001-02-18: Sander van Leeuwen - USER32: o Restore window origin in SetWindowPos for parent window with CS_OWNDC style. Do the same thing in WM_VRNENABLED message handler. (fixes paint offset problems in Opera windows) o Bug in yesterday's ScrollWindowEx fix (fixes smooth scrolling of child windows in Opera html window) o Detect DestroyWindow call during CreateWindowEx and delay deleting the window/dialog object. (fixes crash in Opera when going to fullscreen mode) 2000-02-17: knut st. osmundsen - Win32kCC: o Rewrote to notebook. (fixes size problem) o Added memoryinfo page which is refreshed every second. 2000-02-17: Yuri Dario - INCLUDE: o Header changes for compiling Opera 2001-02-17: Sander van Leeuwen - USER32: o Store active status in custom window word. QWS_FLAGS appears to be modified by PM somewhere. (fixes WM_ACTIVATE loop in Opera when maximizing or restoring the mdi window) o Don't include RDW_NOERASE flag in InvalidateRect/Rgn (fixes background erase for mdi client window in Opera) o IsChild only checked the direct parent of a window. Must check all parents (parents of parents etc) (fixes TAB handling in Opera dialogs) o Ported latest GetNextDlgTabItem from Wine (fixes TAB handling in Opera dialogs) o WM_ADJUSTWINDOWPOS bugfix (if app changes size/position) OSLibMapWINDOWPOStoSWP can add flags, but we must not let it remove flags. (fixes resizing of Opera MDI windows) o ScrollWindow(Ex) bugfixes Must scroll child windows manually (fixes scrolling of Opera html MDI windows) o Combobox fix from Wine (CBCalcPlacement) (fixes combobox controls in Opera html MDI windows) (TODO: sync rest with latest Wine control code) 2001-02-15: Sander van Leeuwen - COMDLG32: o Ignore OFN_FILEMUSTEXIST flag in GetSaveFileNameA/W (NT4 seems to ignore it too and it fixes the save dialog in ElstarFormular 2000) 2001-02-14: knut stange osmundsen - Win32k.lib: o Corrected build breaker: log.h should not be included. log.h was removed from the CINLCUDES two days ago. 2001-02-14: Sander van Leeuwen - KERNEL32: o Allocate TLS index of module before loading the dll it needs (some apps assume their executable index is always zero) (fixes crash in BrMSX) o Must use EXC_CallHandler to call RtlUnwind handler (fixes crash during RaiseException in BrMSX) - OPENGL\GLU: o Removed initterm.cpp. Use dllentry.obj instead - INCLUDE\misc.h: o Print file and function name before executing an int 3. (DebugInt3) - *\initterm.cpp: o Wrong calling convention for CRT_Init/Term, ctordtorInit/Term o VAC 3.6.5 ctordtorInit/Term takes one parameter - USER32: o Delay SetFocus when called during processing of WM_SETFOCUS message (not allowed by PM). (fixes keyboard focus in ElstarFormular 2000) 2000-02-13: Michal Necasek - USER32: o Wrong unicode<->ascii translation for some listbox & combobox messages. Must check if the control style includes LB/CB_HASSTRINGS. (CB_FINDSTRING, CB_FINDSTRINGEXACT, CB_SELECTSTRING, LB_FINDSTRING, LB_FINDSTRINGEXACT, LB_SELECTSTRING) 2001-02-12: knut st. osmundsen - Win32k.lib: o Removed /src/win32k/include from the CFLAGS. 2001-02-11: knut st. osmundsen - Win32k: o Added symbols for the 14062D kernels. o Added a query API for getting memory information. o Added force preload option - should be very useful when debugging Ring 3 apps with ICAT. (Option -F) 2001-02-11: Sander van Leeuwen - ODINCRT: o Completed runtime dll for VAC 3.6.5 - WINMM, GLU, CRTDLL, KERNEL32: o Compile fixes for VAC 3.6.5 - RASAPI32: o Can't use LXLITE as it crashes on this binary - KERNEL32: o Check handle in LocalLock and return NULL if invalid (some apps use LocalLock to get access to GDI objects; doesn't work in Odin (TODO)) 2001-02-10: Sander van Leeuwen - USER32: o Check if window has been destroyed before accessing this pointer again in SendInternalMessage. (fixes heap corruption in MS Visual C++ 4.2 install) TODO: Needs a permanent and correct solution as this can happen in several other places. Also a potential problem in user32 controls (InfoPtr). o Set last error to ERROR_INVALID_INDEX for invalid class word index. 2001-02-09: Sander van Leeuwen - COMCTL32: o Register controls in LibMain, not in DLL_InitTerm - KERNEL32: o Re-register dll if DosFreeModule failed with ERROR_INVALID_ACCESS Dll refuses to unload if it has an active exitlist handler or depends on a dll that registered an exitlist handler. In this case the handle remains valid and the entrypoint of the dll is NOT called for DLL_PROCESS_DETACH. The next time DosLoadModule is called, the entrypoint (and RegisterLXDll) isn't called (DLL_PROCESS_ATTACH). WORKAROUND: Re-register the dll so future functions that use this dll calls don't fail. (fixes crash in shell32 in TextPad 4) o shared & code heap umalloc changed (now more meaningful debug messages in case of heap corruption) - USER32: o WM_MINIMIZE/WS_MAXIMIZE support added to CreateWindow (fixes size of main InstallShield window for Microsoft Visual C++ 4.2) o Fixed FS corruption in DIALOG_DlgDirList (c library function calls) 2001-02-08: Sander van Leeuwen - KERNEL32: o Standard in/out/error handle fix. Disable change during console init. (fixes output of console applications; input doesn't work well yet) - USER32: o Dialog control fix. Creating them with CreateWindowExW does not work since our standard user32 controls are still ASCII. (fixes missing icon control in Acrobat Distiller window) 2001-02-08: Michal Necasek - KERNEL32: o RtlUnwind bugfix 2001-02-04: Sander van Leeuwen - USER32: o Wrong error set in GetDlgItem. Must be ERROR_CONTROL_ID_NOT_FOUND. (verified in NT4, SP6) 2001-02-03: Sander van Leeuwen - USER32: o Get/SetWindowLongA/W, Get/SetWindowWord: must set last error to ERROR_INVALID_WINDOW_HANDLE if window not found. (verified in NT4, SP6) Must also return ERROR_INVALID_INDEX if index is out of range. (used to return ERROR_INVALID_PARAMETER) (verified in NT4, SP6) o Temporary hack to force focus to newly created window (if no Odin window has focus after sending WM_ACTIVATE, set focus to window that received the activate message) (fixes wrong keyboard focus in RealPlayer 8) 2001-02-02: Sander van Leeuwen - USER32: o DrawEdge bugfixes (signed/unsigned char mismatches) (fixes lines in properties dialog of RealPlayer 8) o Fixed incorrect rounding in dialog control size calculation (fixes wrong height of some dialog controls (rp8 pref. dialog lines)) o Don't unregister class if there are still windows that use it. 2001-02-02: knut st. osmundsen - Win32k: o Added option for the All-In-One-Object fix to be able to debug PE executables thru the ICAT. Works with pe2lx and win32k.sys. -1<+|-|[*]> +: Applied when needed. (checked) -: Never applied (use this to debug). (not checked) *: Allways applied. (default) (gray) It's also added to Win32kCC as a three state checkbutton. WARNING! This option should only be used for debugging and will cause your system to crash if used with based images! - tools\Common: o Minor changes in the fileformat classes to use kFile. 2001-02-01: Sander van Leeuwen - GDI32: o LineDDA fix (wrong calling convention) (fixes crash in Solitaire) - USER32: o clientHeight bugfix. Check hwnd instead of pHps->hwnd. (pHps can be NULL) (fixes crash in Solitaire) - INSTALL: o Include ChangeLog-2001 in daily build - COMDLG32: o Merged some changes from Wine (extra notification in FileOpenDlgProc95 & OFN_NOCHANGEDIR support (also added to Unicode version of file open dialog)) o Removed workaround for Acrobat Reader file open dialog (Wine update fixed it) 2000-01-30: Markus Montkowski - KERNEL32: o Fixed handling of fbTimeout in DCBINFO in SetOS2DCB and SetCommTimeouts the last one prevented Palms Hotsync to work with normal IBM com.sys. SIO did less parameterchecking so it worked... 2001-01-25: Sander van Leeuwen - KERNEL32: o Memory map commit bugfix for write accesses (fixes eternal loop in OLE during IE5 install) - NTDLL: o Ported latest NtQuerySystemInformation from Wine (includes fix for IE5 install) - OLE32: o Resync with latest Wine (storage, stg_*) 2001-01-24: Sander van Leeuwen - KERNEL32: o Default display and windows codepage set to 1252 2001-01-23: Sander van Leeuwen - KERNEL32: o long2ShortName completely broken. now properly detects 8.3 filename and copies it (TODO: not finished) o Set x position to 0 after seeing a linefeed in the WriteFile datastream (vio console) (Sun Java 1.3 output doesn't include carriage returns) o ExitProcess change: make sure no threads are still suspended (with SuspendThread) by calling ResumeThread OS/2 seems to be unable to terminate the process otherwise. (fixes exitlist zombie after executing the Sun Java 1.3 interpreter) o Added handle manager class for standard handles (in/out/error) WriteFile for STD_OUTPUT_HANDLE & STD_ERROR_HANDLE now works. - PELDR: o Don't strip quotes from cmd line parameter part. (fixes Sun Java 1.3 JRE install (must replace 16 bits setup with 32 bits version)) - INCLUDE\win\thread.h: o Wrong layout of TEB structure (fixes crash in Sun Java 1.3 interpreter) 2001-01-22: Sander van Leeuwen - KERNEL32: o CreateFileMapping fix; create new handle even when called with name of existing map (and return ERROR_ALREADY_EXISTS) o _HMHandleGetFree fix; handle allocation wasn't thread safe (_HMHandleGetFree checks if hHMHandle == INVALID_HANDLE_VALUE, but calling functions sets this value afterwards -> possible that two threads allocate the same handle) (solution: set hHMHandle in _HMHandleGetFree) HMCreatePipe call also failed because of this. (two handles allocated -> both allocate the same handle) o HMCreatePipe change (free 1st handle if 2nd handle alloc fails) - DOC\Readme.txt: o Added remark about the need to run odininst.exe when installing Odin manually. o Updates 2000-01-21: Przemyslaw Dobrowolski - WINMM/MCICDA: o Track data fixes 2001-01-20: knut st. osmundsen - tools\dailybuild, include\versionos2.h: o Fixed netlabs upload. o Moved buildlevel info from versionos2.h to odinbuild.h. 2001-01-20: Sander van Leeuwen - AVIFIL32: o Resynched with latest Wine code o Added AVIStreamTimeToSample & AVIStreamSampleToTime stubs - SETUPAPI: o Wine port (stubs only) 2001-01-20: Yuri Dario - USER32: o Set codepage for DCs returned by GetDCEx 2000-01-20: Przemyslaw Dobrowolski - WINMM/MCICDA: o MCI_STATUS_POSITION bugfix 2001-01-19: Sander van Leeuwen - USER32: o GetCaretPos & SetCaretPos bugfixes. Did not take client window origin into account. (fixes cursor position problems in e.g. Notepad) 2000-01-19: Przemyslaw Dobrowolski - WNASPI32: o DosCreateMutexSem call bugfix. (CDRWIN works again) 2001-01-19: knut st. osmundsen - Win32k: o Added support for kernel revisions. (like 14062A) o Added build 14062a kernels. o Added build 14062 kernels for Warp 4. 2001-01-18: Sander van Leeuwen - GDI32: o More logging o Use StretchDIBits in SetDIBitsToDevice instead of Open32 function. (which doesn't work for compressed bitmaps) (MS Excel 97 startup bitmap displays correctly now) Also solves y inversion related problems. (MS Developer startup bitmap overlay correct now (Visual C++ logo)) - WGSS50: o Reported problems with SaveDC/RestoreDC and StretchDIBits (Modelator graphics corruption fixed) - KERNEL32: o Create system.ini with '[mci] cdaudio=mcicda.drv' section during installation o Fixed bug in lstrncpyA (return when specified length is 0) o MultiByteToWideChar bugfix (calculate string length if input length is -1 before checking if dest length is 0) (MS Word 97 no longer crashes) o RegQueryValueExW bugfix (caused stack corruption in Excel and probably many other apps that use this function too) - OLEAUT32: o Ported David's typelib changes. (MS Word 97 starts immediately and doesn't spend an hour searching for typelibs in dlls) TODO: Check bugfixes/changes in latest Wine code and merge them. TODO: Port picture classes 2000-01-17: Przemyslaw Dobrowolski - WINMM\MCICDA: o Wrong call to os2CDCloseTray 2001-01-13: Sander van Leeuwen - COMDLG32: o Get current directory if initial dir == NULL (win31 style file dialog). o Fix for filter. (default to NULL; not " /0/0") o Scale icons to 16x16 (win31 style file dialog) -> system default (32x32) is too big. (TODO: Our user32 icons are too big) o Drive list not initialized correctly. (GetDriveTypeA return value interpreted wrong) -> use GetLogicalDrives instead to avoid accessing floppy drives (which GetDriveType does) - USER32: o Replaced some icons with those found in SHELL32: - open & closed folder - floppy, harddisk & network drive o Fixed bug in NotifyFormatFrame method (fixes problems with combobox) o ComboLBox bugfix (extra vertical scrollbar) o LISTBOX_Directory bugfix (must check for FILE_ATTRIBUTE_NORMAL) (removes files from directory listing in common file dialog) - KERNEL32: o Fix for executable names with spaces in path o Workaround for applications that block the PM input queue while waiting for a child process to terminate. (WaitSingleObject now calls MsgWaitMultipleObjects and processes messages while waiting for the process to die) (Napster install now doesn't block PM anymore (forcing a reboot)) o Add class keys for SHDOCVW during install - SHDOCVW: o Added (Wine 20010112 port) - WSOCK32: o Changed File and Product version to 0x0400, 0x0565012C (NT4, SP6) 2001-01-12: knut st. osmundsen - tools\install, tools\dailybuild: o Added odincrt.dll to debug release (to make wgss50.dll happy). 2001-01-11: Sander van Leeuwen - USER32: o DrawIconEx bugfix (fixes bitmap menu item when maximizing MDI window) - COMDLG32: o Added/Ported 16 bits common dialog Wine code. (GetOpen/SaveFileName with hook and without OFN_EXPLORER flag implies old Windows 3.1 style dialog) (not completely working yet, but better than the mess we saw before (InstallShield -> browse dir)) 2001-01-10: Sander van Leeuwen - KERNEL32: o Fix for WriteFile & ReadFile (wrong return code was expected) - USER32: o HAS_THICKFRAME macro changed (identical to Wine now) (fixes MDI window borders (which were too thin)) 2001-01-10: knut st. osmundsen - tools\install: o Corrected packing of wpss50.dll. o Added .sym files to release distributions. (optional package) - tools\dailybuild: o Removed uploading of glide-stuff. 2001-01-09: Sander van Leeuwen - INCLUDE\dcdata, GDI32, USER32: o Updates for WGSS50. - LIB\WGSS50.lib, BIN\WGSS50.dll: o Binary distribution of WGSS50 added 2001-01-09: knut st. osmundsen - tools\dailybuild: o Added wgss50.dll to the .ZIPs. - lib o Added making of wgss50.lib. (So, that it corresponds to the other libraries made there.) o Converted wgss50.lib to a deffile. 2001-01-08: Sander van Leeuwen - ReportingBugs.txt: o Specify windows & system32 directory in bug reports (description included on how to determine this) 2001-01-08: knut st. osmundsen - tools\dailybuild: o Updated with temporary server address. o Put ftp userid/passwords into separate file. o Build number incrementation. (Stored in versionos2.h) (Use bldlevel on the DLLs to look at it.) o Splitted out 3dxf/glide stuff into separat .zips. - Win32k: o Added support for the ldrCheckInternalName bug. :-) (see /src/win32k/ldr/myldrCheckInternalName.cpp for details.) o Made pe.exe default. o Added UNI and SMP 14062 kernels (convenience pack). (Have anyone got the Warp 4 convenience pack with the right .sym files?) - bin\bldlevelinf.cmd: o Removed colon after otherwise to make it work with Object REXX. - makefiles: o Merged BuildLevel revisions with the LXOpt revisions. (There seems like there have been some kind of revision mixup in Sanders tree?) o Updated the other post files with LXOpt. 2001-01-06: Sander van Leeuwen - install: o Win32k installation temporarily disabled due to a WarpIn bug (config.sys lines removed) o Update: This is NOT a WarpIn bug, but an error in the script. Now fixed. o Added check for WarpIn 0.9.6 or higher o Added check for OS/2 3.x or higher - src\makefile: o Exclude msvcrt from build process. (download odinapp.zip from ftp.os2.org to install a small MFC app with MFC + MSVCRT dlls) 2001-01-05: Sander van Leeuwen - makefiles:o Use LXLite for release build binaries (better compression) Can't use it for debug binaries as IPMD doesn't like it. 2001-01-02: Sander van Leeuwen - KERNEL32: o KERNEL32_99 should return 1 (according to Wine) o KERNEL32_100 export added (stub) - USER32: o Rewrote window handle management; only start reusing window handles when max handle has been assigned. - GDI32/USER32/KERNEL32: o Don't export private Odin functions by name (we import everything by ordinal) 2001-01-01: Sander van Leeuwen - USER32: o Menu cast bugfix (bitmap handle is 32 bits) (Fixes menu bitmaps in Lotus Notes 5)