home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / odin410d.zip / ChangeLog-2001 < prev    next >
Text File  |  2002-02-21  |  175KB  |  3,268 lines

  1.  /* $Id: ChangeLog-2001,v 1.12 2002/02/21 23:10:45 sandervl Exp $ */
  2.  
  3.  2001-12-31: Sander van Leeuwen <sandervl@xs4all.nl>
  4.     - GDI32:    o Use critical section in dibsection class instead of vmutex
  5.  
  6.  2001-12-31: knut st. osmundsen <bird@anduin.net>
  7.     - Tools/CmdQd:
  8.                 o Corrected bad statement in the clean2 rule.
  9.  
  10.  2001-12-30: Sander van Leeuwen <sandervl@xs4all.nl>
  11.     - KERNEL32: o Fixed some wrong return values for disk functions (hmdisk)
  12.                 o GetVolumeInformation: use original volume name to
  13.                   determine maximum file name length
  14.     - USER32:   o Enforce WS_EX_WINDOWEDGE style (Wine)
  15.                   (fixes Opera 6 menu)
  16.     - GDI32:    o BitBlt, StretchBlt: sync dib section if selected into
  17.                   destination HDC
  18.                   (fixes Opera 6 background)
  19.  
  20.  2001-12-28: Sander van Leeuwen <sandervl@xs4all.nl>
  21.     - USER32:   o Do not send WM_SETCURSOR when mouse is captured (SDK docs)
  22.  
  23.  2001-12-26: Achim Hasenmueller <achimha@innotek.de>
  24.     - USER32:   o don't use hardcoded font height values for menu fonts. Query
  25.                   graphics driver instead (DevQueryCaps) so that we correctly
  26.                   take font settings into account (small, medium, large)
  27.  
  28.  2001-12-26: Sander van Leeuwen <sandervl@xs4all.nl>
  29.     - USER32:   o Use Wine version of DrawText(Ex)A/W
  30.                   (fixes underscore painting & positioning of text)
  31.                 o (Auto)Check, (Auto)Radio & (Auto)3State buttons send
  32.                   WM_CTLCOLORSTATIC instead of WM_CTLCOLORBTN (verified in NT4)
  33.                   (fixes opening dialog buttons in Opera 6 (choose interface))
  34.                 o RedrawWindow change: call UpdateWindow if window has invalid
  35.                   rectangle and RDW_UPDATENOW flag set
  36.     - GDI32:    o Removed InternalDrawTextExA/W
  37.     - ODINBUG:  o Update by Herwig Bauernfeind (0.5.5)
  38.  
  39.  2001-12-23: Sander van Leeuwen <sandervl@xs4all.nl>
  40.     - WINMM:    o DisableWaveAudio function added to disable wave audio (custom build)
  41.     - GDI32:    o CreateFont call wrong for DEFAULT_GUI_FONT (pointsize)
  42.  
  43.  2001-12-22: Sander van Leeuwen <sandervl@xs4all.nl>
  44.     - KERNEL32: o Print more information when a missing api is called
  45.                   (image that is responsible)
  46.  
  47.  2001-12-20: Sander van Leeuwen <sandervl@xs4all.nl>
  48.     - KERNEL32: o Allow all sections to be accessed when loading an executable/dll
  49.                   with LOAD_LIBRARY_AS_DATAFILE
  50.                   (fixes crashes when accessing resources outside the resource
  51.                    section in Opera 6 binaries)
  52.     - GDI32:    o DIB Section blit: don't check source & destination sizes
  53.                                     with DC size (GpiDrawBits does that for us)
  54.                   (fixes the two bitmaps in the opening window of Opera 6
  55.                    (choice between MDI & SDI interface))
  56.     - USER32:   o GetClassNameW: return size in characters and truncate name
  57.                                  if buffer not large enough
  58.                   (fixes crash in Opera 6 during startup)
  59.  
  60.  2001-12-19: knut st. osmundsen <kosmunds@csc.com>
  61.     - MAKEFILES:o Changed inference rules in /src/mesa/3dfx to support MULTIJOBS.
  62.                 o Fixed some problems with /tools/cmdqd while MULTIJOBS is enabled.
  63.     - TOOLS:    o Created a tiny preload script, PreloadTools.cmd, which preload
  64.                   the tools which will be invoked during a make. (Too bad we can't
  65.                   do this with rexx scripts too...)
  66.  
  67.  2001-12-17: Sander van Leeuwen <sandervl@xs4all.nl>
  68.     - KERNEL32: o GetVolumeInformation changes:
  69.                   - report JFS as NTFS
  70.                   - report UDF & CDFS as UDF & CDFS (no change)
  71.                   - report everthing else as FAT16
  72.                   (some applications make assumptions about maximium file size
  73.                    based on the volume name)
  74.  
  75.  2001-12-16: Sander van Leeuwen <sandervl@xs4all.nl>
  76.     - USER32:   o Fixed memory DC leak in DrawIcon & DrawIconEx
  77.  
  78.  2001-12-15: Sander van Leeuwen <sandervl@xs4all.nl>
  79.     - GDI32:    o Added statistics for font, bitmap, pen, brush & region objects.
  80.  
  81.  2001-12-14: Sander van Leeuwen <sandervl@xs4all.nl>
  82.     - KERNEL32: o CancelIo & GetOverlappedResult added for custom device drivers
  83.                 o Enabled overlapped IO for custom device drivers
  84.  
  85.  2001-12-13: Sander van Leeuwen <sandervl@xs4all.nl>
  86.     - USER32:   o Added function to override name of the PM keyboard hook dll
  87.                   (custombuild)
  88.     - WINTRUST: o Added stub dll
  89.     - KERNEL32/USER32/ODINCRT:
  90.                 o Collect some simple statistics about memory & DC usage
  91.                   (will be extended & enhanced in the future)
  92.  
  93.  2001-12-12: Sander van Leeuwen <sandervl@xs4all.nl>
  94.     - USER32:   o Put back old windows key scancodes
  95.                 o Fix for handling Alt-F4 in default window handler
  96.                 o SendInput fix; send message and clear extra info
  97.                   afterwards
  98.     - COMCTL32: o Comboex, rebar, tooltips, toolbar bugfixes: (Wine)
  99.                   NEVER delete the font object received by WM_SETFONT
  100.  
  101.  2001-12-11: Sander van Leeuwen <sandervl@xs4all.nl>
  102.     - USER32:   o Swallow message if WH_KEYBOARD_LL hook returns TRUE
  103.                 o Fixed windows key scancodes
  104.                 o Do no generate a left control key message when Alt-Gr
  105.                   is pressed (experimental change)
  106.  
  107.  2001-12-11: Patrick Haller <patrick.haller@innotek.de>
  108.     - PMKBDHK:  o Interception of PM Window Hoteys (i. e. Alt-F7)
  109.                   TODO: generate accelerators in Odin
  110.  
  111.  2001-12-10: Sander van Leeuwen <sandervl@xs4all.nl>
  112.     - KERNEL32: o Overlapped IO updates
  113.  
  114.  2001-12-09: Sander van Leeuwen <sandervl@xs4all.nl>
  115.     - KERNEL32: o Overlapped IO fix (poll & half or full duplex support)
  116.     - MAKEFILES:o Delete dummy.c after copying custom library (CUSTOMBUILD=1)
  117.  
  118.  2001-12-08: Sander van Leeuwen <sandervl@xs4all.nl>
  119.     - KERNEL32: o Added read & write functions to custom driver interface
  120.                 o OdinSetVersion added to override windows version reported by
  121.                   Odin (Win98, WinME, NT4, Win2000, WinXP)
  122.                 o NEW DEFAULT WINDOWS VERSION IS WINDOWS 2000 SP2 (!)
  123.                 o New versions available for odin.ini version override
  124.                   [WinVersion]
  125.                   Version=Win98        -> Windows 98
  126.                   Version=WinME        -> Windows ME
  127.                   Version=NT4          -> Windows NT4  SP6
  128.                   Version=Win2000      -> Windows 2000 SP2 (default)
  129.                   Version=WinXP        -> Windows XP
  130.                 o IOCTL_STORAGE_GET_MEDIA_TYPES is identical to
  131.                   IOCTL_DISK_GET_MEDIA_TYPES
  132.                 o Support for Windows 2000 GetVersionEx extension (OSVERSIONINFOEX
  133.                   structure) added
  134.                 o Added symbolic link for Windows 2000 device driver names
  135.                   \\.\Global -> \\.
  136.                 o Clear GENERIC_WRITE flag if application tries to open
  137.                   readonly device (e.g. cdrom). This is not allowed in OS/2.
  138.     - INSTALL:  o Add font mapping for 'MS Shell Dlg 2' to WarpSans
  139.  
  140.  2001-12-07: Sander van Leeuwen <sandervl@xs4all.nl>
  141.     - KERNEL32: o GetFileType for parallel port device returns FILE_TYPE_PIPE
  142.                   (verified in NT4, SP6)
  143.                 o Comm functions not valid for parallel port handles
  144.                 o Overlapped IO updates
  145.                 o Com port now uses new overlapped class for overlapped IO
  146.                 o Call ExitProcess when executable entrypoint returns (LX images)
  147.                 o Be careful when cleaning up threads after ExitProcess has
  148.                   been called
  149.  
  150.  2001-12-06: Sander van Leeuwen <sandervl@xs4all.nl>
  151.     - KERNEL32: o Added FindFirstFileExA/FindFirstFileExW
  152.                 o Overlapped IO updates (still untested)
  153.     - DINPUT:   o Link with guidlib.lib
  154.     - GUIDLIB:  o Include dinput.h for DirectInput GUIDs
  155.  
  156.  2001-12-05: Sander van Leeuwen <sandervl@xs4all.nl>
  157.     - KERNEL32: o Merged WriteFile & WriteFileEx, ReadFile & ReadFileEx
  158.                   handle manager functions
  159.                 o Removed dwType handle manager structure member; added
  160.                   win32 handle to structure
  161.                   (NOTE: All work in progress for new framework for overlapped IO)
  162.                 o ReadFileEx/WriteFileEx: lpOverlapped->Offset & lpOverlapped->OffsetHigh
  163.                   must be 0 if used with named pipes
  164.  
  165.  2001-12-04: Patrick Haller <patrick.haller@innotek.de>
  166.     - KERNEL32: o parallel port support restricted to physical ports
  167.                   (LAN redirections not supported)
  168.  
  169.  2001-12-04: Sander van Leeuwen <sandervl@xs4all.nl>
  170.     - COMCTL32: o Hack added for proper resizing of wizard property sheet in
  171.                   CVP. Not sure if it's always correct or whether it has a
  172.                   bad effect on other apps (none found so far).
  173.     - WININET:  o HttpSendRequestA fix: strlen(NULL) crashes
  174.  
  175.  2001-12-03: Patrick Haller <patrick.haller@innotek.de>
  176.     - KERNEL32: o put in correct ioctl identifiers for parport support
  177.                   in winioctl.h
  178.                 o parallel port support (hardware configuration) enabled
  179.  
  180.  2001-12-03: Sander van Leeuwen <sandervl@xs4all.nl>
  181.     - KERNEL32: o Use DosSleep in Sleep (don't call WGSS)
  182.                 o GetThreadPriority: return priority stored in TEB
  183.                 o Rewrote SetThreadPriority; allow it to change priority
  184.                   classes too. WGSS only changes delta in SetThreadPriority
  185.                   and class in SetPriorityClass (but that one affects the whole
  186.                   process, so it is rarely used by applications)
  187.                   THREAD_PRIORITY_IDLE          -> PRTYC_IDLETIME, 0
  188.                   THREAD_PRIORITY_LOWEST        -> PRTYC_REGULAR, PRTYD_MINIMUM
  189.                   THREAD_PRIORITY_BELOW_NORMAL  -> PRTYC_REGULAR, -15
  190.                   THREAD_PRIORITY_NORMAL        -> PRTYC_REGULAR, 0
  191.                   THREAD_PRIORITY_ABOVE_NORMAL  -> PRTYC_REGULAR, 15
  192.                   THREAD_PRIORITY_HIGHEST       -> PRTYC_REGULAR, PRTYD_MAXIMUM
  193.                   THREAD_PRIORITY_TIME_CRITICAL -> PRTYC_TIMECRITICAL, 0
  194.                 o SetPriorityClass; just return success for now
  195.  
  196.  2001-12-02: Sander van Leeuwen <sandervl@xs4all.nl>
  197.     - USER32:   o Don't send WM_SIZE message to dialog before it receives
  198.                   WM_INITDIALOG
  199.                   (winzip 8.0 and Opera crash when sending this message too soon)
  200.                   (TODO: check in NT if this is really correct)
  201.     - COMCTL32: o Restored old property sheet code as latest Wine version
  202.                   causes too many new problems.
  203.  
  204.  2001-12-01: knut st. osmundsen <kosmunds@csc.com>
  205.     - CRTDLL:   o Include ctype.h from dir.c and string.c. (Noted by Ye][ow.)
  206.  
  207.  2001-12-01: Sander van Leeuwen <sandervl@xs4all.nl>
  208.     - KERNEL32: o Fixed GetThreadTEB macro & GetCurrentThreadId
  209.                   (completely broke debug build among other things)
  210.  
  211.  2000-12-01: Yuri Dario <mc6530@mclink.it>
  212.     - USER32:   o MENU_FindItem: extra check added for loops in menus
  213.  
  214.  2001-11-30: Patrick Haller <patrick.haller@innotek.de>
  215.     - KERNEL32: o heapstring.cpp: improvement on HEAP_malloc, HEAP_free,
  216.                   HEAP_realloc, HEAP_size
  217.                 o acceleration on GetCurrentThreadId()
  218.     - SHELL32:  o use HEAP_xxx functions for frequently called APIs
  219.     - ODINPROF: o Note: SET PROFILEHOOKS=1 before doing NMAKE PROFILE=1
  220.                   This will enable the profiler in ODINCRTP.DLL
  221.                   (use release build ODINPROF.DLL), generates (pid).prof
  222.                   on process exit.
  223.     - *         o fixed out-of-scope TRACE,FIXME,WARN macros
  224.  
  225.  2001-11-30: Sander van Leeuwen <sandervl@xs4all.nl>
  226.     - USER32:   o Changed menu hilite background to the color used by PM
  227.                   (OS/2 look)
  228.                 o DIALOG_IsAccelerator resync (Wine)
  229.     - KERNEL32: o Partly implemented PurgeComm
  230.     - *         o Removed all the TRACE, FIXME & WARN redefinitions
  231.                   (temporary hack for better logging; didn't affect the release
  232.                    build anyway)
  233.                   TODO: we need better logging in Wine code
  234.  
  235.  2001-11-29: Patrick Haller <patrick.haller@innotek.de>
  236.     - KERNEL32: o Split dosdevice.cpp from stubs.cpp
  237.                   (DefineDosDevice, QueryDosDevice)
  238.                 o Fixed CDROM ioctls and disk access
  239.                   (previous fix failed or cause possible regression)
  240.     - OLEAUT32: o olepicture.c: fixed null pointer exception
  241.                   cause: our TRACE, FIXME, etc. debugtools macros all
  242.                   go out of scope of a braceless if-statement before!
  243.                   Therefore, we're getting false (error) messages or
  244.                   even crashes. (to be fixed)
  245.  
  246.  2001-11-29: Sander van Leeuwen <sandervl@xs4all.nl>
  247.     - COMCTL32: o Listview: invalidate entire item for ownerdraw control
  248.                             (don't exclude report margin)
  249.     - KERNEL32: o Fixed disk access (yesterday's changes broke it)
  250.     - SHELL32:  o Removed wrong call to ctordtorInit that caused the disk
  251.                   access problems in the custom build.
  252.  
  253.  2001-11-28: Patrick Haller <patrick.haller@innotek.de>
  254.     - KERNEL32: o fixes in ::CreateFile calls (return codes must be Win32)
  255.                 o fixes in symbolic link management
  256.                 o marked some important TBDs for phys. disk mgmt!
  257.                 o fixed HMCOMM to accept (what a good idea)
  258.                   \\.\COM1, COM1, COM1: but not "\\.\COM1:" (NT4SP6)
  259.                 o added support for AUX->COM1, PRN->LPT1, CON->CONOUT$
  260.                 o added NUL device
  261.  
  262.  2001-11-28: Sander van Leeuwen <sandervl@xs4all.nl>
  263.     - KERNEL32: o WaitCommEvent fixes (must reset overlapped event semaphore &
  264.                   store result of overlapped operation in parameter)
  265.                 o Removed symbolic link for \\.\. Adding this is a very bad idea
  266.                   as CreateFile calls for device driver will be routed to files.
  267.                   Probably causes even more problems.
  268.     - INCLUDE:  o winbase.h: CBR_xxxx definitions wrong
  269.  
  270.  2001-11-27: Patrick Haller <patrick.haller@innotek.de>
  271.     - KERNEL32: o added \\.\ as standard symbolic link to the local namespace
  272.                   This is the clean way for alternative device names,
  273.                   local kludges in the device handlers should be avoided.
  274.                 o fix in name resolver
  275.  
  276.  2001-11-27: Sander van Leeuwen <sandervl@xs4all.nl>
  277.     - WSOCK32:  o Missing FS wrapper macros added
  278.     - KERNEL32: o Accept \\.\COMx as name for COM ports
  279.     - USER32:   o EnumChildWindow bugfix
  280.  
  281.  2001-11-26: Sander van Leeuwen <sandervl@xs4all.nl>
  282.     - KERNEL32: o Implemented CancelIo & GetOverlappedResult for serial comm
  283.                 o Preliminary work on overlapped IO for serial comm
  284.  
  285.  2001-11-24: Sander van Leeuwen <sandervl@xs4all.nl>
  286.     - KERNEL32: o Custom build fix; check for double call for inittermKernel32
  287.                 o More informative message when non-existing api is called.
  288.                   Now displays dll + function name or ordinal.
  289.  
  290.  2001-11-23: Patrick Haller <patrick.haller@innotek.de>
  291.     - KERNEL32: o minor work in parallel port support (ioctls)
  292.                 o "Kernel Object Namespace" -> handlenames.cpp introduced
  293.                   (yet inactive)
  294.  
  295.  2001-11-23: knut st. osmundsen <kosmunds@csc.com>
  296.     - Misc. Makefiles: o Corrected the descriptions (on request from Ye][ow).
  297.  
  298.  2001-11-22: Sander van Leeuwen <sandervl@xs4all.nl>
  299.     - KERNEL32: o Check volume label during IOCTL_DISK_GET_DRIVE_GEOMETRY to
  300.                   see if the media has been changed or removed.
  301.                 o Implemented WriteFile & GetFileType for disk handles
  302.                   (write currently only allowed for drive A)
  303.     - DSOUND:   o Renamed DllGetClassObject & DllCanUnloadNow to avoid name
  304.                   conflicts in the custom build.
  305.  
  306.  2001-11-22: Patrick Haller <patrick.haller@innotek.de>
  307.     - ODINPROF: o initial version
  308.                   PROFILE images using ODINCRTP generate a <pid>.prof file
  309.                   (the optimized release build of ODINPROF should be used)
  310.                   No source code modification required.
  311.                   Problem: mapsym seems to corrupt kernel32.sym
  312.     - KERNEL32: o additions to parallel port support
  313.  
  314.  2001-11-21: knut st. osmundsen <kosmunds@csc.com>
  315.     - src/makefile:
  316.                 o Added guidlib to NOTDLLS.
  317.  
  318.  2001-11-21: Sander van Leeuwen <sandervl@xs4all.nl>
  319.     - COMCTL32: o Tooltips bugfixes (wrong pointer used to free memory)
  320.     - USER32:   o GetMenu: check that window menu is indeed a menu and not an id
  321.                   (fixes failed assertion in ZOC)
  322.                 o Groupbox fix: if text changes; erase top border + old text
  323.  
  324.  2001-11-20: Sander van Leeuwen <sandervl@xs4all.nl>
  325.     - USER32:   o Destroy CD notification window during dll unload
  326.                 o Focus fix for dialog windows
  327.                   Experiments in NT4 show that dialogs that are children don't
  328.                   receive focus. Not sure if this is always true. (couldn't
  329.                   find any info about this in the SDK docs)
  330.  
  331.  2001-11-19: Sander van Leeuwen <sandervl@xs4all.nl>
  332.     - GUIDLIB:  o Library with all GUIDs used by Odin
  333.     - COMDLG32, OLE32, OLEAUT32, SHLWAPI, SHELL32:
  334.                 o Removed guid source files and link with guidlib.lib
  335.  
  336.  2001-11-18: Sander van Leeuwen <sandervl@xs4all.nl>
  337.     - WS2_32:   o Compile fix
  338.     - OLEAUT32: o Don't include guid file in custom build library
  339.  
  340.  2000-11-18: Yuri Dario <mc6530@mclink.it>
  341.     - USER32:   o WM_SETTEXT (unicode) fix
  342.                   (latest changes broke Opera among other things)
  343.  
  344.  2001-11-16: Sander van Leeuwen <sandervl@xs4all.nl>
  345.     - COMCTL32: o LISTVIEW_UpdateScroll update (from old control)
  346.     - USER32:   o Disallow nested calls to SetScrollRange. This is most likely
  347.                   not the right fix, but it works so far without negative side
  348.                   effects.
  349.                   (fixes crash in CVP listview with 4+ items)
  350.     - GDI32:    o Removed line draw speedup. If I have to choose between
  351.                   a performance loss of a few clock cycles and a code size
  352.                   increase of 2k, I prefer the 1st option.
  353.     - WSOCK32:  o ODINWRAP changes break winsock. This code still depended
  354.                   on FS save/restore. Now added a wrapper header for all
  355.                   OS/2 socket functions.
  356.  
  357.  2001-11-16: Patrick Haller <patrick.haller@innotek.de>
  358.     - ODINWRAP: o don't generate any frame procedure for RELEASE build
  359.                   anymore (even no FS: wrapper (meanwhile superfluous))
  360.                   -> significant performance gain for logged micro functions
  361.     - KERNEL32: o heap speedup (30%)
  362.     - GDI32:    o minor line drawing speedup
  363.  
  364.  2001-11-14: Patrick Haller <patrick.haller@innotek.de>
  365.     - KERNEL32: o fixed infinite loop in PE loader for corrupted or
  366.                   misinterpreted PE images (Opera 6)
  367.     - OLEAUT32: o fixed Null pointer exception in VariantTimeToDosDate
  368.  
  369.  2001-11-14: Sander van Leeuwen <sandervl@xs4all.nl>
  370.     - KERNEL32, USER32, COMCTL32, SHELL32, OLE32:
  371.                 o Removed unnecessary string copy operation changes (heap -> stack)
  372.                   Performance improvement is minimal at best and stack
  373.                   corruption is MUCH harder to locate than heap corruption.
  374.  
  375.  2001-11-13: Patrick Haller <patrick.haller@innotek.de>
  376.     - fastdep:  o IPF support.
  377.  
  378.  2001-11-13: Patrick Haller <patrick.haller@innotek.de>
  379.     - KERNEL32: o provided faster alternatives to HEAP_strdupXXX
  380.       ...         which operate on stack only (STACK_strdupXXX)
  381.                   This could slightly reduce heap pressure.
  382.     - USER32:   o avoid unnecessary strcpy/strlen when get/setting window text
  383.  
  384.  2001-11-13: Sander van Leeuwen <sandervl@xs4all.nl>
  385.     - KERNEL32: o Added missing entry in debug log table for hmparport
  386.                   (fixes crash in debug build with selective logging)
  387.     - GDI32:    o CalcBitmapSize bugfix
  388.                 o SetDIBitsToDevice workaround for bug in Matrox driver.
  389.                   When blitting 32 bpp data, the GpiDrawBits call will
  390.                   fail with an insufficient memory error. When that happens,
  391.                   convert data to 24 bpp and try again.
  392.                   (TODO: This can happen in more functions!!)
  393.                 o Fixes for wrong bit masks in several functions (24 & 32 bpp)
  394.                 o Refuse DeleteObject for DEFAULT_GUI_FONT handle
  395.  
  396.  2001-11-12: Patrick Haller <patrick.haller@innotek.de>
  397.     - ODINWRAP: o improved thread call path tracking
  398.                   (now collects i. e. HEAP_malloc->HeapAlloc paths)
  399.  
  400.  2001-11-12: Sander van Leeuwen <sandervl@xs4all.nl>
  401.     - USER32:   o Fix for calculating font size for a dialog box
  402.  
  403.  2001-11-11: knut st. osmundsen <kosmunds@csc.com>
  404.     - KERNEL32: o Only declare OS/2 AFFINITY stuff if it isn't there.
  405.                   (Build breaker. Seems like someone has an old toolkit...)
  406.  
  407.  2001-11-10: Sander van Leeuwen <sandervl@xs4all.nl>
  408.     - KERNEL32: o Implemented Get/SetProcessAffinityMask & SetThreadAffinityMask
  409.  
  410.  2001-11-08: Sander van Leeuwen <sandervl@xs4all.nl>
  411.     - COMCTL32: o Ported latest Wine property sheet control
  412.                   (fixes some, but not all problems in CVP)
  413.  
  414.  2001-11-08: Patrick Haller <patrick.haller@innotek.de>
  415.     - KERNEL32: o first shot at parport support
  416.  
  417.  2001-11-07: Sander van Leeuwen <sandervl@xs4all.nl>
  418.     - USER32:   o EndDialog fix for MFC dialog windows
  419.                 o static control fix: SS_CENTERIMAGE means fill remainder
  420.                   of client area with upper left pixel of bitmap
  421.     - KERNEL32: o Fix for applications that use CreateFile to open
  422.                   a named pipe
  423.  
  424.  2001-11-07: Patrick Haller <patrick.haller@innotek.de>
  425.     - WININET:  o http, internet: WINE sync
  426.  
  427.  2001-11-05: Sander van Leeuwen <sandervl@xs4all.nl>
  428.     - KERNEL32: o Call old DosOpen if DosOpenL not available
  429.  
  430.  2001-10-31: knut st. osmundsen <kosmunds@csc.com>
  431.     - CmdQd:    o Dirty workaround for Ctrl-C on client waiting for output
  432.                   so it won't kill the daemon.
  433.  
  434.  2001-10-30: Sander van Leeuwen <sandervl@xs4all.nl>
  435.     - KERNEL32: o IOCTL_CDROM_READ_TOC bugfix
  436.                 o Handle opening of drive without disk and getting handle
  437.                   when disk is inserted
  438.                 o Use DosOpenL (if available) to open files, or else the
  439.                   large file apis won't work properly.
  440.  
  441.  2001-10-29: Sander van Leeuwen <sandervl@xs4all.nl>
  442.     - KERNEL32: o Always IOCTL_DISK/DSK_GETLOCKSTATUS for IOCTL_STORAGE_CHECK_VERIFY
  443.                   (handle doesn't need to be valid for this ioctl)
  444.     - USER32:   o Send WM_DEVICECHANGE to top-level windows when a CD is
  445.                   inserted or removed (poll CD status every 100ms)
  446.  
  447.  2001-10-29: Achim Hasenmueller <achimha@innotek.de>
  448.     - BUILD:    o strip EAs from binary before executing LXLITE on it to
  449.                   prevent errors in LXLITE if the file is on a LAN Server
  450.                   JFS volume
  451.  
  452.  2001-10-29: knut st. osmundsen <kosmunds@csc.com>
  453.     - NTDLL:    o _ultow and RtlIntegerToUnicodeString.
  454.     - Makefiles:
  455.                 o Remove dummy.c in clean rule.
  456.  
  457.  2001-10-28: Sander van Leeuwen <sandervl@xs4all.nl>
  458.     - COMCTL32: o LISTVIEW_GetItemWidth bugfix: item can never be bigger
  459.                   than the client area
  460.     - USER32:   o Fixes for Set/GetWindowLong for dialogs. (unicode flag not
  461.                   passed to parent class methods)
  462.                 o Added SetDialogHook function for custom build
  463.     - KERNEL32: o Added RegisterCustomDriver
  464.                 o Added SetDefaultLanguage to override default language
  465.  
  466.  2001-10-27: Sander van Leeuwen <sandervl@xs4all.nl>
  467.     - KERNEL32: o IOCTL_SCSI_GET_ADDRESS: fail if wnaspi32 not loaded
  468.     - WINMM:    o Added option to turn off audio by setting a key in the registry
  469.                   HKEY_LOCAL_MACHINE\\System\\CustomBuild
  470.                   DisableAudio = [0|1] (DWORD type)
  471.     - USER32:   o CreateIconIndirect bugfix
  472.  
  473.  2001-10-26: knut st. osmundsen <kosmunds@csc.com>
  474.     - FastDep:  o Corrected crash on bad dependency file.
  475.  
  476.  2001-10-26: Achim Hasenmueller <achimha@innotek.de>
  477.     - WNASPI32: o don't fail DLL loading if ASPI library fails to init
  478.  
  479.  2001-10-26: Sander van Leeuwen <sandervl@xs4all.nl>
  480.     - KERNEL32: o Better implementation of IOCTL_CDROM(DISK/STORAGE)_CHECK_VERIFY
  481.                 o CDROM ioctls: Use signature returned by IOCD_IDENTIFY ioctl
  482.                 o Implemented IOCTL_CDROM_READ_TOC
  483.  
  484.  2001-10-26: Patrick Haller <patrick.haller@innotek.de>
  485.     - USER32:   o fixed ESC keyboard event
  486.                 o fixed passing thru special key events to the frame window
  487.                 o partial fix for shift key processing
  488.                 o fixed right shift processing (and possibly numerous
  489.                   other extended keys)
  490.                 o fixed this &%$&%! Alt-Gr-Key-Emulation
  491.                   remaining issues:
  492.                     AltGr won't toggle GetAsyncKeyState() or GetKeyState()
  493.  
  494.  2001-10-25: Patrick Haller <patrick.haller@innotek.de>
  495.     - USER32:   o fixed scancodes for [Pause] and [PrtScr]
  496.  
  497.  2001-10-25: Sander van Leeuwen <sandervl@xs4all.nl>
  498.     - USER32:   o Fixed sending of WM_ACTIVATEAPP messages. Only send them
  499.                   to top-level windows when application gains or loses focus
  500.                   from/to a window of another process.
  501.                 o Fix for window tracking with thin frame (moving/sizing
  502.                   window left tracks on the screen (fullscreen dragging disabled))
  503.     - KERNEL32: o Never use DosError to disable hard errors! Use SetErrorMode
  504.                   *and* restore old error mode afterwards.
  505.                 o IOCTL_DISK_GET_DRIVE_GEOMETRY change:
  506.                   Applications can use this IOCTL to check if the floppy has
  507.                   been changed. OSLibDosGetDiskGeometry won't fail when that
  508.                   happens so we read one byte from the disk and return
  509.                   ERROR_MEDIA_CHANGED if it fails with ERROR_WRONG_DISK.
  510.     - COMCTL32: o ListView: LVM_SETITEMA: update item even when 'new' text is
  511.                   the same.
  512.                   (CVP depends on this)
  513.  
  514.  2001-10-24: Patrick Haller <patrick.haller@innotek.de>
  515.     - USER32:   o added translation between PM Scancodes and
  516.                   Windows Scancodes
  517.                   Note: Open32 uses always PM Scancodes!
  518.                 o fixed GetKeyNameText as far as possible
  519.                   Despite we'll have to implement a flexible keyboard
  520.                   layout scheme in the future.
  521.  
  522.  2001-10-24: Achim Hasenmueller <achimha@innotek.de>
  523.     - PMKBDHK:  o link statically with C runtime
  524.  
  525.  2001-10-24: Sander van Leeuwen <sandervl@xs4all.nl>
  526.     - USER32:   o SCROLLBAR: Only set focus to scrollbar control if it has
  527.                   the WS_TABSTOP style (bugfix taken from Wine)
  528.                 o IsWindowVisible: check for WS_CHILD style before checking
  529.                   parents
  530.                   (CVP: fixes moving of dialog with invisible owner)
  531.                 o Frame tracking: activate and bring window to top when
  532.                   control key is not pressed (OS/2 look)
  533.                   (fixes activation by clicking on title bar and you can now
  534.                    track frame without activating it)
  535.                 o Double mouse click sent two up messages
  536.                 o Double click on system menu now closes window
  537.                   (SetCapture interferes with double click message generation)
  538.     - WINMM:    o Dynamically load MDM; Windows applications (that don't
  539.                   require sound) will no longer fail when MMPM/2 isn't available.
  540.  
  541.  2001-10-23: Sander van Leeuwen <sandervl@xs4all.nl>
  542.     - COMCTL32: o ListView: WM_KEYDOWN -> if WM_NOTIFY returns TRUE, then
  543.                   don't process key anymore; the app did it for us
  544.                 o ListView: First focus change didn't work
  545.                 o Partial implementation of draglists. Only sends DL_BEGINDRAG
  546.                   DRAGLISTMSGSTRING message which is enough for CVP.
  547.     - USER32:   o Fixed moving of window with RMB
  548.  
  549.  2001-10-23: Patrick Haller <patrick.haller@innotek.de>
  550.     - USER32:   o major improvement on keyboard handling
  551.                   Special AltGr mapping missing yet
  552.                 o partial fix to GetKeyNameText(),
  553.                   two Open32 bugs remaining:
  554.                   (injected scancodes ignored (undoc),
  555.                    extended key bit ignored)
  556.  
  557.  2001-10-22: Patrick Haller <patrick.haller@innotek.de>
  558.     - TESTAPP:  o added keyboard test program for low-level testing
  559.                   of the keyboard routines
  560.                   (Queue, WH_KEYBOARD, WH_KEYBOARD_LL)
  561.     - PMKBDHK:  o added initial version
  562.     - USER32:   o enabled PMKBDHK
  563.                 o fixed minor issue in WH_KEYBOARD_LL
  564.     - SHELL32:  o minor speedup in PIDL handling
  565.     - KERNEL32: o removed experimental heap handle cache stats
  566.  
  567.  2001-10-21: Sander van Leeuwen <sandervl@xs4all.nl>
  568.     - WSOCK32:  o Fix for sending FD_CLOSE notification when connection
  569.                   is closed at the remote end.
  570.  
  571.  2001-10-20: Achim Hasenmueller <achimha@innotek.de>
  572.     - WNASPI32: o do not fail in init routine in case ASPIROUT.SYS
  573.                   is not present. Just return errors from all calls
  574.                   if this is the case.
  575.                   TODO: refine calls to not return any ASPI devices!
  576.  
  577.  2001-10-19: Achim Hasenmueller <achimha@innotek.de>
  578.     - WSOCK32:  o implemented error bit handling in Winsock 2.0
  579.                   event semaphore notification for async select
  580.  
  581.  2001-10-19: Patrick Haller <patrick.haller@innotek.de>
  582.     - COMCTL32: o updated listview and status to wine level
  583.     - COMDLG32: o fix crash in FileDlg95 (used freed memory object)
  584.  
  585.  2001-10-18: knut stange osmundsen <kosmunds@csc.com>
  586.     - odin32.*.vac3*.mk:
  587.                 o Added /noignorecase to ILIBFLAGS. Object libraries
  588.                   is now using case sensitive names. This removes some
  589.                   warnings during custombuild and fixes a duplicate symbol
  590.                   problem in kKrnlLibR3.
  591.  
  592.  2001-10-18: Achim Hasenmueller <achimha@innotek.de>
  593.     - USER32:   o temporarily backed out a change from earlier today
  594.                   in the color pointer conversion code that causes
  595.                   severe regressions. Look for @@@AH in oslibres.cpp
  596.  
  597.  2001-10-18: Sander van Leeuwen <sandervl@xs4all.nl>
  598.     - DDRAW:    o Check if DirectDraw object is associated with Clipper.
  599.     - SHELL32:  o Compile fix for release build
  600.     - USER32:   o Fix for pointer conversion
  601.                 o Notify visible region callback when WM_SHOW arrives.
  602.                   For some reason we don't receive a WM_VRNENABLED message
  603.                   when a window is shown for the first time.
  604.     - KERNEL32: o Check for NULL handler in RtlRaiseException/RtlUnwind
  605.     - GDI32:    o Removed wrong warnings about GpiQueryBitmapBits
  606.  
  607.  2001-10-17: knut stange osmundsen <kosmunds@csc.com>
  608.     - common:   o Corrected bug in kFile buffering which caused impdef to
  609.                   crash in some cases.
  610.  
  611.  2001-10-17: Patrick Haller <patrick.haller@innotek.de>
  612.     - SHELL32:  o WINE resync 20011017
  613.     - KERNEL32: o minor heap optimization
  614.     - USER32:   o minor handle mgmt optimizations
  615.     - CRTDLL32: o RegisterLxDll() in initterm was missing (WINPROJ)
  616.  
  617.  2001-10-17: Sander van Leeuwen <sandervl@xs4all.nl>
  618.     - DDRAW:    o Fixes for DDBLT_COLORFILL
  619.     - WS2_32:   o Added stubs for WSAEnumProtocolsA/W
  620.     - USER32:   o SetFocus fix; don't always activate window because that
  621.                   changes the z-order which interferes (among other things)
  622.                   with GetNextDlgTabItem & GetNextDlgGroupItem
  623.                 o Removed some GetNextDlgGroupItem changes which are no longer
  624.                   necessary due to the SetFocus fix
  625.  
  626.  2001-10-16: Sander van Leeuwen <sandervl@xs4all.nl>
  627.     - KERNEL32, CUSTOMBUILD, USER32:
  628.                 o Custom build fixes + changes
  629.                 o GlobalMemoryStatus: limit amount of virtual memory to 2GB - 1
  630.                   Some applications interpret this value as a signed long.
  631.     - USER32:   o Fix for pointer conversion
  632.  
  633.  2001-10-16: Patrick Haller <patrick.haller@innotek.de>
  634.     - WSOCK32:  o enabled receive and send timeout socket options
  635.                   (SO_SNDTIMEO, SO_RCVTIMEO)
  636.  
  637.  2001-10-15: Sander van Leeuwen <sandervl@xs4all.nl>
  638.     - KERNEL32, USER32, WNASPI32, DDRAW:
  639.                 o Custom build updates
  640.  
  641.  2001-10-14: Sander van Leeuwen <sandervl@xs4all.nl>
  642.     - USER32:   o Convert color cursor to monochrome if it only uses two colors.
  643.                   This overcomes a silly limitation in some less advanced
  644.                   display drivers. (SDD still has no support for color cursors!)
  645.                   (fixes mouse cursor flickering & screen distortion when
  646.                    accessing the frame buffer directly)
  647.                   NOTE: This is a partial solution only. Real color cursors
  648.                         still use GRADD's rather poor software emulation.
  649.  
  650.  2001-10-13: Sander van Leeuwen <sandervl@xs4all.nl>
  651.     - WSOCK32:  o Overwrite IP header length in sendto for raw sockets
  652.                   with IP_HDRINCL option set.
  653.                   (fixes errors for apps that use big endian format for
  654.                    the length word)
  655.                 o WSAEnumNetworkEvents now reports (some) events properly
  656.                 o Call WSACleanup during dll unload in case application
  657.                   forgot to do that.
  658.  
  659.  2000-10-12: Yuri Dario <mc6530@mclink.it>
  660.     - USER32:   o GetNextDlgGroupItem fix for infinite loop in Opera
  661.  
  662.  2001-10-12: Achim Hasenmueller <achimha@innotek.de>
  663.     - KERNEL32: o use bounce buffers if end of buffer crosses
  664.                   tiled region barrier, not start of buffer
  665.                   (yeah, being nit-picking here, OS/2 will actually
  666.                   never give you a memory object that crosses the boundary...)
  667.  
  668.  2001-10-11: Patrick Haller <patrick.haller@innotek.de>
  669.     - include:  o debugtools.h: memory corruption in debugstr_()
  670.     - KERNEL32: o (cheap) heap lookup acceleration
  671.                 o better profiler calibration :)
  672.                 o bounce buffers for DeviceIoControl() with
  673.                   high memory buffers
  674.     - SHELL32:  o ~10% speed improvement on shell folder operations ;-)
  675.  
  676.  2001-10-11: Sander van Leeuwen <sandervl@xs4all.nl>
  677.     - USER32:   o SetScrollRange: return error if min > max or out of range
  678.                                   (ERROR_INVALID_SCROLLBAR_RANGE)
  679.                   (behaviour of NT4, SP6)
  680.                 o Scrollbar control window not disabled properly when using
  681.                   EnableWindow instead of EnableScrollbar. (handle WM_ENABLE
  682.                   and call EnableScrollbar)
  683.                 o Forward WM_SYSCOMMAND to Parent (for scrollbar control window
  684.                   with size grip style)
  685.     - WSOCK32:  o Implemented IP_HDRINCL, IP_TTL & IP_TOS for set/getsockopt
  686.     - WS2_32:   o Translate IPPROTO_IP options in getsockopt before calling
  687.                   wsock32
  688.  
  689.  2001-10-11: Patrick Haller <patrick.haller@innotek.de>
  690.     - KERNEL32: o added ODIN performance profiler
  691.                   (perf_0.log for PROFILE builds)
  692.     - SHELL32:  o ~30% speed improvement on shell folder operations
  693.  
  694.  2001-10-10: Sander van Leeuwen <sandervl@xs4all.nl>
  695.     - USER32:   o Do not blindly add ODIN_FUNCTION macros to functions that
  696.                   get called very often. (like IsWindow, GetParent & IsWindowVisible)
  697.                   This tends to make logfiles very big...
  698.     - WSOCK32:  o Added IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_MULTICAST_LOOP &
  699.                   IP_MULTICAST_TTL to setsockopt
  700.                 o Add support for WS2_32 IPPROTO_IP options
  701.     - WS2_32:   o Translate IPPROTO_IP options in setsockopt before calling
  702.                   wsock32
  703.     - DDRAW:    o Commented out DiveAcquire/DeaquireFrameBuffer for now
  704.                   (surflock/unlock)
  705.  
  706.  2001-10-10: Patrick Haller <patrick.haller@innotek.de>
  707.     - KERNEL32: o added IOCTL_CDROM_EJECT_MEDIA
  708.                         IOCTL_CDROM_LOAD_MEDIA
  709.                         IOCTL_CDROM_PAUSE_AUDIO
  710.                         IOCTL_CDROM_STOP_AUDIO
  711.                         IOCTL_CDROM_RESUME_AUDIO
  712.                         IOCTL_CDROM_PLAY_AUDIO_MSF
  713.                 o added IOCTL_STORAGE_EJECT_MEDIA
  714.                         IOCTL_STORAGE_LOAD_MEDIA
  715.                         IOCTL_DISK_EJECT_MEDIA
  716.                         IOCTL_DISK_CHECK_VERIFY
  717.     - IPHLPAPI: o added fake version of GetAdaptersInfo()
  718.     - ODINWRAP: o standard C compiler compatibility
  719.     - MAKE:     o fixes to the profile make include
  720.     - SHELL32:  o PIDL: instrumentation for performance tuning
  721.  
  722.  2001-10-09: Sander van Leeuwen <sandervl@xs4all.nl>
  723.     - KERNEL32: o Image header page must be readonly
  724.                 o Temporarily disabled high memory usage for heap
  725.  
  726.  2001-10-08: Patrick Haller <patrick.haller@innotek.de>
  727.     - USER32:   o enabled WH_KEYBOARD_LL hook, seems to work
  728.                 o added further messages to wndmsg.cpp
  729.     - KERNEL32: o added further error codes to error2WinError
  730.  
  731.  2001-10-08: Sander van Leeuwen <sandervl@xs4all.nl>
  732.     - USER32:   o WM_WINDOWPOSCHANGED: activation fix; must clear FF_NOACTIVATESWP
  733.                   if mp2 & AWP_ACTIVATE
  734.                   (fixes activation of some inactive windows; used to be
  735.                    activated but not brought to the top)
  736.  
  737.  2001-10-07: Sander van Leeuwen <sandervl@xs4all.nl>
  738.     - DDRAW:    o Don't use Dive for blitting to/from 8 bpp surfaces
  739.     - USER32:   o Eliminated flickering during frame sizing due to
  740.                   unnecessary drawing
  741.                 o Fixed handling of WM_SIZING/WM_MOVING (changing rectangles)
  742.                 o WM_TRACKFRAME: call Frame_SysCommandSizeMove with SC_MOVE+HTCAPTION
  743.  
  744.  2001-10-06: Sander van Leeuwen <sandervl@xs4all.nl>
  745.     - QUARTZ/OLEAUT32:
  746.                 o Wine 20011004 resync
  747.     - KERNEL32: o Reduce overhead for heap allocation
  748.                 o Always allocate heap memory from high memory (if available)
  749.                 o Allocate extra heap memory in 64kb units
  750.                   MUST use 64kb here or else we are at risk of running out
  751.                   of virtual memory space. (when allocating 4kb we actually
  752.                   get 4kb + 60k uncommited)
  753.                   (fixes out of resources error while loading big movies
  754.                    in The Playa)
  755.  
  756.  2001-10-05: Sander van Leeuwen <sandervl@xs4all.nl>
  757.     - DDRAW:    o Added stretching support for blitting to the screen
  758.                   (the Playa can now play movies in fullscreen mode)
  759.  
  760.  2001-10-03: Sander van Leeuwen <sandervl@xs4all.nl>
  761.     - WINMM:    o Allocate handle for new timer and verify handle
  762.                   is valid before using it.
  763.                   (prevents crashes when app attempts to delete timer twice
  764.                    (DivX 4))
  765.     - DDRAW:    o Fixed memory leaks in SurfBlt4 (rectangles)
  766.                 o Take clipping into account in SurfBlt4. Windowed DirectDraw
  767.                   blitting now seems to work well.
  768.                   (only tried DivX 4; needs more testing)
  769.     - USER32:   o Rewrote sizing & moving of windows (frame tracking)
  770.                   (ported Wine version + fixed some bugs)
  771.                   Some applications (e.g. RealPlayer) resize themselves
  772.                   when receiving WM_SIZING msgs. Not possible to send those
  773.                   with PM's frame tracking.
  774.                   TODO: fix flickering of size border (dynamic drag off)
  775.                   TODO: WM_SIZING handling not 100% correct yet
  776.                   TODO: Must display size/move cursor when starting action
  777.                         from system menu
  778.                 o GetDCEx change; always call WinGetClipPS (!CS_OWNDC)
  779.     - OLEAUT32: o Wine update
  780.  
  781.  2001-10-02: Sander van Leeuwen <sandervl@xs4all.nl>
  782.     - REGSVR32: o Must use LoadLibrary, not CoLoadLibrary
  783.                   (Some dlls (divx codec) call CoFreeUnusedLibraries which
  784.                    unloads the same dll if we use CoLoadLibrary (-> crash)
  785.                    NT's regsvr32 doesn't use CoLoadLibrary either)
  786.     - USER32:   o OSLibWinGetMsg bugfix
  787.  
  788.  2001-10-01: Sander van Leeuwen <sandervl@xs4all.nl>
  789.     - USER32:   o Lastest Wine revision of GetNextDlgGroupItem ported + modified
  790.  
  791.  2001-09-30: Sander van Leeuwen <sandervl@xs4all.nl>
  792.     - INCLUDE:  o Hook constants added to winconst.h
  793.                   (adding them to winuser.h only completely breaks Odin)
  794.     - DDRAW:    o Implemented IDirectDrawClipper class for windowed DirectDraw
  795.                   (only works if app uses clipping info for manual blitting;
  796.                    IDirectSurface blitting methods need to be updated to
  797.                    take clipping into account)
  798.     - USER32:   o Added export to register visible region change callback
  799.  
  800.  2001-09-30: knut st. osmundsen <kosmunds@csc.com>
  801.     - Makefiles:
  802.                 o Added a DOMAKES util which should be used when invoking
  803.                   other makefiles. (see /src/kernel32/makefile)
  804.                 o Silenced most of the command $(DO*) commands so the commandline
  805.                   doesn't show.
  806.                 o Added some colors on the output from the $(DO*) scripts
  807.                   to make it easier to separate directory and makefile switching
  808.                   from all the other output.
  809.                   Turn this off by using the env.var. BUILD_NOCOLOR.
  810.                 o Did some cleanup of the main Makefile and added some missing rules.
  811.                 o Made separate .depend file for the include files in the /include dir.
  812.                   This will speedup the 'dep' rule somewhat.
  813.                 o Autostart CmdQd with 7 workers if not started and MULTIJOBS are defined.
  814.                 o Profile builds uses ./bin/Profile.* subdir for output, not ./bin/Debug.*.
  815.                 o PROFILE mode (PROFILE=1) overrides DEBUG and RELEASE modes.
  816.                 o NMAKE version of the Watcom support since WMAKE sucks big time :-(
  817.                   These are the the odin32.*.watn.mk files. This caused introduction
  818.                   of the MKFILE macro for the compiler specific filename part.
  819.                   (Set CCENV=WAT and use NMAKE just like with VAC3.)
  820.                 o Enabled Watcom (NMAKE version) support in mostly all makefiles.
  821.                   (I.e. places we do compiler specific tweaks.)
  822.     - Fastdep:  o Corrected processing of C/C++ #include "someheader.h" to
  823.                   start the search in the source code directory.
  824.                 o Corrected handling of deleted files.
  825.                 o Increased some read and write buffers.
  826.     - Win32k:   o Changed PSZ to char *, since H2INC doesn't understand PSZ.
  827.     - Custombulid:
  828.                 o Can now build object libraries for custombuild without separate
  829.                   makefiles. Define CUSTOMBUILD=1 (=1 is important!) to build an
  830.                   DLL.
  831.                 o To build all needed object libraries and the custom dll,
  832.                   go to /src and 'nmake custombuild'. There is currently no
  833.                   rule in the main makefile for this, so remember to make the
  834.                   libraries in /lib first.
  835.                 o Removed all the obsolete *lib.mak files.
  836.     - Watcom:   o ccollection.h: Include odin.h to get min/max.
  837.                 o odin.h:       C INLINE/inline support.
  838.                 o odinwrap.h:   Watcom has problems with the GetCurrentThreadId
  839.                                 redeclaration. (DWORD != unsigned long int)
  840.                                 Exclude prototype if watcomc. (workaround)
  841.                 o windef.h:     __max and __min is defined in stdlib.h, undef before
  842.                                 redefining them.
  843.                 o unicode.h:    static inline workaround (just like VAC).
  844.                 o src/makefile: Temporarily ignore return codes from subdirs.
  845.                 o kernel32/console2.h:
  846.                                 Don't include calling convetion for thread
  847.                                 function. The default is the correct one usually.
  848.                 o kernel32/conbuffervio.cpp:
  849.                                 Alloca is defines in malloc.h for watcom. VAC defines
  850.                                 this in both malloc and stdlib.h.
  851.                 o kernel32/console.cpp:
  852.                                 _beginthread is defined in process.h not stdlib.h as
  853.                                 for VAC.
  854.  
  855.  2001-09-29: Sander van Leeuwen <sandervl@xs4all.nl>
  856.     - WGSS50:   o WGSS update
  857.  
  858.  2001-09-28: Patrick Haller <patrick.haller@innotek.de>
  859.     - USER32:   o added experimental support for WH_KEYBOARD_LL hook
  860.                 o implemented keybd_event, mouse_event (-> SendInput )
  861.  
  862.  2001-09-28: Sander van Leeuwen <sandervl@xs4all.nl>
  863.     - PE2LX:    o Added options to remove fixups and to reroute all
  864.                   imports to a custom odin dll
  865.  
  866.  2001-09-27: Patrick Haller <patrick.haller@innotek.de>
  867.     - USER32:   o partial implementation of SendInput()
  868.     - KERNEL32: o improved error code mapping (error2WinError)
  869.                 o keep HandleManager from reusing last handle
  870.                   too quickly (CreateFile after CloseHandle might
  871.                   return the same handle again, which is correct but doesn't
  872.                   put the spotlight on buggy apps)
  873.  
  874.  2001-09-26: Sander van Leeuwen <sandervl@xs4all.nl>
  875.     - WININET/ICMP/WS2_32/WINSPOOL/CTL3D32:
  876.                 o Makefiles added to build library with obj files
  877.     - WININET:  o Split up initterm
  878.     - CUSTOMBUILD:
  879.                 o Ordinals definitions moved into ordinals.h
  880.  
  881.  2001-09-26: knut st. osmundsen <kosmunds@csc.com>
  882.     - Win32k:   o Create development branch 'splittup' which in the
  883.                   splittup of win32k is being implemented.
  884.                 o BTW. I think I've found the jfs/fat32 + win32k problem.
  885.                   I left some dirty readonly heap pages behind...
  886.                   That is corrected in the splittup.
  887.     - Some Makefiles:
  888.                 o Corrected the file header to state correct dllname.
  889.                   Ye][ow, which is doing some documentation stuff on the Odin32,
  890.                   pointed this out this for me.
  891.  
  892.  2001-09-26: Patrick Haller <patrick.haller@innotek.de>
  893.     - ODINWRAP: o fixed FNEPILOGUE position
  894.       (MISC)    o added support for calldepth tracing
  895.     - OLE32:    o fixed wrong prototype in regsvr32.cpp
  896.  
  897.  2001-09-25: Sander van Leeuwen <sandervl@xs4all.nl>
  898.     - COMCTL32: o Wine updates (MRU functions)
  899.     - SHELL32:  o Wine updates (SHAddToRecentDocs)
  900.     - DDRAW/ADVAPI32: Added makefiles for building library with obj files
  901.  
  902.  2001-09-24: Sander van Leeuwen <sandervl@xs4all.nl>
  903.     - DDRAW:    o Set screen resolution + bpp of primary surface to those
  904.                   of the PM desktop. (used to default to 640x480x8bpp)
  905.  
  906.  2001-09-24: Patrick Haller <patrick.haller@innotek.de>
  907.     - USER32:   o added ODINWRAP debug tracing support to WINKEYBOARD.CPP
  908.  
  909.  2001-09-23: Sander van Leeuwen <sandervl@xs4all.nl>
  910.     - USER32:   o MDI bugfix: set active child to 0 when last one is destroyed
  911.                   (fixes crash when closing mdi window in odinapp)
  912.     - GDI32:    o DIB Section sync bugfix; GpiQueryBitmapBits fails
  913.                   when cbImage is too small (compressed images only)
  914.                   This used to work. Maybe related to new SDD version.
  915.                   (CoolEdit 2000 hits breakpoint in debug build)
  916.  
  917.  2001-09-23: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  918.     - SHELL32:  o Small update for shfileop.c
  919.  
  920.  2001-09-21: Sander van Leeuwen <sandervl@xs4all.nl>
  921.     - USER32:   o Focus changes
  922.     - CTL3D32:  o Added stub dll
  923.  
  924.  2001-09-20: Sander van Leeuwen <sandervl@xs4all.nl>
  925.     - USER32:   o Activate window when it returns 0 for WM_MOUSEACTIVATE
  926.                   0 is not documented, but experiments in NT4 show that
  927.                   the window will get activated when it returns this.
  928.                   (fixes activation of FreeCell when clicking on the window)
  929.                 o WM_NEXTMENU bugfix (from Wine)
  930.                   (fixes crash during menu navigation in MDI windows)
  931.     - SHELL32:  o Shell Folder bugfix from Wine added
  932.  
  933.  2000-09-19: Oliver Braun <Oliver.Braun@hamburg.de>
  934.     - USER32:   o PeekMessageW bugfix
  935.  
  936.  2001-09-19: Sander van Leeuwen <sandervl@xs4all.nl>
  937.     - USER32:   o Changed GetLastActivePopup (still not complete)
  938.                 o Prevent loop in DIALOG_IsAccelerator
  939.                 o GetMenuItemInfoW bugfixes
  940.                 o Ported the Wine MDI control
  941.  
  942.  2001-09-17: Patrick Haller <patrick.haller@innotek.de>
  943.     - WS2_32:   o added stub for WSAIoctl() (Parsec)
  944.     - WINMM:    o lowered minimum OS/2 timer resolution to 2ms
  945.                   (for the new CLOCKSCALE feature)
  946.  
  947.  2001-09-17: Sander van Leeuwen <sandervl@xs4all.nl>
  948.     - USER32:   o Must return AWP_ACTIVATE/AWP_DEACTIVATE flags in
  949.                   WM_ADJUSTWINDOWPOS (SWP_ACTIVATE/SWP_DEACTIVATE).
  950.                   This ensures activation is handled properly.
  951.                   No longer necessary to manually send WM_ACTIVATE messages.
  952.                 o Only forward SC_CLOSE syscommand to top level window
  953.                   if generated by keyboard
  954.  
  955.  2001-09-15: Sander van Leeuwen <sandervl@xs4all.nl>
  956.     - USER32:   o Some focus/activation changes
  957.                 o Translation fix for WM_SYSCOMMAND; SC_CLOSE now always
  958.                   directed to top-level window. (OS/2 look only)
  959.     - ODINBUG:  o Update by Herwig Bauernfeind
  960.     - OLEAUT32/OLE32/QUARTZ/COMDLG32:
  961.                 o Wine updates
  962.     - COMCTL32: o Wine updates for toolbar, pager & rebar controls
  963.                 o Treeview bugfix when deleting the selected item
  964.                   (fixes crash in UltraEdit when opening files)
  965.     - *         o Put back original sources. Extremely annoying to
  966.                   add tags and change tabs in files.
  967.  
  968.  2001-09-11: knut st. osmundsen <kosmunds@csc.com>
  969.     - kKrnlLib: o FYI: Win32k revamp/split-up. Not yet completed.
  970.  
  971.  2001-09-10: Sander van Leeuwen <sandervl@xs4all.nl>
  972.     - KERNEL32: o VirtualQuery fix; DosQueryMem doesn't always return region
  973.                   size in pages, so round up size to next page boundary
  974.                   (fixes loop during Netscape 4.7 startup)
  975.     - GDI32:    o DPtoLP fix; signed/unsigned comparison failed
  976.                   (fixes huge fonts in Netscape 4.7)
  977.                 o StretchDIBits fix; clear ulCompression for BI_BITFIELDS
  978.                   or else WGSS blit will fail
  979.                   (fixes black pictures in Netscape 4.7)
  980.  
  981.  2001-09-09: Sander van Leeuwen <sandervl@xs4all.nl>
  982.     - TAPI32:   o Some updates
  983.     - OLEAUT32: o Wine typelib updates
  984.  
  985.  2001-09-07: Patrick Haller <patrick.haller@innotek.de>
  986.     - include:  o removed ./include/wine/server.h (Wine Server)
  987.                   because of collisiton with server.h in OS/2 toolkit
  988.     - WNETAP32: o NetServerEnum implemented
  989.                 o split into numerous smaller source modules
  990.  
  991.  2001-09-05: knut st. osmundsen <kosmunds@csc.com>
  992.     - src\*:    o Added/fixed CVS $Id tag in source files.
  993.                   Sorry, if this caused long checkout and compilation. :-)
  994.     - tools\database:
  995.                 o Fixed a couple of bugs, just in case we get it online some day :-).
  996.                 o More or less implemented @design notes.
  997.     - tools\dailybuild:
  998.                 o Added automatic uploading of current odin32 api database.
  999.                   (_test_ it at http://odin.netlabs.org/Odin32DBTest/Odin32DB.phtml)
  1000.  
  1001.  2001-09-04: knut st. osmundsen <kosmunds@csc.com>
  1002.     - FastDep:  o Synced FastDep with OS2Tools.
  1003.  
  1004.  2001-09-01: knut st. osmundsen <kosmunds@csc.com>
  1005.     - Tools\CmdQd:
  1006.                 o Do DosExecPgm directly on programs when possible.
  1007.                   (It's not possible if multiple commands is specified in a job.)
  1008.                 o Path search result caching.
  1009.                 o Uses CMD.EXE nomatter what is in the COMSPEC.
  1010.                 o Corrected memory overwrite in output read loop.
  1011.  
  1012.  2001-08-31: Patrick Haller <patrick.haller@innotek.de>
  1013.     - KERNEL32: o Fix in MoveFileExW, MoveFileExA prevents stack corruption
  1014.                   in MS ACMSETUP
  1015.     - USER32:   o Fix in UnregisterClass for never reaching the destructor
  1016.                   of Win32class. ACMSETUP now working.
  1017.                 o graceful error handling if PostMessage fails due to
  1018.                   shared heap shortage
  1019.  
  1020.  2001-08-30: Patrick Haller <patrick.haller@innotek.de>
  1021.     - SHLWAPI:  o Improvements on ordinal functions
  1022.  
  1023.  2001-08-29: Patrick Haller <patrick.haller@innotek.de>
  1024.     - USER32:   o BUTTON.CPP: don't draw invisible buttons
  1025.                   (fixes MS ACMSETUP w/ OWNERDRAW pushbuttons)
  1026.  
  1027.  2001-08-28: Sander van Leeuwen <sandervl@xs4all.nl>
  1028.     - GDI32:    o CreateDIBitmap: reverse bitmap for negative height
  1029.                   (fixes buttons in Abiword)
  1030.  
  1031.  2001-08-27: Sander van Leeuwen <sandervl@xs4all.nl>
  1032.     - USER32:   o FillRect fix: brush 0 means current selected brush
  1033.                   (verified in NT4)
  1034.                   (fixes background in registration dialog of CVP)
  1035.  
  1036.  2001-08-26: Sander van Leeuwen <sandervl@xs4all.nl>
  1037.     - USER32:   o Convert icon & cursor to OS/2 format in CreateIconIndirect,
  1038.                   CreateCursor & CreateIcon
  1039.                 o Convert RGB 555 to 565 for 16 bits icons and cursors
  1040.                   (win to os/2 icon/cursor conversion)
  1041.     - SHELL32:  o SHBrowseForFolderA fix: don't send dummy BFFM_SELCHANGED
  1042.                   during WM_INITDIALOG
  1043.                   (breaks folder dialog in CVP)
  1044.  
  1045.  2001-08-25: Sander van Leeuwen <sandervl@xs4all.nl>
  1046.     - KERNEL32: o Set last error to ERROR_ALREADY_EXISTS when CreateMutex,
  1047.                   CreateEvent or CreateSemaphore is called with existing
  1048.                   semaphore name.
  1049.     - CUSTOMBUILD:
  1050.                 o Added riched32
  1051.     - RICHED32: o Changes for custom build
  1052.  
  1053.  2000-08-25: Yuri Dario <mc6530@mclink.it>
  1054.     - USER32:   o Button: don't send BN_PAINT/HILITE/UNHILITE/DISABLE
  1055.                   (not done in Wine either)
  1056.  
  1057.  2001-08-23: Sander van Leeuwen <sandervl@xs4all.nl>
  1058.     - OLEAUT32: o Wine updates
  1059.     - QUARTZ:   o Wine updates
  1060.  
  1061.  2001-08-19: Sander van Leeuwen <sandervl@xs4all.nl>
  1062.     - QUARTZ:   o Added stub dll from Wine
  1063.  
  1064.  2001-08-19: knut st. osmundsen <kosmunds@csc.com>
  1065.     - Win32k.lib:
  1066.                 o OPEN_FLAGS_NOINHERIT when opening win32k. This is hopefully
  1067.                   a temporary fix on the missing env. mem. lock cleaning for
  1068.                   parent/child.
  1069.  
  1070.  2001-08-16: Patrick Haller <patrick.haller@innotek.de>
  1071.     - GDI32:    o Optimization for dibsect::findSection()
  1072.                   (helps DeleteObject)
  1073.  
  1074.  2001-08-16: Sander van Leeuwen <sandervl@xs4all.nl>
  1075.     - INSTALL:  o Add date when odininst was last run to odin.ini
  1076.                   [ODINSYSTEM]
  1077.                   INSTALLDATE=Thu Aug 16 23:28:01 2001
  1078.  
  1079.  2001-08-16: knut st. osmundsen <kosmunds@csc.com>
  1080.     - Tools\CmdQd:
  1081.                 o Added command queue daemon which is used in the multiple job
  1082.                   build feature.
  1083.     - Makefiles:
  1084.                 o Implemented multiple job build feature. This works like
  1085.                   GNU Make --jobs[=N].
  1086.                   <ul>
  1087.                   <li> Start the daemon tools\bin\cmdqd init <N> where N is the
  1088.                        then number of workers. Need tools have to be made first.
  1089.                   <li> Define the env.var. MULTIJOBS to enable this feature.
  1090.                   <li> Do make as usual.
  1091.                   <li> tools\bin\cmdqd kill to kill the daemon.
  1092.                   </ul>
  1093.                 o This feature will speedup make of single modules alot on SMP
  1094.                   machines.
  1095.  
  1096.  2000-08-14: Carsten Tenbrink <Carsten@C-Tenbrink.DE>
  1097.     - CAPI2032: o Fix for applications that register with CAPI twice
  1098.  
  1099.  2001-08-10: Sander van Leeuwen <sandervl@xs4all.nl>
  1100.     - INSTALL:  o Add COM registry keys for OLE32 & OLEAUT32
  1101.                 o Add OdinBug report generator made by Herwig Bauernfeind
  1102.     - USER32:   o Work dir change for object creation
  1103.  
  1104.  2001-08-09: Sander van Leeuwen <sandervl@xs4all.nl>
  1105.     - USER32:   o Rewrote PostThreadMessage
  1106.                   (fixes RealPlayer 8 install)
  1107.                 o Use WinQueueFromID to query message queue handle of first thread
  1108.                 o Convert 32x32 icon to 40x40 by centering it instead of scaling
  1109.     - KERNEL32: o Use WinQueueFromID to query message queue handle of new thread
  1110.     - SHELL32:  o Fill in complete resource dir for icon conversion
  1111.     - OLEAUT32: o Updated olepicture + typelib with latest Wine code
  1112.  
  1113.  2001-08-08: knut st. osmundsen <kosmunds@csc.com>
  1114.     - Win32k:   o Ignore ERROR_DRIVE_LOCKED (chkdsk/format) error in
  1115.                   Pe2Lx::openPath2.
  1116.  
  1117.  2001-08-08: Sander van Leeuwen <sandervl@xs4all.nl>
  1118.     - SHELL32:  o Fix for shell link with single icon instead of icon group
  1119.                 o Shell icon save fix (again fopen without binary mode)
  1120.     - USER32:   o Icon conversion moved here + fixed
  1121.     - KERNEL32: o Removed icon conversion
  1122.     - INSTALL:  o Add program object for Registry Editor to Odin folder
  1123.  
  1124.  2001-08-07: Sander van Leeuwen <sandervl@xs4all.nl>
  1125.     - INSTALL:  o Create Odin folder with program objects for readme, changelog
  1126.                   and license files.
  1127.     - USER32:   o Added function to create program objects + folders
  1128.     - SHELL32:  o Create program objects during installation of windows
  1129.                   applications
  1130.                   (Desktop objects created on the OS/2 desktop; program objects
  1131.                    created in app folder inside Odin folder)
  1132.     - KERNEL32: o Put back source files to convert icons and icon groups
  1133.                   (not working right yet)
  1134.  
  1135.  2001-08-06: Sander van Leeuwen <sandervl@xs4all.nl>
  1136.     - KERNEL32: o Check for ERROR_ACCESS_DENIED in CreateProcess
  1137.                   (fixes Notes + installers)
  1138.                 o Memory map fixes (GetCurrentProcess returns handles
  1139.                   that are not unique)
  1140.                 o Init fix for logfile names of multiple processes
  1141.                 o Support different ordinal base for custom build
  1142.     - CUSTOMBUILD:
  1143.                 o Add SHLWAPI exports + changes for ordinal exports
  1144.  
  1145.  2001-08-06: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  1146.     - COMCTL32: o Datetime fixes
  1147.  
  1148.  2001-08-04: knut st. osmundsen <kosmunds@csc.com>
  1149.     - Makefiles:
  1150.                 o Depend on libraries. (Thanks goes to Yuri for this!)
  1151.  
  1152.  2001-08-04: Sander van Leeuwen <sandervl@xs4all.nl>
  1153.     - CUSTOMBUILD:
  1154.                 o Add registration of gdi32 & advapi32
  1155.                 o Use toupperW in kernel32 instead of toupper (C runtime lib)
  1156.                 o Removed NTDLL dependency
  1157.     - CRTDLL:   o Use toupperW in kernel32 instead of toupper (C runtime lib)
  1158.     - TESTDRV:  o Added sample of device specific driver dll
  1159.  
  1160.  2001-08-03: Sander van Leeuwen <sandervl@xs4all.nl>
  1161.     - KERNEL32: o Temporarily disabled new name lookup (resources) until
  1162.                   the real problem is located (wrc).
  1163.                   (fixes preference page in Opera)
  1164.  
  1165.  2001-08-02: Sander van Leeuwen <sandervl@xs4all.nl>
  1166.     - GDI32:    o Set codepage of HDC returned by CreateDCA
  1167.     - COMDLG32: o Set codepage of HDC returned by PrintDlgA
  1168.                   (fixes codepage problems while printing in Opera)
  1169.  
  1170.  2001-07-31: knut st. osmundsen <kosmunds@csc.com>
  1171.     - win32k:   o Merged in a patch from Rafal which as a final attempt to find
  1172.                   a symbol file will look thru the pmdfvers.lst file.
  1173.  
  1174.  2001-07-31: Sander van Leeuwen <sandervl@xs4all.nl>
  1175.     - USER32:   o PostThreadMessage & DDE callback change for new wgss
  1176.  
  1177.  2001-07-29: knut st. osmundsen <kosmunds@csc.com>
  1178.     - Custombuild, Makefiles:
  1179.                 o Made the custombuild simpler by reusing the common makefiles.
  1180.                   Any initterm.obj is replaced by an empty dummy object and the
  1181.                   make is invoked with CUSTOMBUILD=1. makefile in /src have the
  1182.                   common targets all prefixed with custombuild_.
  1183.                 o Merged odin32.post.emx.mk into odin32.post.vac3.mk.
  1184.  
  1185.  2001-07-30: Sander van Leeuwen <sandervl@xs4all.nl>
  1186.     - WINMM:    o Rewrote timeGetSystemTime & timeGetTime
  1187.     - KERNEL32: o Fix for names of dlls in custom build
  1188.     - USER32/GDI32/KERNEL32:
  1189.                 o Custom build changes
  1190.     - WGSS50:   o WGSS update
  1191.  
  1192.  2001-07-29: knut st. osmundsen <kosmunds@csc.com>
  1193.     - Makefiles:
  1194.                 o Force fastdep to scan all files if -a is specified to nmake.
  1195.     - Win32k/test:
  1196.                 o Wrote stupid test app to profile child process execution
  1197.                   on different OSes.
  1198.                   Current results are found in source (PrfTstProcess.c).
  1199.  
  1200.  2001-07-29: Sander van Leeuwen <sandervl@xs4all.nl>
  1201.     - COMCTL32/COMDLG32/GDI32/KERNEL32/MSVFW32/USER32/SHELL32/WSOCK32/WINMM
  1202.       RPCRT4:
  1203.                 o Updates for custom build (different resource table names)
  1204.     - KERNEL32: o Added exports to change the root keys of the registry
  1205.                   and to change the name of dlls to be loaded next
  1206.     - CUSTOMBUILD:
  1207.                 o Updates
  1208.  
  1209.  2001-07-28: Sander van Leeuwen <sandervl@xs4all.nl>
  1210.     - USER32:   o Set/GetWindowWord changes (must handle GWW_ID, GWW_HINSTANCE
  1211.                   and GWW_HWNDPARENT
  1212.                 o Ported ArrangeIconicWindows from Wine (not complete yet)
  1213.                 o Rewrote Get/SetDoubleClickTime & SwapMouseButton
  1214.                 o Don't call O32_GetLastActivePopup
  1215.                   (TODO: rewrite it)
  1216.     - KERNEL32: o Rewrote FatalAppExitA/W, FatalExit, Beep, IsBadHugeReadPtr,
  1217.                   IsBadHugeWritePtr
  1218.                 o Removed O32_HeapCreate/Destroy calls; return rtl heap handle
  1219.                 o No longer use Open32's GetProcAddress or GetModuleFileName
  1220.     - USER32/KERNEL32:
  1221.                 o Moved WaitForInputIdle & AttachThreadInput from user32 to
  1222.                   kernel32
  1223.     - TOOLS\INSTALL:
  1224.                 o Create temp directory in windows dir
  1225.  
  1226.  2001-07-22: Sander van Leeuwen <sandervl@xs4all.nl>
  1227.     - TOOLS\INSTALL:
  1228.                 o Added some quartz.dll keys
  1229.     - COMCTL32: o Status window bugfix; check part number boundary
  1230.                   (fixes crash in AudioGalaxy)
  1231.     - USER32:   o IsWindowVisible fix; check WS_CHILD flag before calling GetParent
  1232.                   (fixes invisible characters while typing in edit control
  1233.                    of AudioGalaxy)
  1234.  
  1235.  2001-07-21: Sander van Leeuwen <sandervl@xs4all.nl>
  1236.     - DINPUT, DPLAYX, ICMP, IMAGEHLP, IMM32, LZ32,
  1237.       MSVFW32, OLEPRO32, RICHED32, URLMON, VERSION, WININET
  1238.                 o Added Wine license
  1239.  
  1240.     - AVIFIL32, SHELL32, COMCTL32, COMDLG32, MSACM32, NTDLL, OLE32, OLAUT32,
  1241.       SHDOCVW, SETUPAPI, SHLWAPI, OLECLI32, OLEDLG, OLESVR32, RPCRT4
  1242.                 o Replaced Wine license with updated version
  1243.     - COMCTL32: o Resync with Wine (20010720); comboex, comctl32undoc, rebar,
  1244.                   imagelist, toolbar, pager
  1245.     - MSVFW32:  o Resync with Wine (20010720); all
  1246.     - AVIFIL32: o Resync with Wine (20010720); all
  1247.     - GDI32:    o Fixed brush leak in InternalTextOutA
  1248.                   (fixes Macromedia Flash 5 error messages)
  1249.  
  1250.  2001-07-20: Sander van Leeuwen <sandervl@xs4all.nl>
  1251.     - KERNEL32: o Moved wsnprintf to user32
  1252.     - USER32:   o Removed FatalAppExitA/W (already in kernel32)
  1253.     - SHLWAPI:  o Removed WINE_StringFromCLSID & StringFromGUID2 (not used)
  1254.                 o Removed several string function that were not used or exported
  1255.     - NTDLL:    o Replaced 64 bits math assembly functions (disassembled Wine C code
  1256.                   compiled with VAC 3.6.5)
  1257.     - ODINCRT:  o Export 64 bits math rtl functions
  1258.                 o Added 64 bits math rtl functions for VAC 3.0 (assembly;
  1259.                   borrowed from VAC 3.6.5)
  1260.                   NOTE: __divi64 might cause problems (in theory) since
  1261.                         it uses the FPU and doesn't save the FPU state
  1262.     - OLE32/WINMM/KERNEL32/USER32/GDI32/COMCTL32/COMDLG32/SHLWAPI/SHELL32/
  1263.       RPCRT4/WSOCK32/VERSION:
  1264.                 o Rewrote initterm + debug logging to allow us to build
  1265.                   a single dll containing the code of many Odin dlls
  1266.     - CUSTOMBUILD:
  1267.                 o Example of creating a custom dll with the Odin32 environment
  1268.                   that can be used for a ported win32 app. (not done yet)
  1269.  
  1270.  2001-07-19: Sander van Leeuwen <sandervl@xs4all.nl>
  1271.     - DOC:      o Added license for WGSS50
  1272.     - TOOLS\INSTALL:
  1273.                 o Include new license in WarpIN install script + package
  1274.     - TOOLS\DAILYBUILD:
  1275.                 o Add WGSS50.lic to daily zipfiles
  1276.     - COMDLG32: o Use printer dialog function in WGSS50
  1277.     - WGSS50:   o Added new WGSS dll that fixes several printing problems
  1278.     - KERNEL32: o lstrncmpiA/W bugfix; broke resource lookup in Acrobat
  1279.                   Distiller (did not exactly work the way Wine code expected it)
  1280.  
  1281.  2001-07-19: Achim Hasenmueller <achimha@innotek.de>
  1282.     - LICENSE:  o added WGSS50.LIC which contains the official license
  1283.                   of the WGSS50.DLL module that is included with all
  1284.                   Odin builds. This is a license contract between
  1285.                   InnoTek Systemberatung GmbH (http://www.innotek.de)
  1286.                   and the individual Odin user. The library is provided
  1287.                   free of charge. The main requirement is that every user
  1288.                   need to own a valid OS/2 license (this also includes
  1289.                   eComStation of course).
  1290.                   Every distribution of Odin will also contain this
  1291.                   license file and the WarpIn archives will show the
  1292.                   license during installation and require acceptance.
  1293.                   For any questions about the license, please contact
  1294.                   me via email. Note that the Odin license specifically
  1295.                   allows redistribution of Odin with custom applications
  1296.                   and as soon as the WGSS50 license is included, this also
  1297.                   applies to WGSS50.DLL.
  1298.  
  1299.                   The reason we include WGSS50 (a subset of Open32 used
  1300.                   by IBM for Netscape Communicator 4.61 for OS/2) is that
  1301.                   it contains numerous improvements over Open32 and it
  1302.                   allows us more easily to replace Open32/WGSS50 APIs
  1303.                   by custom functions.
  1304.  
  1305.  2001-07-17: Sander van Leeuwen <sandervl@xs4all.nl>
  1306.     - KERNEL32: o HeapCreate now creates a separate heap (_ucreate) instead
  1307.                   of sharing the same heap as Odin.
  1308.                   (lowers the chance of fatal crashes on heap corruption;
  1309.                    hangs in exitlist)
  1310.                 o Implemented HeapValidate
  1311.                 o GlobalReAlloc bugfix; must check if pointer has a handle
  1312.                   associated with it.
  1313.                   (RealDraw install calls GlobalReAlloc with pointer returned
  1314.                    by GlobalLock(handle))
  1315.  
  1316.  2001-07-16: Sander van Leeuwen <sandervl@xs4all.nl>
  1317.     - KERNEL32: o RegEnumKeyExW fix (lpszClass can be NULL)
  1318.                 o Faster resource lookup functions (Wine)
  1319.     - USER32:   o Allocate more memory for icon bitmap before calling
  1320.                   GpiCreateBitmap. This function seems to touch more bytes
  1321.                   than necessary (??).
  1322.     - GDI32:    o AddFontResourceA: ignore if called with filename of PE
  1323.                   executable (return 1; gets rid of error message in Photoshop 6)
  1324.  
  1325.  2001-07-15: Sander van Leeuwen <sandervl@xs4all.nl>
  1326.     - COMDLG32: o Ported Wine printer dialog code (inactive due to missing
  1327.                   functions in winspool)
  1328.     - USER32:   o Translate WM_VSCROLL & WM_HSCROLL
  1329.                 o Do not use imports not available in Warp 3's PMWINX
  1330.                   (WaitForInputIdle & GetAsyncKeyState)
  1331.                 o There is no close button in Warp 3 (OS/2 look & feel)
  1332.     - KERNEL32: o Do not call WaitForInputIdle in WinExec on Warp 3 systems.
  1333.  
  1334.  2001-07-14: Sander van Leeuwen <sandervl@xs4all.nl>
  1335.     - PELDR:    o Fix for parsing cmd line consisting of directory with spaces
  1336.     - USER32:   o Get menu font from os2.ini (OS/2 look & feel)
  1337.                 o Full window drag now works for Odin windows
  1338.     - GDI32:    o Implemented StartDocW
  1339.  
  1340.  2001-07-13: Sander van Leeuwen <sandervl@xs4all.nl>
  1341.     - COMDLG32: o Fix for windows 3.1 style file dialog
  1342.     - COMCTL32: o Bad listview pointer checks cause crashes in details
  1343.                   view of file dialogs
  1344.                   (TODO: Details view is still not right)
  1345.     - KERNEL32: o Check for NULL pointer in lstrlenA/W
  1346.                   (fixes crash during AutoCAD 14 install)
  1347.     - USER32:   o Removed very old check for negative x or y coordinates during
  1348.                   window creation.
  1349.                   (file open dialog in InstallShield doesn't show weird edit control
  1350.                    anymore and the MS Word 97 main window looks better now)
  1351.                 o RegisterClassA/W: check icon first before copying it
  1352.                   (gets rid of some annoying warnings in the logfile)
  1353.     - GDI32:    o Change BITMAPINFO height if negative
  1354.                   (fixes failing StretchDIBits calls with Matrox display driver)
  1355.  
  1356.  2001-07-12: Sander van Leeuwen <sandervl@xs4all.nl>
  1357.     - KERNEL32: o Atom fixes
  1358.     - OLEAUT32: o Added RegisterActiveObject, RevokeActiveObject &
  1359.                   GetActiveObject from Wine.
  1360.  
  1361.  2001-07-10: Sander van Leeuwen <sandervl@xs4all.nl>
  1362.     - COMDLG32: o Don't clear filename when selecting of switching
  1363.                   directory is file open/save dialog.
  1364.  
  1365.  2001-07-10: knut st. osmundsen <kosmunds@csc.com>
  1366.     - WIN32K:   o Made DosKillProcessEx framework.
  1367.                 o Tried to fix missing unlocks of environment block.
  1368.     - KERNEL32: o Tried to fix missing unlocks of environment block.
  1369.                 o Fixed module not found problem when a Pe2Lx is dynamically
  1370.                   loaded several times.
  1371.                 o Defined env.var. ODIN32.FAIL_IF_UNREGISTEREDLX to make
  1372.                   LoadLibraryEx fail on unregistered LX dlls. This will fix
  1373.                   the most annoying int 3's when starting Opera on debug Odin.
  1374.                   (Two int 3 per netscape/2 plugin checked.)
  1375.  
  1376.  2001-07-09: knut st. osmundsen <kosmunds@csc.com>:
  1377.     - CRTDLL:   o When renaming dlls we still use the original importlibrary
  1378.                   and .def-file names. ORGTARGET exist for that purpose.
  1379.     - NTDLL:    o Link with crtdll.lib.
  1380.     - VERSION:  o Link with crtdll.lib.
  1381.     - WIN32K:   o Updated LieList with CrtDll -> CrtDll32 renaming.
  1382.  
  1383.  2001-07-09: Sander van Leeuwen <sandervl@xs4all.nl>
  1384.     - KERNEL32: o Directly import registry functions from REGISTRY.DLL
  1385.     - GDI32:    o Never use object handle 0
  1386.                   (fixes bad icons in dialogs)
  1387.     - USER32:   o Same edit fix as applied yesterday, but this time for
  1388.                   single line edit control painting.
  1389.                   (Opera url editbox now displays selected text properly)
  1390.  
  1391.  2001-07-08: Achim Hasenmueller <achimha@innotek.de>
  1392.     - WSOCK32:  o error message to human readable text translation
  1393.                   for WSASetLastError (debug version)
  1394.                 o implemented IPPROTO_IP support for setsockopt
  1395.                   (not fully done)
  1396.                 o reset semaphore in WSAEnumNetworkEvents
  1397.     - USER32:   o deleted user32\old. It is still in the CVS attic
  1398.                   so in case you need it, you can get it from CVS
  1399.  
  1400.  2001-07-08: Sander van Leeuwen <sandervl@xs4all.nl>
  1401.     - USER32:   o Some icon fixes
  1402.                 o Changed scrollbar behaviour in OS/2 mode; scrollbar doesn't
  1403.                   jump back to last click position when moving the mouse
  1404.                   outside the scroll window during scrolling.
  1405.                 o Changed menu behaviour in OS/2 mode; no mouse tracking
  1406.                   when right or left mouse button not pressed.
  1407.                 o Clipboard (Get/SetClipboardData: must translated open32
  1408.                   to kernel32 global memory handles (due to Global memory
  1409.                   api rewrite)
  1410.                 o Key translation for arrow keys and insert/del, home/end, page up/down
  1411.                   added (WM_CHAR message translation)
  1412.                 o Edit control bugfix for drawing selected text
  1413.     - KERNEL32: o More pointer checks added to GlobalLock/Unlock
  1414.                 o Add default rename entry for crtdll
  1415.                 o Fixed FS corruption in atom functions (wrapper for LookupAtom)
  1416.     - CRTDLL:   o Renamed to crtdll32 to avoid problems with some Lotus
  1417.                   apps that come with their own crtdll
  1418.     - NTDLL:    o Link with crtdll32.lib
  1419.     - VERSION:  o Link with crtdll32.lib
  1420.     - SHLWAPI:  o Link with crtdll32.lib
  1421.     - PELDR:    o Fix for file not found error
  1422.  
  1423.  2001-07-08: knut st. osmundsen <kosmunds@csc.com>
  1424.     - KERNEL32: o Added call in initterm to tell win32k where the Odin32
  1425.                   environment block is. (Its in Open32, and I don't think
  1426.                   it is reallocated.)
  1427.                 o Added early initiation of Win32k loaded EXE. This corrected
  1428.                   problems with GetModuleHandleA returing -1 to MSVCRT.
  1429.     - WIN32K:   o Fixed environment block problem. The environment variables is
  1430.                   not updated in the original env.block. So, win32k needs to
  1431.                   be told where to find the Odin32 environment block to correctly
  1432.                   find dlls using the PATH.
  1433.                 o Corrected crosspage fixup bug.
  1434.                 o Set no internal fixups flag in LX header for most executables
  1435.                   in an attempt to convice OS/2 to load them where they wanna be
  1436.                   loaded (usually 0x00400000).
  1437.                 o Can now tell difference between the debug kernels.
  1438.  
  1439.  2001-07-07: Sander van Leeuwen <sandervl@xs4all.nl>
  1440.     - KERNEL32: o Rewrote atom functions (no longer relies on Open32)
  1441.                 o Fixed GetAtomNameW
  1442.     - GDI32:    o Don't use Open32 IsBad* memory functions directly
  1443.     - COMDLG32: o PrintDlg fix: must translated open32 to kernel32 global
  1444.                   memory handles (due to Global memory api rewrite)
  1445.  
  1446.  2001-07-07: Achim Hasenmueller <achimha@innotek.de>
  1447.     - WS2_32:   o import WSAEventSelect from WSOCK32 (although a
  1448.                   Winsock 2.0 API, it makes more sense to be implemented
  1449.                   in the Winsock 1.1 stack)
  1450.                 o import WSAEnumNetworkEvents from WSOCK32 (same reason)
  1451.     - WSOCK32:  o enhanced WSAAsyncSelect processing to allow both
  1452.                   window handle and event semaphore notification
  1453.                 o implemented WSAEventSelect
  1454.                 o implemented WSAEnumNetworkEvents (not correct)
  1455.  
  1456.  2001-07-07: knut st. osmundsen <kosmunds@csc.com>
  1457.     - URLMON:   o Stubbed HlinkSimpleNavigateToString and RegisterBindStatusCallback
  1458.                   to fix SYS2048 during RealPlayer install.
  1459.     - WIN32K:   o Fixed the DBExpert bug in the longdllname code.
  1460.                   BTW. Thanks to Randell at Sundial Systems and Alex Newman
  1461.                   for reporting this and begin very helpful tracking it down.
  1462.                 o The longdllname feature now differs from the OS/2 loader on
  1463.                   one points: <br>
  1464.                   It is able to find (DosQueryModuleHandle) for dlls using
  1465.                   internal names which includes the .DLL extention. <br>
  1466.                   The longdllname feature don't currently support names with
  1467.                   extention .DLL like extentions with base name lengths from
  1468.                   4-7 chars. I will fix this some day.<br>
  1469.  
  1470.  2001-07-06: Sander van Leeuwen <sandervl@xs4all.nl>
  1471.     - KERNEL32: o HeapAlloc must return pointers aligned at 8 byte boundary
  1472.                 o GlobalAlloc must return pointers aligned at 8 byte boundary
  1473.                   (SDK docs + verified in NT4, SP6)
  1474.                 o Better checks in GlobalFree for invalid handles/pointers
  1475.                   (InvestmentView seems to call it with a GDI handle; why??)
  1476.                 o LocalReAlloc bugfix
  1477.     - USER32:   o Must return 16 bits icon & cursor handles
  1478.                   (fixes crash in Acrobat Reader 4)
  1479.     - GDI32:    o GetDIBits must only return color information when lpvBits
  1480.                   is not NULL.
  1481.                   (fixes Opera crash (heap corruption) with new heap code)
  1482.     - PELDR:    o Report error when file not found.
  1483.  
  1484.  2001-07-05: Sander van Leeuwen <sandervl@xs4all.nl>
  1485.     - USER32:   o WM_WINDOWPOSCHANGED dispatch bugfix (introduced yesterday)
  1486.                 o WinHelpA fixes (use shared memory for sending information
  1487.                   to winhlp32)
  1488.     - KERNEL32: o Added GlobalFix and GlobalUnfix
  1489.                 o Local memory functions now use Global memory functions
  1490.                 o Ported Wine Global memory functions (we no longer depend
  1491.                   on Open32 for these)
  1492.  
  1493.  2001-07-04: Sander van Leeuwen <sandervl@xs4all.nl>
  1494.     - USER32:   o Partial implementation of ToAsciiEx (just calls ToAscii)
  1495.                 o VkKeyScanExA/W: call VkKeyScanA/W
  1496.                 o MapVirtualKeyExA/W: call MapVirtualKeyA/W
  1497.                 o SetParent bugfix; even though the win32 coordinates might
  1498.                   not change, the PM coordinates can. We must make sure the
  1499.                   child stays at the same position (y) relative to the
  1500.                   (new) parent.
  1501.                   (Cool Edit Pro LE play buttons now at the right position)
  1502.                 o Send WM_SETICON to frame window with converted win32 icon
  1503.                   (application icon now visible in task list)
  1504.                 o Quick fix for window creation:
  1505.                   Before a window has processed WM_NCCREATE:
  1506.                   - GetTopWindow can't return that window handle
  1507.                   - GetWindow(parent, GW_CHILD) can't return that window handle
  1508.                   - IsChild works
  1509.                   TODO: Does this affect more functions?? (other GetWindow ops)
  1510.                   (verified in NT4, SP6)
  1511.                   TODO: Must add window to parent's child list after WM_NCCREATE
  1512.                         and rewrite GetWindow & GetTopWindow
  1513.                   (fix for crash in MP3 Explorer)
  1514.  
  1515.     - GDI32:    o Workaround for applications that depend on 16 bits
  1516.                   GDI object handles.
  1517.                   (TODO: must create our own 16 bits handles)
  1518.                   (fixes crash in Cool Edit Pro LE)
  1519.  
  1520.  2001-07-03: knut st. osmundsen <kosmunds@csc.com>
  1521.     - KERNEL32: o Improoved the Unhandled exception message by
  1522.                   trying to provide modulename and some kind of obj/offset.
  1523.     - FastDep:  o (synced with OS2Tools) Make better use of data in evt.
  1524.                    existing .depend file so that only changed files are processed.
  1525.  
  1526.  2001-07-03: Sander van Leeuwen <sandervl@xs4all.nl>
  1527.     - KERNEL32: o Executable load fix
  1528.                   (fixes crash during RealPlayer 8 install)
  1529.                 o Allow loading of OS/2 dlls for Odin32 apps (like Opera)
  1530.     - USER32:   o ToAscii & GetKeyboardState fixes
  1531.                   (for Putty keyboard input)
  1532.  
  1533.  2001-06-27: knut st. osmundsen <kosmunds@csc.com>
  1534.     - fastdep:  o Fixed a coupla bugs; RC files parsing and .
  1535.                 o Support for filenames with spaces.
  1536.  
  1537.  2001-06-27: Sander van Leeuwen <sandervl@xs4all.nl>
  1538.     - KERNEL32: o CreateProcess fixes for finding executables
  1539.                 o Don't load debug information
  1540.                 o Minor fix for PROCESSOR_IDENTIFIER environment variable
  1541.                   (model & stepping were reversed)
  1542.                 o Make sure stack is not aligned at 8 byte boundary before
  1543.                   calling executable entrypoint. Some applications rely on
  1544.                   this NT 'feature' and will suffer a performance penalty
  1545.                   otherwise.
  1546.                   (e.g. a certain Fortran compiler has startup code
  1547.                    that pushes an uneven number of dwords on the stack
  1548.                    before calling the Fortran code; FPU instructions
  1549.                    don't like to access memory at misaligned addresses)
  1550.  
  1551.  2001-06-25: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  1552.     - include\odin.h:
  1553.                 o Updated the EMX configuration so we can build WRC.exe
  1554.                   using this definition. This also includes the check and
  1555.                   calling convetions defined in windef.h.
  1556.                   Just note that gcc don't decorate the stdcall function
  1557.                   names like the other compilers.
  1558.                 o Made the other compilers ignore __attribute__ so they
  1559.                   can compile WRC.exe as well.
  1560.                 o Defined INLINE, inline and __inline__ so they all make
  1561.                   functions inline. (Someone should check this for Watcom C mode.)
  1562.  
  1563.     - include\win\wine\unicode.h:
  1564.                 o Added extern "C" so the unicode libraries are compilable as C code.
  1565.                   (kernel32\unicode was forced to compile as C++)
  1566.                 o Removed inline workaround for C compilers. (Odin stuff)
  1567.                 o Wrapped away static for those function which was declared as
  1568.                   both static and inline. (the compiler was so noisy)
  1569.  
  1570.     - kernel32\unicode, kernel32:
  1571.                 o Don't force it to C++.
  1572.                 o Demangled the one export from unicode, get_char_typeW.
  1573.                 o Curiosity: Made a minor correction to be able to compile
  1574.                              unicode.lib with EMX.
  1575.  
  1576.     - OpenGL:   o mesa\macros.h has been changed to not #define INLINE if
  1577.                   allready defined.
  1578.                   Hence inlining is now enabled!
  1579.                   Concider this an experiment as we might run into VAC optimizer bugs...
  1580.                   People are encouraged to play games ;-)
  1581.  
  1582.     - WRC:      o Use semicolon when reading include paths.
  1583.                   (This was what ALL I was supposed to fix today..)
  1584.                 o Made it compile with VAC and EMX using standard Odin32 makefiles.
  1585.                   flex and bison is not needed normally. But when changes which
  1586.                   requires running of these are made, define HAVE_FLEX
  1587.                   and HAVE_BISON in your environment.
  1588.                 o WRC is now removed and made as a 'needed_tool' together
  1589.                   with fastdep, impdef and the other stuff in the tools subdir.
  1590.                   NB. Be careful not to accidentally resurrects the /tools/bin/wrc.exe
  1591.                       archive! (May be we should rename the archive file later?)
  1592.  
  1593.     - include\odin32.*.emx.mk:
  1594.                 o Made it working for WRC.exe. (release and debug, not profiling)
  1595.                   Generats OMF. Linking using link386.
  1596.  
  1597.     - include\odin32.tools.*.mk:
  1598.                 o Disabled historic current directory inference rules and replaced
  1599.                   (some of them) with rules which puts object in OBJDIR.
  1600.                 o Added precompiler inference rules. These are generate a *.pre-c
  1601.                   or *.pre-cpp file in the current directory containing the output
  1602.                   from the precompiler. (not implemented for watcom yet)
  1603.                   This is very useful in when you wanna check a declaration...
  1604.  
  1605.  2001-06-25: Sander van Leeuwen <sandervl@xs4all.nl>
  1606.     - USER32:   o Minor WM_TIMER translation fix (weird check removed)
  1607.  
  1608.  2001-06-24: Sander van Leeuwen <sandervl@xs4all.nl>
  1609.     - KERNEL32: o Rewrote CopyFile & MoveFile (just call DosCopy/Move)
  1610.                 o Rewrote CreateDirectory & RemoveDirectory
  1611.                   (call DosCreateDir & DosDeleteDir)
  1612.                 o Fix for HeapRealloc; recent HeapSize fix broke it
  1613.                   (listboxes empty)
  1614.  
  1615.  2001-06-24: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  1616.     - src/makefile:
  1617.                 o Added empty subdir oslib to the NOTTOBEMADE list.
  1618.                   (Please don't forget this when you create empty directories.
  1619.                    All subdirs excluding the one mentioned in the lists in
  1620.                    makefile is made. So don't add a new directory without
  1621.                    either a makefile in it or updating /src/makefile.)
  1622.  
  1623.  2001-06-23: Sander van Leeuwen <sandervl@xs4all.nl>
  1624.     - KERNEL32: o HeapSize must return -1 for invalid pointer
  1625.                 o Semaphore updates (finished; not activated yet)
  1626.                 o Implemented IOCTL_CDROM_GET_VOLUME & IOCTL_CDROM_SET_VOLUME
  1627.  
  1628.  2001-06-23: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  1629.     - KERNEL32: o Added Odin32 Spesific API for getting Odin build number.
  1630.                   (Requested by Yuri.)
  1631.  
  1632.  2001-06-23: Achim Hasenmueller <achimha@innotek.de>
  1633.     - USER32:   o added OS/2 INI file access library (oslibprf)
  1634.                 o changed SystemParametersInfoA to no longer use Open32
  1635.                 o added more logging to GetMonitorInfoA/W
  1636.  
  1637.  2001-06-22: Markus Montkowski <mmontkowski@gmx.de>
  1638.     - TWAIN_32: o Updated initterm.cpp to use OS/2 and not Win32 APIs when loading
  1639.                   the OS/2 twain DLL. needed because of kernel32 change 2001-06-12
  1640.  
  1641.  2001-06-22: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  1642.     - COMCTL32: o Check for invalid lpItem in LISTVIEW_GetItemA
  1643.  
  1644.  2001-06-22: Sander van Leeuwen <sandervl@xs4all.nl>
  1645.     - USER32:   o Don't fill background of system icon if no system icon
  1646.                   is present (could be seen in os/2 look mode)
  1647.                 o Reserved one window ulong (QWL_USER) for Odin apps (like Opera)
  1648.     - KERNEL32: o Semaphore updates (still not activated)
  1649.  
  1650.  2001-06-21: Sander van Leeuwen <sandervl@xs4all.nl>
  1651.     - KERNEL32: o Semaphore updates (still not activated)
  1652.  
  1653.  2001-06-21: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  1654.     - DDRAW:    o io_init1, io_init2 and io_exit1 forgot to save/restore EBX.
  1655.                   (Broke some apps when XF86Sup.sys is installed)
  1656.  
  1657.  2001-06-20: Sander van Leeuwen <sandervl@xs4all.nl>
  1658.     - include\win\winioctl.h:
  1659.                 o Added CDROM ioctls
  1660.     - KERNEL32: o Dummy CDROM ioctl support
  1661.  
  1662.  2001-06-19: Sander van Leeuwen <sandervl@xs4all.nl>
  1663.     - KERNEL32: o Started with event, mutex & semaphore rewrite
  1664.                   (code not activated)
  1665.  
  1666.  2001-06-18: Sander van Leeuwen <sandervl@xs4all.nl>
  1667.     - USER32:   o Added export entry for GetScrollBarInfo
  1668.                 o Set ordinals for some exports
  1669.                 o Correct size of SBS_SIZEBOX and SBS_SIZEGRIP scrollbars
  1670.                   during creation. (if too high or wide)
  1671.                   (CPOV bottom scrollbar now appears)
  1672.     - COMCTL32: o Wrong check in 6/17 comctl32 change
  1673.  
  1674.  2001-06-17: Sander van Leeuwen <sandervl@xs4all.nl>
  1675.     - KERNEL32: o Implemented IOCTL_SCSI_PASS_THROUGH_DIRECT storage ioctl
  1676.     - USER32:   o Fix for scrollbars with SBS_SIZEBOX or SBS_SIZEGRIP style
  1677.                   (use size specified in CreateWindow only if SBS_SIZEBOXTOPLEFTALIGN
  1678.                    nor SBS_SIZEBOXBOTTOMRIGHTALIGN style flags set)
  1679.                   (CPOV window now has the right size)
  1680.                 o Allow WS_VISIBLE changes in SetWindowLong (GWL_STYLE)
  1681.                   (CPOV controls in bottom left corner now visible)
  1682.  
  1683.  2001-06-17: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  1684.     - COMCTL32: o Check for invalid lpItem in LISTVIEW_GetItemA
  1685.                   (fixes crash in SpeedCommander 6)
  1686.                 o Datetime control update with latest Wine code
  1687.  
  1688.  2001-06-16: Sander van Leeuwen <sandervl@xs4all.nl>
  1689.     - DDRAW:    o Save & Restore FS when calling io_init2
  1690.                 o Partly implemented DrawEnumDisplayModes4
  1691.     - WINMM:    o Resume failed (during waveOutWrite) after underrun
  1692.                   (fixes audio error message in Atari Emulator)
  1693.     - KERNEL32: o Implemented IOCTL_DISK_GET_DRIVE_GEOMETRY & IOCTL_DISK_GET_MEDIA_TYPES
  1694.                 o Allow direct sector reading from disk + changing read position
  1695.                   with SetFilePointer
  1696.                 o 6/14 kernel32 changes broke dynamic loading of LX dlls; getHMOD
  1697.                   returned the wrong module handle
  1698.  
  1699.  2001-06-15: Sander van Leeuwen <sandervl@xs4all.nl>
  1700.     - USER32:   o Removed yesterday's getControl dialog change.
  1701.                   (causes errors for certain installshield installers)
  1702.                 o Add frame controls when app changes style flags (os/2 appearance)
  1703.                   (fixes missing titlebar when switching between maximized &
  1704.                    restored state for MDI windows in Opera)
  1705.     - KERNEL32: o PDB.exit_code is a pointer to an unknown structure in NT
  1706.                   Fill it with a pointer to a memory block with 8th byte set to 1.
  1707.                   (fixes crash in AssetAllocator install)
  1708.  
  1709.  2001-06-14: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  1710.     - KERNEL32: o Correct bug in LoadLibrary which prevented dynamically
  1711.     - WIN32K:   o Forgot to close file on failure in ldrOpen. When Pe2Lx
  1712.                   failed (due to wrong subsystem), the file remained open.
  1713.  
  1714.  2001-06-14: Sander van Leeuwen <sandervl@xs4all.nl>
  1715.     - USER32:   o OSLibWinGetMsg: dispatch untranslated message immediately
  1716.                   and grab next one.
  1717.                 o Manually change min/max/restore button states (OS/2 appearance)
  1718.                 o Handle WM_SYSCOMMAND messages in frame window handler
  1719.                 o Button fix (Wine bug)
  1720.                   Must clear WS_TABSTOP of control that is already unchecked or
  1721.                   else multiple control can have this style ((auto)radiobutton)
  1722.                   and GetNextDlgTabItem will return the wrong one.
  1723.                   Happens in Opera preferences dialog (multimedia) where all
  1724.                   autoradio buttons have the WS_TABSTOP style.
  1725.                 o Added temporary workaround for Open32 crashes in Opera
  1726.  
  1727.  2001-06-13: Sander van Leeuwen <sandervl@xs4all.nl>
  1728.     - USER32:   o Corrected position of PM titlebar control
  1729.                 o Added SetWindowAppearance function that can be used
  1730.                   by Odin32 apps to override the appearance (win32 or OS/2)
  1731.                   of windows.
  1732.                 o Changed menu font for OS/2 appearance (bold)
  1733.                 o Draw system menu icon ourselves (OS/2 appearance)
  1734.                 o SetWindowText fix (OS/2 appearance)
  1735.                 o WM_ERASEBKGND handling changes for dialogs
  1736.     - GDI32:    o CreateDIBSection bugfix (wrong ReleaseDC call)
  1737.  
  1738.  2001-06-13: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  1739.     - WIN16LDR: o Made it compile with Watcom and MSC60.
  1740.                   Currently I can't link it with MSC60 form the DDK
  1741.                   since there is no window libraries there.
  1742.                   Watcom links fine. But the result is not tested.
  1743.     - VDMDBG:   o Stubbed this DLL. (It's used by the NT TaskMgr.)
  1744.                   (Documented in SDK, doc\misc\VDMDbg.Hlp. Which is included
  1745.                    in the NT sdk distributed with Watcom v11 - %WATCOM\sdk.)
  1746.     - Win32k/Pe2Lx:
  1747.                 o Allowed loading of images using the NATIVE subsystem.
  1748.                 o Added symbols for build 14.065F (2001-05-08) all kernels.
  1749.     - DailyBuild:
  1750.                 o Moved Odin.ini to system32 in daily .zips.
  1751.     - NTDLL:    o Stubbed NtOpenThread.
  1752.  
  1753.  2001-06-12: Sander van Leeuwen <sandervl@xs4all.nl>
  1754.     - USER32:   o Partly fixed position of PM frame controls
  1755.                 o FillRect fix for 0 brush
  1756.                 o Workaround for windows with CS_CLASSDC class. Use same
  1757.                   mechanism as CS_OWNDC. (might not always work though)
  1758.                   No (easy) way to share a single DC between windows in PM.
  1759.                   (fixes paint problems in MED)
  1760.                 o Use critical sections for local hooks; faster than
  1761.                   kernel mutex semaphore calls.
  1762.     - GDI32:    o SetDIBColorTable bugfix
  1763.     - KERNEL32: o Fail to load OS/2 (non-Odin) dlls in LoadLibrary
  1764.                   (Winbench tries this)
  1765.     - ADVAPI32: o Pretend no services found in EnumServicesStatusA/W instead of
  1766.                   returning error.
  1767.                   (prevents crash in Winbench)
  1768.  
  1769.  2001-06-11: Sander van Leeuwen <sandervl@xs4all.nl>
  1770.     - USER32:   o Reference count bugfixes
  1771.     - GDI32:    o Added RGB555 conversion for CreateDIBitmap & SetDIBits
  1772.  
  1773.  2001-06-10: Sander van Leeuwen <sandervl@xs4all.nl>
  1774.     - USER32:   o SetParent bugfix (caused crashes in user32 after yesterday's changes)
  1775.                 o Preliminary support added for OS/2 look and feel (not finished)
  1776.                   Odin.ini option:
  1777.                   [ODINSYSTEM]
  1778.                   OS2Look=1      (default = 0)
  1779.                   Creates OS/2 Titlebar, system menu & min/max/close buttons.
  1780.                   Also overrides UseWinColors option (uses OS/2 colors).
  1781.                   NOTE: Can interfere with windows applications that draw their
  1782.                         own custom titlebar. (e.g. RealPlayer)
  1783.     - KERNEL32: o Added OpenProfileUserMapping & CloseProfileUserMapping stubs.
  1784.                 o CreateProcess: launch win16 loader for NE executables
  1785.     - WIN16LDR: o Preliminary version of winos2 loader for 16 bits installers
  1786.                   Overrides GetVersion & WinExec functions to return the
  1787.                   version NT returns and to launch 32 bits programs (using pe).
  1788.                   (NOT FINISHED and not included in daily build)
  1789.     - PELDR:    o Execute win16 loader for NE executables.
  1790.  
  1791.  2001-06-09: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  1792.     - Win32API.h:
  1793.                 o Added APIs required to compile user32.
  1794.     - src/makefile:
  1795.                 o Relaxed the locks a little.
  1796.     - Win32k:   o Separated VAC3 and VAC36 output. (Please re-run configure!)
  1797.     - makefiles/VAC36:
  1798.                 o Ignore ILIB warnings. (like those in the opengl tree)
  1799.  
  1800.  2001-06-09: Sander van Leeuwen <sandervl@xs4all.nl>
  1801.     - USER32:   o Keep reference count for window and class objects.
  1802.                   Only delete the objects when nobody else is using them anymore.
  1803.                   (fixes crashes due to premature destruction of objects;
  1804.                    e.g. during Napster startup)
  1805.     - KERNEL32: o heap checking accidentally turned on during logging
  1806.                   (making the debug build extremely slow)
  1807.                 o Open32's CreateProcess can fail with ERROR_FILE_NOT_FOUND for
  1808.                   no apparent reason. Don't bail out when that happens, but try
  1809.                   to create the process anyway.
  1810.                   (fixes CreateProcess during Napster install)
  1811.                 o Improved version of InterlockedIncrement & InterlockedDecrement
  1812.                   (borrowed from Wine)
  1813.  
  1814.  2001-06-08: Sander van Leeuwen <sandervl@xs4all.nl>
  1815.     - KERNEL32: o WinExec fixes
  1816.                 o Ported Wine's WritePrivateProfileSectionA
  1817.     - GDI32:    o DIB Section blits: translate all ROPs
  1818.                 o GetDIBits fix; RGB conversion was not always performed;
  1819.                   now only for requested scanlines.
  1820.  
  1821.  2001-06-08: Patrick Haller <patrick.haller@innotek.de>
  1822.     - KERNEL32: o Optimizations for loading of PE images
  1823.  
  1824.  2001-06-07: Sander van Leeuwen <sandervl@xs4all.nl>
  1825.     - OLE32:    o More VAC 3.6.5 compile fixes
  1826.  
  1827.  2001-06-06: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  1828.     - FastDep:  o Performance enh. Don't scan files more than 1 month older
  1829.                   than existing .depend file.
  1830.                 o Optimized AVL tree sligtly by not performing two strcmp
  1831.                   on the same keys (but resuing the result from the first).
  1832.                 o Improved dependencies genereated for OS/2 resource files.
  1833.                   (TODO: Fix possible bad precompiler checks for C/C++ and RC.)
  1834.                 o Code is now in sync with OS2Tools.
  1835.  
  1836.  2001-06-06: Sander van Leeuwen <sandervl@xs4all.nl>
  1837.     - OLE32:    o VAC 3.6.5 compile fix
  1838.  
  1839.  2001-06-05: Patrick Haller <patrick.haller@innotek.de>
  1840.     - KERNEL32: o Fixed ordinal export resolving for PE executables
  1841.                   (SO52 complained about missing exports)
  1842.  
  1843.  2001-06-05: Sander van Leeuwen <sandervl@xs4all.nl>
  1844.     - COMCTL32: o Listview: Don't repaint subitem if changed text is the same as old one.
  1845.                   (fixes endless repainting loop in WinRAR 2.80)
  1846.     - KERNEL32: o Optimized ordinal lookup even more.
  1847.                   (6900 ordinal lookups takes (on average) 31 ms now instead
  1848.                    of 78)
  1849.  
  1850.  2001-06-04: Sander van Leeuwen <sandervl@xs4all.nl>
  1851.     - KERNEL32: o Added driver dll plugin for custom device driver emulation
  1852.                   Enumerates keys in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
  1853.                   that contain 'DllName' keys.
  1854.                   DllName contains the name of the plugin dll that exports
  1855.                   DrvOpen, DrvClose & DrvIOCtl.
  1856.                 o Dispatch breakpoint exception to application (release build only)
  1857.                   Some nasty applications expect this.
  1858.  
  1859.  2001-06-03: Sander van Leeuwen <sandervl@xs4all.nl>
  1860.     - USER32:   o Ported & fixed ScrollDC (Wine)
  1861.                   (fixes scrolling in Adobe Framemaker 5.5)
  1862.     - GDI32:    o RGB 565->555 conversion in GetDIBits
  1863.                 o RGB 555->565 conversion in DIB Section sync
  1864.                 o Sync DIB section in RealizePalette if any colors changed
  1865.                   (fixes PowerDVD colors)
  1866.  
  1867.  2001-06-02: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  1868.     - Win32k/configure.cmd:
  1869.                 o Corrected search for the VAC compiler.
  1870.                 o Removed stupid messages when -w is specified.
  1871.  
  1872.  2001-06-02: Achim Hasenmueller <achimha@innotek.de>
  1873.     - COMDLG32: o fix crash due to uninitialized COM object pointer in
  1874.                   Win95 open file dialog browse mode
  1875.                 o default to open mode in file dialog when the
  1876.                   OFN_NOVALIDATE mode is used
  1877.                   (fixes crash in FrameMaker 5.5 file dialog when opening
  1878.                    a file that has broken image references)
  1879.     - KERNEL32: o log both error and no error conditions for GetLastError
  1880.                   with default error level. Sometimes, we don't set an error
  1881.                   where we should so this logging information is important
  1882.                 o set last error to 2 (ERROR_FILE_NOT_FOUND) when using
  1883.                   CreateFileA to open a non existing file.
  1884.                   DosOpen returned 110 (ERROR_OPEN_FAILED) in this case.
  1885.                   Verified with Windows 2000 SP2
  1886.                   (makes Acrobat Distiller 5.0 startup and work!)
  1887.  
  1888.  2001-06-02: Sander van Leeuwen <sandervl@xs4all.nl>
  1889.     - WINMM:    o Default waveout volume can be controlled by a key in odin.ini:
  1890.                   [WINMM]
  1891.                   DefVolume=50[0-100] Default waveout volume (default = 100)
  1892.     - USER32:   o ScrollDC fix for translating clip & scroll rectangles
  1893.                   (fixes scrolling in Adobe Framemaker 5.5)
  1894.  
  1895.  2001-06-01: Sander van Leeuwen <sandervl@xs4all.nl>
  1896.     - USER32:   o Send WM_HELP if F1 pressed & no menu active
  1897.                 o Disabled system hooks (only work in one process)
  1898.     - KERNEL32: o Improved ordinal lookup a bit. (usually 4 times faster, but
  1899.                   barely noticable with 'real' applications)
  1900.     - OLE32:    o Added OleLoadPictureEx stub
  1901.     - GDI32:    o GetDIBits fix for querying the bitmap information
  1902.                   WGSS returns 0, but we should return the nr of scan lines requested
  1903.                 o GetDIBits fix for memory dcs. WGSS messes things up if
  1904.                   it's a memory DC.
  1905.                   (fixes lower right button in AIM's logon window when typing
  1906.                    in new name)
  1907.                 o ExtTextOutA/W fix for filling rectangle with background color
  1908.                   only. This doesn't seem to work (anymore) with GpiCharStringPosAt.
  1909.                   (fixes border between menu & button bar in Odin MFC app &
  1910.                    Acrobat Reader 4.05)
  1911.                 o StretchDIBits fix for RGB555 bitmaps
  1912.                   (fixes pictures in pdf files shown by Acrobat Reader 4.05)
  1913.     - SHLWAPI:  o Added PathGetCharTypeA/W from Wine
  1914.  
  1915.  2001-06-01: Patrick Haller <patrick.haller@innotek.de>
  1916.     - KERNEL32: o benchmarked new experimental loader and reverted to
  1917.                   old but slightly optimized loader (processExport usually
  1918.                   outweighs processImport, so lookup is less valuable than
  1919.                   add to export list)
  1920.     - SHELL32:  o SIC_Initialize took extremely long to pre-initialize
  1921.                   its icon cache. Revert to on-demand loading of the icons,
  1922.                   speeds up loading of SHELL32 (therefore most apps)
  1923.                   by several seconds.
  1924.  
  1925.  2001-05-31: Sander van Leeuwen <sandervl@xs4all.nl>
  1926.     - OLEAUT32: o Fixed ITypeInfoImpl_Invoke
  1927.  
  1928.  2001-05-30: Patrick Haller <patrick.haller@innotek.de>
  1929.     - KERNEL32: o further performance improvement of hashtables
  1930.                 o fixes for loader improvements (PE, LX)
  1931.                 o Todo: measuring new code, reducing memory requirements                
  1932.  
  1933.  2001-05-30: Sander van Leeuwen <sandervl@xs4all.nl>
  1934.     - USER32:   o RedrawWindow: don't clear erase background flag if the 
  1935.                   window is already (partly) invalidated.
  1936.                   (fixes redrawing of dialogs controls in mIRC startup dialog 
  1937.                    window (when switching option windows))
  1938.     - KERNEL32: o Put back old lookup code. 
  1939.                   New files renamed to winimagepeldr_new.cpp/h
  1940.                   (Odin test app crashes; looks like MFC42 ordinal lookup
  1941.                    fails somewhere)
  1942.     - OLEAUT32: o Added RegisterTypeLib (ported recent Wine patch) &
  1943.                   UnRegisterTypeLib
  1944.                 o Added ITypeInfoImpl_Invoke (ported Francois Jacques'
  1945.                   (refused) patch and rewrote it to get rid of stack
  1946.                   layout dependency.
  1947.                 o VT_HRESULT -> VT_INT conversion added to Coerce
  1948.                   (all needed for Quicken Deluxe 2001; still crashes, but
  1949.                    gets passed data loading)
  1950.     - OLE32:    o OleRun: check pointer with IsValidInterface
  1951.                   (fixes crash in Quicken after data loading)
  1952.  
  1953.  2001-05-30: Patrick Haller <patrick.haller@innotek.de>
  1954.     - KERNEL32: o replaced linear lists in PE loader with faster hashtables
  1955.                   (ccollection.cpp, experimental)
  1956.                   ToDo: measure any difference, revert eventualls
  1957.  
  1958.  2001-05-29: Sander van Leeuwen <sandervl@xs4all.nl>
  1959.     - GDI32:    o Set/GetDIBColorTable fixes for DIB sections with bpp > 8
  1960.                 o Don't sync DIB section in SelectPalette if bForceBackground
  1961.                   is -1. (hack for bitmap buttons in Beyond Compare)
  1962.     - DCIMAN32: o Updated & return proper error codes
  1963.  
  1964.  2001-05-28: Patrick Haller <patrick.haller@innotek.de>
  1965.     - GDI32:    o Split GDI32.CPP into ICM.CPP and GDI32.CPP
  1966.             o CreateDC() accepts "display" instead of "DISPLAY"
  1967.                   (fixes font-not-found problem in ZD Bench 99)
  1968.     - KERNEL32: o mmap.cpp: slightly accelerated ::findMapByView()
  1969.             o directory.cpp: don't trap in CreateDirectory(NULL, NULL)                
  1970.     - DDRAW:    o implemented DirectDrawCreateClipper()
  1971.     - WOW32:    o created initial (fake) version of WOW32.DLL
  1972.               (SBLiveXP accesses this directly)
  1973.  
  1974.  2001-05-27: Sander van Leeuwen <sandervl@xs4all.nl>
  1975.     - COMCTL32: o Listview: merged old LISTVIEW_EnsureVisible
  1976.                   (gets rid of excessive repaints)
  1977.     - USER32:   o Replaced TabbedTextOutA/W & GetTabbedTextExtentA/W with
  1978.                   Wine version. GPI doesn't support strings > 512 characters.
  1979.     - GDI32:    o Commented out InternalTabbedTextOutA/W & InternalGetTabbedTextExtentA/W
  1980.  
  1981.  2001-05-26: Sander van Leeuwen <sandervl@xs4all.nl>
  1982.     - COMCTL32: o Datetime control resync with Wine (get/setrange added)
  1983.  
  1984.  2001-05-25: Sander van Leeuwen <sandervl@xs4all.nl>
  1985.     - Odin.ini: o Removed MS Shell Dlg font mapping
  1986.     - GDI32:    o Synchronize DIB Section after SelectPalette call (if selected in DC)
  1987.                   (fixes wrong colors for some bitmaps)
  1988.                 o Update bitmap and synchronize DIB Section in SetDIBits
  1989.                 o Update color table during DIB sync too
  1990.     - USER32:   o Dialog control x & y coordinates in dialog template are signed 
  1991.                   words. (fixes dialog controls with negative offset)
  1992.                 o Rewrote Post(Thread)/SendMessage; filtering of posted/sent
  1993.                   messages (by app) is now possible with Peek/GetMessage.
  1994.                 o PeekMessage fix; got rid of double removal for untranslated 
  1995.                   messages
  1996.  
  1997.  2001-05-24: Sander van Leeuwen <sandervl@xs4all.nl>
  1998.     - GDI32:    o Commented out recent changes (color conversion) in
  1999.                   SetDIBitsToDevice. Breaks startup bitmap of Acrobat Reader 4
  2000.                 o GetTextExtentPointA; call WGSS instead.
  2001.                   Better result (strings not clipped).
  2002.     - KERNEL32: o OpenFile fix for OF_REOPEN flag (crashes when looking up
  2003.                   handle)
  2004.     - IPHLPAPI  o Added stub dll
  2005.  
  2006.  2001-05-23: Sander van Leeuwen <sandervl@xs4all.nl>
  2007.     - USER32:   o RedrawWindow with desktop window handle no longer returns
  2008.                   an error.
  2009.                   (fixes RealPlayer Auto Size window)
  2010.     - Odin.ini  o Added font mapping for MS Shell Dlg to WarpSans
  2011.                   (gets rid of ugly fonts (in dialogs) which also have the wrong
  2012.                    size (text clipping))
  2013.     - KERNEL32: o CreateFile for partitions; handle lookup fails if 
  2014.                   OS/2 handle is set to -1 (happens if disk not inserted)
  2015.                   -> set to 0 instead
  2016.  
  2017.  2001-05-22: Sander van Leeuwen <sandervl@xs4all.nl>
  2018.     - COMCTL32: o Partial merge of listview control with latest Wine
  2019.                 o Listview: Send WM_MEASUREITEM for controls with
  2020.                   LVS_OWNERDRAWFIXED style.
  2021.                   (TODO: sets size for all items only)
  2022.                   (fixes wrong item size for VirtualPC main window)
  2023.     - USER32:   o Fixed minimizing & restoring of top-level windows
  2024.     - KERNEL32: o Check name before adding dependency for module in
  2025.                   order to avoid circular dependencies (WNETAP32 (== NETAPI32)
  2026.                   imports from NETAPI32)
  2027.                   (fixes crash at exit in VirtualPC)
  2028.  
  2029.  2001-05-20: Sander van Leeuwen <sandervl@xs4all.nl>
  2030.     - GDI32:    o Fixed LPtoDP/DPtoLP again.
  2031.     - USER32:   o Paint menu item first before destroying it
  2032.                   (prevents menu control from painting selected item on
  2033.                    desktop)
  2034.                 o Don't show or hide scrollbar in SetScrollInfo if
  2035.                   scroll parameters didn't change.
  2036.                   (fixes loop in VirtualPC settings dialog)
  2037.  
  2038.  2001-05-20: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  2039.     - KERNEL32: o LOCALE_IFIRSTDAYOFWEEK fixes (Get/SetLocaleInfo)
  2040.  
  2041.  2001-05-19: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2042.     - win32k:   o Added improvements from Rafal, better validation of the
  2043.                   paths which are found. Might cause some warnings for
  2044.                   some of you, but just read and ignore them.
  2045.                   Run configure.cmd (one of them)!
  2046.  
  2047.  2001-05-19: Sander van Leeuwen <sandervl@xs4all.nl>
  2048.     - GDI32:    o LPtoDP/DPtoLP: check input because GpiConvert doesn't like
  2049.                   illegal values (TODO: check what NT does)
  2050.                   (fixes huge buttons in VirtualPC dialog (font with wrong
  2051.                    height created))
  2052.     - INCLUDE\odinwrap.h:
  2053.                 o ODINFUNCTIONNODBG & ODINPROCEDURENODBG should still save
  2054.                   and restore FS!!!
  2055.                   (FS corruption in release build; mainly affects wsock32)
  2056.     - WS2_32:   o Added more exports
  2057.     - KERNEL32: o Export TryEnterCriticalSection
  2058.                 o InterlockedCompareExchange bugfix; should not always return
  2059.                   old destination; return whatever cmpxchg puts in eax
  2060.     - SHLWAPI:  o Export SHSetValueW
  2061.                 o Ordinal export 342 is InterlockedCompareExchange implementation
  2062.                   Takes 3 parameters, not 4. (Wine bug)
  2063.                 o Ordinal export 151 takes 3 parameters, not zero.
  2064.                 o Implemented SHLWAPI_151 (case sensitive string compare
  2065.                   with length; ascii version of SHLWAPI_152)
  2066.                 o Implemented SHLWAPI_153 (case insensitive string compare
  2067.                   with length (ascii))
  2068.                 o Added SHLWAPI_154 (case insensitive string compare with
  2069.                   length (unicode))
  2070.     - USER32:   o Added TrackMouseEvent, GetGUIThreadInfo & SendInput stubs
  2071.     - ADVAPI32: o Added undocumented SystemFunctionXXX functions (stubs)
  2072.                 o Set lasterror in EnumServicesStatusA/W stubs
  2073.     - GDI32:    o GetTextExtentPointA now handles strings larger than 512
  2074.                   characters.
  2075.  
  2076.  2001-05-19: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  2077.     - KERNEL32: o LOCALE_IFIRSTDAYOFWEEK fix (GetLocaleInfo)
  2078.  
  2079.  2001-05-18: Sander van Leeuwen <sandervl@xs4all.nl>
  2080.     - KERNEL32: o Fixed FS corruption in LCMapStringA/W
  2081.                 o ole2nls: resync with latest Wine sources
  2082.  
  2083.  2001-05-17: Sander van Leeuwen <sandervl@xs4all.nl>
  2084.     - USER32:   o InvalidateRect & InvalidateRgn must call RedrawWindow
  2085.                   with RDW_ALLCHILDREN flag.
  2086.                   (RealPlayer 8 install dialog doesn't have WS_CLIPCHILDREN
  2087.                    style -> InvalidateRect overwrites child windows (buttons))
  2088.  
  2089.  2001-05-17: Sander van Leeuwen <sandervl@xs4all.nl>
  2090.     - USER32:   o Destroy menu windows when they are no longer used.
  2091.                   (fixes activation problems with dialogs created after
  2092.                    selecting a menu item)
  2093.                   (TODO: sync with latest wine menu control sourcecode)
  2094.                 o clientHeight bugfix (fixes crash in Solitaire)
  2095.                 o Check if another app changed mouse cursor (Get/SetCursor)
  2096.                   (previously mouse cursor did not change back if another
  2097.                    app modified it)
  2098.  
  2099.  2001-05-16: Sander van Leeuwen <sandervl@xs4all.nl>
  2100.     - USER32:   o WM_SETREDRAW fix; must call WinEnableWindowUpdate for
  2101.                   both client and frame window.
  2102.                   (winhlp32 buttons are now visible again)
  2103.  
  2104.  2001-05-15: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2105.     - Tools\bin:o Synced with other projects using the same tools.
  2106.  
  2107.  2001-05-15: Sander van Leeuwen <sandervl@xs4all.nl>
  2108.     - USER32:   o BeginPaint must return logical points instead of device points.
  2109.                   (not the same if e.g. app changes page viewport)
  2110.                   (fixes scaling in Opera)
  2111.                 o SetFocus fix; manual activation of windows; PM sometimes
  2112.                   changes the Z-order of the window being activated.
  2113.                   Also call WH_CBT hook handler (if present)
  2114.                   (fixes hotlist window in Opera)
  2115.     - KERNEL32: o OpenFile: check if filename ptr is NULL, return ERROR_INVALID_NAME
  2116.                   if true. (verified in NT4, SP6)
  2117.  
  2118.  2001-05-15: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  2119.     - KERNEL32: o Added LOCALE_IFIRSTDAYOFWEEK case for GetLocaleInfoW
  2120.     - COMCTL32: o Commented out TRACE call in DATETIME_ParentNotify.
  2121.                   Wrong assumption about lParam as it's not always a pointer
  2122.                   (WM_CREATE WM_PARENTNOTIFY lParam == hwnd -> crash)
  2123.  
  2124.  2001-05-13: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  2125.     - COMCTL32: o Fixed wrong return values for datetime control
  2126.                   (DTM_GETSYSTEMTIME & DTM_SETSYSTEMTIME)
  2127.  
  2128.  2001-05-11: Sander van Leeuwen <sandervl@xs4all.nl>
  2129.     - USER32:   o Rewrote window handling. Back to using frame and client windows
  2130.                   for each win32 window.
  2131.                   (fixes visible region problems with e.g. Opera)
  2132.                   Frame windows never have the WS_CLIPCHILDREN style; this caused
  2133.                   the transparency problems reported earlier when using this method.
  2134.                   E.g.: Dialog parent, groupbox; invalidate part of groupbox ->
  2135.                         painting algorithm stops top-down search when it finds
  2136.                         a window with WS_CLIPCHILDREN style
  2137.                         -> result: dialog window won't update groupbox background
  2138.                                    as groupbox only draws the border
  2139.                 o UpdateWindow: Must use frame window handle even though
  2140.                   UpdateWindow only updates the client area.
  2141.                   If the frame window has a valid update region and we call
  2142.                   WinUpdateWindow for the client window, then no WM_PAINT
  2143.                   messages will be sent.
  2144.                 o Don't erase background in RedrawWindow (invalidate) when
  2145.                   RDW_ERASE flag not set.
  2146.                   (gets rid of excessive background redraws (flickering) for
  2147.                    progress windows in some installers)
  2148.                 o Fixed ScrollWindow bug
  2149.                 o WM_SHOWWINDOW sent twice
  2150.                 o Mark window's visible region as changed when client receives
  2151.                   WM_SIZE (PM). BeginPaint sends a WM_ERASEBKGND when this
  2152.                   flag is set (regardless of erase flag set by RedrawWindow)
  2153.                 o ScrollDC fix (window handle transation)
  2154.                 o ScrollDC and ScrollWindowEx bugfix (setting update region)
  2155.                   (fixes scrolling in MS Word 97)
  2156.     - GDI32:    o SetDIBitsToDevice: RGB 555 is the default for 16 bits bitmaps
  2157.                   (fixes pictures in (some) documents for Word 97)
  2158.                   TODO: Probably need to check bitfields and convert for some
  2159.                         other blit functions
  2160.  
  2161.  2001-05-10: Shingo Tsuda <sofiya@din.or.jp>
  2162.     - GDI32:    o Rop conversion for DIB Section blits
  2163.                 o Support for negative height (origin top left) in
  2164.                   SetDIBitsToDevice + StretchDIBits
  2165.  
  2166.  2001-05-10: Sander van Leeuwen <sandervl@xs4all.nl>
  2167.     - GDI32:    o includeBottomRightPoint bugfix; if left == right or top == bottom
  2168.                   then the rectangle isn't empty. (include/include input)
  2169.                   (fixes e.g. missing erase background when slowly moving window
  2170.                    over Odin window (full window dragging enabled))
  2171.  
  2172.  2001-05-09: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2173.     - src/ws2help, bin/debug, bin/release, src/win32k/list,
  2174.       src/win32k/debug:
  2175.                 o Removed directories. These were either not needed
  2176.                   or unused. I did this now since I was going to
  2177.                   remove ws2help anyway and there by breaking your tree.
  2178.     - tools/bin/CVSRemoveDeletedDirs.cmd:
  2179.                 o Rexx script which removes the above directories
  2180.                   from your local tree. Run this from the root of the tree.
  2181.                   To physically remove the directories you have to specify
  2182.                   REMOVE as argument (no dash or slash!).
  2183.  
  2184.  2001-05-08: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2185.     - src/makefile:
  2186.                 o Ignore WS2HELP for the moment.
  2187.                   (Never add empty subdirs to /src without making
  2188.                    /src/makefile ignore it!)
  2189.  
  2190.  2001-05-07: Patrick Haller <patrick.haller@innotek.de>
  2191.     - WS2_32:   o created skeleton and added forwarders to WSOCK32
  2192.     - KERNEL32: o CreateProcess error handling corrected, if
  2193.               O32_CreateProcess fails with specific reason
  2194.  
  2195.  2001-05-04: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  2196.     - SHELL32:  o Update for SHFileOperationA (FO_MOVE)
  2197.  
  2198.  2001-05-04: Sander van Leeuwen <sandervl@xs4all.nl>
  2199.     - USER32:   o FrameTrackFrame bugfix for moving child windows
  2200.  
  2201.  2000-05-03: Yuri Dario <mc6530@mclink.it>
  2202.     - USER32:   o SendNCCalcSize call bugfix (client rectangle parameter)
  2203.                 o Fix for groupbox WM_SETFONT handler. Must erase top part
  2204.                   if font is changed.
  2205.     - OLEAUT32: o Fail for TLBMAGIC2 typelib type.
  2206.  
  2207.  2001-04-30: Sander van Leeuwen <sandervl@xs4all.nl>
  2208.     - DSOUND:   o DirectAudio interface updates
  2209.     - WINMM:    o Odin.ini key to switch between DART & DirectAudio (see odin.ini.txt)
  2210.  
  2211.  2001-04-29: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  2212.     - SHELL32:  o Update for SHFileOperationA (FO_COPY)
  2213.  
  2214.  2001-04-29: Sander van Leeuwen <sandervl@xs4all.nl>
  2215.     - COMCTL32: o Resync with latest Wine (20010418) (animate, comboex, rebar, 
  2216.                   status, tab)
  2217.     - WINMM:    o Don't start playback if stream is paused (waveOutWrite)
  2218.                   (only affects DART playback; prevents out of sync
  2219.                    video & audio in RealPlayer)
  2220.     - WSOCK32:  o Save FS before calling _beginthread
  2221.  
  2222.  2001-04-28: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  2223.     - SHELL32:  o Updates and fixes for SHFileOperationA (FO_COPY)
  2224.  
  2225.  2000-04-28: Yuri Dario <mc6530@mclink.it>
  2226.     - WSOCK32:  o Send FD_READ notification even if nr of bytes read = 0
  2227.                 o Corrected error return for recv
  2228.                   (fixes for Opera) 
  2229.     - KERNEL32: o dprintf(NULL) flushes log stream
  2230.  
  2231.  2001-04-28: Sander van Leeuwen <sandervl@xs4all.nl>
  2232.     - SHELL32:  o Resync with latest Wine (20010418) + merged Odin fixes/additions
  2233.     - SHLWAPI:  o Resync with latest Wine (20010418) + merged Odin fixes/additions
  2234.     - KERNEL32: o Added GetSystemWindowsDirectoryA/W exports
  2235.     - USER32:   o Don't use PM api directly in dialog message loop. Must call
  2236.                   PeekMessageA & GetMessageA. (or else the WH_MSGFILTER hook
  2237.                   won't be called)
  2238.                 o Check WM_(SYS)MSGFILTER hooks in DoDialogBox
  2239.  
  2240.  2001-04-28: Markus Montkowski <mmontkowski@gmx.de|
  2241.     - MSVFW32:  o Fixed ICOpen, check and correct fccType from VIDC to vidc.
  2242.                   Videocodecs do load now.
  2243.  
  2244.  2001-04-27: Sander van Leeuwen <sandervl@xs4all.nl>
  2245.     - USER32:   o Call WH_GETMESSAGE hook handler from GetMessage and PeekMessage
  2246.                   (if message present)
  2247.                 o Added (not 100% correct) filtering for nonclient mouse messages
  2248.                   (fixes nonclient messages for MS Word 97 (frame & menu mouse actions))
  2249.                 o Recalculate HDC height of windows with CS_OWNDC style if 
  2250.                   window is resized.
  2251.                   (fixes 28 pixel shift up in MS Word MDI window; Word calls 
  2252.                    GetDCEx once and does custom WM_PAINT handling (never calls 
  2253.                    Begin/EndPaint))
  2254.     - KERNEL32: o HeapReAlloc: return old pointer if new size is smaller or
  2255.                                equal to old size.
  2256.     - GDI32:    o Limit length of converted strings in InternalDrawTextExW,
  2257.                   InternalGetTabbedTextExtentW, InternalTabbedTextOutW &
  2258.                   InternalTextOutW. (cbCount might be smaller than string 
  2259.                   length)
  2260.                   (fixes crash in MS Word when it tries to display the about
  2261.                    dialog)
  2262.     - INCLUDE\win\unicode: 
  2263.                 o strcpyW bugfix (didn't terminate string -> heap corruption)
  2264.     - DSOUND:   o Preliminary code added for DirectAudio interface. 
  2265.                   (not finished & not activated)
  2266.  
  2267.  2001-04-26: Sander van Leeuwen <sandervl@xs4all.nl>
  2268.     - KERNEL32: o Implemented FreeLibraryAndExitThread
  2269.                 o Create HandleManager class for mailslots + partial implementation
  2270.                   for mailslot APIs (using named pipes)
  2271.                 o Fixed wrong return values for some CloseHandle methods
  2272.                 o Fixed CreateNamedPipe; must not call DosCreateNPipe for existing pipe
  2273.                   (at least according to the SDK docs; must verify this in NT!)
  2274.                 o Implemented CreateFile and CloseHandle for named pipe class
  2275.                 o Implemented SetNamedPipeHandleState
  2276.                 o GetEnvironmentVariableW fix (breakpoint hit in debug build)
  2277.     - ADVAPI32: o IsTextUnicode forwarded to RtlIsTextUnicode (ntdll)
  2278.     - GDI32:    o InternalTextOutW fix (breakpoint hit in debug build)
  2279.     - OLE32:    o Resync with latest Wine build (20010418)
  2280.  
  2281.  2001-04-25: Sander van Leeuwen <sandervl@xs4all.nl>
  2282.     - USER32:   o Check visibility of parents in IsWindowVisible
  2283.                 o Call ShowWindow(SW_MINIMIZE) in CloseWindow (for non-child windows)
  2284.                   Don't use PM directly to minimize it.
  2285.  
  2286.  2001-04-25: Shingo Tsuda <sofiya@din.or.jp>
  2287.     - GDI32:    o DBCS fix for looking up font name in font rename profile section
  2288.  
  2289.  2001-04-24: Sander van Leeuwen <sandervl@xs4all.nl>
  2290.     - COMDLG32, DPLAYX, OLE32, OLEAUT32:
  2291.                 o Compile fixes for VAC 3.6.5 (nameless unions & structs)
  2292.     - COMDLG32: o Resync with latest Wine code
  2293.                   (directory changed after file chosen in file open dialog)
  2294.  
  2295.  2001-04-23: Dietrich Teickner <Dietrich_Teickner@t-online.de>
  2296.     - SHELL32:  o Updates and fixes for SHFileOperationA (FO_COPY)
  2297.  
  2298.  2001-04-22: Sander van Leeuwen <sandervl@xs4all.nl>
  2299.     - DDRAW:    o Wrong calling convention of io_init2. Parameter is pushed
  2300.                   on the stack, not put in eax.
  2301.                   (fixes crash in release ddraw & systems with xf86sup.sys 
  2302.                    installed)
  2303.     - KERNEL32: o Removed wrong segment definitions introduced by yesterday's
  2304.                   EXC_CallHandler rewrite.
  2305.                   (fixes global data section)
  2306.                 o Build fake header for LX executable
  2307.                   (fixes crash during Acrobat Reader 5 install (regsvr32.exe))
  2308.     - NTDLL:    o Updated rtlstr.c (Wine)
  2309.                 o Wrote partial implementation of RtlGetAce. Not tested well.
  2310.                   Enough to prevent Acrobat Reader 5 install from crashing.
  2311.     - ADVAPI32: o Forward AddAce, FindFirstFreeAce, GetAce & AddAccessAllowedAce
  2312.                   to NTDLL
  2313.     - INSTALL:  o Add Font registry keys 
  2314.                   [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
  2315.                   [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Fonts]
  2316.                   "Courier 10,12,15 (VGA res)"="COURE.FON"
  2317.                   "MS Sans Serif 8,10,12,14,18,24 (VGA res)"="SSERIFE.FON"
  2318.                   "MS Serif 8,10,12,14,18,24 (VGA res)"="SERIFE.FON"
  2319.  
  2320.  2001-04-21: Sander van Leeuwen <sandervl@xs4all.nl>
  2321.     - KERNEL32: o DosWrite for stdout doesn't accept high addresses
  2322.                 o Rewrote EXC_CallHandler in assembly (copied compiler output
  2323.                   (opt. off))
  2324.                   No longer necessary to turn off optimizations for exceptions.cpp.
  2325.                 o Added partial implementation of GetLongPathNameA/W
  2326.  
  2327.  2001-04-20: Sander van Leeuwen <sandervl@xs4all.nl>
  2328.     - USER32:   o Commented out RestoreCursor call in user32 exitlist handler.
  2329.                   Seems to cause PM hangs on some (a lot?) machines for
  2330.                   reasons unknown.
  2331.  
  2332.  2001-04-20: Patrick Haller <patrick.haller@innotek.de>
  2333.     - DSOUND:   o Fixes / Workaround for PowerDVD 3.0
  2334.                   Crashed when allocating sound object for
  2335.                   48kHz, 16-Bit, 4 channels
  2336.                 o dynamically size the internal mixing buffer 
  2337.                   in DSMIXER
  2338.  
  2339.  2001-04-19: Sander van Leeuwen <sandervl@xs4all.nl>
  2340.     - KERNEL32: o Fail properly when a dll can't be found or loaded.
  2341.     - SHELL32:  o Ported latest shlfileop.c from Wine. (include functional
  2342.                   SHFileOperation). 
  2343.                   TODO: Merge the rest.
  2344.  
  2345.  2001-04-18: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2346.     - dailybuild:
  2347.                 o Adjusted to new build pattern.
  2348.                 o Copy all builds to local archive directory.
  2349.     - tools\install:
  2350.                 o Added Xx2Lx.
  2351.     - Readme.txt:
  2352.                 o Changed Pe2Lx to Xx2Lx.
  2353.  
  2354.  2001-04-17: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2355.     - Unicode:  o Minor addjustments to makefile. CFLAGS is the correct
  2356.                   place to addjust flags for C compilation. And flags
  2357.                   are compiler specific.. wrapped it in CCENV checks.
  2358.     - Tools\Common:
  2359.                 o Revamped a couple of things - introduced interface classes.
  2360.                   Not quite statisfied yet, but it's working.
  2361.                 o Starting to make an kFileSDF class to access .SDF files
  2362.                   SDF = Structure Definition Files - used by PMDF. Contains
  2363.                   information about structures (struct _somthing_s).
  2364.                   Needs this information for win32k.
  2365.     - Tools\Database:
  2366.                 o Recreate makefiles, new style. GD is not compiled any longer.
  2367.                 o Addjusted APIImport to fit changes in Tools\Common.
  2368.     - Tools\ImpLib:
  2369.                 o Addjusted code to fit changes in Tools\Common.
  2370.  
  2371.  2001-04-16: Sander van Leeuwen <sandervl@xs4all.nl>
  2372.     - KERNEL32: o Fix for LoadLibrary(Ex)W. (free must not be called for
  2373.                   converted strings; use FreeAsciiString instead)
  2374.     - TOOLS\WRC:o Ported latest wrc. (has proper ascii -> unicode conversion
  2375.                   and more features)
  2376.                 o Open files in binary mode only; fixes load failures for
  2377.                   shell32 icons (newlines were translated; bytes removed from
  2378.                   icon data)
  2379.     - DPLAYX:   o Compile fixes for header changes.
  2380.     - include\odin.h:
  2381.                 o Changes for wrc. It chokes on calling conventions.
  2382.                 o Got rid of annoying 'unused struct' warnings
  2383.  
  2384.  2001-04-16: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2385.     - DSOUND:   o Removed pmwinx.lib from makefile. Wasn't used; and it had
  2386.                   bad path (ie. no path).
  2387.  
  2388.  2001-04-15: Sander van Leeuwen <sandervl@xs4all.nl>
  2389.     - KERNEL32: o RegQueryValueExA/W broken. Reserved & type parameters reversed.
  2390.                   (fixes crash in Notepad and possibly solves many other problems)
  2391.     - USER32:   o SetCapture change; return immediately when new capture window
  2392.                   is the same as old one.
  2393.                   (fixes high cpu load in PowerDVD when holding mouse cursor over
  2394.                    control window; PM kept sending WM_MOUSEMOVE messages)
  2395.                 o Rewrote ClipCursor & GetClipCursor
  2396.                 o Set PM style flags when WS_CLIPCHILDREN or WS_CLIPSIBLINGS
  2397.                   flag is changed by the application using SetWindowLong.
  2398.                   (fixes Lotus Notes size bar & upper left rectangle painting)
  2399.  
  2400.  2001-04-14: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2401.     - configure,win32k:
  2402.                 o Added option to Configure.cmd, -w, which omittes building
  2403.                   of Win32k.sys.
  2404.  
  2405.  2001-04-12: Shingo Tsuda <sofiya@din.or.jp>
  2406.     - USER32:   o Fixes for DBCS strings
  2407.  
  2408.  2001-04-10: Sander van Leeuwen <sandervl@xs4all.nl>
  2409.     - PELDR:    o Print module name that contributed to the failure of
  2410.                   loading kernel32.
  2411.  
  2412.  2001-04-06: Sander van Leeuwen <sandervl@xs4all.nl>
  2413.     - WINMM:    o Clean up DirectAudio thread properly.
  2414.  
  2415.  2001-04-05: Shingo Tsuda <sofiya@din.or.jp>
  2416.     - KERNEL32: o WideCharToMultiByte/MultiByteToWideChar changes
  2417.                   - srclen <= -1 -> calculate length (docs say only for -1)
  2418.                   - source and destination pointer can't be the same (as docs also claim)
  2419.                   (verified in Windows ME & Windows NT4, SP6)
  2420.  
  2421.  2001-04-05: Sander van Leeuwen <sandervl@xs4all.nl>
  2422.     - USER32:   o Rewrote ShowCursor
  2423.  
  2424.  2001-04-04: Sander van Leeuwen <sandervl@xs4all.nl>
  2425.     - KERNEL32: o Removed AsciiToUnicode* & UnicodeToAscii* functions
  2426.                 o lstrcpynWtoA & lstrcpynAtoW fixes
  2427.                 o Removed WideCharToLocal & LocalToWideChar
  2428.     - INCLUDE\unicode.h:
  2429.                 o AsciiToUnicode* & UnicodeToAscii* functions implemented
  2430.                   with functions in heapstring.h
  2431.     - *         o Compile fixes due to header changes
  2432.  
  2433.  2001-04-03: Sander van Leeuwen <sandervl@xs4all.nl>
  2434.     - DDRAW:    o Only reset physical palette in DirectDraw destructor if
  2435.                   palette was really changed.
  2436.                   (gets rid of excessive screen redraws in DXView)
  2437.     - KERNEL32: o Return GetUserDefaultLCID in GetSystemDefaultLCID
  2438.                 o Return GetUserDefaultLangID in GetSystemDefaultLangID
  2439.                 o Ported Wine's codepage, string & unicode functions (codepage.cpp)
  2440.                 o Ported Wine's codepage unicode conversion functions & tables
  2441.                   (kernel32\unicode)
  2442.                 o Rewrote string functions (heapstring.cpp) to use new unicode
  2443.                   functions.
  2444.     - USER32:   o Ported Wine's Char* functions
  2445.                   TODO: IsCharAlphaA & IsCharAlphaNumericA
  2446.  
  2447.  2001-04-02: Sander van Leeuwen <sandervl@xs4all.nl>
  2448.     - USER32:   o Mouse message translation fix (check capture)
  2449.                 o Turn off WS_CAPTION style for dialogs with DS_CONTROL flag set
  2450.                   (fixes file dialogs with OFN_ENABLETEMPLATE style)
  2451.                   Verified behaviour in NT4, SP6 with DSShow sample
  2452.                   - about dialog with DS_CONTROL -> no titlebar
  2453.                   - file open dialog without DS_CONTROL -> titlebar + moveable
  2454.                     2nd dialog
  2455.                 o Temporary workaround for file dialogs with template dialog child.
  2456.                   They don't redraw when switching directories. For some reason
  2457.                   the new child's (syslistview32) update rectangle stays empty
  2458.                   after its parent is made visible with ShowWindow
  2459.                   TODO: find real cause
  2460.     - MSACM32:  o Ported latest Wine version
  2461.     - WINMM:    o Ported latest Wine driver.c (necessary for msacm32 update)
  2462.     - DDRAW:    o Back buffer fix; setup surface descriptor structure and
  2463.                   don't clear DDSCAPS_BACKBUFFER flag
  2464.                   (fix for WinDVD)
  2465.                 o SurfLock:  hEvent can be 0 as long as the DDLOCK_EVENT flag
  2466.                   isn't set.
  2467.                   Size of lpSurfaceDesc can be sizeof(DDSURFACEDESC2).
  2468.                   (fix for WinDVD)
  2469.     - KERNEL32: o Check executable type (VIO/GUI) in CreateProcess and launch
  2470.                   correct version of the pe loader (PE/PEC)
  2471.  
  2472.  2001-04-02: Michal Necasek <michalnec@volny.cz>
  2473.     - KERNEL32: o Fix for importing from executable
  2474.                   (fixes Blade Runner)
  2475.     - TESTAPP\EXCEPTIONS:
  2476.                 o Small test apps to test exception handling
  2477.  
  2478.  2001-04-01: Sander van Leeuwen <sandervl@xs4all.nl>
  2479.     - WININET:  o Added missing exports to wininet.def
  2480.     - KERNEL32: o Removed yesterday's codepage change.
  2481.                   (breaks Opera)
  2482.     - WINMM:    o Increased nr of DART buffers used for wave playback
  2483.     - ODININST  o Moved kernel32 init code into odininst
  2484.                 o Create [HKEY_USERS\.DEFAULT\Control Panel\International]
  2485.                   registry key with international settings
  2486.     - USER32:   o Create dialog controls with CreateWindowExW
  2487.                 o Use correct SendMessage(A/W) call during CreateWindow
  2488.  
  2489.  2001-03-31: Sander van Leeuwen <sandervl@xs4all.nl>   
  2490.     - KERNEL32: o Fix for loading executable with sections not starting on
  2491.                   page boundary (LOAD_LIBRARY_AS_DATAFILE).
  2492.                   (fixes crash during install of latest RealPlayer 8)
  2493.                 o Change default code page back from 1252 to 0. 
  2494.                   (fixes umlauts in StarOffice 5.2)
  2495.                   TODO: Need to find out how SO determines the codepage
  2496.     - USER32:   o WindowFromPoint now works with overlapping siblings too
  2497.                 o Bugfix in mouse message translation
  2498.     - COMCTL32: o Resynced with Wine (pager, datetime, flatsb, comboboxex, monthcal)
  2499.                 o Fixed previous merge (INFOPTR structures too small)
  2500.                 o Corrected ordinals of a lot of exports
  2501.                 o Fixed bug in animate control merge; now it works again
  2502.  
  2503.  2001-03-30: Sander van Leeuwen <sandervl@xs4all.nl>   
  2504.     - USER32:   o Rewrote WM_NCHITTEST handling. No longer relies on PM.
  2505.                 o Put static control hittest workaround inside #ifndef ODIN_HITTEST 
  2506.                   statement (see 2001-03-25)
  2507.                 o Send WM_NCHITTEST messages from WindowFromPoint + added
  2508.                   checks (more like Wine now)
  2509.                   TODO: New version isn't 100% correct. Doesn't take overlapping
  2510.                         windows into account when window is transparent. Always 
  2511.                         continues with parent window.
  2512.                 o Make copy of class icon in RegisterClassA/W (for hIconSm)
  2513.                   (done by Wine)
  2514.                 o Changed COLOR_APPWORKSPACE system color. Lotus Notes main window
  2515.                   background now correct.
  2516.                   (TODO: many differences with Wine's system color table; why?)
  2517.  
  2518.  2001-03-29: Sander van Leeuwen <sandervl@xs4all.nl>   
  2519.     - KERNEL32: o CreateFile (disk): disable error popus. NT allows an app to 
  2520.                   open a cdrom/dvd drive without a disk inside.
  2521.                   OS/2 fails in that case with error ERROR_NOT_READY
  2522.                   Ignore that error and return success.
  2523.                   (removes annoying popups when starting windvd without DVD
  2524.                    disk in drive)
  2525.     - GDI32:    o Get correct height & width of HDC in DIB section blitting
  2526.                   (fixes wrong (button) controls in WinDVD's control panel window)
  2527.  
  2528.  2001-03-28: Sander van Leeuwen <sandervl@xs4all.nl>   
  2529.     - KERNEL32: o GetSystemPowerStatus fix; SYSTEM_POWER_STATUS structure
  2530.                   definition was wrong.
  2531.                   (fixes crash in WinDVD)
  2532.                 o Added translation for ERROR_NOT_READY to error2WinError
  2533.     - DDRAW:    o Return proper error code for unsupported FOURCC surface 
  2534.                   creation
  2535.  
  2536.  2001-03-27: Sander van Leeuwen <sandervl@xs4all.nl>   
  2537.     - USER32:   o Rewrote cursor handling. No longer use Open32, but convert
  2538.                   cursor to OS/2 format during creation.
  2539.                   (also fixes crash during WinDVD startup)
  2540.                 o Ported Wine's cursor/icon cache code. Odin no longer
  2541.                   leaks memory when apps reload icons/cursors.
  2542.                 o Check for DIB section selection in ReleaseDC and unselect it.
  2543.                   (only for non-CS_OWNDC hdcs)
  2544.     - KERNEL32: o Removed cursor & cursor group conversion code
  2545.     - GDI32:    o SelectObject fixes for DIB sections
  2546.                 o Check for DIB section selection in DeleteDC and unselect it.
  2547.                   (fixes crash in WinDVD)
  2548.  
  2549.  2001-03-27: Michal Necasek <michalnec@volny.cz>
  2550.     - OPENGL:   o Less stict parameter checking in wglSetPixelFormat
  2551.                   (fixes the game Hitman)
  2552.  
  2553.  2001-03-25: Michal Necasek <michalnec@volny.cz>
  2554.     - KERNEL32: o Turn off all optimizations for exceptions.cpp in release build (!)
  2555.     - DINPUT/USER32:
  2556.                 o Fixed keyboard handling. Now arrow keys should work right
  2557.                   on both numpad and the separate arrow block among other things.
  2558.  
  2559.  2001-03-25: Sander van Leeuwen <sandervl@xs4all.nl>
  2560.     - USER32:   o If a static window has children, then we can't return HTTRANSPARENT
  2561.                   for WM_NCHITTEST. For some reason PM then sends all mouse messages 
  2562.                   to the parent of the static window; even if they are intended 
  2563.                   for the children of the static window.
  2564.                   TODO: This could break some win32 apps (parent not receiving mouse
  2565.                         message for static window (non-child) area)
  2566.                         Rewrite NCHITTEST handling. (don't use PM)
  2567.                   (fixes Roger Wilco config window input)
  2568.                 o Call GlobalAddAtomA/W in RegisterWindowMessageA/W
  2569.                   (don't use Open32)
  2570.     - KERNEL32: o OSLibStripPath bugfix (wrong comparison if path contains
  2571.                   both back- and forward slashes)
  2572.  
  2573.  2001-03-24: Sander van Leeuwen <sandervl@xs4all.nl>
  2574.     - WINMM:    o mmsystemGetVersion returned wrong version. Should be 0x030A.
  2575.                   (returned in NT4, SP6)
  2576.                 o Ported Wine's PlaySoundA/W, sndPlaySoundA/W
  2577.                 o Enabled DirectAudio interface code for wave playback
  2578.                   (available in upcoming SB Live driver version 0.70)
  2579.                   (works well with WinAmp 2.72)
  2580.     - USER32:   o GetAsyncKeyState implemented (calls Open32)
  2581.  
  2582.  2001-03-23: Sander van Leeuwen <sandervl@xs4all.nl>
  2583.     - WINMM:    o Wrong calling convention for timer thread handler (os2timer.cpp)
  2584.                 o Preliminary code for DirectAudio wave playback (new audio
  2585.                   interface in the upcoming SB Live driver)
  2586.                 o Rewrote DART wave playback & recording classes
  2587.                 o Added support for more callback types (event, thread)
  2588.                 o Fixed wrong callback parameter (window callback) for waveIn/OutReset
  2589.                   Note: Untested code. Will be tested & fixed tomorrow.
  2590.  
  2591.  2001-03-22: Sander van Leeuwen <sandervl@xs4all.nl>
  2592.     - KERNEL32: o Ported Wine's GetBinaryTypeA/W
  2593.                 o Wrote assembly wrapper for thread handler calling to cope with
  2594.                   buggy applications that use the wrong calling convention for
  2595.                   thread handlers. (like @#$@#% PowerDVD)
  2596.                   (fixes crash in PowerDVD with release build of kernel32)
  2597.  
  2598.  2001-03-22: Michal Necasek <michalnec@volny.cz>
  2599.     - USER32:   o Show the mouse pointer in the exitlist handler of user32.
  2600.                   (should restore the mouse pointer after a game crashes)
  2601.  
  2602.  2001-03-21: Sander van Leeuwen <sandervl@xs4all.nl>
  2603.     - KERNEL32: o Added support for disabling logging for a specific thread
  2604.     - WINMM:    o Pause playback after underrun & restart it properly when
  2605.                   new buffers arrive.
  2606.  
  2607.  2001-03-20: Michal Necasek <michalnec@volny.cz>
  2608.     - include/DDRAW:
  2609.                 o Cleaned up so that it builds with Watcom. Still lots
  2610.                   of warnings and Watcom build doesn't seem to work right now.
  2611.  
  2612.  2001-03-21: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2613.     - Odin32Api:
  2614.                 o Added sample makefile (from the Generic SDK sample)
  2615.                    (Just remeber to rename the generic.rc to resource.orc.)
  2616.  
  2617.  2001-03-20: Sander van Leeuwen <sandervl@xs4all.nl>
  2618.     - DPLAYX:   o Fix for nameless unions & VAC 3.6.5 (makefile)
  2619.  
  2620.  2001-03-19: Sander van Leeuwen <sandervl@xs4all.nl>
  2621.     - KERNEL32: o Fail properly when dll can't be found (pe loader)
  2622.     - WINMM:    o Do not pause wave stream after underrun. Stop it instead.
  2623.                   (writing audio buffers to a paused stream crashes MMPM2)
  2624.                   (fixes crash while playing movie in PowerDVD)
  2625.                 o Added level 2 logging support.
  2626.                 o Recording callback bugfix
  2627.                 o Several playback changes & fixes
  2628.                 o Do not use TIB selector of thread that issues waveOut/InOpen.
  2629.                   Instead query selector of main thread in DART callback thread.
  2630.                   (fixes crash in WinAmp when pressing stop; thread that opened
  2631.                    the playback stream is terminated before the stream is stopped)
  2632.     - GDI32:    o Check y inversion when resyncing dib section
  2633.  
  2634.  
  2635.  2001-03-19: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2636.     - Pe2Lx:    o Convert CUI subsystem to VIO apps. CUI applications will
  2637.                   now work as executed thru pec.exe.
  2638.     - Kernel32: o Init VIO Console for Pe2Lx CUI images.
  2639.  
  2640.                   [DirectDraw]
  2641.                   Fullscreen=[True|False|0|1]
  2642.  
  2643.                   Don't blame me if your machine goes up in smoke after you've
  2644.                   turned fullscreen on ;-)
  2645.                   Note: It seems that fullscreen currently doesn't work right
  2646.                   with newer SDD releases for 8bpp apps, though 16/24/32bpp
  2647.                   should be OK (palette setting problems)
  2648.  
  2649.  2001-03-15: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2650.     - tools/dailbuild:
  2651.                 o Added jade and DocBook to the environment.
  2652.     - include/win32k.h:
  2653.                 o Defines OBJ_ANY on demand. (For use with DosAllocMemEx().)
  2654.     - tools/fastdep:
  2655.                 o Ported to NT by faking the necessary OS/2 APIs.
  2656.                   Tested with Watcom C/C++ v11.0.
  2657.                   Makefile target: fastdepnt.exe
  2658.  
  2659.  2001-03-14: Markus Montkowski <mmontkowski@gmx.de>
  2660.     - DPLAYX:   o Sync with latest WINE stuff
  2661.     - include\win\dplay.h   o Syncd with WINE
  2662.     - include\win\dplobby.h o Syncd with WINE
  2663.  
  2664.  2001-03-14: Bart van Leeuwen <Bart_van_Leeuwen@netage.nl>
  2665.     - USER32:   o Wrong setting of fErase in PAINTSTRUCT (BeginPaint)
  2666.                   (fixes background in CDRLabel)
  2667.  
  2668.  2001-03-13: Sander van Leeuwen <sandervl@xs4all.nl>
  2669.     - KERNEL32: o Removed include <builtin.h> from several files. (no longer necessary)
  2670.     - KERNEL32/USER32/GDI32/Dllentry/SHELL32/WINMM/WSOCK32
  2671.                 o Dll entrypoint changes for Watcom
  2672.     - USER32:   o Set last error to ERROR_INVALID_WINDOW_HANDLE if application
  2673.                   passes invalid window handle to BeginPaint.
  2674.                   (verified in NT4, SP6)
  2675.  
  2676.  2001-03-12: Sander van Leeuwen <sandervl@xs4all.nl>
  2677.     - KERNEL32: o Fix for SearchPathA with NULL parameter for output buffer
  2678.                   (reported by Ahti Heinla)
  2679.     - USER32:   o Fail if BeginPaint is called with NULL PAINTSTRUCT pointer
  2680.                   (verified in NT4, SP6)
  2681.     - DDRAW/DSOUND:
  2682.                 o Removed #ifdef IBMCPP statements (moved into initdll.h).
  2683.  
  2684.  2001-03-11: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2685.     - Win32k, Pe2Lx, Elf2Lx, Xx2Lx:
  2686.                 o Made generic Xx2Lx util for both Pe2Lx and Elf2Lx
  2687.                   (and any future loaders).
  2688.                   Pe2Lx.exe is now named Xx2Lx.exe!
  2689.                 o Makefile fixes.
  2690.                 o Elf2Lx compiles (non-working dummy).
  2691.                 o Fixed vprint and vprintf16 to not skip multiple LF/CRs.
  2692.  
  2693.     - Configure.cmd:
  2694.                 o Changed to configure Win32k as well. Re-run Configure.cmd!!!
  2695.  
  2696.  
  2697.  2001-03-07: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2698.     - Win32k:   o Fixed trap in k32QuerySystemMemInfo when
  2699.                   VIRTUALADDRESSLIMIT=512.
  2700.  
  2701.  2000-03-06: Michal Necasek <michalnec@volny.cz>
  2702.     - include   o More changes and fixes for Watcom
  2703.  
  2704.  2001-03-02: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2705.     - Win32k:   o Fixed some 16-bit compiler problems.
  2706.                 o Fixed 4.51 toolkit problems.
  2707.  
  2708.  2001-02-29: Sander van Leeuwen <sandervl@xs4all.nl>
  2709.     - KERNEL32: o First check executable name during internal dll loading
  2710.                   then try loading it as a dll.
  2711.                 o Reroute ReadFile for standard handle class to Open32.
  2712.  
  2713.  2001-02-28: Sander van Leeuwen <sandervl@xs4all.nl>
  2714.     - KERNEL32: o Added support for high memory override key in odin.ini:
  2715.                   [ODINSYSTEM]
  2716.                   HIGHMEM=0
  2717.                   Turns off high memory usage in Odin. Useful for Warp 4 (>fp12)
  2718.                   systems that still use the old 16 bits TCPIP stack.
  2719.                   (temporary workaround)
  2720.                   NOTE: Turning this option off will prevent Odin from running
  2721.                         applications that must be loaded in high memory
  2722.                         (like MS Word).
  2723.     - NTDLL:    o Committed update from Jan. 25th:
  2724.                   Ported latest NtQuerySystemInformation from Wine
  2725.                   (includes fix for IE5 install)
  2726.     - include\odinwrap.h:
  2727.                 o Wrappers only detect FS problems when they should correct them.
  2728.                   (fixes FS corruption in wsock32 (WSAStartup/WSACleanup))
  2729.  
  2730.  2001-02-27: Sander van Leeuwen <sandervl@xs4all.nl>
  2731.     - WINMM:    o Added recording (still untested)
  2732.                 o waveOutReset bugfix
  2733.                 o Compile fix (midi.cpp)
  2734.     - USER32:   o Ported latest wsprintf Wine functions (not much changed; only
  2735.                   to stay in sync)
  2736.  
  2737.  2001-02-26: Sander van Leeuwen <sandervl@xs4all.nl>
  2738.     - WINMM:    o Fixed FS corruption in RTMidi class (wrappers for RTMIDI
  2739.                   functions)
  2740.  
  2741.  2001-02-25: Sander van Leeuwen <sandervl@xs4all.nl>
  2742.     - KERNEL32: o Check executable too when searching for imported modules
  2743.                   (directly imported by PE dlls)
  2744.  
  2745.  2001-02-24: Sander van Leeuwen <sandervl@xs4all.nl>
  2746.     - KERNEL32: o Set fExitProcess flag in WinExe destructor to prevent reloading
  2747.                   dlls after loading of exe failed.
  2748.  
  2749.  2001-02-23: Sander van Leeuwen <sandervl@xs4all.nl>
  2750.     - GDI32:    o Removed old workaround for SetDIBitsToDevice. Incorrect for
  2751.                   new implementation of this function with StretchDIBits.
  2752.                   (fixes bitmaps in Minesweeper)
  2753.     - USER32:   o WM_SETCURSOR change; don't check WS_EX_NOPARENTNOTIFY style
  2754.                   when sending this message to the parent of a child window.
  2755.                 o Redraw entire window when switching between minimized, maximized
  2756.                   and restored windows state.
  2757.                 o Added missing cursor to MDI client class
  2758.                   (cursor now changes when moving cursor from mdi child to
  2759.                    client window)
  2760.     - USER32, include\win\drive.h:
  2761.                 o DRIVE_GetDosCwd bugfix
  2762.                   (fixes crash in Cool Edit old-style file open dialog)
  2763.  
  2764.  2000-02-22: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2765.     - Win32k:   o Support for the 14062e kernels.
  2766.                 o Removed the CALLTAB segment.
  2767.                 o Hooked dh_SendEvent and RASRST for taskmanager hot-key support.
  2768.                 o Enabled callgate on SMP kernel.
  2769.  
  2770.  2001-02-22: Sander van Leeuwen <sandervl@xs4all.nl>
  2771.     - KERNEL32: o Changed error string when detecting version mismatch.
  2772.     - USER32:   o Fixed incorrect index checking for class and window words.
  2773.                 o Allow misaligned access to window words/longs
  2774.                   (fixes crash in Quicken 99)
  2775.                 o More minimize changes/fixes for MDI windows.
  2776.                 o Update region fix in NotifyFrameChanged method
  2777.  
  2778.  2001-02-21: Sander van Leeuwen <sandervl@xs4all.nl>
  2779.     - USER32:   o Changes for minimizing windows. Not done yet.
  2780.                 o Added CreateFakeWindowEx.
  2781.                   Turns native OS/2 window into window recognized by Odin (with
  2782.                   only very limited functionality)
  2783.                   Useful for creating an Odin window with an OS/2 window as
  2784.                   parent.
  2785.  
  2786.                   Applications don't expect WM_NULL when fetching mouse
  2787.                   messages from the queue.
  2788.                   (fixes mouse jumping in Unreal)
  2789.  
  2790.  2000-02-20: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2791.     - Win32k:   o Moved calltabs to the code segments. Clears the
  2792.                   WriteProtect(WP) flag in CR0 to be able to do this. The flags
  2793.                   is of course restored when the calltabs are written.
  2794.                 o Completed callgate code. Though is not activated for SMP
  2795.                   kernels yet as I haven't tested that yet.
  2796.                   The callgate works just as any other callgate in OS2, it
  2797.                   calls kernel routines for entry and exit housekeeping.
  2798.                 o Updated the win32k library and header to accomodate this.
  2799.                   All IOCtl structures are changed.
  2800.                   So, Install the new the new Odin32 and reboot before using
  2801.                   it so the new win32k.sys is installed.
  2802.  
  2803.  2001-02-20: Sander van Leeuwen <sandervl@xs4all.nl>
  2804.     - USER32:   o Fix for position of system menu in (mdi) child windows
  2805.                 o Use WinScrollWindow to scroll children again and manually
  2806.                   notify children that they have moved. (PM only does this
  2807.                   for windows with CS_MOVENOTIFY class)
  2808.                   (much smoother scroll in Opera)
  2809.                 o Use WinGetMaxPosition to determine default maximized position
  2810.                   of toplevel window before sending WM_GETMINMAXINFO
  2811.                   (maximized Odin windows no longer obscure WarpCenter)
  2812.                 o Activation fixes for MDI windows
  2813.  
  2814.  2000-02-19: Oliver Braun <Oliver.Braun@hamburg.de>
  2815.     - KERNEL32: o OSLibDosAllocMem fix (better checks for errors + return
  2816.                   4kb aligned memory if 64kb alignment fails)
  2817.                   (fixes StarOffice 5.2 install)
  2818.  
  2819.  2000-02-19: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2820.     - KERNEL32: o Use DosAllocMemEx to 64KB align memory (OSLibDosAllocMem)
  2821.                   when available.
  2822.     - Win32k:   o Prepared API code for both callgate and IOCtl invokation.
  2823.                   This caused changes in IOCtl parameter structures.
  2824.                   Callgate code is completed but not used yet because
  2825.                   it isn't tested yet.
  2826.  
  2827.  2001-02-19: Sander van Leeuwen <sandervl@xs4all.nl>
  2828.     - COMDLG32: o Commented out Norse ChooseFont dialog (incomplete translation)
  2829.                   Use the English version instead.
  2830.     - USER32:   o Corrected invalidating nonclient parts of a window after a resize.
  2831.                   (fixes resizing of mdi windows in mdi sample)
  2832.  
  2833.  2000-02-18: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2834.     - Win32k:   o Finished implementation of DosAllocMemEx.
  2835.                   DosAllocMemEx is equal to DosAllocMem but takes some extra
  2836.                   OBJ_ flags (defined in win32k.h).
  2837.                   TODO: "Grow arena" problem when allocating memory at a
  2838.                   specific location. I'll fix this ASAP and add a fix for the
  2839.                   loader too (which has the same problems with loading EXEs
  2840.                   without fixup above 64MB).
  2841.  
  2842.  2001-02-18: Sander van Leeuwen <sandervl@xs4all.nl>
  2843.     - USER32:   o Restore window origin in SetWindowPos for parent window with
  2844.                   CS_OWNDC style.
  2845.                   Do the same thing in WM_VRNENABLED message handler.
  2846.                   (fixes paint offset problems in Opera windows)
  2847.                 o Bug in yesterday's ScrollWindowEx fix
  2848.                   (fixes smooth scrolling of child windows in Opera html window)
  2849.                 o Detect DestroyWindow call during CreateWindowEx and delay
  2850.                   deleting the window/dialog object.
  2851.                   (fixes crash in Opera when going to fullscreen mode)
  2852.  
  2853.  2000-02-17: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2854.     - Win32kCC: o Rewrote to notebook. (fixes size problem)
  2855.                 o Added memoryinfo page which is refreshed every second.
  2856.  
  2857.  2000-02-17: Yuri Dario <mc6530@mclink.it>
  2858.     - INCLUDE:  o Header changes for compiling Opera
  2859.  
  2860.  2001-02-17: Sander van Leeuwen <sandervl@xs4all.nl>
  2861.     - USER32:   o Store active status in custom window word. QWS_FLAGS appears
  2862.                   to be modified by PM somewhere.
  2863.                   (fixes WM_ACTIVATE loop in Opera when maximizing or restoring
  2864.                    the mdi window)
  2865.                 o Don't include RDW_NOERASE flag in InvalidateRect/Rgn
  2866.                   (fixes background erase for mdi client window in Opera)
  2867.                 o IsChild only checked the direct parent of a window. Must
  2868.                   check all parents (parents of parents etc)
  2869.                   (fixes TAB handling in Opera dialogs)
  2870.                 o Ported latest GetNextDlgTabItem from Wine
  2871.                   (fixes TAB handling in Opera dialogs)
  2872.                 o WM_ADJUSTWINDOWPOS bugfix (if app changes size/position)
  2873.                   OSLibMapWINDOWPOStoSWP can add flags, but we must not let
  2874.                   it remove flags.
  2875.                   (fixes resizing of Opera MDI windows)
  2876.                 o ScrollWindow(Ex) bugfixes
  2877.                   Must scroll child windows manually
  2878.                   (fixes scrolling of Opera html MDI windows)
  2879.                 o Combobox fix from Wine (CBCalcPlacement)
  2880.                   (fixes combobox controls in Opera html MDI windows)
  2881.                   (TODO: sync rest with latest Wine control code)
  2882.  
  2883.  2001-02-15: Sander van Leeuwen <sandervl@xs4all.nl>
  2884.     - COMDLG32: o Ignore OFN_FILEMUSTEXIST flag in GetSaveFileNameA/W
  2885.                   (NT4 seems to ignore it too and it fixes the save dialog
  2886.                    in ElstarFormular 2000)
  2887.  
  2888.  2001-02-14: knut stange osmundsen <knut.stange.osmundsen@mynd.no>
  2889.     - Win32k.lib:
  2890.                 o Corrected build breaker: log.h should not be included.
  2891.                   log.h was removed from the CINLCUDES two days ago.
  2892.  
  2893.  2001-02-14: Sander van Leeuwen <sandervl@xs4all.nl>
  2894.     - KERNEL32: o Allocate TLS index of module before loading the dll it needs
  2895.                   (some apps assume their executable index is always zero)
  2896.                   (fixes crash in BrMSX)
  2897.                 o Must use EXC_CallHandler to call RtlUnwind handler
  2898.                   (fixes crash during RaiseException in BrMSX)
  2899.     - OPENGL\GLU:
  2900.                 o Removed initterm.cpp. Use dllentry.obj instead
  2901.     - INCLUDE\misc.h:
  2902.                 o Print file and function name before executing an int 3. (DebugInt3)
  2903.     - *\initterm.cpp:
  2904.                 o Wrong calling convention for CRT_Init/Term, ctordtorInit/Term
  2905.                 o VAC 3.6.5 ctordtorInit/Term takes one parameter
  2906.     - USER32:   o Delay SetFocus when called during processing of WM_SETFOCUS
  2907.                   message (not allowed by PM).
  2908.                   (fixes keyboard focus in ElstarFormular 2000)
  2909.  
  2910.  2000-02-13: Michal Necasek <michalnec@volny.cz>
  2911.     - USER32:   o Wrong unicode<->ascii translation for some listbox & combobox
  2912.                   messages. Must check if the control style includes LB/CB_HASSTRINGS.
  2913.                   (CB_FINDSTRING, CB_FINDSTRINGEXACT, CB_SELECTSTRING,
  2914.                    LB_FINDSTRING, LB_FINDSTRINGEXACT, LB_SELECTSTRING)
  2915.  
  2916.  2001-02-12: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2917.     - Win32k.lib:
  2918.                 o Removed /src/win32k/include from the CFLAGS.
  2919.  
  2920.  2001-02-11: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2921.     - Win32k:   o Added symbols for the 14062D kernels.
  2922.                 o Added a query API for getting memory information.
  2923.                 o Added force preload option - should be very useful when
  2924.                   debugging Ring 3 apps with ICAT. (Option -F)
  2925.  
  2926.  2001-02-11: Sander van Leeuwen <sandervl@xs4all.nl>
  2927.     - ODINCRT:  o Completed runtime dll for VAC 3.6.5
  2928.     - WINMM, GLU, CRTDLL, KERNEL32:
  2929.                 o Compile fixes for VAC 3.6.5
  2930.     - RASAPI32: o Can't use LXLITE as it crashes on this binary
  2931.     - KERNEL32: o Check handle in LocalLock and return NULL if invalid
  2932.                   (some apps use LocalLock to get access to GDI objects; doesn't
  2933.                    work in Odin (TODO))
  2934.  
  2935.  2001-02-10: Sander van Leeuwen <sandervl@xs4all.nl>
  2936.     - USER32:   o Check if window has been destroyed before accessing
  2937.                   this pointer again in SendInternalMessage.
  2938.                   (fixes heap corruption in MS Visual C++ 4.2 install)
  2939.                   TODO: Needs a permanent and correct solution as this
  2940.                         can happen in several other places.
  2941.                         Also a potential problem in user32 controls (InfoPtr).
  2942.                 o Set last error to ERROR_INVALID_INDEX for invalid class word
  2943.                   index.
  2944.  
  2945.  2001-02-09: Sander van Leeuwen <sandervl@xs4all.nl>
  2946.     - COMCTL32: o Register controls in LibMain, not in DLL_InitTerm
  2947.     - KERNEL32: o Re-register dll if DosFreeModule failed with ERROR_INVALID_ACCESS
  2948.                   Dll refuses to unload if it has an active exitlist handler
  2949.                   or depends on a dll that registered an exitlist handler.
  2950.                   In this case the handle remains valid and the entrypoint of
  2951.                   the dll is NOT called for DLL_PROCESS_DETACH. The next time
  2952.                   DosLoadModule is called, the entrypoint (and RegisterLXDll)
  2953.                   isn't called (DLL_PROCESS_ATTACH).
  2954.                   WORKAROUND: Re-register the dll so future functions that
  2955.                               use this dll calls don't fail.
  2956.                   (fixes crash in shell32 in TextPad 4)
  2957.                 o shared & code heap umalloc changed (now more meaningful debug
  2958.                   messages in case of heap corruption)
  2959.     - USER32:   o WM_MINIMIZE/WS_MAXIMIZE support added to CreateWindow
  2960.                   (fixes size of main InstallShield window for Microsoft Visual
  2961.                    C++ 4.2)
  2962.                 o Fixed FS corruption in DIALOG_DlgDirList (c library function calls)
  2963.  
  2964.  2001-02-08: Sander van Leeuwen <sandervl@xs4all.nl>
  2965.     - KERNEL32: o Standard in/out/error handle fix. Disable change during
  2966.                   console init.
  2967.                   (fixes output of console applications; input doesn't work well yet)
  2968.     - USER32:   o Dialog control fix. Creating them with CreateWindowExW does not
  2969.                   work since our standard user32 controls are still ASCII.
  2970.                   (fixes missing icon control in Acrobat Distiller window)
  2971.  
  2972.  2001-02-08: Michal Necasek <michalnec@volny.cz>
  2973.     - KERNEL32: o RtlUnwind bugfix
  2974.  
  2975.  2001-02-04: Sander van Leeuwen <sandervl@xs4all.nl>
  2976.     - USER32:   o Wrong error set in GetDlgItem. Must be ERROR_CONTROL_ID_NOT_FOUND.
  2977.                   (verified in NT4, SP6)
  2978.  
  2979.  2001-02-03: Sander van Leeuwen <sandervl@xs4all.nl>
  2980.     - USER32:   o Get/SetWindowLongA/W, Get/SetWindowWord: must set
  2981.                   last error to ERROR_INVALID_WINDOW_HANDLE if window not found.
  2982.                   (verified in NT4, SP6)
  2983.                   Must also return ERROR_INVALID_INDEX if index is out of range.
  2984.                   (used to return ERROR_INVALID_PARAMETER) (verified in NT4, SP6)
  2985.                 o Temporary hack to force focus to newly created window
  2986.                   (if no Odin window has focus after sending WM_ACTIVATE, set
  2987.                    focus to window that received the activate message)
  2988.                   (fixes wrong keyboard focus in RealPlayer 8)
  2989.  
  2990.  2001-02-02: Sander van Leeuwen <sandervl@xs4all.nl>
  2991.     - USER32:   o DrawEdge bugfixes (signed/unsigned char mismatches)
  2992.                   (fixes lines in properties dialog of RealPlayer 8)
  2993.                 o Fixed incorrect rounding in dialog control size calculation
  2994.                   (fixes wrong height of some dialog controls (rp8 pref. dialog lines))
  2995.                 o Don't unregister class if there are still windows that use it.
  2996.  
  2997.  2001-02-02: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  2998.     - Win32k:   o Added option for the All-In-One-Object fix to be able
  2999.                   to debug PE executables thru the ICAT. Works with pe2lx
  3000.                   and win32k.sys.
  3001.                   -1<+|-|[*]>
  3002.                     +: Applied when needed.                 (checked)
  3003.                     -: Never applied (use this to debug).   (not checked)
  3004.                     *: Allways applied. (default)           (gray)
  3005.                   It's also added to Win32kCC as a three state checkbutton.
  3006.  
  3007.                   WARNING! This option should only be used for debugging
  3008.                   and will cause your system to crash if used with based
  3009.                   images!
  3010.     - tools\Common:
  3011.                 o Minor changes in the fileformat classes to use kFile.
  3012.  
  3013.  2001-02-01: Sander van Leeuwen <sandervl@xs4all.nl>
  3014.     - GDI32:    o LineDDA fix (wrong calling convention)
  3015.                   (fixes crash in Solitaire)
  3016.     - USER32:   o clientHeight bugfix. Check hwnd instead of pHps->hwnd.
  3017.                   (pHps can be NULL)
  3018.                   (fixes crash in Solitaire)
  3019.     - INSTALL:  o Include ChangeLog-2001 in daily build
  3020.     - COMDLG32: o Merged some changes from Wine (extra notification in
  3021.                   FileOpenDlgProc95 & OFN_NOCHANGEDIR support (also added
  3022.                   to Unicode version of file open dialog))
  3023.                 o Removed workaround for Acrobat Reader file open dialog
  3024.                   (Wine update fixed it)
  3025.  
  3026.  2000-01-30: Markus Montkowski <mmontkowski@gmx.de>
  3027.     - KERNEL32: o Fixed handling of fbTimeout in DCBINFO in SetOS2DCB and
  3028.                   SetCommTimeouts the last one prevented Palms Hotsync to 
  3029.                   work with normal IBM com.sys.
  3030.                   SIO did less parameterchecking so it worked...
  3031.  
  3032.  2001-01-25: Sander van Leeuwen <sandervl@xs4all.nl>
  3033.     - KERNEL32: o Memory map commit bugfix for write accesses
  3034.                   (fixes eternal loop in OLE during IE5 install)
  3035.     - NTDLL:    o Ported latest NtQuerySystemInformation from Wine 
  3036.                   (includes fix for IE5 install)
  3037.     - OLE32:    o Resync with latest Wine (storage, stg_*)
  3038.  
  3039.  2001-01-24: Sander van Leeuwen <sandervl@xs4all.nl>
  3040.     - KERNEL32: o Default display and windows codepage set to 1252
  3041.  
  3042.  2001-01-23: Sander van Leeuwen <sandervl@xs4all.nl>
  3043.     - KERNEL32: o long2ShortName completely broken. now properly detects 8.3
  3044.                   filename and copies it (TODO: not finished)
  3045.                 o Set x position to 0 after seeing a linefeed in the WriteFile
  3046.                   datastream (vio console)
  3047.                   (Sun Java 1.3 output doesn't include carriage returns)
  3048.                 o ExitProcess change: make sure no threads are still suspended 
  3049.                   (with SuspendThread) by calling ResumeThread
  3050.                   OS/2 seems to be unable to terminate the process otherwise.
  3051.                   (fixes exitlist zombie after executing the Sun Java 1.3 interpreter)
  3052.                 o Added handle manager class for standard handles (in/out/error)
  3053.                   WriteFile for STD_OUTPUT_HANDLE & STD_ERROR_HANDLE now works.
  3054.     - PELDR:    o Don't strip quotes from cmd line parameter part.
  3055.                   (fixes Sun Java 1.3 JRE install (must replace 16 bits setup
  3056.                    with 32 bits version))
  3057.     - INCLUDE\win\thread.h:
  3058.                 o Wrong layout of TEB structure
  3059.                   (fixes crash in Sun Java 1.3 interpreter)
  3060.  
  3061.  2001-01-22: Sander van Leeuwen <sandervl@xs4all.nl>
  3062.     - KERNEL32: o CreateFileMapping fix; create new handle even when called
  3063.                   with name of existing map (and return ERROR_ALREADY_EXISTS)
  3064.                 o _HMHandleGetFree fix; handle allocation wasn't thread safe
  3065.                   (_HMHandleGetFree checks if hHMHandle == INVALID_HANDLE_VALUE,
  3066.                    but calling functions sets this value afterwards -> possible
  3067.                    that two threads allocate the same handle)
  3068.                   (solution: set hHMHandle in _HMHandleGetFree)
  3069.                   HMCreatePipe call also failed because of this. (two handles
  3070.                   allocated -> both allocate the same handle)
  3071.                 o HMCreatePipe change (free 1st handle if 2nd handle alloc fails)
  3072.     - DOC\Readme.txt:
  3073.                 o Added remark about the need to run odininst.exe when installing
  3074.                   Odin manually.
  3075.                 o Updates
  3076.  
  3077.  2000-01-21: Przemyslaw Dobrowolski <dobrawka@asua.org.pl>
  3078.     - WINMM/MCICDA:
  3079.                 o Track data fixes
  3080.  
  3081.  2001-01-20: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  3082.     - tools\dailybuild, include\versionos2.h:
  3083.                 o Fixed netlabs upload.
  3084.                 o Moved buildlevel info from versionos2.h to odinbuild.h.
  3085.  
  3086.  2001-01-20: Sander van Leeuwen <sandervl@xs4all.nl>
  3087.     - AVIFIL32: o Resynched with latest Wine code
  3088.                 o Added AVIStreamTimeToSample & AVIStreamSampleToTime stubs
  3089.     - SETUPAPI: o Wine port (stubs only)
  3090.  
  3091.  2001-01-20: Yuri Dario <mc6530@mclink.it>
  3092.     - USER32:   o Set codepage for DCs returned by GetDCEx
  3093.  
  3094.  2000-01-20: Przemyslaw Dobrowolski <dobrawka@asua.org.pl>
  3095.     - WINMM/MCICDA:
  3096.                 o MCI_STATUS_POSITION bugfix
  3097.  
  3098.  2001-01-19: Sander van Leeuwen <sandervl@xs4all.nl>
  3099.     - USER32:   o GetCaretPos & SetCaretPos bugfixes. Did not take client
  3100.                   window origin into account.
  3101.                   (fixes cursor position problems in e.g. Notepad)
  3102.  
  3103.  2000-01-19: Przemyslaw Dobrowolski <dobrawka@asua.org.pl>
  3104.     - WNASPI32: o DosCreateMutexSem call bugfix.
  3105.                   (CDRWIN works again)
  3106.  
  3107.  2001-01-19: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  3108.     - Win32k:   o Added support for kernel revisions. (like 14062A)
  3109.                 o Added build 14062a kernels.
  3110.                 o Added build 14062 kernels for Warp 4.
  3111.  
  3112.  2001-01-18: Sander van Leeuwen <sandervl@xs4all.nl>
  3113.     - GDI32:    o More logging
  3114.                 o Use StretchDIBits in SetDIBitsToDevice instead of Open32
  3115.                   function. (which doesn't work for compressed bitmaps)
  3116.                   (MS Excel 97 startup bitmap displays correctly now)
  3117.                   Also solves y inversion related problems.
  3118.                   (MS Developer startup bitmap overlay correct now (Visual C++ logo))
  3119.     - WGSS50:   o Reported problems with SaveDC/RestoreDC and StretchDIBits
  3120.                   (Modelator graphics corruption fixed)
  3121.     - KERNEL32: o Create system.ini with '[mci] cdaudio=mcicda.drv' section
  3122.                   during installation
  3123.                 o Fixed bug in lstrncpyA (return when specified length is 0)
  3124.                 o MultiByteToWideChar bugfix (calculate string length if input
  3125.                   length is -1 before checking if dest length is 0)
  3126.                   (MS Word 97 no longer crashes)
  3127.                 o RegQueryValueExW bugfix
  3128.                   (caused stack corruption in Excel and probably many other
  3129.                    apps that use this function too)
  3130.     - OLEAUT32: o Ported David's typelib changes.
  3131.                   (MS Word 97 starts immediately and doesn't spend an hour
  3132.                    searching for typelibs in dlls)
  3133.                   TODO: Check bugfixes/changes in latest Wine code and merge
  3134.                         them.
  3135.                   TODO: Port picture classes
  3136.  
  3137.  2000-01-17: Przemyslaw Dobrowolski <dobrawka@asua.org.pl>
  3138.     - WINMM\MCICDA:
  3139.                 o Wrong call to os2CDCloseTray
  3140.  
  3141.  2001-01-13: Sander van Leeuwen <sandervl@xs4all.nl>
  3142.     - COMDLG32: o Get current directory if initial dir == NULL (win31 style
  3143.                   file dialog).
  3144.                 o Fix for filter. (default to NULL; not " /0/0")
  3145.                 o Scale icons to 16x16 (win31 style file dialog) -> system
  3146.                   default (32x32) is too big. (TODO: Our user32 icons are too
  3147.                   big)
  3148.                 o Drive list not initialized correctly. (GetDriveTypeA return
  3149.                   value interpreted wrong)
  3150.                   -> use GetLogicalDrives instead to avoid accessing floppy
  3151.                      drives (which GetDriveType does)
  3152.     - USER32:   o Replaced some icons with those found in SHELL32:
  3153.                   - open & closed folder
  3154.                   - floppy, harddisk & network drive
  3155.                 o Fixed bug in NotifyFormatFrame method (fixes problems
  3156.                   with combobox)
  3157.                 o ComboLBox bugfix (extra vertical scrollbar)
  3158.                 o LISTBOX_Directory bugfix (must check for FILE_ATTRIBUTE_NORMAL)
  3159.                   (removes files from directory listing in common file dialog)
  3160.     - KERNEL32: o Fix for executable names with spaces in path
  3161.                 o Workaround for applications that block the PM input queue
  3162.                   while waiting for a child process to terminate.
  3163.                   (WaitSingleObject now calls MsgWaitMultipleObjects and
  3164.                    processes messages while waiting for the process to die)
  3165.                   (Napster install now doesn't block PM anymore (forcing a reboot))
  3166.                 o Add class keys for SHDOCVW during install
  3167.     - SHDOCVW:  o Added (Wine 20010112 port)
  3168.     - WSOCK32:  o Changed File and Product version to 0x0400, 0x0565012C (NT4, SP6)
  3169.  
  3170.  2001-01-12: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  3171.     - tools\install, tools\dailybuild:
  3172.                 o Added odincrt.dll to debug release (to make wgss50.dll happy).
  3173.  
  3174.  2001-01-11: Sander van Leeuwen <sandervl@xs4all.nl>
  3175.     - USER32:   o DrawIconEx bugfix (fixes bitmap menu item when maximizing
  3176.                   MDI window)
  3177.     - COMDLG32: o Added/Ported 16 bits common dialog Wine code.
  3178.                   (GetOpen/SaveFileName with hook and without OFN_EXPLORER
  3179.                    flag implies old Windows 3.1 style dialog)
  3180.                   (not completely working yet, but better than the mess we
  3181.                    saw before (InstallShield -> browse dir))
  3182.  
  3183.  2001-01-10: Sander van Leeuwen <sandervl@xs4all.nl>
  3184.     - KERNEL32: o Fix for WriteFile & ReadFile (wrong return code was expected)
  3185.     - USER32:   o HAS_THICKFRAME macro changed (identical to Wine now)
  3186.                   (fixes MDI window borders (which were too thin))
  3187.  
  3188.  2001-01-10: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  3189.     - tools\install:
  3190.                 o Corrected packing of wpss50.dll.
  3191.                 o Added .sym files to release distributions. (optional package)
  3192.  
  3193.     - tools\dailybuild:
  3194.                 o Removed uploading of glide-stuff.
  3195.  
  3196.  2001-01-09: Sander van Leeuwen <sandervl@xs4all.nl>
  3197.     - INCLUDE\dcdata, GDI32, USER32:
  3198.                 o Updates for WGSS50.
  3199.  
  3200.     - LIB\WGSS50.lib, BIN\WGSS50.dll:
  3201.                 o Binary distribution of WGSS50 added
  3202.  
  3203.  2001-01-09: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  3204.     - tools\dailybuild:
  3205.                 o Added wgss50.dll to the .ZIPs.
  3206.  
  3207.     - lib       o Added making of wgss50.lib.
  3208.                   (So, that it corresponds to the other libraries made there.)
  3209.                 o Converted wgss50.lib to a deffile.
  3210.  
  3211.  2001-01-08: Sander van Leeuwen <sandervl@xs4all.nl>
  3212.     - ReportingBugs.txt:
  3213.                 o Specify windows & system32 directory in bug reports
  3214.                   (description included on how to determine this)
  3215.  
  3216.  2001-01-08: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
  3217.     - tools\dailybuild:
  3218.                 o Updated with temporary server address.
  3219.                 o Put ftp userid/passwords into separate file.
  3220.                 o Build number incrementation. (Stored in versionos2.h)
  3221.                   (Use bldlevel on the DLLs to look at it.)
  3222.                 o Splitted out 3dxf/glide stuff into separat .zips.
  3223.  
  3224.     - Win32k:   o Added support for the ldrCheckInternalName bug. :-)
  3225.                   (see /src/win32k/ldr/myldrCheckInternalName.cpp for details.)
  3226.                 o Made pe.exe default.
  3227.                 o Added UNI and SMP 14062 kernels (convenience pack).
  3228.                   (Have anyone got the Warp 4 convenience pack with the right .sym files?)
  3229.  
  3230.     - bin\bldlevelinf.cmd:
  3231.                 o Removed colon after otherwise to make it work with Object REXX.
  3232.  
  3233.     - makefiles:
  3234.                 o Merged BuildLevel revisions with the LXOpt revisions.
  3235.                   (There seems like there have been some kind of revision mixup in
  3236.                    Sanders tree?)
  3237.                 o Updated the other post files with LXOpt.
  3238.  
  3239.  2001-01-06: Sander van Leeuwen <sandervl@xs4all.nl>
  3240.     - install:  o Win32k installation temporarily disabled due to a WarpIn bug
  3241.                   (config.sys lines removed)
  3242.                 o Update: This is NOT a WarpIn bug, but an error in the script.
  3243.                           Now fixed.
  3244.                 o Added check for WarpIn 0.9.6 or higher
  3245.                 o Added check for OS/2 3.x or higher
  3246.     - src\makefile:
  3247.                 o Exclude msvcrt from build process.
  3248.                   (download odinapp.zip from ftp.os2.org to install a small
  3249.                    MFC app with MFC + MSVCRT dlls)
  3250.  
  3251.  2001-01-05: Sander van Leeuwen <sandervl@xs4all.nl>
  3252.     - makefiles:o Use LXLite for release build binaries (better compression)
  3253.                   Can't use it for debug binaries as IPMD doesn't like it.
  3254.  
  3255.  2001-01-02: Sander van Leeuwen <sandervl@xs4all.nl>
  3256.     - KERNEL32: o KERNEL32_99 should return 1 (according to Wine)
  3257.                 o KERNEL32_100 export added (stub)
  3258.     - USER32:   o Rewrote window handle management; only start reusing window
  3259.                   handles when max handle has been assigned.
  3260.     - GDI32/USER32/KERNEL32:
  3261.                 o Don't export private Odin functions by name (we import
  3262.                   everything by ordinal)
  3263.  
  3264.  2001-01-01: Sander van Leeuwen <sandervl@xs4all.nl>
  3265.     - USER32:   o Menu cast bugfix (bitmap handle is 32 bits)
  3266.                   (Fixes menu bitmaps in Lotus Notes 5)
  3267.  
  3268.