/* $Id: ChangeLog,v 1.2549 2003/04/10 10:25:15 sandervl Exp $ */

 2003-04-10: Platon Fomichev <stauff@innotek   >
    - MSVCRT  : o MSVCRT updates, forwarders to stdcall functions, lots of funcs
                  now directly imported from NTDLL, resync with latest Wine
    - EMXLIBS : o Added yet another wrapper for FS and added some funcs for new
                  msvcrt
    - INCLUDE : o OS2SEL functions corrected for potential optimizing problems
                  in release build. (Bug found and corrected by Dietrich)

 2002-04-09: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Unmap memory view when deleting PE dll object. 
                  (problem found by Dietrich)

 2003-04-09: Platon Fomichev <stauff@innotek   >
    - COMCTL32: o Due to flaw in cdecl implementation of GCC temporary 
                  correctly import _wtoi func from NTDLL
    - EMXLIBS:  o Possible endless loop in OS2FS replacement funcs
                  (problem found by Dietrich)

 2003-04-08: Platon Fomichev <platon@innotek   >
    - USER32:   o Treat LBUTTON press different from others in scrollbar. (WineX resync)

 2002-04-08: knut st. osmundsen <Knut.Osmundsen@innotek   >
    - COMDLG32: o Corrected default printer init. It was crashing with big
                  printer setups and not handling multiple drivers per device
                  correctly.

 2002-04-08: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Menu control: do not paint default menu item strings in bold
                                if in OS/2 GUI mode

 2003-04-04: Platon Fomichev <platon@innotek   >
    - NTDLL:    o Massive update. NTDLL internal tests, almost all
                  string and conversion funcs. Corrected and beautified .def file
    - DOC:      o Updated GCCBuildInstructions.txt for GCC 3.2.1

 2003-04-03: Sander van Leeuwen <sandervl@innotek   >
    - WINMM:    o Different method for detecting DirectAudio (uniaud, sblive, c-media)
                o Added custom build function to disable DirectAudio (always use DART)
                o Waveout (DART): handle underrun properly (next buffer write
                  and position after continueing)

 2002-04-02: knut st. osmundsen <bird-odin-spam@anduin   >
    - WIN32K:   o Win32VersionValue in OptionalHeader.

 2002-04-02: Yuri Dario <mc6530@mclink   >
    - INCLUDE, GDI32, USER32, KERNEL32:
                o Corrected & changed headers + source updates
    - USER32:   o Button: WM_SETTEXT fix

 2003-04-02: Platon Fomichev <platon@innotek   >
    - INCLUDE, KERNEL32:
                o Corrected HFILE definition as it is in Wine and in Win2k +
                  header updates.
    - INCLUDE\EMXRUNTIME:
                o Modified EMX headers
    - LIB\EMXSUPPORT:
                o Modified EMX libraries

 2003-04-01: Sander van Leeuwen <sandervl@innotek   >
    - GDI32:    o Fix for partial dibsection resyncs

 2003-04-01: Platon Fomichev <stauff@innotek   >
    - USER32:   o Functions for setting custom frame/cd/window class names

 2003-03-31: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - SHELL32:  o Shell file operations update

 2003-03-31: Platon Fomichev <platon@innotek   >
    - KERNEL32: o Added vsnprintfW/snprintfW funcs for syncing with latest
                  wine NTDLL

 2003-03-31: knut st. osmundsen <bird-odin-spam@anduin   >
    - PE2LX/WIN32K:
                o Custombuild feature for excluding dlls. Cleanups.
                o Option for making all object RW file.
    - KERNEL32: o Made Pe2Lx'ed DLLs work.

 2003-03-28: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Removed changes for window tracking (move/size) with full
                  window dragging enabled (2003-03-27)

 2003-03-27: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Don't change focus when processing mouse button message if
                  the top parent is a fake window
                o Changes for window tracking (move/size) with full window
                  dragging enabled
    - KERNEL32: o Memory map updates

 2003-03-26: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o WaitForSingleObject/(Msg)WaitForMultipleObject fixes to
                  prevent thread priorities from being accidentally boosted to
                  time critical

 2003-03-22: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o If an application doesn't validate the update region
                  while processing WM_PAINT, then we must remember it for
                  the next time.
                  Windows will only send a WM_PAINT once until another part of
                  the window is invalidated. Unfortunately PM keeps on sending
                  WM_PAINT messages until we validate the update region.
                  This affects UpdateWindow, RedrawWindow, GetUpdateRgn, GetUpdateRect,
                  BeginPaint and the next WM_PAINT message.

 2003-03-20: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o WindowFromPoint: only send WM_NCHITTEST to windows belonging
                  to the current thread
                o Changes for fake windows. Moved them into a seperate C++ class
                  and overload some methods to correct the behaviour.

 2003-03-18: Platon Fomichev <platon@innotek   >
    - USER32:   o Shift/Ctrl/Alt+Numpad keys illegal behaviour. Generic numpad
                  keys like (/*-+) produced garbage.

 2003-03-12: Platon Fomichev <stauff@innotek   >
    - USER32:   o GetKeyState and GetAsyncKeyState fixes for numpad keyboard

 2003-03-06: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Don't change the stack alignment if the thread has less than
                  128 kb stack.
    - WINMM:    o Improved accuracy of waveIn/OutGetPosition. (use FPU to prevent
                  rounding errors)
                o Added code to dump played wave data to disk (disabled by default)

 2003-03-06: knut st. osmundsen <Knut.Osmundsen@innotek   >
    - KERNEL32: o The WIN32LOG_FILEBASE env.var. can be used to point the logfile
                  elsewhere. "%d.log" is added to the value.
                o Print szLineExceptionType too in exception dump.
                o Custombuild apis for entering and leaving Odin thread context.
                o Added functions to quickly get the PID & TID

 2003-03-05: knut st. osmundsen <bird-odin-spam@anduin   >
    - MAKE:     o Experimental OTHERS variable.
                o Full source path to compilers.

 2003-03-05: Sander van Leeuwen <sandervl@innotek   >
    - WINMM:    o timeBegin/EndPeriod: check for upper and lower boundaries
                o waveoutGetPosition: return 0 if stream is not active (DART)
                o waveinGetPosition: return 0 if stream is not active (DART)
                o Don't print a warning for CALLBACK_NULL callbacks
                o Added ODIN_waveInSetFixedBuffers, renamed SetFixedWaveBufferSize
                  to ODIN_waveOutSetFixedBuffers. Used to tell WINMM to use
                  the waveOutWrite buffer size for the DART buffers.
                o Don't pause the wave stream if no buffers left to add. Let
                  DART detect the underrun condition.

 2003-03-04: Platon Fomichev <stauff@innotek   >
    - USER32:   o We did not pay attention to numlock state on numpad keyboard.

 2003-03-03: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - GDI32:    o ExtTextOutA: copy string and force zero termination
    - SHELL32:  o Minor updates

 2003-03-03: Sander van Leeuwen <sandervl@innotek   >
    - WSOCK32:  o Removed wrong checks for invalid address parameters in
                  sendto & recvfrom

 2003-03-01: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o ExitProcess: turn off hard errors & exception popups before
                  calling O32_ExitProcess (release build only)
                o DeleteFile: when deleting a .lnk file, verify if it's a shell
                  link object file. if so, delete WPS object
                o ODIN_DisableFolderShellLink added: disable object creation in
                  Odin folder. Desktop shortcuts will still be created as WPS
                  objects on the desktop.
                o OSLibWinCreateObject: create shelllink file with WPS object id
    - USER32/KERNEL32:
                o Move OSLibWinCreateObject to KERNEL32
    - SHELL32:  o Shelllink: use kernel32 file functions instead of those from
                  the VAC crt

 2003-02-28: Sander van Leeuwen <sandervl@innotek   >
    - SRC\makefile:
                o Skip msvcrt & crtdll for now. Causes too many problems with
                  Odin builds.
    - KERNEL32: o Fixed CreateProcessA regression (Lotus Notes)
                o Check for invalid data while measuring the CPU speed. DosTmrQueryTime
                  isn't very reliable (on laptops).
                o ExitProcess: don't remove our exception handler too early
                o Map ERROR_PATH_NOT_FOUND (OS/2) to ERROR_INVALID_NAME
    - WINMM:    o Protect linked timer list with VMutex object.

 2003-02-28: knut st. osmundsen <Knut.Osmundsen@innotek   >
    - MAKEFILES:
                o New rule cleanall which tries to wipe out all the output.
                o ODIN32_LIB and ODIN32_BIN is now the same for all the CCENVs.
                  (AFAIK we no longer try compile stuff with many compiles, but
                   stick too the once which are working, VAC3 or EMX that is.)
                o Linenumbers in release mode.
                o Pass full source file names to compilers so the debugger easier
                  will find the the right source.
                o Defined STATIC_CRT in src/win32k/utils.
                o Profiling: Link with kProfile.lib when DEBUG= and PROFILE=1.
                  Configured this for EMX targets too. (state: Experimental)

 2003-02-28: Platon Fomichev <stauff@innotek   >
    - USER32: o Wrong checks on restoration point remembering. Maximizing
                window from PM icon using keyboard or menu produced wrong
                controls.

 2003-02-27: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o VirtualAlloc: fixed handling of commit for a page range
                  that is not entirely reserved (contains committed pages)
                o Don't call WinMessageBox in the unhandled exception filter as
                  that can hang PM.

 2003-02-27: Platon Fomichev <stauff@innotek   >
    - USER32:   o Illegal PM sequence of maximizing from icon state corrected.
                  Inter-thread controls change caused PM lockups. Rewrote
                  PM window frame controls manipulation procedure.

 2000-02-27: Achim Hasenmueller <achimha@innotek   >
    - KERNEL32: o MoveFile: detect if source and target file names are on a
                  different drive and use DosCopy/DosDelete instead of DosMove
                  in this case.

 2003-02-26: Sander van Leeuwen <sandervl@innotek   >
    - RICHED32: o Rewrote control; no longer creates a child Edit window as this
                  doesn't happen in Windows and breaks subclassing
                o EM_CHARFROMPOS is different for RichEdit controls (lParam is
                  a POINTL pointer)
                o Implemented EM_FINDWORDBREAK

 2003-02-25: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Bugfix for WPS object creation
    - RICHED32: o Added support for EM_SETCHARFORMAT (text & background color)
                  & EM_SETBKGNDCOLOR.

 2003-02-24: Sander van Leeuwen <sandervl@innotek   >
    - WS2_32:   o Implemented non-overlapped WSARecv & WSASend.
    - WSOCK32:  o check for local host name in gethostbyname. if identical,
                  then use "localhost" instead
    - KERNEL32: o GetFullPathNameA: don't change the input string
                o Added ODIN_IsWin32App export to determine whether an app
                  is a win32 or os2 binary.
    - USER32:   o Changes for creating WPS objects (win32/os2 app)
                o Added function to convert an icon group in memory
    - SHELL32:  o Convert win32 icon file to os2 format when creating a shell link.

 2003-02-23: knut st. osmundsen <bird@anduin   >
    - TOOLS/ALIASDEF:
                o A tool for generating alias records from an .def file.
                  Something I wrote will playing with NTDLL here.

 2003-02-22: Sander van Leeuwen <sandervl@innotek   >
    - WS2_32:   o Added WSARecv(From) & WSASend(To) stubs

 2003-02-22: Platon Fomichev <stauff@innotek   >
    - USER32:   o Restoring maximized window from iconic state caused window
                  frame controls to behave badly. General out-of-sync problems
                  with frame controls. Invisibility of frame controls after
                  lots of minimizing/restoring.

 2003-02-22: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - SHELL32:  o Shell file operation updates

 2003-02-20: knut st. osmundsen <Knut.Osmundsen@innotek   >
    - KERNEL32: o Added custombuild API for registering a callback for LX Dll
                  loading thru LoadLibrary*().

 2003-02-18: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Touch last stack page using ESP. (just in case)
                o Cleaned up memory map code.

 2003-02-17: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o FindFirstFile: return ERROR_FILE_NOT_FOUND if DosFindFirst
                  returns ERROR_PATH_NOT_FOUND
    - USER32:   o Single Alt down + up always generates WM_SYSKEYUP; reset
                  iMenuSysKey on WM_KEYUP, so the system menu isn't accidentally
                  activated.

 2003-02-16: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o ToAscii: fixed wrong checks for VK_SHIFT/CONTROL/MENU
                o Fixed broken implementation of GetKeyState, GetAsyncKeyState
                  and GetKeyboardState
                o Do not translate WM_KEYUP to WM_SYSKEYUP if AltGr released
                  and KC_LONEKEY flag is set. (only for Alt)
                o GetKeyboardState, GetKeyState, GetAsyncKeyState:
                  pretend left Ctrl key is pressed if AltGr down.
    - PMKBDHK:  o Special handling of AltGr key. Must send Ctrl key messages
                  like Windows.

 2003-02-14: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - SHELL32:  o Shell file operation updates

 2003-02-13: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Handle SetFocus(0) correctly: keystrokes are converted into
                  WM_SYSKEYDOWN/(WM_SYSCHAR)/WM_SYSKEYUP messages
                o DrawFocusRect: conflict between SetROP2(R2_XORPEN) and
                  SetBkMode(TRANSPARENT); commenting out the latter for now.
    - SHELL32:  o Control panel Wine resync
    - KERNEL32: o Added ODIN_SetTIBSwitch function to override TIB selector
                  switching.
                o Forward RtlZero/Move/FillMemory to ntdll
    - NTDLL:    o Cleaned up

 2003-02-11: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o When a window is activated by a mouse click, we must set
                  focus to the client window (and not the frame!).
                o GetSysColor: always return cached colors

 2003-02-10: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Touch all stack pages we skip in the out of stack workaround for
                  16 bits code. Jumping over the guard page causes a protection
                  violation exception.
    - USER32:   o EnumThreadWindows: must return windows in Z-order
                  (experiments show EnumThreadWindows in NT4 behaves like this)

 2003-02-07: Sander van Leeuwen <sandervl@innotek   >
    - DDRAW/NTDLL:
                o Rename resource directory
    - USER32:   o Don't save position (for restore) in SetWindowPos if window
                  is minimized .

 2002-02-06: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - USER32:   o Edit control: fixed heap corruption in undo buffer

 2003-02-06: Sander van Leeuwen <sandervl@innotek   >
    - ODINCRT:  o Rewrote critical sections to be safe on SMP systems
                  (previous implementation had one flaw that happened
                   to be triggered often on my SMP machine)
    - USER32:   o Edit control: Always kill the timer if in captured state.
                  The app can call ReleaseCapture before we get the WM_LBUTTONUP
                  message.
                o Send WM_QUERYNEWPALETTE when a window receives focus
                o Translate WM_REALIZEPALETTE into WM_PALETTECHANGED
    - GDI32:    o Must manually correct y coordinates for DIB section blit since
                  we reset the y inversion back to 0.
                  (subtract twice the viewport & windows origin y)
                o CreateDIBSection: don't get palette from DC if bitmap bits provided

 2003-02-05: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Check ESP when calling the entrypoint of a newly created thread.
                  If close to a 64kb boundary, adjust it. Some ancient 16 bits
                  code will crash if there's not enough stack left.

 2003-02-04: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Support DuplicateHandle for threads
                o Fixed command line parsing regression
    - DDRAW:    o FS corruption in SetCooperativeLevel

 2003-02-02: Sander van Leeuwen <sandervl@innotek   >
    - INCLUDE\makefiles:
                o Define STATIC_CRT for all exe targets

 2003-01-30: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o CreateProcess changes for parsing the application name
                  and command line strings

 2003-01-29: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o OS/2 Look & Feel is now default
                o Use OS/2 colors again in OS/2 L&F mode

 2003-01-28: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Don't use DrawFocusRect from WGSS anymore
    - GDI32:    o Fixes for InternalTextOutA without y-inversion (not activated)

 2003-01-27: Platon Fomichev <platon@innotek   >
    - INCLUDE:  o Illegal calling convention specified for _System calling
                  convention in headers for GCC. Bugs in ASM code for SetFS
                  RestoreFS.
    - NTDLL:    o In C++ files specify extern "C" for _System calling convention
                  as well. Affected _DLL_InitTerm

 2003-01-23: knut st. osmundsen <bird-odin-spam@anduin.net>
    - TOOLS\COMMON, TOOLS\WRC\U:
                o Define STATIC_CRT so wrapper headers doesn't kick in.

 2003-01-23: Sander van Leeuwen <sandervl@innotek   >
    - INCLUDE\*.mk:
                o Don't use include\incl_vac for statically linked targets
                  (e.g. tools)
    - ODINCRT:  o Added wrappers for new & delete operators
    - ODINPROF, IPLOG, OLE32\REGSVR32;
                o Link with static CRT library
    - MAKE\setup.mak:
                o Only add include\incl_vac if not building an odin32 app

 2003-01-23: Platon Fomichev <platon@innotek   >
    - DOC:      o Added build instructions for GCC
    - NTDLL:    o Made initntdll a C file to remove C++ GCC stuff for now
                  and added RtlBitmap support from Wine.
    - INCLUDE:  o Correced odinlx.h header - problem while compiling with
                  C compiler.

 2003-01-22: Sander van Leeuwen <sandervl@innotek   >
    - ODINCRT:  o Renamed wrapper functions
    - INCLUDE\incl_vac:
                o Changed VAC headers to rename memory and file functions
                  (those that change FS when called)
    - MAKE, INCLUDE\*.mk:
                o Add include\incl_vac first to include path (/I)
    - KERNEL32: o Removed WriteLogError

 2003-01-22: Platon Fomichev <platon@innotek   >
    - NTDLL:    o Dll load/unload changes

 2003-01-21: Sander van Leeuwen <sandervl@innotek   >
    - DDRAW:    o Removed dependency on dive.dll. Load it on demand.
    - USER32:   o Moved debug wrapper for DDE to dde.cpp

 2003-01-19: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Only load LVM.DLL when we actually need it.
                o CreateProcess bugfix for thread id if launched directly
                o CreateFile returns ERROR_ALREADY_EXISTS if file not found
                  and CREATE_NEW
                o Check and correct process type in thread wrapper. WinCreateMsgQueue
                  fails for non-PM apps. We set it to PM in the VIO loader, but
                  apparently it can be changed back.

 2003-01-18: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o FindFirstFile must return ERROR_FILE_NOT_FOUND when
                  the specified file or directory isn't present.
                  (OS/2 returns ERROR_NO_MORE_FILES)

 2003-01-16: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Fixed heap corruption in CreateProcess (with current dir)
    - USER32:   o Only the combo bitmap header is wrong; the others are fine
                  (regression from 2003-01-05)

 2003-01-16: Platon Fomichev <platon@innotek   >
    - NTDLL:    o Changes for building dll with GCC

 2003-01-15: Platon Fomichev <platon@innotek   >
    - MSVCRT:   o Updates
    - VERSION:  o Don't use crtdll
    - INCLUDE:  o Updates for GCC builds

 2003-01-14: Sander van Leeuwen <sandervl@innotek   >
    - WINMM:    o Delete all wave object on unload
                o Fix linked list synchronization

 2003-01-13: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Don't allocate selectors anymore. Allocate tiled memory
                  and call Dos32FlatToSel.
                o Get default stack size from PE header.
                o Thread handles not closed properly.

 2003-01-12: Sander van Leeuwen <sandervl@xs4all   >
    - KERNEL32: o Ported QueryDosDeviceA/W from Rewind
                  Return all valid drive letters in QueryDosDeviceA/W(NULL)
                  Return full device name for drive letters
                o Implemented IOCTL_SCSI_GET_CAPABILITIES
                o Do not fail CDIO init if media not present

 2003-01-10: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Don't close handle in CloseHandle if HANDLE_FLAG_PROTECT_FROM_CLOSE
                  flag set.
                o Implemented Set/GetHandleInformation
                o CreateFile: create handles that are not inherited by child
                              processes by default
                              Only enable inheritance if specified in security struct
                o Create(Named)Pipe: default = not inherited by child processes
                                     Only enable inheritance if specified in security
                                     struct.
                o DuplicateHandle; set inheritance flag with SetHandleInformation
                o CreateProcess: support for setting stdin/out/err handles
                                 of child process
                o PeekNamedPipe: - return ERROR_BROKEN_PIPE when used for unnamed
                                   pipes (which is not allowed in OS/2)
                                   (workaround)
    - USER32:   o ScrollDC bugfix; must convert rectangle returned by GetClipBox
                                   to device coordinates

 2003-01-10: Platon Fomichev <platon@innotek   >
    - MSVCRT:   o Updates
    - CRTDLL:   o Wine port (forwarder dll to msvcrt)

 2003-01-10: Herwig Bauernfeind <herwig.bauernfeind@aon   >
    - ODINBUG:  o Updated to version 0.5.8

 2003-01-08: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o SetTimeZoneInformation: save info in registry:
                  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
                o GetTimeZoneInformation: read info from registery if present;
                  otherwise call WGSS
                o RegQueryValue(Ex)W: workaround to return bytes for strings
                  must always be executed when lpcbData != NULL.

 2003-01-07: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Convert color masks to b&w in CreateIconIndirect
    - RICHED32: o Don't forward WM_NCCALCSIZE to Edit control or else the
                  richedit parent's client area is resized. We already
                  resize the Edit child in the WM_SIZE handler.
                o Wrong call to ctordtorTerm; removed it and ctordtorInit
                  since there's no C++ code in that dll anyway.
    - ODININST: o Parse TZ environment variable and save timezone information
                  to the registry. (default is CET if not found)

 2003-01-06: Sander van Leeuwen <sandervl@innotek   >
    - WSOCK32:  o Better method to cancel all async requests in WSACleanup
    - USER32:   o Invalidate window when it's resized and SWP_NOCOPYBITS
                  is specified.
                o Fixed icon leak in IconForWindow method (call LoadImageA
                  with LR_SHARED flag to reuse icons)

 2003-01-06: Platon Fomichev <platon@innotek   >
    - ConfigureGCC.cmd,
      INCLUDE\win\msvcrt,
      INCLUDE\emx makefiles
      MSVCRT:
                o Wine port of MSVCRT (build with GCC)

 2003-01-05: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Added ODIN_SetDllLoadCallback; install a dll load hook
                  that's called as soon as all exports are processed
                  (so before any code is executed that can use the dll)
                o Added ODIN_SetProcAddress; override a name or ordinal export
    - USER32:   o Corrected wrong bitmap headers in resources
                o Added workaround for handling black & white cursors

 2002-01-05: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - USER32:   o Return MA_NOACTIVATE in listbox WM_MOUSEACTIVATE handler.
                  (apparently not necessary anymore in Wine; so probably
                   caused by something else)

 2003-01-04: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Corrected drawing of menubar in OS/2 L&F mode (when highlighted)
                o Fixed handling of single ALT to select menu
                o Use different color for highlighted menus (OS/2 L&F)
    - GDI32:    o Removed broken handling of TA_RIGHT in TextOut
                o Flip bitmap in GetDIBits if height is negative
                o Only return bitfield data in GetDIBits if compression set
                  to BI_BITFIELDS (and lpvBits is not NULL)

 2003-01-03: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Merged Rewind menu control
                o Fixed GetSystemMetrics(SM_CXMENUCHECK); should be 13
                o Always use windows system colors (even in OS/2 L&F mode)

 2002-01-03: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - KERNEL32: o Convert timezone names in Set/GetTimeZoneInformation as
                  WGSS expects/returns ascii strings instead of unicode.

 2003-01-02: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Set the codepage of the message queue for each new thread
                  that is created. (done for the main thread in user32)
    - USER32:   o Fix for composite keyboard character translation
                  (e.g. ^ on german keyboards)
                o SystemParametersInfoA fix for SPI_GETNONCLIENTMETRICS in
                  OS/2 L&F (font height must be negative)
                o Deactivate window when hiding it to force PM to switch focus.
                  (Note: might cause regressions!)
                o Fixed behaviour of SetFocus(NULL); should return the current
                  focus window.

 2003-01-01: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Fixes for windows with an iconless class and WS_EX_DLGMODALFRAME
                  style. (they shouldn't have a system menu)
                  (either right after creation or when the app add this extended
                   style later on)
                o Remove minimize or maximize controls when the app requests it
                  (OS/2 GUI mode)
    - GDI32:    o Cleaned up SetDIBitsToDevice

 2002-12-31: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Removed wrong cx & cy check during window creation

 2000-12-30: Achim Hasenmueller <achimha@innotek   >
    - COMDLG32: o Added string check to PRINTDLG_SetUpPrinterListComboA

 2002-12-30: Yuri Dario <mc6530@mclink   >
    - USER32:   o Fixed regression in Set/GetClassLong. (default must be ascii;
                  not unicode)

 2002-12-30: Sander van Leeuwen <sandervl@innotek   >
    - GDI32:    o Support reversed bitmap data in SetDIBits
    - DDRAW:    o Fixed pitch for offscreen surfaces so it doesn't conflict
                  with GetDIBits/SetDIBits alignment (aligned at dword boundary)
                o Use GetDIBits & SetDIBits with negative height. Origin must
                  be top left.
    - PELDR:    o Statically link CRT library. (to remove dependency on odincrt)

 2002-12-29: Sander van Leeuwen <sandervl@innotek   >
    - DDRAW:    o Cleanup
    - KERNEL32: o Fix return value in case of error in SetThreadPriority
                o Fixed GetSystemTimeAsFileTime
    - USER32:   o Fix for painting a completely ownerdrawn menu (owner window
                  was wrong; need to resync with Rewind/Wine)
                o Don't proceed with DoNCPaint if window is invisible or minimized

 2002-12-28: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Changed default WM_MOUSEACTIVATE handler (like Wine now)
    - PELDR:    o Change BEGINLIBPATH before loading any dlls. It's now no
                  longer required to have the system32 directory present
                  in the system LIBPATH.
    - GDI32:    o SetDIBitsToDevice fix for inverted blitting

 2002-12-28: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - USER32:   o Listbox fix for WM_SETFONT; update listbox height
    - SHELL32:  o FO_RENAME updates for shell file operations

 2002-12-28: Jochen Schfer <josch@joschs-robotics   >
    - GDI32:    o Compile fixes for IBM VAC 3.6.5

 2002-12-27: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Cleaned up console code (hardcoded WriteLog calls)
                o Fixed stack address detection in VirtualFree

 2002-12-20: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Removed obsolete code for Glide drivers and IOPL
                o Don't display message boxes for module load errors. Pass
                  errors back to the PE loader.
    - DDRAW:    o Removed IOPL override code
    - PELDR:    o Error handling changes
    - USER32:   o Send WM_H/VSCROLL with SB_THUMBTRACK when the scrollbar thumb
                  receives a WM_LBUTTONDOWN message

 2002-12-19: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - KERNEL32: o GetFileTime & SetFileTime fixes; need to convert between
                  UTC and local file time

 2002-12-18: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Ported listbox, combo & edit controls from ReWind
                o Changes for window classes with both ascii & unicode
                  window procedures
                o Replace WS_BORDER style with WS_EX_CLIENTEDGE extended style
                  when creating dialog controls. (as done in Wine/Rewind)
                  (corrects wrong borders with new edit control)
                o Removed obsolete source files
                o Don't send focus related dialog messages if control
                  already has focus. (Win32Dialog::setFocus)

 2002-12-17: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o CreateProcess bugfix (heap corruption)
    - USER32:   o Merged dialog directory functions with latest Rewind
                  (fixes double drive string in folder dialog of some
                   Installshield installers)

 2002-12-13: Sander van Leeuwen <sandervl@innotek   >
    - USER32;   o Query loader path for WPS object creation
    - KERNEL32: o Changes for loader path query & default setup

 2002-12-12: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Fixed wrong access of global memory map critical section
                  (custom builds only)
    - USER32:   o Fixed wrong access of global window handle critical section
                  (custom builds only)
                o Changed all system menu resources; manually append
                  Odin menu items when building the system menu.
                  (instead of removing them)

 2002-12-11: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Added custom build function to disable loading of LX dlls
                  (safety precaution)
                o 16 bits loader command line changes

 2002-12-10: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Closing a root key should just return success
                  (matters for custom builds)

 2002-12-05: Knut St. Osmundsen <bird@anduin   >
    - WIN32K:   o Finially got around fixing the bug.
                  (Was d32init.c, pach <= 0x10000, where compiler did signed
                  comparision instead of unsigned. (pach is > 0xfff00000))
                o Recreate the symbol database. Had to remove some kernels
                  because of size problems.

 2002-12-05: Sander van Leeuwen <sandervl@innotek   >
    - COMCTL32: o Put back old tab height calculation code. Fixes the tabs
                  in certain applications.

 2002-12-05: Platon Fomichev <platon@innotek   >
    - USER32:   o Changed system menu in OS/2 GUI mode
                o Support the standard system menu hotkeys in OS/2 GUI mode

 2002-12-04: Sander van Leeuwen <sandervl@innotek   >
    - DDRAW:    o Cleanup
                o Post resize message in SetCooperativeLevel instead of
                  calling SetWindowPos. Workaround for recursive SetWindowPos
                  calls in USER32.
    - DINPUT:   o Check initial cursor position in relative mode when acquiring
                  the mouse
    - USER32:   o Logging changes
                o Change required for postponed DDRAW resize

 2002-12-03: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o CreateFile/OpenFile: convert file name to long if in hashed 8.3 format.
                o Added function to override loader names (pe/pec/w16odin)

 2002-12-02: Platon Fomichev <platon@innotek   >
    - OLE32:    o Removed stupid wait in STUBMGR_Start. Blocks PM for two seconds.

 2002-12-02: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Convert command line from OS/2 to Windows codepage

 2002-11-29: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Add ODIN_SetSyscolors to override system colors without
                  forcing a desktop repaint
                o Don't call SetSysColors in WGSS anymore. That call updates
                  system colors in PM.
                o Always use the internal color table in GetSysColor; don't
                  call WGSS

 2002-11-28: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Make sure the stack is properly aligned
                  We're asking for problems if our stack start near a 64kb
                  boundary. Some OS/2 thunking procedures can choke on misaligned
                  stack addresses. (workaround; not a real fix)

 2002-11-27: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Fixed CopyBitmap (CopyImage, IMAGE_BITMAP)

 2002-11-27: Platon Fomichev <platon@innotek   >
    - WININET:  o Some updates (should resync with Wine!)

 2002-11-26: Sander van Leeuwen <sandervl@innotek   >
    - GDI32:    o Added debug wrappers for all exports
    - USER32:   o Handle icon masks with different line alignment. CreateBitmap
                  assumes the optimal alignment, so we must convert them properly.
                  (no collate icon in printer dialog)

 2002-11-22: Platon Fomichev <platon@innotek   >
    - USER32:   o Static control fix: do not destroy old icon when it is replaced.

 2002-11-21: Sander van Leeuwen <sandervl@innotek   >
    - GDI32:    o Fixed bugs in MMX RGB 555<->565 conversion (leftovers)

 2002-11-20: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Ignore size changes when a window is minimized; save them
                  for restore.

 2002-11-18: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Added support for renaming of exported functions.
                  (to resolve duplicate name exports in custom build dlls)
    - GDI32:    o DeleteObject can delete DC handles (thanks to Dietrich Teickner
                  for spotting this bug)

 2002-11-13: Sander van Leeuwen <sandervl@innotek   >
    - SETUPAPI, RICHED32:
                o Wine resync

 2002-11-12: Sander van Leeuwen <sandervl@innotek   >
    - COMCTL32: o Wine resync (toolbar, propsheet, imagelist)
    - OLE32, OLEAUT32:
                o Wine resync

 2002-11-12: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - COMCTL32: o Wine resync (comboex)

 2002-11-05: Platon Fomichev <platon@innotek   >
    - GDI32:    o FillRgn fix for DIB sections
    - USER32:   o SetMenu bugfix

 2002-11-04: Platon Fomichev <platon@innotek   >
    - GDI32:    o CreateCompatibleDC workaround for WGSS bug (current position
                  of new DC must be (0,0))
    - USER32:   o Update for static control

 2002-10-29: Sander van Leeuwen <sandervl@innotek   >
    - COMCTL32: o Wine resync (header, comboex, flatsb, hotkey, imagelist,
                  pager, propsheet, rebar, tab, toolbar, tooltips, updown)
    - COMDLG32: o Write default printer name to win.ini (needed for printer
                  dialogs)

 2002-10-28: Sander van Leeuwen <sandervl@innotek   >
    - GDI32:    o Workaround added for WGSS GetDIBits bug
    - COMDLG32: o Use Wine printer dialog

 2002-10-28: Platon Fomichev <platon@innotek   >
    - USER32:   o Fix for WinPeekMsg bug (?); sometimes returns a message
                  we didn't ask for (filter)
                o Fixed creation of dialog with CreateWindowExA/W
    - GDI32:    o StretchDIBits fix for partial blits & RGB conversion

 2002-10-24: Platon Fomichev <platon@innotek   >
    - USER32:   o TranslateWinMsg bugfix

 2002-10-15: Platon Fomichev <platon@innotek   >
    - USER32:   o Disable close button & close item in system menu for windows
                  with SC_NOCLOSE class style

 2002-10-11: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o SetParent bugfix; don't clear window id if parent is set to
                  0.

 2002-10-10: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Overlapped IO bugfixes for synchronization (typically seen
                  with heavy threaded apps on SMP systems)
                o Fix for IP logging

 2002-10-08: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - SHELL32:  o SHFileOperationA updates

 2002-10-08: Sander van Leeuwen <sandervl@innotek   >
    - ODINCRT:  o Updates for shared critical sections

 2002-10-07: Sander van Leeuwen <sandervl@innotek   >
    - ODINCRT:  o Minor updates for critical section functions

 2002-10-07: Platon Fomichev <platon@innotek   >
    - IPHLPAPI: o GetAdaptersInfo bugfix
    - KERNEL32: o CD ioctls: stop audio when seeking

 2002-10-03: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Added IP logging (define WIN32_IP_LOGGING in dbglog.cpp)
    - IPLOG:    o IP logging server

 2002-10-03: Platon Fomichev <platon@innotek   >
    - KERNEL32: o Implemented IOCTL_CDROM_RAW_READ

 2002-10-01: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Be careful with stack usage in exception handler during
                  XCPT_GUARD_PAGE_VIOLATION.

 2002-09-30: Sander van Leeuwen <sandervl@innotek   >
    - SHELL32:  o Fixed crash when deleting a file in the file dialog
    - KERNEL32: o Fixes for volume access

 2002-09-30: Platon Fomichev <platon@innotek   >
    - COMDLG32: o File dialogs: if lpstrInitialDir is not a dir but a filename
                  skip it and use current directory

 2002-09-27: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o GetFileSize must fail for drives
                o Disable physical disk & volume access by default;
                  call EnablePhysicalDiskAccess to enable it (custom build)
                o FindFirst/NextVolumeA fixes for ignoring LVM volumes

 2002-09-26: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o OS/2 Physical partition names have base 1 (0 for win32)
                o Convert ERROR_PATH_NOT_FOUND to ERROR_FILE_NOT_FOUND in
                  OSLibDosCreateFile
                o IOCTL_DISK_GET_DRIVE_GEOMETRY fix for physical drive
                o Fixed return value for FindNextVolumeMountPointA/W
                o Fixed read & write for unmounted volumes; must update
                  current file position manually & check for boundaries
    - WINMM:    o Fixed debug wrapper logging
    - USER32:   o WM_ADJUSTFRAMEPOS:
                  The PM frame control changes the z-order of a child window
                  if it receives focus after a window has been destroyed
                  We can't let this happen as this breaks assumptions
                  elsewhere (e.g. GetNextDlgGroupItem)
                  By returning 0 here, we prevent the default frame handler
                  from messing things up. (one example is a group of radio buttons)

 2002-09-24: Vit Timchishin <tivv@ukr    >
    - KERNEL32: o Fix for OSLibDosFreeMem

 2002-09-24: Sander van Leeuwen <sandervl@innotek   >
    - BIN:      o WGSS update from IBM
    - IPHLPAPI: o GetNetworkParams: fixed completely broken code to fill in
                  DNS entries.

 2002-09-19:
    - MAKE, TOOLS/BIN/RM, FASTDEP:
                o IPF and IPP support. They are built in the 'misc' pass.
                  See make\testcase\ipf.mak for usage example.
                  NB. FastDep does only C styled dependency generation
                  for .IPP files.
                o Corrected bad .orc dependency generation.
                o Added some shortcut rules to restart/skip passes.
                o Fixed rm -R filename. Suppressed ERROR_PATH_NOT_FOUND msgs.

 2002-09-19: Sander van Leeuwen <sandervl@innotek   >
    - ODINCRT:  o Include new & delete in memory statistics

 2002-09-19: Platon Fomichev <platon@innotek   >
    - USER32:   o Put window on top of owner if owner is not in the foreground;
                  HWND_TOP forces the owner to the top as well
                  (window creation)

 2002-09-18: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o Added code to print leaked heap memory

 2002-09-18: Platon Fomichev <platon@innotek   >
    - USER32:   o WM_MOUSEWHEEL update

 2002-09-17: Platon Fomichev <platon@innotek   >
    - USER32:   o Create invisible vertical scroller for all top-level windows
                  so the IBM wheel driver sends us WM_VSCROLL messages
                o Added WM_MOUSEWHEEL message support

 2002-09-16: Sander van Leeuwen <sandervl@innotek   >
    - COMCTL32: o LISTVIEW_ProcessLetterKeys bugfix
    - GDI32:    o Statistics fixes & print leaked gdi handles
                  when unloaded.
                o Don't recycle handles too soon. That makes it more difficult
                  to interpret the logfile.

 2002-09-16: Platon Fomichev <platon@innotek   >
    - USER32:   o Combobox fix to update selected item when the control is rolled
                  up

 2002-09-15: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - SHELL32:  o Wine resync for shfileop.c

 2002-09-14: Sander van Leeuwen <sandervl@innotek   >
    - KERNEL32: o WaitForSingleObject, (Msg)WaitForMultipleObjects:
                  If dwTimeout is not 0 and smaller than 20 ms, then
                  temporarily change thread priority to time critical to
                  make sure we don't get a late timeout.
                  (CLOCKSCALE=4 in config.sys also improves timeout responds)

 2002-09-14: Yuri Dario <mc6530@mclink   >
    - DSOUND:   o Load MMPM2 (MDM.DLL) on demand

 2002-09-12: Platon Fomichev <platon@innotek   >
    - USER32:   o Translate PM WM_VSCROLL to WM_MOUSEWHEEL messages (currently
                  only dispatched to (dinput) hook handler)

 2002-09-12: knut st. osmundsen <bird@anduin   >
    - MAKE:     o Corrected bug in process which made it put the libraries in
                  the wrong place.
                o Always stamp the .def file before linking so that build level
                  info will be up to date.
                o Added some shortcuts rules for lazy programmers:
                  * pass[1-6] for starting from a given pass.
                  * quick for only doing lib, executable and publish.

 2002-09-10: knut st. osmundsen <bird@anduin   >
    - TOOLS/VSLICK:
                o Added kdev.e. Odin32.e with more goodies like an 'Extra' menu.

 2002-09-05: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Caret bug in edit control WM_ERASEBKGND handler (hidden,
                  but not shown again)
                o Removed obsolete hack in CreateCaret

 2002-09-05: Dietrich Teickner <Dietrich_Teickner@t-online   >
    - COMDLG32: o Corrected translation of IDS_TODESKTOP resource string

 2002-09-04: knut st. osmundsen <bird@anduin   >
    - FASTDEP:  o Corrected bug in caching. Didn't force rescan of files when
                  a dependant file wasn't present any more.
                o Corrected makefile. No memory debug.
    - CMDQD:    o Corrected makefile.

    - Tools/DailyBuilds:
                o Changed odin32env.cmd to use buildenv.cmd to set up the
                  desired build environment.
                o Changed odin32clean.cmd to use tools\bin\rm.exe.
    - MAKE:     o Corrected CC_NO_DBGMEM check for vac3xx.

 2002-09-03: Sander van Leeuwen <sandervl@innotek   >
    - USER32:   o Cleaned up clipboard code

 2002-09-03: Platon Fomichev <platon@innotek   >
    - USER32:   o Fix for Ctrl-Break

