 /* $Id: ChangeLog-2001,v 1.12 2002/02/21 23:10:45 sandervl Exp $ */

 2001-12-31: Sander van Leeuwen <sandervl@xs4all.nl>
    - GDI32:    o Use critical section in dibsection class instead of vmutex

 2001-12-31: knut st. osmundsen <bird@anduin.net>
    - Tools/CmdQd:
                o Corrected bad statement in the clean2 rule.

 2001-12-30: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - USER32:   o Do not send WM_SETCURSOR when mouse is captured (SDK docs)

 2001-12-26: Achim Hasenmueller <achimha@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - KERNEL32: o Print more information when a missing api is called
                  (image that is responsible)

 2001-12-20: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - USER32:   o Fixed memory DC leak in DrawIcon & DrawIconEx

 2001-12-15: Sander van Leeuwen <sandervl@xs4all.nl>
    - GDI32:    o Added statistics for font, bitmap, pen, brush & region objects.

 2001-12-14: Sander van Leeuwen <sandervl@xs4all.nl>
    - KERNEL32: o CancelIo & GetOverlappedResult added for custom device drivers
                o Enabled overlapped IO for custom device drivers

 2001-12-13: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - PMKBDHK:  o Interception of PM Window Hoteys (i. e. Alt-F7)
                  TODO: generate accelerators in Odin

 2001-12-10: Sander van Leeuwen <sandervl@xs4all.nl>
    - KERNEL32: o Overlapped IO updates

 2001-12-09: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - KERNEL32: o parallel port support restricted to physical ports
                  (LAN redirections not supported)

 2001-12-04: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - CRTDLL:   o Include ctype.h from dir.c and string.c. (Noted by Ye][ow.)

 2001-12-01: Sander van Leeuwen <sandervl@xs4all.nl>
    - KERNEL32: o Fixed GetThreadTEB macro & GetCurrentThreadId
                  (completely broke debug build among other things)

 2000-12-01: Yuri Dario <mc6530@mclink.it>
    - USER32:   o MENU_FindItem: extra check added for loops in menus

 2001-11-30: Patrick Haller <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - KERNEL32: o Implemented CancelIo & GetOverlappedResult for serial comm
                o Preliminary work on overlapped IO for serial comm

 2001-11-24: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - KERNEL32: o minor work in parallel port support (ioctls)
                o "Kernel Object Namespace" -> handlenames.cpp introduced
                  (yet inactive)

 2001-11-23: knut st. osmundsen <kosmunds@csc.com>
    - Misc. Makefiles: o Corrected the descriptions (on request from Ye][ow).

 2001-11-22: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - ODINPROF: o initial version
                  PROFILE images using ODINCRTP generate a <pid>.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 <kosmunds@csc.com>
    - src/makefile:
                o Added guidlib to NOTDLLS.

 2001-11-21: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - WS2_32:   o Compile fix
    - OLEAUT32: o Don't include guid file in custom build library

 2000-11-18: Yuri Dario <mc6530@mclink.it>
    - USER32:   o WM_SETTEXT (unicode) fix
                  (latest changes broke Opera among other things)

 2001-11-16: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - fastdep:  o IPF support.

 2001-11-13: Patrick Haller <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - ODINWRAP: o improved thread call path tracking
                  (now collects i. e. HEAP_malloc->HeapAlloc paths)

 2001-11-12: Sander van Leeuwen <sandervl@xs4all.nl>
    - USER32:   o Fix for calculating font size for a dialog box

 2001-11-11: knut st. osmundsen <kosmunds@csc.com>
    - 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 <sandervl@xs4all.nl>
    - KERNEL32: o Implemented Get/SetProcessAffinityMask & SetThreadAffinityMask

 2001-11-08: Sander van Leeuwen <sandervl@xs4all.nl>
    - COMCTL32: o Ported latest Wine property sheet control
                  (fixes some, but not all problems in CVP)

 2001-11-08: Patrick Haller <patrick.haller@innotek.de>
    - KERNEL32: o first shot at parport support

 2001-11-07: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - WININET:  o http, internet: WINE sync

 2001-11-05: Sander van Leeuwen <sandervl@xs4all.nl>
    - KERNEL32: o Call old DosOpen if DosOpenL not available

 2001-10-31: knut st. osmundsen <kosmunds@csc.com>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <achimha@innotek.de>
    - 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 <kosmunds@csc.com>
    - NTDLL:    o _ultow and RtlIntegerToUnicodeString.
    - Makefiles:
                o Remove dummy.c in clean rule.

 2001-10-28: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - FastDep:  o Corrected crash on bad dependency file.

 2001-10-26: Achim Hasenmueller <achimha@innotek.de>
    - WNASPI32: o don't fail DLL loading if ASPI library fails to init

 2001-10-26: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <patrick.haller@innotek.de>
    - USER32:   o fixed scancodes for [Pause] and [PrtScr]

 2001-10-25: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <achimha@innotek.de>
    - PMKBDHK:  o link statically with C runtime

 2001-10-24: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - WSOCK32:  o Fix for sending FD_CLOSE notification when connection
                  is closed at the remote end.

 2001-10-20: Achim Hasenmueller <achimha@innotek.de>
    - 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 <achimha@innotek.de>
    - WSOCK32:  o implemented error bit handling in Winsock 2.0
                  event semaphore notification for async select

 2001-10-19: Patrick Haller <patrick.haller@innotek.de>
    - 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 <kosmunds@csc.com>
    - 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 <achimha@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - common:   o Corrected bug in kFile buffering which caused impdef to
                  crash in some cases.

 2001-10-17: Patrick Haller <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - WSOCK32:  o enabled receive and send timeout socket options
                  (SO_SNDTIMEO, SO_RCVTIMEO)

 2001-10-15: Sander van Leeuwen <sandervl@xs4all.nl>
    - KERNEL32, USER32, WNASPI32, DDRAW:
                o Custom build updates

 2001-10-14: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <mc6530@mclink.it>
    - USER32:   o GetNextDlgGroupItem fix for infinite loop in Opera

 2001-10-12: Achim Hasenmueller <achimha@innotek.de>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - KERNEL32: o Image header page must be readonly
                o Temporarily disabled high memory usage for heap

 2001-10-08: Patrick Haller <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - USER32:   o Lastest Wine revision of GetNextDlgGroupItem ported + modified

 2001-09-30: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - 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 <sandervl@xs4all.nl>
    - WGSS50:   o WGSS update

 2001-09-28: Patrick Haller <patrick.haller@innotek.de>
    - USER32:   o added experimental support for WH_KEYBOARD_LL hook
                o implemented keybd_event, mouse_event (-> SendInput )

 2001-09-28: Sander van Leeuwen <sandervl@xs4all.nl>
    - PE2LX:    o Added options to remove fixups and to reroute all
                  imports to a custom odin dll

 2001-09-27: Patrick Haller <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - USER32:   o added ODINWRAP debug tracing support to WINKEYBOARD.CPP

 2001-09-23: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <Dietrich_Teickner@t-online.de>
    - SHELL32:  o Small update for shfileop.c

 2001-09-21: Sander van Leeuwen <sandervl@xs4all.nl>
    - USER32:   o Focus changes
    - CTL3D32:  o Added stub dll

 2001-09-20: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <Oliver.Braun@hamburg.de>
    - USER32:   o PeekMessageW bugfix

 2001-09-19: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - kKrnlLib: o FYI: Win32k revamp/split-up. Not yet completed.

 2001-09-10: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - TAPI32:   o Some updates
    - OLEAUT32: o Wine typelib updates

 2001-09-07: Patrick Haller <patrick.haller@innotek.de>
    - 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 <kosmunds@csc.com>
    - 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 <kosmunds@csc.com>
    - FastDep:  o Synced FastDep with OS2Tools.

 2001-09-01: knut st. osmundsen <kosmunds@csc.com>
    - 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 <patrick.haller@innotek.de>
    - 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 <patrick.haller@innotek.de>
    - SHLWAPI:  o Improvements on ordinal functions

 2001-08-29: Patrick Haller <patrick.haller@innotek.de>
    - USER32:   o BUTTON.CPP: don't draw invisible buttons
                  (fixes MS ACMSETUP w/ OWNERDRAW pushbuttons)

 2001-08-28: Sander van Leeuwen <sandervl@xs4all.nl>
    - GDI32:    o CreateDIBitmap: reverse bitmap for negative height
                  (fixes buttons in Abiword)

 2001-08-27: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <mc6530@mclink.it>
    - USER32:   o Button: don't send BN_PAINT/HILITE/UNHILITE/DISABLE
                  (not done in Wine either)

 2001-08-23: Sander van Leeuwen <sandervl@xs4all.nl>
    - OLEAUT32: o Wine updates
    - QUARTZ:   o Wine updates

 2001-08-19: Sander van Leeuwen <sandervl@xs4all.nl>
    - QUARTZ:   o Added stub dll from Wine

 2001-08-19: knut st. osmundsen <kosmunds@csc.com>
    - 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 <patrick.haller@innotek.de>
    - GDI32:    o Optimization for dibsect::findSection()
                  (helps DeleteObject)

 2001-08-16: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - 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].
                  <ul>
                  <li> Start the daemon tools\bin\cmdqd init <N> where N is the
                       then number of workers. Need tools have to be made first.
                  <li> Define the env.var. MULTIJOBS to enable this feature.
                  <li> Do make as usual.
                  <li> tools\bin\cmdqd kill to kill the daemon.
                  </ul>
                o This feature will speedup make of single modules alot on SMP
                  machines.

 2000-08-14: Carsten Tenbrink <Carsten@C-Tenbrink.DE>
    - CAPI2032: o Fix for applications that register with CAPI twice

 2001-08-10: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - Win32k:   o Ignore ERROR_DRIVE_LOCKED (chkdsk/format) error in
                  Pe2Lx::openPath2.

 2001-08-08: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <Dietrich_Teickner@t-online.de>
    - COMCTL32: o Datetime fixes

 2001-08-04: knut st. osmundsen <kosmunds@csc.com>
    - Makefiles:
                o Depend on libraries. (Thanks goes to Yuri for this!)

 2001-08-04: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - 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 <sandervl@xs4all.nl>
    - USER32:   o PostThreadMessage & DDE callback change for new wgss

 2001-07-29: knut st. osmundsen <kosmunds@csc.com>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <achimha@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - KERNEL32: o Atom fixes
    - OLEAUT32: o Added RegisterActiveObject, RevokeActiveObject &
                  GetActiveObject from Wine.

 2001-07-10: Sander van Leeuwen <sandervl@xs4all.nl>
    - COMDLG32: o Don't clear filename when selecting of switching
                  directory is file open/save dialog.

 2001-07-10: knut st. osmundsen <kosmunds@csc.com>
    - 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 <kosmunds@csc.com>:
    - 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 <sandervl@xs4all.nl>
    - 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 <achimha@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - 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 <sandervl@xs4all.nl>
    - 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 <achimha@innotek.de>
    - 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 <kosmunds@csc.com>
    - 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: <br>
                  It is able to find (DosQueryModuleHandle) for dlls using
                  internal names which includes the .DLL extention. <br>
                  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.<br>

 2001-07-06: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - 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 <sandervl@xs4all.nl>
    - 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 <kosmunds@csc.com>
    - fastdep:  o Fixed a coupla bugs; RC files parsing and .
                o Support for filenames with spaces.

 2001-06-27: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - USER32:   o Minor WM_TIMER translation fix (weird check removed)

 2001-06-24: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - KERNEL32: o Added Odin32 Spesific API for getting Odin build number.
                  (Requested by Yuri.)

 2001-06-23: Achim Hasenmueller <achimha@innotek.de>
    - 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 <mmontkowski@gmx.de>
    - 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 <Dietrich_Teickner@t-online.de>
    - COMCTL32: o Check for invalid lpItem in LISTVIEW_GetItemA

 2001-06-22: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - KERNEL32: o Semaphore updates (still not activated)

 2001-06-21: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - include\win\winioctl.h:
                o Added CDROM ioctls
    - KERNEL32: o Dummy CDROM ioctl support

 2001-06-19: Sander van Leeuwen <sandervl@xs4all.nl>
    - KERNEL32: o Started with event, mutex & semaphore rewrite
                  (code not activated)

 2001-06-18: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <Dietrich_Teickner@t-online.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - USER32:   o Reference count bugfixes
    - GDI32:    o Added RGB555 conversion for CreateDIBitmap & SetDIBits

 2001-06-10: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - KERNEL32: o Optimizations for loading of PE images

 2001-06-07: Sander van Leeuwen <sandervl@xs4all.nl>
    - OLE32:    o More VAC 3.6.5 compile fixes

 2001-06-06: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - OLE32:    o VAC 3.6.5 compile fix

 2001-06-05: Patrick Haller <patrick.haller@innotek.de>
    - KERNEL32: o Fixed ordinal export resolving for PE executables
                  (SO52 complained about missing exports)

 2001-06-05: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - Win32k/configure.cmd:
                o Corrected search for the VAC compiler.
                o Removed stupid messages when -w is specified.

 2001-06-02: Achim Hasenmueller <achimha@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - OLEAUT32: o Fixed ITypeInfoImpl_Invoke

 2001-05-30: Patrick Haller <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - COMCTL32: o Datetime control resync with Wine (get/setrange added)

 2001-05-25: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <Dietrich_Teickner@t-online.de>
    - KERNEL32: o LOCALE_IFIRSTDAYOFWEEK fixes (Get/SetLocaleInfo)

 2001-05-19: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <Dietrich_Teickner@t-online.de>
    - KERNEL32: o LOCALE_IFIRSTDAYOFWEEK fix (GetLocaleInfo)

 2001-05-18: Sander van Leeuwen <sandervl@xs4all.nl>
    - KERNEL32: o Fixed FS corruption in LCMapStringA/W
                o ole2nls: resync with latest Wine sources

 2001-05-17: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - Tools\bin:o Synced with other projects using the same tools.

 2001-05-15: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <Dietrich_Teickner@t-online.de>
    - 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 <Dietrich_Teickner@t-online.de>
    - COMCTL32: o Fixed wrong return values for datetime control
                  (DTM_GETSYSTEMTIME & DTM_SETSYSTEMTIME)

 2001-05-11: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sofiya@din.or.jp>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <patrick.haller@innotek.de>
    - 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 <Dietrich_Teickner@t-online.de>
    - SHELL32:  o Update for SHFileOperationA (FO_MOVE)

 2001-05-04: Sander van Leeuwen <sandervl@xs4all.nl>
    - USER32:   o FrameTrackFrame bugfix for moving child windows

 2000-05-03: Yuri Dario <mc6530@mclink.it>
    - 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 <sandervl@xs4all.nl>
    - DSOUND:   o DirectAudio interface updates
    - WINMM:    o Odin.ini key to switch between DART & DirectAudio (see odin.ini.txt)

 2001-04-29: Dietrich Teickner <Dietrich_Teickner@t-online.de>
    - SHELL32:  o Update for SHFileOperationA (FO_COPY)

 2001-04-29: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <Dietrich_Teickner@t-online.de>
    - SHELL32:  o Updates and fixes for SHFileOperationA (FO_COPY)

 2000-04-28: Yuri Dario <mc6530@mclink.it>
    - 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 <sandervl@xs4all.nl>
    - 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 <mmontkowski@gmx.de|
    - MSVFW32:  o Fixed ICOpen, check and correct fccType from VIDC to vidc.
                  Videocodecs do load now.

 2001-04-27: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sofiya@din.or.jp>
    - GDI32:    o DBCS fix for looking up font name in font rename profile section

 2001-04-24: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <Dietrich_Teickner@t-online.de>
    - SHELL32:  o Updates and fixes for SHFileOperationA (FO_COPY)

 2001-04-22: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <patrick.haller@innotek.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - DSOUND:   o Removed pmwinx.lib from makefile. Wasn't used; and it had
                  bad path (ie. no path).

 2001-04-15: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - configure,win32k:
                o Added option to Configure.cmd, -w, which omittes building
                  of Win32k.sys.

 2001-04-12: Shingo Tsuda <sofiya@din.or.jp>
    - USER32:   o Fixes for DBCS strings

 2001-04-10: Sander van Leeuwen <sandervl@xs4all.nl>
    - PELDR:    o Print module name that contributed to the failure of
                  loading kernel32.

 2001-04-06: Sander van Leeuwen <sandervl@xs4all.nl>
    - WINMM:    o Clean up DirectAudio thread properly.

 2001-04-05: Shingo Tsuda <sofiya@din.or.jp>
    - 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 <sandervl@xs4all.nl>
    - USER32:   o Rewrote ShowCursor

 2001-04-04: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <michalnec@volny.cz>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>   
    - 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 <sandervl@xs4all.nl>   
    - 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 <sandervl@xs4all.nl>   
    - 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 <sandervl@xs4all.nl>   
    - 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 <sandervl@xs4all.nl>   
    - 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 <michalnec@volny.cz>
    - OPENGL:   o Less stict parameter checking in wglSetPixelFormat
                  (fixes the game Hitman)

 2001-03-25: Michal Necasek <michalnec@volny.cz>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <michalnec@volny.cz>
    - 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 <sandervl@xs4all.nl>
    - 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 <michalnec@volny.cz>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - DPLAYX:   o Fix for nameless unions & VAC 3.6.5 (makefile)

 2001-03-19: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <mmontkowski@gmx.de>
    - 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 <Bart_van_Leeuwen@netage.nl>
    - USER32:   o Wrong setting of fErase in PAINTSTRUCT (BeginPaint)
                  (fixes background in CDRLabel)

 2001-03-13: Sander van Leeuwen <sandervl@xs4all.nl>
    - KERNEL32: o Removed include <builtin.h> 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <knut.stange.osmundsen@mynd.no>
    - Win32k:   o Fixed trap in k32QuerySystemMemInfo when
                  VIRTUALADDRESSLIMIT=512.

 2000-03-06: Michal Necasek <michalnec@volny.cz>
    - include   o More changes and fixes for Watcom

 2001-03-02: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
    - Win32k:   o Fixed some 16-bit compiler problems.
                o Fixed 4.51 toolkit problems.

 2001-02-29: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - WINMM:    o Fixed FS corruption in RTMidi class (wrappers for RTMIDI
                  functions)

 2001-02-25: Sander van Leeuwen <sandervl@xs4all.nl>
    - KERNEL32: o Check executable too when searching for imported modules
                  (directly imported by PE dlls)

 2001-02-24: Sander van Leeuwen <sandervl@xs4all.nl>
    - KERNEL32: o Set fExitProcess flag in WinExe destructor to prevent reloading
                  dlls after loading of exe failed.

 2001-02-23: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <Oliver.Braun@hamburg.de>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - Win32kCC: o Rewrote to notebook. (fixes size problem)
                o Added memoryinfo page which is refreshed every second.

 2000-02-17: Yuri Dario <mc6530@mclink.it>
    - INCLUDE:  o Header changes for compiling Opera

 2001-02-17: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <michalnec@volny.cz>
    - 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 <knut.stange.osmundsen@mynd.no>
    - Win32k.lib:
                o Removed /src/win32k/include from the CFLAGS.

 2001-02-11: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <michalnec@volny.cz>
    - KERNEL32: o RtlUnwind bugfix

 2001-02-04: Sander van Leeuwen <sandervl@xs4all.nl>
    - USER32:   o Wrong error set in GetDlgItem. Must be ERROR_CONTROL_ID_NOT_FOUND.
                  (verified in NT4, SP6)

 2001-02-03: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <mmontkowski@gmx.de>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - KERNEL32: o Default display and windows codepage set to 1252

 2001-01-23: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <dobrawka@asua.org.pl>
    - WINMM/MCICDA:
                o Track data fixes

 2001-01-20: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - AVIFIL32: o Resynched with latest Wine code
                o Added AVIStreamTimeToSample & AVIStreamSampleToTime stubs
    - SETUPAPI: o Wine port (stubs only)

 2001-01-20: Yuri Dario <mc6530@mclink.it>
    - USER32:   o Set codepage for DCs returned by GetDCEx

 2000-01-20: Przemyslaw Dobrowolski <dobrawka@asua.org.pl>
    - WINMM/MCICDA:
                o MCI_STATUS_POSITION bugfix

 2001-01-19: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <dobrawka@asua.org.pl>
    - WNASPI32: o DosCreateMutexSem call bugfix.
                  (CDRWIN works again)

 2001-01-19: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <dobrawka@asua.org.pl>
    - WINMM\MCICDA:
                o Wrong call to os2CDCloseTray

 2001-01-13: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - tools\install, tools\dailybuild:
                o Added odincrt.dll to debug release (to make wgss50.dll happy).

 2001-01-11: Sander van Leeuwen <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - ReportingBugs.txt:
                o Specify windows & system32 directory in bug reports
                  (description included on how to determine this)

 2001-01-08: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - 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 <sandervl@xs4all.nl>
    - USER32:   o Menu cast bugfix (bitmap handle is 32 bits)
                  (Fixes menu bitmaps in Lotus Notes 5)

