/* $Id: ChangeLog-2000,v 1.8 2001-01-05 23:27:13 sandervl Exp $ */ 2000-12-31: Sander van Leeuwen - KERNEL32: o Implemented ReadFile/WriteFile for COM devices (UNTESTED) - ODINCRT: o Don't export anything by name (we import everything by ordinal and it saves 15k) 2000-12-30: Sander van Leeuwen - INSTALL: o Don't include odin.ini anymore. - KERNEL32: o Create 'Font Mapping' Odin.ini entry during WarpIn install (odininst execution) - GDI32: o System object can't be deleted (e.g. system pens & brushes) Check for those in DeleteObject. (TODO: also check for others (fonts)??) (Fixes missing background in DreamWeaver 4 demo install dialogs) 2000-12-29: Sander van Leeuwen - USER32: o Export OS2ToWin32Handle & Win32ToOS2Handle with stdcall calling convention. (not mangled) - GDI32: o Changes for above exports 2000-12-27: Jeroen van den Horn - WININET: o Resync with latest Wine + fixes/additions 2000-12-27: Yuri Dario - USER32: o Wrong flag check in SetWindowPos (didn't include e.g. SWP_NOSENDCHANGING) 2000-12-21: Sander van Leeuwen - USER32: o Fixed two FS bugs in main PM window handler. (FS not restored before returning) o Split up frame and child window PM handlers. o Don't send PM WM_ACTIVATE to child windows in WM_WINDOWPOSCHANGED (fixes some activation problems) o Put back code to add MDI windows to menu (latest update doesn't work) o Properly invalidate non-client area when SetWindowPos is called with SWP_FRAMECHANGED. (fixes menu switch) o SetParent bugfix; when putting window at the top of the z-order we mustn't activate it (SWP_NOACTIVATE) (fixes activate problem when starting up Lotus Notes 5) - OLEAUT32: o Ported latest Wine version (12-22-2000) (TODO: Port David's additions) - TOOLS\INSTALL: o 3Dfx glide & opengl removed from base install (download opengl3dfx.zip from ftp.os2.org if you need it) Dllfixes win32k feature disabled (enabled by default); it's causing too many problems right now. 2000-12-17: Sander van Leeuwen - USER32: o Call WH_CBT hook during OS/2 WM_CREATE message. Some apps rely on the window being valid when this hook is called. (Girotel used GetDC which previously failed) o Use different PM window class for child windows. Solves some focus problems. (TODO) o Some MDI changes/fixes (from Wine) 2000-12-16: Sander van Leeuwen - USER32: o Edit control: Limits removed. EM_SETTEXTLIMIT has no effect in NT4, SP6 (EM_GETTEXTLIMIT only returns that value). Limits are simply ignored, no EN_MAXTEXT notification is ever sent. (fixes license edit control in Microsoft Visual C++ 4.2 install) o Static control: SS_REALSIZEIMAGE is supposed to prevent control resizing, but that doesn't appear to happen in NT (although the SDK docs are very clear about this) Need to figure out why. (not resizing messes up the bitmap control in the Microsoft Visual C++ 4.2 install program) Same thing happens with a very simply test app, so the installer does nothing special. - WNASPI32: o Fixed bug in access aspi method. (wait check reversed) - MAKEFILES:o Update for overriding stack size of executables - PELDR: o Fixed makefiles (PEC was built as a PM app -> must be VIO!) - KERNEL32: o Only call DosGetNamedSharedMem & free view if map created by different process. (fixes hang in Lotus Notes 5) 2000-12-12: Sander van Leeuwen - KERNEL32: o GetVolumeInformationA bugfix (lpFileSystemNameBuffer == NULL & lpFileSystemFlags != NULL) o Wrong calls to VirtualFree in memory map & tls code (size must be zero) o Shared memory address retrieved with DosGetNamedSharedMem not properly freed 2000-12-12: knut st. osmundsen - Win32k: o Fixed problem with newer kernels having a different prolog to ldrCheckInternalName. (Seems like either new compiler or better optimization.) o Corrected bad loop condition in configure.cmd causing a neverending loop during build. - Win32kCC: o Corrected the setting of the -DllFixes parameter. - readme.txt: o Corrected minor flaw: Win32k option "-PE" should be "-Pe". 2000-12-10: knut st. osmundsen - Win32k: o Fixed minor error in the *printf function. o Added the 14063 kernels (*1129[d].zip). o Removed OS/2 kernel limit for DLL name length. (Experimental - see readme.txt option -Dllfixes.) o Removed OS/2 kernel restriction for DLL extention. (Experimental - see readme.txt option -Dllfixes.) - readme.txt: o Updated win32k.sys with new parameter, -Dllfixes. 2000-12-09: Patrick Haller ú - KERNEL32: o accelerated FindFirst/FindNext calls (oslibdos.cpp)ú - makefile: o added support for "profile" debug buildú 2000-12-09: Sander van Leeuwen - GDI32: o Temporary fix for bugs introduced by recent handle changes. 2000-12-07: knut st. osmundsen - USER32: o Changed CFLAGS and CXXFLAGS overrides to a CDEFINES override. (This is the new way to alter the standard C and C++ defines.) 2000-12-07: Sander van Leeuwen - USER32: o Missing USING_OPEN32 define in makefile. Might be responsible for a lot of problems that have recently emerged. 2000-12-06: Sander van Leeuwen - USER32: o Must call selectClientArea after GpiSetClipRegion in BeginPaint When a window with CS_OWNDC looses focus, for some reason GpiSetClipRegion resets the window dc origin back to (0,0). (fixes e.g. Visual C++ 4.2 setup when switching between setup window & another app) - KERNEL32: o Rewrote GetLogicalDrives o Minor fixes for GetDriveType (return value equals DRIVE_NO_ROOT_DIR for junk input; does not change last error) 2000-12-06: Patrick Haller - USER32: o added debug macros to HOOK_ functions - GDI32: o added debug macros to Font related functions 2000-12-05: Sander van Leeuwen - USER32: o 16 bits menu handles are now supported (fixes crash in MultiEdit) - GDI32: o Changes to local object handle management (for user32 menus) - KERNEL32: o Don't assume resources start at section boundary. Must use DataDirectory virtual address. (fixes winrar self-extracting executables) 2000-12-03: chris.wohlgemuth - KERNEL32: o Fix for TVFS & GetDiskFreeSpaceA (Windows Media Player install complains about cluster size) (DRIVESPACE section, key CLUSTERTO32 in odin.ini) o Fix in PROFILE_GetSection for crash in Windows Media Player install - WINMM: o Ported Wine MCI code 2000-12-03: knut st. osmundsen - TOOLS\install: o More installation script fixes. - Win32k: o Fatal error! I mixed flags for C and C++ compilation during makefile rewrite. This caused C++ exceptionhandlers to be generated and registered, leading to Trap 000e during boot. o Confirmed working on the Warp 4 14.060 (at least halfstrict) kernel (w41106.zip). 2000-12-03: Sander van Leeuwen - TOOLS\install: o Installation script fixes. 2000-12-03: knut st. osmundsen - *, makefiles, pdwin32k.*, odin32.*.mk, Configure.cmd: o Made some addjustments to the makefiles. Most important eliminating nearly all ODIN32_ directory macros. o Changed all "PDWIN32_" to "ODIN32_". o Renamed pdwin32.$(CCENV).* to pdwin32.*.$(CCENV).mk and pdwin32.* to odin32.*.mk. o Added tiny rexx script, Configure.cmd, which generates a file with absolute directory macros; makefile.inc. Makefile.inc also includes /include/odin32.mk. NB. This script is automatically invoked the first time you start nmake or wmake on /makefile. o Restructured the win32k.sys makefiles. Now all but the win32k.sys makefile is using the new makefile style. o The tools makefiles are mostly according to the new style. o Compiler and debug/release specific library directory. ODIN32_LIB will now point to a compiler specific directory under /lib. Debug and release files are also separated. o The <>exp.def are now generated in the $(OBJDIR) directory. o .lib-files are also targeted to $(OBJDIR). o More Watcom friendly makefiles. (I didn't say that they are working with Watcom! I removed VAC dependencies when possibled or else tried to make wmake fail.) o Moved readmes in the /bin/glide tree to the source directories under opengl. - tools/install: o Removed odininst.wis - odin.cmd generates this. o Tried to make odin.cmd more readable; uses the wic.exe option -c to set current directory. ARG! Why can't wic.exe return anything but 0? When files aren't found for example, I have no way of finding it out. o Added package which adds win32k.sys to the config.sys. Seems like I have to add a file to that packet, so win32k.ddp works as dummy file. It also seems like there is a but in WarpIn 0.95 - it inserts the line between the '\r' and the '\n' chars at the end of the previous line. 2000-12-02: Sander van Leeuwen - KERNEL32: o Added renaming for MCICDA (MCICDA.DLL -> MCICDA.DRV) 2000-12-02: chris.wohlgemuth - WINMM\MCICDA: o Rewrote it for OS/2 2000-11-26: knut st. osmundsen - Win32kCC: o Fix bootdriveletter which jumped for each save. o Fixed shrinking of config.sys problem. 2000-11-28: Kai Sommerfeld - SHELL32: o Workaround for what seems to be a Wine bug dealing with the index of icons. (fixes wrong file open dialog icons) 2000-11-26: knut st. osmundsen - FastDep: o Added option '-x' to exclude files. - Win32k: o Exclude generated sourcefiles from dependencies. - Win32kCC: o Added support for updating config.sys settings. - KERNEL32: o Fix for CreateFile on readonly files with CREATE_ALWAYS_W. OPEN_ACTION_REPLACE_IF_EXISTS requires write access to the file. This broke typical install programs. 2000-11-25: Sander van Leeuwen - USER32: o ReleaseCapture fix (endless loop in MultiEdit) - KERNEL32: o Workaround for DosAllocSharedMem limitation. OS/2 does not accept shared memory names with colons. Replace them with underscores. (fixes crash at startup for PMMail 2000) 2000-11-24: Patrick Haller - WINMM: o FS: corruption fix in MixSetup->pmixWrite (DART) 2000-11-24: Sander van Leeuwen - USER32: o Don't send WM_CREATE or WM_NCCREATE messages to dialogs o Don't send WM_NCCALCSIZE to a dialog before it has received WM_INITDIALOG (looks like that's how NT4 SP6 does it) (fixes sysinf32 error messages about failure to create dialogs) o CopyIcon bugfix (CURSORICON_ExtCopy) 2000-11-24: Kai Sommerfeld - SHELL32: o Completed ICO_ExtractIconEx rewite o Changed shell32 icon lookup (IExtractIconA_fnGetIconLocation) o Added 45 shell icons + one Explorer icon (Icon author: Pierre Cavanna, Icon origin: http://www.iconstreet.com) 2000-11-24: Oliver Braun - OLE32: o Synched with latest OLE clipboard implementation 2000-11-23: Sander van Leeuwen - GDI32: o Fixed crash in SetDIBits method of DIB section class for compressed bitmaps. - KERNEL32: o Fix for launching apps with spaces in their pathname (CreateProcessA) o Fix for OpenFile and file names with too many backslashes (NT4, SP6 accepts e.g. m:\\\ikernel.ex_; DosOpen doesn't) o Same fix for CreateFile (same behaviour observed in NT4, SP6) - USER32: o Added localized resources (copied from Wine) 2000-11-22: Patrick Haller - CRTDLL: o Added some debug code, added missing exports ltow, ultow 2000-11-22: Sander van Leeuwen - USER32: o When application sends invalid brush in responds to WM_CTLCOLOR messages -> get default brush (by calling DefWindowProcA) (fixes white background of checkboxes in Adobe Distiller's option dialog) o Workaround added for bug in StretchDIBits when stretching AND mask of icons. Create bitmap and use StretchBlt to blit and stretch/shrink the icon mask. (fixes wrong icons for some executables (e.g. Napster) in the file open dialog) - GDI32: o Print warning when StretchDIBits is called with 1bpp bitmap data 2000-11-21: Patrick Haller - CRTDLL: o Merged with WINE code, numerous stubs resolved, many VAC CRT dependencies resolved with self-contained ODIN code 2000-11-21: Sander van Leeuwen - include\win\thread.h: o New TEB layout (like latest Wine) - include\versionos2.h: o Increased LX dll version (new dlls incompatible with old versions) - USER32,KERNEL32: o Changes for new TEB - OLE32: o Added CreateErrorInfo, GetErrorInfo & SetErrorInfo (Wine port) o Added Wine cursors to resource file - KERNEL32: o Be careful with terminating strings in lstrcpynAtoW/WtoA Must not always set the last character to 0; just terminate the string if it's shorter than the max size. Some apps send the wrong string size to apis that use this function (i.e. GetMenuStringW (Notes)) -> overwrites stack (fixes crash when activating menus in Lotus Notes 5) - USER32: o CopyImage bugfix (black icons in file dialog) 2000-11-21: Oliver Braun - USER32: o Added support for WM_DESTROYCLIPBOARD 2000-11-21: knut st. osmundsen - pdwin32.*: o Fighting with the Watcom compilers and WMAKE. Not at all completed. (Is now able to build fastdep.c - very usefull! ;-) ) - tools/install: o Corrected makefile. - fastdep: o Updated to compile with Watcom. - tools/common, tools/impdef: o Updated to new makefile style. 2000-11-20: Sander van Leeuwen - USER32: o Fixed bug in code that looks for the best icon (based on size/bpp) Don't use entry->ResInfo.icon.bColorCount, but entry->wBitCount instead. (Winamp 2.7 has icons with bColorCount set to 0 even though they're 8 bits) 2000-11-20: Michal Necasek - KERNEL32: o Updates and fixes for the debug api functions 2000-11-20: knut st. osmundsen - pdwin32.*: o Some sdjustments and corrections. o Flag macros can't be added and added and added and added to - NMAKE don't support it. o Use CreatePath.cmd to makesure that OBJDIR any target directory for a copy (CP) operation exists. o Use ExecExcl.cmd to execute ILINK execlusivly. Since running ILINK concurrently in two processes often failes. - src/makefile: o Changed the all rule. o Added two nice features to the all, build, lib(s), dep and clean rules:
  • MASSIVE. Define MASSIVE (on nmake commandline) and these rules will spawn a nmake child for each subdirectory.
  • SMP. Define SMP (on nmake commandline) and the subdirectories are traversed backwards. This replaces the makefile.smp stuff.
o smp rule - dual build. Build Odin as usual but first it spawns a child which builds Odin backwards (SMP=1). - makefile: o Updated the SMP ruls to use new src/makefile. - COMCTL32: o Removed debugtools.h. Yesterdays changes by Sander depended on debugtools.h found in include\win. o Added the missing IDS_SEPARATOR from the current Wine sources. 2000-11-19: Sander van Leeuwen - COMCTL32: o Resynced new Wine code with Christoph's unicode fixes (animate, comboboxex, datetime, monthcalc & flatsb) - USER32: o Another SetWindowPos fix for SWP_FRAMECHANGED (send WM_POSCHANGING/CHANGED messages) - PELDR: o Fixed makefiles. 2000-11-19: knut st. osmundsen - *: o New makefile style implemented in the entire tree; except for some unused makefiles. As last time everything went quite well excpet for the opengl and win32k trees which still are quite special cases (especially win32k). o The new makefile style is designed minimal, only specifying what really is unique for a makefile. All general stuff is placed in central makefiles (the pdwin32.*.* files). o It is meant to work with wmake too. But that's not quite ready and tested yet. o One of the more important changes are that C, C++ and resource include search path is define separatly as CINCLUDES. o The same goes for defines, they are defined as CDEFINES. There are two alternate CDEFINES macros; CDEFINES_ODINCRT and CDEFINES_WIN32APP. o All the PDWIN32_ directory macros o New LIBTARGET type of makefiles. o Many addtions, changes and corrections to the .post files. o Watcom main makefiles aren't quite up-to-date. o If there are any errors/problems Then If you can fix them Then Do fix them ASAP. Else Send a message ASAP to the win32os2-wai list. Endif Endif - PELDR: o Makefile splitted into pe.mak and pec.mak. - OLE32: o Makefile splitted into ole32.mak and regsvr32.mak. - MSCVRT: o Makefile splitted into msvcrt.mak, msvcrt20.mak and msvcrt40.mak. - OPENGL: o For some queer reason I had to add mem.c to the mesa/3dxf makefile. This might be an indication that something went wrong here but I am unable to figure it out. - NTDLL: o Added dllinitstub.asm instead of the compiler specific object file. Should perhaps be placed in dllentry and made ready for Watcom. - tools/database: o Fixed build bug. - tools/fastdep: o Fixed option -r. It changed the object extention in stead of the resource target extention. (Used to generated dependencies for .orc files now.) 2000-11-18: Sander van Leeuwen - USER32: o CopyImage fix for icons 2000-11-18: Michal Necasek - KERNEL32: o Workaround for exceptions caused by apps filling ES with the FS selector 2000-11-17: Sander van Leeuwen - include\win\authors.h: o Added Kai Sommerfeld - USER32: o SetWindowPos fix for frame change in Clock.exe (missing MsgFormatFrame call) - KERNEL32: o CreateThread bugfix (crash in pmwinx when lpIDThread == NULL) - COMCTL32: o Updated animate, comboboxex, datetime, monthcalc & flatsb controls with latest Wine code (2000-11-12) - COMDLG32: o Temporary workaround for crash in Adobe Acrobat 4.0 (file open dialog; weird hook call in FILEDLG95_OnOpen) 2000-11-17: Kai Sommerfeld - SHELL32: o Added support for LX images to ICO_ExtractIconEx 2000-11-16: Sander van Leeuwen - USER32: o Added support for SPI_GETICONMETRICS in SystemParametersInfoA (ported Wine code) o SPI_GETICONTITLELOGFONT fix for SystemParametersInfoW (wrong height) - GDI32: o Reimplemented GetTextExtentA. Seems to solve some problems with font size calculation. 2000-11-15: Oliver Braun - USER32: o Added message translation for clipboard messages o OpenClipboard fix for NULL window handle 2000-11-15: Sander van Leeuwen - WINSPOOL: o Partially implemented EnumPrintersA o Implemented DeviceCapabilitiesA/W (calls Open32) - GDI32: o Workaround added for coordinate problem when a window looses focus and SelectClipRgn is called. GpiSetClipRegion resets the window origin for some unknown reason (TODO: figure out why) o Same workaround added for ExtSelectClipRgn o Reset origin after a bitmap is selected into a window DC o Fix for yesterday's SetDIBits bugfix; SetBitmapBits expects WORD aligned scanlines; SetDIBits DWORD aligned Correct this when flipping the bitmap - USER32: o selectClientArea exported for GDI32 o Validate rectangle returned after WM_NCCALCSIZE 2000-11-14: Michal Necasek - KERNEL32: o HMInitialize bugfix (initialization) o VirtualAlloc fix (wrong VirtualProtect call) 2000-11-14: Sander van Leeuwen - KERNEL32: o Added FindDevice method to device classes to ease searching for device names. (COM class now doesn't have to register 16 devices) o Bugfix in COMM class (error code interpreted wrong) o COMx: (x=1..8) now also recognized as name for COM port - GDI32: o Workaround added for bugs in Open32's SetDIBits; messes up colors for 1 bpp bitmaps (reversing scanlines and calling SetBitmapBits works, but only if the all scanlines are updated!) 2000-11-12: Sander van Leeuwen - USER32: o LoadBitmapW heap corruption fixes (reported by Michal Necasek) for OS/2 1.3 bitmaps conversion 2000-11-11: Sander van Leeuwen - USER32: o CreateWindowExW bugfixes (atom lookup + unicode string handling) o Added stubs for SetWinEventHook, UnhookWinEvent & NotifyWinEvent 2000-11-10: Patrick Haller - KERNEL32: o implemented .42 and .47 ... which are "NullFunction"s. 2000-11-10: Sander van Leeuwen - USER32: o Fixed wrong icon colors in release build 2000-11-10: Michal Necasek - KERNEL32: o VirtualQuery fix for inaccessible pages 2000-11-10: Knut St. Osmundsen - Win32k: o Updated symbol database with the 14060 kernels from testcase. (Very minor changes compared to the first 14059 release when symbols are compared.) Note. The 14059 kernels from 2000-10-31 are not supported due to build number conflict with the kernels released 2000-10-23. The 2000-10-23 kernels are present in the symbol database. 2000-11-09: Sander van Leeuwen - USER32: o Implemented LoadCursorFromFileA/W (Wine port) o Fixes for LoadIconA/W & LoadCursorA/W; use default width & height in LoadImage call o Fixed memory leaks in LoadCursorA/W o Rewrote icon apis using ported and modified Wine code (fixes scaling of icons + wrong size of icons) NOTE: Still some problems left (e.g. file open dialog icon) Will be fixed asap. o Fixed coordinate mapping problem in MDI_ChildGetMinMaxInfo o Added Wine user32 icons (user32\bmp) o Fixed resource dependency - GDI32: o Wrong call to dsect->SetDIBColorTable in CreateDIBSection (PALETTEENTRY has red & blue reversed compared to RGB2/RGBQUAD) (reported by Platon Fomichev) o Must call ReleaseDC for window dcs in DeleteDC - KERNEL32: o Removed unused resource conversion code (bitmaps, icons & accelerators) o Create system32\drivers\etc directory during install - COMCTL32: o Fixed resource dependency - COMDLG32: o Fixed resource dependency - SHELL32: o Fixed resource dependency 2000-11-09: Achim Hasenmueller - WSOCK32: o WINSOCK_DeleteIData fix 2000-11-09: Michal Necasek - KERNEL32: o GetLocaleInfoW fix for Czech language (weird thousand separator) 2000-11-06: Sander van Leeuwen - COMDLG32: o Merged with latest Wine code (11-05-2000) o Added bugfix for empty initial dir string (file open/save dialogs) Should use current directory; not the desktop - SHELL32: o Merged with latest Wine code (11-05-2000) 2000-11-06: Michal Necasek - KERNEL32: o GetFullPathNameW bugfix o HeapReAlloc fix; must return the same pointer when shrinking an allocation (NT's CMD.EXE depends on this!) 2000-11-05: Sander van Leeuwen - USER32: o Changed warning string for ExitWindows api o Additional exports for gdi32; moved 4 apis back into gdi32 o Fixed SetWindowPos during WM_NCCREATE (static control (bitmaps + icon) resize now works) - GDI32: o Rewrote many transformation & coordinate apis - KERNEL32: o Use DosLoadModule instead of O32_LoadLibrary o Changed exception dump logging (.dll.dll -> .dll) o Fix for GetDriveTypeW; return DRIVE_CANNOTDETERMINE if string pointer is -1 (VERIFIED in NT 4, SP6) (reported by Michal Necasek) (NOTE: Not true for GetDriveTypeA (crashes)) - COMDLG32: o Fix for FindReplace dialog; must return pointer to FINDREPLACEA/W structure when calling hook during WM_INITDIALOG; not pointer to custum data dword (old SDK docs were wrong; newer versions have been corrected) 2000-11-04: Sander van Leeuwen - GDI32: o OffsetRgn fix - USER32: o Rewrote LockWindowUpdate 2000-11-02: Sander van Leeuwen - SHELL32: o Wrong exports for several apis (SHGetSpecialFolderPathA & PathProcessCommandA reported by Kai Sommerfeld) (PathBuildRoot, PathFileExists, ParseField & DoEnvironmentSubst) SHGetSpecialFolderPathA export added. 2000-11-01: Brian Smith - USER32: o Fix for MENU_InsertItem (add if menu item not found) (from latest Wine code; TODO: need to sync user32 controls!) 2000-10-30: Sander van Leeuwen - KERNEL32: o Forgot to append .dll if no extension is found in Win32DllBase::findModule (fixes dependency update for LX dlls; i.e. winhlp32 now works again) 2000-10-28: Sander van Leeuwen - SHELL32: o Print build date in About Odin dialog - include\win\authors.h, tools\install\odin.cmd: o Added Oliver Braun to authors list 2000-10-27: knut st. osmundsen - Win32k: o Fixed bug which prevented the symbolname to be copied to the szSymbolfile global variable and displayed during boot and in Win32kCC. o Added a abort stub which creates an IPE/Int3 instead of calling DosExit (which isn't recommended at Ring-0 i think.) There is some Purevirtual stub function which calls abort. 2000-10-26: Sander van Leeuwen - GDI32: o GetObjectA/W bugfix; return required size when buffer pointer is NULL (Open32 doesn't always do this) o GetObjectW bugfix: translate face name for font object from ascii to unicode - KERNEL32: o RegEnumKeyExW, RegEnumValueW & RegQueryInfoKeyW fixes (heap corruption) o RegEnumValueW fix; must convert value data if it's a string o VirtualAlloc fix for memory that is already committed. - USER32: o Ported EnumDisplayDevicesA/W from Wine 2000-10-26: knut st. osmundsen - ChangeLog: o The ChangeLog (this file) will sooner or later be viewable from the web I hope. So to ease the parsing (or AI) I suggest that we puts an 'o' in front of each point in the change descriptions. Also HTML tags could be used, especially pre, br and p.
I've updated this file, and an attempt to convert it to HTML is found here: http://ktaskmgr.sourceforge.net/ChangeLogTest.html
The PHP script which does this parsing is found in Tools\Database\www, named Odin32ChangeLog.php. - Win32k: o Added kernels 14055, 14056 and 14057. o Comment on eComStation preview problem: The symbols and debug kernels are 14053 with an extra fix in TKSleep for Time-Critical threads (it seems). This fix make the debugkernels and probably release kernel (which I haven't found yet) 0x20 bytes bigger, and thus aren't supported by the symbols for the testcase 14053 kernel in the symbol database. The fix is present in later kernels at testcase too, at least in 14057 (which also is found at service, as krnl1019(d).zip).

Concerning the release kernel of eComStation, it might acutally be 14052. The kernel on the installation floppy image (os2image\disk_0) is build 14052, and Oliver Stein said that the conveniece(?) pack preview were 14052...

But, currently I haven't found any other release kernel on the eComStation preview than the install kernel; and I haven't had time to install it either. 2000-10-25: Michal Necasek - KERNEL32: o SearchPath32A fix for IBM VAC for windows (search directory consists of multiple paths separated by a semi-colon) 2000-10-25: Sander van Leeuwen - KERNEL32: o Add rename entry for winspool.drv to odin.ini. (if not present) o Check pointers in Read/WriteProcessMemory o Add OLE key during installation:

                  [HKEY_LOCAL_MACHINE\Software\Microsoft\OLE]
                  "EnableDCOM"="Y"
                  "EnableRemoteConnect"="N"
- WINSPOOL: Removed changes. (now generates winspool.dll again) 2000-10-23: Sander van Leeuwen - KERNEL32: o Vio api doesn't support high memory; need to copy string to stack. o Rewrote module handling to include extension in module name when creating it (LoadLibraryExA) and searching (GetModuleHandle) for it. (now supports dlls with the same name, but different extension) i.e.:
                  hinst = LoadLibrary("WINSPOOL.DRV");      -> succeeds
                  hinst2 = GetModuleHandle("WINSPOOL.DRV"); -> succeeds
                  hinst3 = GetModuleHandle("WINSPOOL.");    -> fails
                  hinst4 = GetModuleHandle("WINSPOOL");     -> fails
                  hinst = LoadLibrary("KERNEL32.DLL");      -> succeeds
                  hinst2 = GetModuleHandle("KERNEL32.DLL"); -> succeeds
                  hinst3 = GetModuleHandle("KERNEL32.");    -> fails
                  hinst4 = GetModuleHandle("KERNEL32");     -> succeeds
Same behaviour as observed in NT4, SP6 o Rewrote GetVersionStruct & GetVersionSize. o lstrcpynWtoA and lstrcpynAtoW must zero-terminate the string because Wine code depends on this behaviour (i.e. comdlg32) o Changed console calls to these functions for new behaviour. (fixes error message when selecting a file in the open file dialog of Acrobat Distiller) - USER32: o Changes for GetWindowText(Length)A/W for windows created by a different process. NT doesn't send WM_GETTEXT(LENGTH) messages in that case, but copies the required information directly from internal structures. (VERIFIED in NT4, SP6) (fixes crash at the end of the RealPlayer 8 installation) - DCIMAN32: Added stub dll - WINSPOOL: Generate dll with win32 extension (.drv) instead of .dll - INCLUDE\makefiles: Changed rules for targets with different extension (not .exe or .dll) - TOOLS\install: Include winspool.drv in installation package. 2000-10-22: Sander van Leeuwen - USER32: o Paint fix for static controls (fixes common color dialog) o Make sure a window handle can't be used after the window has received both WM_DESTROY & WM_NCDESTROY (fixes crash in font dialog after closing it) o After resize wrong parts of the window were invalidated. (fixes common color dialog after extending it (buttons previously overwritten)) o OBM_TNTYPE missing from user32 bitmap list o Check if a menu handle isn't a window handle before using assuming it's a pointer. (IS_A_MENU macro) --> we really shouldn't be using pointers as menu handles o Set hIconSm to 0 in RegisterClassW. (was uninitialized) - COMDLG32: Wrong type for font dialog bitmap (was 16 bits) (fixes missing font names in listbox of common font dialog) 2000-10-21: Carsten Tenbrink - CAPI32: Rewrote it. Works correctly now. 2000-10-21: Sander van Leeuwen - KERNEL32: o Add DirectPlay & DirectPlayLobby class keys to registry during installation o Add ProductType key to registry during init
                  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions]
                  "ProductType"="WinNT"
(TODO: check if names for win98 & win2k are correct!) o RegSetValueExW/RegQueryValueExW fixes for keys with type REG_SZ or REG_EXPAND_SZ. (unicode<->ascii translation) - include\win\authors.h, tools\install\odin.cmd: o Added Carsten Tenbrink to authors list - ADVAPI32: o Pretend SetThreadToken succeeded in NT mode - COMDLG32: o Merged with latest Wine version (Wine 20001002 level (10-21-2000)) o Now uses Wine color and font dialogs (not tested) All supported Wine language resources are included. 2000-10-20: Michal Necasek - KERNEL32: o FORMAT_MESSAGE_IGNORE_INSERTS support added for message handling (fixes VACPPWIN 3.5 messages) 2000-10-20: Sander van Leeuwen - KERNEL32: o Very basic support for console command line apps (output/input) + some changes to PM vio support to make it more flexible Must use special vio pe loader (pec)
TODO: Launch correct version of pe loader in CreateProcess o Fixed the stupid small PM vio window (now defaults to 80x25) - PELDR: o Build VIO version of PE (PEC.EXE) - TOOLS\INSTALL: o Add PEC.EXE to installation package 2000-10-18: Sander van Leeuwen - USER32: o Fixes for GetWindowPlacement & SetWindowPlacement (min & max position are initially -1, rcNormalPosition equals window rectangle) (Verified in NT4, SP6) o Started with implementation of ToAscii (Putty needs it) o Somebody needs to rewrite our keyboard handling... - KERNEL32: o Add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem during install o Removed test code from ::WriteFile (printed buffer) o Fixed closing of memory maps; delete object if no views left (CloseHandle) (fixes sharing violation in VAC Java install) o Don't use dprintf during guard page violation -> hangs thread when it occurs during dprintf. 2000-10-18: Michal Necasek - KERNEL32: o Ignore dwFlags in LoadLibraryExA for LX images (used to fail) 2000-10-17: Sander van Leeuwen - USER32: o Added system menu option to trigger int 3 in debug build 2000-10-17: Michal Necasek - USER32: o Changed color value for inactive caption gradient 2000-10-17: knut st. osmundsen - Win32k: o Corrected dependency rules (dep). 2000-10-16: Michal Necasek - GDI32: o Set color masks in GetDIBits for 16, 24 or 32 bits bitmaps (Open32 'forgets' this) 2000-10-16: Sander van Leeuwen - USER32: o Fix for SC_CLOSE handling (destroying controls) and added check to prevent beep when pressing Alt-F4. o SendInternalMessageA/W should check if the destination window procedure belongs to a different thread or process and use OSLibSendMessage (WinSendMsg) if true. - KERNEL32: o LoadLibraryExA fix for dlls that have the same name as the executable o Fix for fixups in TLS section + callback fixups were wrong. o Added code to check if the exception handler didn't already apply fixups to the addresses in the TLS section. If true, then search for os/2 virtual address and don't manually apply fixups for tls index & callback addresses. (fixes IBM VAC for windows tools) - RPCRT4: o Added NdrDllRegisterProxy & NdrDllUnregisterProxy stubs - GDI32: o Fixed FS corruption in font & dda callbacks; need to switch to win32 selector before calling win32 code. 2000-10-11: Sander van Leeuwen - KERNEL32: o TLS callback fix + modify TLS callback pointers for new base address - USER32: o Fix for GetWindow(GW_HWNDFIRST); returned os/2 wnd handle instead of Odin handle (reported by Michal Necasek) 2000-10-10: Sander van Leeuwen - KERNEL32: o Print date and time of build during init (log) o Create system32\drivers directory during install o Implemented LOAD_LIBRARY_AS_DATAFILE & DONT_RESOLVE_DLL_REFERENCES LoadLibraryExA/W features. Removed fake image class; put it in the pe loader class instead. LoadLibraryExA now also works for executables (implies LOAD_LIBRARY_AS_DATAFILE & DONT_RESOLVE_DLL_REFERENCES) o Rewrote GetVersionSize/Struct to use LoadLibraryExA. - MSVCRT: o Put WriteLog call in util.asm in IFDEF DEBUG statement - INCLUDE\makefiles o Add -D:DEBUG to alp command line for debug build 2000-10-10: Michal Necasek - WINMM: o Timers: Don't reset TimerStatus in timer thread; timer may have already been started. 2000-10-09: Yuri Dario - USER32: o Corrected background brush for MDI windows 2000-10-09: Patrick Haller - KERNEL32: o Fixed console bug (left offset) reported by Michal 2000-10-09: Michal Necasek - KERNEL32: o IsValidLocale; don't check for kernel32 resources (that aren't there) o Always return true for now -> winhlp32 no longer complains about different languages when loading helpfiles 2000-10-09: Sander van Leeuwen - USER32: o FrameTrackFrame fix for child windows o Ported Wine's ShowOwnedPopups (not tested) - KERNEL32: o Check for name value -1 in getResSubDirA/W; previously interpreted as a string pointer resulting in a crash in Quicken. o TLS sections must be read/write as they can contain the TLS index value (i.e. VACPPWIN ilink + ilib) o Rewrote GetCurrentDirectoryA due to bugs in Open32's version (returns 0 if bufsize < 3 -> should return required length) 2000-10-08: Sander van Leeuwen - USER32: o GetMinMaxInfo fix for windows with both WS_THICKFRAME and WS_BORDER style (differs from Wine; see comment in win32basepos.cpp Win32BaseWindow::GetMinMaxInfo) o Fix for CS_OWNDC windows (origin of client window needs to be changed after window size/position changes) o Fix for ShowScrollBar (enabling/disabling both scrollbars at once did not work (vert)) o AdjustWindowRectEx fix: Scrollbars aren't checked *UNLESS* the style includes a border (any border) --> VERIFIED IN NT4, SP6 (fixes MFC apps with scrollbars + bar controls) - KERNEL32: o Do not export the toolhelp apis; NT4 doesn't do that. (only win9x) 2000-10-07: Markus Montkowski - GDI32: o Fixed bitblt, it used the size of the source DC when no destwindow was found. this doesn't work for bitblt between dibsections if the dest is larger. so now it checks if the dest DC belongs to a dibsection and uses sets hdcHeight/Width to the size of the dibsection. Added GetWidth() member function for this. Fixes: Civilisation Test of Times 2000-10-06: Sander van Leeuwen - KERNEL32: o PE loader: no longer rely on section names, but on image directories instead o Init console earlier. (before exe is loaded; some dlls want to send output to the console while they're being loaded) o EnumResourceNamesW/EnumResourceTypesW fixes (strings not terminated) o CreateProcessA/W fix for setting current directory of new process; Open32 ignores lpCurrentDirectory parameter - PELDR: o Special parameter for setting current directory added (/OPT[CURDIR=x]) - USER32: o Ignore class background brush in DefDlgProc for WM_ERASEBKGND (always use GetSysColorBrush(COLOR_BTNFACE)) (Wine does this and it fixes the 1st dialog of the Netscape 6 install) o OemToCharBuffA fix; put back special characters that got translated to 0xff (fixes Netscape 6 install license edit control) 2000-10-05: Michal Necasek - KERNEL32: o FormatMessageA/W fix; message ids can be larger than 65535 (VACPPWIN) 2000-10-05: Sander van Leeuwen - KERNEL32: o Don't print FS warnings for OS/2 Odin applications o EnumResourceNamesA fix (zero terminate resource name) - USER32: o GetWindow GW_CHILD & GW_HWNDFIRST fixes o EnumDisplaySettingsA; always set refresh rate to 70hz o Z-order bugs fixed; GetWindow returns windows in correct order now hack for groupbox (clipsiblings) no longer necessary. Same goes for adding WS_CLIPSIBLINGS style for dialog controls. o Re-enabled usage of invalid region instead of invalid rectangle in BeginPaint -> lots of paint problems gone (i.e. winzip) 2000-10-05: Michal Necasek - KERNEL32: o Fixes for exception handling (as done by MSVCRT) 2000-10-05: knut st. osmundsen - Tools\Common: o Implemented read and write buffering for class kFile to speed up kDef2Wat and ImpDef. 2000-10-04: Sander van Leeuwen - KERNEL32: o Added forwarder support for PE loader (required for msvcrt40.dll) 2000-10-04: knut st. osmundsen - Tools\ImpDef: o Corrected wrong DESCRIPTION statement. o Corrected exception when processing src\icmp\icmp.def. 2000-10-03: Sander van Leeuwen - Include\uniconv.h o FS wrappers for Unicode api - Include\heapstring.h: o strcasecmp & strncasecmp are case insensitive (fixes profile apis (and probably some other things too)) - KERNEL32: o Calculate cpu speed and set HARDWARE\DESCRIPTION\System\CentralProcessor\x\~Mhz key o Added GetFileType method to conin/out which return FILE_TYPE_CHAR o Create new keys during installation:
                  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs]
                  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom]
o Fix for failure during DLL_PROCESS_ATTACH for LX system dlls (pe loader). Didn't fail properly before. o Check if executable exists in CreateProcessA; fixes VMWare installation o InitCommandLine fix (forgot to copy cmd line) - USER32: o Fix for EDIT_WM_Char (couldn't type in numbers anymore) o EnumDisplaySettingsA accepts negative indices - ADVAPI32: o Cleanup 2000-10-03: Michal Necasek - KERNEL32: o Fix for HMGetFileType. Must return FILE_TYPE_CHAR for standard handles (in/out/error) 2000-10-03: knut st. osmundsen - Watcom makefiles: o Wrote a converter tool to make wlink input from .def files. tools/common - kDef2Wat.exe (Need VA C to compiler currently) o Found a problem with Watcom when trying to link advapi32.dll; It mangles the __stdcall function when they aren't prototyped/delcared extern "C". Haven't found any solution to this, other than prototyping the APIs within extern "C" { }. 2000-10-02: Sander van Leeuwen - SHLWAPI: o Rewrote VERSION_OsIsUnicode (same as SHELL_OsIsUnicode now) - RICHED32: o 'Handle' WM_SETTEXT messages. Wine's richedit dll is very incomplete. It's better to use the native windows version. - KERNEL32: o Ported Wine's LoadModule (previously used Open32) o Changed version apis o You can now tell Odin to pretend to be Windows 98 or Windows NT 4.0 (default = NT40) Odin.ini: [WinVersion] Version=Win98 - OLE32: o Added stubs for CoGetInstanceFromFile & CoGetInstanceFromIStorage - KERNEL32, WSOCK32, WINMM, include\odinwrap.h, SHLWAPI, WNASPI32: o Changes/fixes for new ODINFUNCTION macros 2000-10-02: Patrick Haller - *: o major change in ODINWRAP macros and (all) affected sources - GDI32: o fixed possible error in text.cpp (strrchr) - WNETAP32: o started implementation of LAN Manager support :)
NetApiBuffer*
NetStatisticsGet
NetWkstaGetInfo
- KERNEL32: o added HEAP_size export 2000-10-02: knut st. osmundsen - KERNEL32: o Fixed Pe2Lx (ie. Win32k) TLS problem. Beyond Compare works. - Common: o Added very limited dump capability to kFilePE. (Used to understand TLS.) - Win32k o Added symbols for kernel 14050 (Warp4) and 14054 (Warp4, WS4eB SMP and UNI). 2000-10-01: Patrick Haller - KERNEL32: o Optimization of PROFILE calls - GDI32: o Fix for uncompressed/RGB bitmaps (biSizeImage == 0) - WINMM: o Fix for timer logic - timers still quite untested 2000-10-01: Sander van Leeuwen - KERNEL32: o Fixed bug introduced by recent command line changes (executables with spaces in name/dir) - GDI32: o Implemented AddFontResourceW 2000-10-01: knut st. osmundsen - Win32k: o Added IOCtl API for Reading or Writing into another process' address space. (*ProcessReadWrite) This is intended used to implemented ReadProcessMemory and WriteProcessMemory (which is essensial to debuggers I think). I'll implementet them soon, but it sees that it'll require more changes in process.c that I first thought. o Simplified maintaince of kernel imports. (mkcalltab) Removed unused imports. 2000-09-29: Sander van Leeuwen - USER32: Edit control fix; Ignore WM_SETTEXT if string is the same. Acrobat Distiller keeps on sending WM_SETTEXT with the same string in responds to a WM_COMMAND with EN_UPDATE -> stack overflow (TODO: Need to check if this behaviour is correct compared to NT) 2000-09-29: Achim Hasenmueller - COMCTL32: Added _TrackMouseEvent export for VisualAge Micro Edition Added SmoothScroll implementation from WINE 2000-09-29: knut st. osmundsen - INCLUDE\pdwin32.*: -First attempt on new makefile style. (See advapi32 or dllentry for an example.) -Made .tools and .post compiler specific (Watcom adoptions). -Watcom WMAKE likes the new makefile style, but only in UNIX mode. So, you'll have to specify "-u" at the commandline. Nothing links yet. Anyone know if wlink would except .DEF-files? If not I'll have to write a .DEF -> wlink options converter (trivial since we has a class for parsing .DEF-files). -Changed object directories for VAC36 and Watcom: debug.vac36, release.vac36, debug.wat, release.wat. But before you are able to compile much, you'll have to manually create the global directories bin\debug.vac36 and bin\release.vac36 or bin\debug.wat and bin\release.wat. - ADVAPI32: New makefile style example. - DLLENTRY: New makefile style. Watcom object file (but not very useful). (don't hope I've broken anything) 2000-09-28: knut st. osmundsen - INCLUDE\pdwin32.wat.tools: Placed .asm and .orc before .cpp in the .SUFFIXES list to be able to make resource objectfiles. 2000-09-26: knut st. osmundsen - Win32k: Corrected H2INC path in the makefile. 2000-09-25: Michal Necasek - DDRAW, DDRAW\new: Fixed way too many bugs in asmutil.cpp. Both the MMX and non-MMX transparent blitting functions were incredibly buggy. They probably still are, but _much_ less so. This fixed mouse pointer in Master of Orion II among other things (but the Win95 version of MOO2 is simply buggy anyway). Also fixed one case of FS corruption in DDRAW\new. 2000-09-25: Patrick Haller - KERNEL32: GlobalMemoryStatus does no more rely on Open32 (experiment for AOE) This version should "provide" more memory. 2000-09-24: Markus Montkowski - DPLAYX INCLUDE\win\dplay.h INCLUDE\winpdlobby.h : Synced with latest WINE source, should fix some DX version checking via COM interfaces (like in AOE) 2000-09-22: Jeroen van den Horn - GLU32: - Changed sorter.cpp to eliminate compiler error - OPENGL32: - Minor change to glthread.c 2000-09-22: knut st. osmundsen - Win32k/Pe2Lx: -Always apply all-in-one-object aligment fix. This will solve lots of problems. (Hopefully temporary; I will explore a VMAllocMem flag for VDMs which allows allocation of pagealigned objects in the tiled arenas. The flag works as expected but I get IPEs during process cleanup...) -Corrected bug in applyFixups. Fixups was not applied when the all-in-one-object aligment fix was applied. -The problem with the build 14053 (testcase) kernels is solved. ldrOpenPath have got an addition parameter. Symbols added to the SymDB. -Win32k.sys build now requires h2inc.exe is present in the tools directory of the base DDK. - KERNEL32: Changed Pe2Lx to use module address (address of the header object) as hinstance. Some programs depends on this. - opengl\glu\nurbs\internals: Turned off optimization. Internal compiler error in release mode compiling sorter.cpp. 2000-09-21: knut st. osmundsen - INCLUDE\makefiles: Made cleanrule omittable by defining NOCLEAN. - Pe2Lx: Corrected/Made cleanrule. - Win32k: New Microsoft C fix. Invokes it with no environment. Thanks goes to Serge Sterck for this discovery. I hope it works out well. 2000-09-20: Markus Montkowski - KERNEL32: Implemented COM-port APIs Enhanced handlemanager to support device and handle data (for COM ports) Added IOCTL to oslibdos - INCLUDE\handlemanager.h os2win.h win32type.h: added COM definitions 2000-09-19: Michal Necasek - INCLUDE\makefiles: disable C++ exception handling code generation (FS:0 changes) 2000-09-16: Sander van Leeuwen - KERNEL32: Fixed matchModName bugs. (compare name without extension) - WNASPI32: Restore win32 FS selector before calling post procedure 2000-09-16: David Raison - OLE32: Further updates from Wine IMessageFilter stubs. - OLEAUT32: Updates from Wine ITypeComp stubs. 2000-09-16: knut st. osmundsen - Tools\dbginfo: Solved DosCall1.DLL problem. Successfully creates HLL HLL debuginfo from .SYM files and add it to LX files. 2000-09-15: knut st. osmundsen - KERNEL32: Corrected logging for GetModuleFileNameA/W (a handle and a string pointer was mixed - which proved fatal with logging enabled). 2000-09-15: David Raison - OLE32: Updates from Wine 2000-09-15: Sander van Leeuwen - WNASPI32: Open and initialize aspirout during dll load; doing this for *every* aspi command is very inefficient. Not possible to share aspirout now, but that could be fixed later on. - KERNEL32: Bug in recent exception handler changes; nested exception are allowed to be dispatched to Odin's handlers. (PE loader depends on it -> fixes crash in Lotus Notes) Export WriteLogNoEOL 2000-09-14: Sander van Leeuwen - WNASPI32: Fixed uninitialized variables in aspirout class Fixed memory leaks (aspi object not deleted when something goes wrong) - KERNEL32: Implemented IOCTL_SCSI_GET_ADDRESS (not perfect; only works for cdrom/dvd drives and only the first one) 2000-09-13: Sander van Leeuwen - KERNEL32: InitCommandLine corrupted the heap Created HandleManager class for physical disks - GDI32: StretchDIBits: Open32 always returns height of bitmap (regardless of how many scanlines were copied); now corrected - WNASPI32: Fixed FS corruption 2000-09-13: knut st. osmundsen - KERNEL32: Added method matchModName to Win32ImageBase. Used matchModName in LoadLibraryExA. Documented and enhanced GetModuleFileNameA/W. - Win32k: Display build time and date on verbose init. Made sure build time and date is updated everytime it's relinked. 2000-09-12: Sander van Leeuwen - KERNEL32: GetCommandLine changes broke LX executable support. Fixed now. 2000-09-12: knut st. osmundsen - KERNEL32: Rewrote GetCommandLineA/W. Don't depend on Open32 any longer. The commandline strings are moved to global variables in wprocess.cpp. Added/extended some OSLib calls. - Wink32: When invoking PE.EXE the first argument (Win32 exe name) should be in quotes. This is not yet corrected for the other invokers. (Scripts/Java). 2000-09-09: Sander van Leeuwen - KERNEL32: Don't dispatch exceptions after application has called ExitProcess. (fixes endless loop of exception handler calls in RealPlayer 7) Create more registry keys during installation: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\iexplore.exe GetFileAttributesA trashes the stack (EBX register corrupted after return) If CreateFile fails to duplicate the handle, then try DosDupHandle (DuplicateHandle for memory mapped files in IE5) Set dwCreation flag to OPEN_EXISTING for DuplicateHandle (memory mapped files) - PE: Endless loop when it can't find executable with name in quotes 2000-09-08: Michal Necasek - KERNEL32: Changes and fixes for exception handling (now dispatches exceptions to win32 apps) 2000-09-08: Sander van Leeuwen - KERNEL32: Implemented EnumResourceLanguagesA/W Put back some code that was changed. (environ.cpp & heap.cpp) - GDI32: Fixed FS bug in OSLibDeleteRegion - USER32: Removed wrapper for GetWindow; not required 2000-09-07: knut st. osmundsen - Win32k: Added last FP14 kernel to Symbol database. Splitted extract.c from Probkrnl.c. Removed old debug code from Probkrnl.c (Probkrnl.exe) - use win32ktst.exe for Ring-3 testing now. Added filehandle fix for MSC60a compiler. (fix don't work!) 2000-09-07: Patrick Haller - KERNEL32: Fixed some FS: bugs in time.cpp, environ.cpp, heap.cpp Fixed language support from WINE sync - GDI32: Fixed some FS: bug in DeleteObject(), DeleteDC() 2000-09-07: Sander van Leeuwen - COMCTL32: TOOLBAR_SetBitmapSize & TOOLBAR_SetBitmapSize; do not return FALSE when called after buttons have been created. (failed assertions in MFC applications; this code is from the latest Wine source tree) - SHELL32: Merged more changes made by Christoph into new tree - KERNEL32: InitDirectories must be called before InitializeTIB or else a win.ini file is created in the root dir (InitializeTIB loads ntdll which depends on user32) (reported by Kai Sommerfeld) - USER32: GetWindow was completely wrong. Didn't take Z-order into account. Fixes MFC applications (missing controls + redraw problems) 2000-09-06: knut st. osmundsen - install: Added Win32kCC.exe and kRx.EXE to the .wpi distributions. 2000-09-05: Sander van Leeuwen - USER32: WM_PARENTNOTIFY during WM_CREATE was sent to the wrong window WM_FOCUSCHANGE fix; set & kill focus were sent twice Added more logging. Activate window after resizing (WM_WINDOWPOSCHANGED in pmwindow.cpp) - KERNEL32: Workaround for RegSetValueA; a call to this api in Netscape fails with error 8 due to a 0 size of the key data HMOpenFile fix; pHMHandleData->dwCreation must be set to OPEN_EXISTING or else the memory map class will fail to duplicate the handle. 2000-09-04: Sander van Leeuwen - KERNEL32: GetDiskFreeSpaceExA: added support for 64 bits disk size Rewrote GetDiskFreeSpace (no longer uses Open32) - USER32: SetWindowLong GWL_WNDPROC changes/fixes Type of SetWindowLong determines new window proc type UNLESS the new window proc has already been registered (use the old type in that case) (VERIFIED in NT 4, SP6) Return original window procedure if types match (SetWindowLongX & proc type) otherwise window proc wrapper. Fixes wrong strings in Notes 5.0. (new string problems, but they are caused by something else) - COMCTL32: CreateUpDownControl was not exported correctly (reported by Reinhold Kopper) 2000-09-04: knut st. osmundsen - Win32k: Improved error reporting. Corrected fatal bug in the QueryOptionsStatus IOCtl, had forgotten three SSToDS()... 2000-09-04: knut st. osmundsen - doc/readme.txt: Updated Win32k sections. - Win32k: Fixed missing object in the 16-bit clib.lib which caused linking of win32k.sys to fail in last daily build. Support for comport 3 and 4. - Win32kCC: Updated dialog to show all information provided by the Win32k IOCtl interface. - Include/HandleManager.h: Added prototype for HMDeviceIoControl which Sander forgot. 2000-09-03: Patrick Haller - KERNEL32: NLS sync with WINE 2000-09-03: Sander van Leeuwen - KERNEL32: More logging; DeviceIoControl didn't have handlemanager wrapper - GDI32: Missing wrapper for WinDrawTabbedText caused FS corruption. PLEASE be more careful in the future! 2000-09-02: knut st. osmundsen - Win32k: Finally. I've merged the new changes into the main branch. The most important things are: - More correct search order for DLLs. The differences are now that _ALL_ DLLs are found using the Windows search order, and that the LIBPATH are also searched (last). - PE.EXE may be invoked by Win32k.sys. Win32k.sys will now operate in three modes: - Pe2Lx mode. Only the Pe2Lx method is used. - Mixed Pe2Lx and Pe.exe mode. Pe.exe is invoked for executables which Pe2Lx don't currently support. (like WinWord, which BTW may trap you PC if invoked in Pe2Lx mode.) This is the default mode. - Pe.exe mode. Pe.exe is allways used. (see readme.txt, I'll update it to ASAP but not to night. (I tired after working 36 hours on finishing this...) - UNIX Shell Scripts are working (now). - JAVA invokation. If you try to load a JAVA class the it is executed using java.exe. (note that the class name is case sensitive!) - Pure REXX. This one is for Nenad. .RX and .REX are loaded using a tiny REXX starter, kRX.exe (found in System32 directory). - Win32k Control Center, Win32kCC.EXE. Simple PM program which allows you to change the Win32k.SYS options while running. It does also show some status information (will be extended). - Support for FP14 in the Symbol database. (use the 09th Aug. kernel please). - KERNEL32: Speeded up loading by using Win32k.sys IOCtl to get objecttable entries (OTE) for the Pe2Lx executable images, instead of using DosQuerySysState (which gets OTEs for all modules in the entrie system). (This is the reason for the win32k.lib file - it's made by the 'libs' rule from src.) 2000-09-02: Sander van Leeuwen - USER32: Rewrote IsZoomed Removed winzip invisible button fix; causes many repaint problems. Need to find the real cause. - DDRAW: More debug logging; implemented ClipGetClipList - WINMM: mixerGetID fix (for NULL hmixer) 2000-09-01: knut st. osmundsen - INCLUDE: Shut up the OS/2 resource compiler (added -n to OS2RCFLAGS). Added linkage macro for the OS2RC which exepacks the resource object: OS2RCLFLAGS 2000-09-01: Patrick Haller - GDI32: - Open32 fix for CreateDIBitmap: some apps claim they have a bitmap w/o palette color table and then send one in to copy. - USER32: - PMWINDOW.CPP: WM_FOCUSCHANCE - validate GetTopParent() handle 2000-08-31: Sander van Leeuwen - DDRAW: Extra debug logging GetFourCCCodes should return nr of codes returned (always) QueryInterface; don't change the vtbl of the directdraw object return pointer to new virtual table instead (fixes crashes in dxview) Don't setup DirectDraw3D interface when creating IID_IDirect3D object (fixes another crash in dxview.exe) Video memory set to zero for HEL caps + no DDCAPS_COLORKEYHWASSIST Fixed HEL caps. (dwFXcaps) Fixed Driver caps (memset for HEL caps overwrote driver structure) Export DirectDrawCreateEx - KERNEL32: Level 2 logging for GetLastError (if lasterror != 0) - INCLUDE: Header updates for compiling directx applets in OS/2 2000-08-31: Przemyslaw Dobrowolski - KERNEL32: Create more class registry keys during installation (for shell32 & IE) 2000-08-30: Sander van Leeuwen - GDI32: Workaround in StretchDIBits for PowerDVD (fixes wrong colors) - USER32: WM_SETFOCUS fix (window can become invalid during processing) (rename folder in file open dialog -> click outside editbox -> crash) - SHELL32: Complete merge with latest Wine shell32 (fixes weird file open/save dialog box behaviour) Odin changes/additions in separate files or in #ifdef __WIN32OS2__ statements 2000-08-29: Michal Necasek - INCLUDE: Watcom makefile fixes - ADVAPI32: Sample watcom makefile for advapi32 (not finished) 2000-08-28: Michal Necasek - KERNEL32: RaiseException/RtlUnwind fixes 2000-08-26: Sander van Leeuwen - SHELL32: Open/Save dialog fix 2000-08-19: knut st. osmundsen - KERNEL32: PROFILE_LoadOdinIni use kernel32Path not reload KERNEL32 using LoadLibraryA. Internal paths are not initated yet, so LoadLibraryA migth end up loading the wrong DLL (Which happend for me, a NT edition of kernel32 was loaded.) (- Win32k: Works ok, will merge the changes into the main branch soon.) 2000-08-25: Sander van Leeuwen - KERNEL32: Create DirectX registry keys during installation - SHFOLDER: Compile fix 2000-08-24: Sander van Leeuwen - USER32: Export wvsnprintfW - SHLWAPI: Merged with latest Wine code (20000801); separated added/changed functions to ease resync in the future Removed all AW exports; they belong in shell32 More functions exported (Wine additions) Changed File and Product version to 5.00.2919.6304 (NT4, SP6 + IE 5.01) - SHELL32: Merged Wine's shellpath.c More exports (forwarders to shlwapi) StrRetToStrNA fix Changed File and Product version to 5.00.2919.6304 (NT4, SP6 + IE 5.01) - SHFOLDER: Added (forwarder dll for SHGetFolderPathA/W for now) Version based on NT 4 SP6 + IE 5.01 (5.00.2919.6304) 2000-08-23: Michal Necasek - KERNEL32: (cpu.c) lpMinimumApplicationAddress should be 4 MB 2000-08-22: Patrick Haller - MSVCRT: _lock() implemented _unlock() implemented CxxThrowException implemented 2000-08-20: Sander van Leeuwen - INCLUDE, COMDLG32, SHLWAPI: Compile errors introduced by shell32 merge fixed 2000-08-19: Sander van Leeuwen - GDI32: Changed File and Product version to 0x0400, 0x0565012A (NT4, SP6) - KERNEL32: Changed File and Product version to 0x0400, 0x0565012C (NT4, SP6) Logging level 2 for GetUserDefaultLCID & GetSystemDefaultLCID - USER32: Changed File and Product version to 0x0400, 0x05650136 (NT4, SP6) - ADVAPI32: Changed File and Product version to 0x0400, 0x05650119 (NT4, SP6) - COMCTL32: Changed File version to 0x0551, 0x0B6718A0 (NT4, SP6, IE 5.01) (VERSIONINFO) Changed Product version to 0x0500, 0x0B6718A0 (NT4, SP6, IE 5.01) (VERSIONINFO) Changed "FileVersion" to 5.81 (NT4, SP6, IE 5.01) Changed "ProductVersion" to 5.00.2919.6304 (NT4, SP6, IE 5.01) - COMDLG32: Changed File and Product version to 0x0400 0x0565013F (NT4, SP6) 2000-08-19: knut st. osmundsen - KERNEL32: Made win32k.sys resource sections writable. 2000-08-18: Sander van Leeuwen - GDI32: Added support for level 2 debug logging Ported Wine's CreateHalftonePalette Added more logging Added RGB565 -> RGB555 conversion in sync method of DIB class (PowerDVD colors still wrong) - KERNEL32: Added display driver keys for PowerDVD video tester applet Extra logging for GetProcAddress - DDRAW: Changed File and Product version to 0x0404, 0x05650114 (NT4, SP6) - DSOUND: Changed File and Product version to 0x0404, 0x056500A4 (NT4, SP6) - DPLAY: Changed File and Product version to 0x0400, 0x05650001 (NT4, SP6) - DPLAYX: Changed File and Product version to 0x0406, 0x05650258 (NT4, SP6) - DINPUT: Changed File and Product version to 0x0404, 0x05650004 (NT4, SP6) 2000-08-18: Patrick Haller - NTDLL: roughly synchronized with current WINE - SHELL32: roughly synchronized with current WINE 2000-08-17: Sander van Leeuwen - KERNEL32: Only call O32_LoadLibrary if dwFlags == 0 and (LX binary or win32k process) GetModuleHandleA fix (uninit. var) (PowerDVD install no longer complains about running InstallShield) - DSOUND: Fixed wrong type for dllHandle (caused load failure) 2000-08-16: Christoph Bratschi - COMCTL32: propsheet: workaround for PROPSHEET_GetPaddingInfoWizard design issue 2000-08-16: Sander van Leeuwen - KERNEL32: Changed search order for resource languages: According to Wine: FindResourceA/W does search in the following order: 1. Neutral language with neutral sublanguage 2. Neutral language with default sublanguage 3. Current locale lang id 4. Current locale lang id with neutral sublanguage 5. (!) LANG_ENGLISH, SUBLANG_DEFAULT 6. Return first in the list FindResourceExA/W does search in the following order: 1. Exact specified language 2. Language with neutral sublanguage 3. Neutral language with neutral sublanguage 4. Neutral language with default sublanguage (fixes bad string in PowerDVD) 2000-08-14: Sander van Leeuwen - KERNEL32: Fixed sharing violation errors in OSLibDosCreateFile (FILE_SHARE_DELETE now included in share flag var) (fixes error messages when playing files in RealPlayer 7) TLS fix in PE loader (no .tls section, but valid tls image directory) 2000-08-13: Christoph Bratschi - COMCTL32: added propsheet, treeview Corel WINE 20000807 changes - GDI32: activated WinDrawText code 2000-08-12: Sander van Leeuwen - KERNEL32: Do not set OPEN_ACCESS_READWRITE flag in OSLibDosCreateFile (if OPEN_ACTION_CREATE_IF_NEW & readonly access) This was causing access denied errors (using FILE_SHARE_WRITE on a file on a readonly volume was not causing this; that's allowed) Removed share mode hack. Caused by the bug mentioned above. (You can change the file sharing mode when opening the same file several times in OS/2) Fixed system dll unload bug. Extra checks in Win32ImageBase::isPEImage (nr of bytes read is correct or not) 2000-08-11: Sander van Leeuwen - KERNEL32: Lock/Unlock 64 bits values are only supported by JFS Try the 32 bits DosSetFileLocks if it fails with ERROR_INVALID_PARAMETER (TODO: should check the partition type instead) Build fake dll header for system dlls and use it's address as instance handle. VIRTUAL_MapFileA/W: open file in share read/write mode Fixed HMDuplicateHandle (check for DUPLICATE_ACCESS_READWRITE) LoadLibraryExA: if dll name = executable name of current process -> return handle of exe (GrandPrix 3 installer does this; verified in NT) FreeLibrary: if handle = exe handle of current process -> ignore - SRC\*\initterm.cpp Changed RegisterLxDll call for fake headers. - INCLUDE\misc.h: Removed versionos2.h dependancy - VERSION\version.cpp Include versionos2.h - COMCTL32: Put back old property page code (breaks VPBuddy preferences dialog). SameTime install property sheet now messed up (again). 2000-08-10: Patrick Haller - KERNEL32: OSLibDosQueryVolumeFS does no more return an error if the caller is not interested in the volume name. Console Input handling improved, some correction. SetConsoleTitleW fixed. NOTE! lstrcpynAtoW and lstrcpynWtoA do no more enforce (erroneous) string termination. NT4's CMD.EXE is quite working now. 2000-08-09: Sander van Leeuwen - KERNEL32: TLS changes (now updates THDB array instead of calling Open32) 2000-08-09: Christoph Bratschi - COMCTL32: added language dependent resources 2000-08-08: Christoph Bratschi - COMCTL32: first part of Corel WINE 20000807 changes 2000-08-06: Sander van Leeuwen - doc\ReportingBugs.txt: Added a little more information - tools\install Add Logging.txt + symbol files to debug build. 2000-08-04: Sander van Leeuwen - KERNEL32: Temporary workaround for differences in share mode between OS/2 & NT (for opening the same file multiple times): NT: CreateFile with FILE_SHARE_READ CreateFile with FILE_SHARE_READ | FILE_SHARE_WRITE -> 2nd CreateFile overrides share flags of first one -> CreateFile with GENERIC_WRITE is now allowed OS2: DosOpen with OPEN_SHARE_DENYWRITE DosOpen with OPEN_SHARE_DENYNONE -> sharing violation; can't change share flags while handle returned by 1st DosOpen isn't closed --> 'Solution': always open files in FILE_SHARE_DENYNONE mode (several installation programs depend on this behaviour) 2000-08-01: Sander van Leeuwen - KERNEL32: Create x:\Program Files & x:\Program Files\Common Files directories in odininst.exe + extra registry keys: [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion] "ProgramFilesDir"="x:\Program Files" "CommonFilesDir"="x:\Program Files\Common Files" "SharedDir"="x:\Odin" - COMCTL32: Fixed property page bugfix (wrong position) (by merging latest PROPSHEET_ShowPage from Wine) - DOC\ToDo.txt: Added: KERNEL32: Build fake PE headers for odin dlls (dll handle must be pointer to header) (some applications use the handles as pointers) 2000-07-26: Sander van Leeuwen - KERNEL32: Don't translate values returned by WaitForSingleObject. Open32's WaitForSingleObject returns the correct values. -> breaks a lot of things including RealPlayer 7 (removed bugfix 2000-07-17: fixed return codes for HMWaitForSingleObject) - DOC\ToDo.txt: Added: USER32: Fix LoadImage to resize icons, cursors or bitmaps to the specified dimensions (if required) 2000-07-25: Sander van Leeuwen - KERNEL32: Added environment setting for disabling wait on exit for console applications (SET ODIN_AUTOEXITCONSOLE=1) - DOC\ToDo.txt: Added more unassigned tasks 2000-07-22: Sander van Leeuwen - DOC\ReportingBugs.txt Added file that tells users how to report bugs - TOOLS\install: Added ReportingBugs.txt to WarpIN script - USER32: Fixed BeginPaint; set clip region to update region; not update rectangle -> fixes invisible buttons in winzip install - KERNEL32: Include message in log entry if FS != 0x150b (doesn't always means FS is trashed though) 2000-07-21: Sander van Leeuwen - SHLWAPI: SHGetSpecialFolderPathA: StartMenu changed in 'Start Menu' (now identical to Windows 98/NT) - TOOLS\install: Changed makefile for odininst; standard odin makefile now Changed warpin script for new odininst location 2000-07-20: Sander van Leeuwen - USER32: SetWindowPlacement bugfix for Papyrus (do not change the current window position) Fixed FS corruption in CreateCaret Fixed positioning of caret (needed due to client/frame -> frame window changes) WM_ADJUSTWINDOWPOS & WM_WINDOWPOSCHANGED bugfixes (hwndInsertAfter set to HWND_TOP if non-Odin window) - KERNEL32/PELDR Always try to allocate an executable image at it's preferred address (even if it has fixups) 2000-07-19: Sander van Leeuwen - INCLUDE\makefiles SRC\*\makefile ODINCRT Build different odincrt for debug & release build (odincrtd & odincrt) Odin dlls now link with correct version - GDI32: Wrapper rewrite for region apis Changed export for user32 (uses stdcall calling convention now to avoid problem when using debug user32 with retail gdi32) - DOC\Readme.txt Updated installation instructions - TOOLS\INSTALL\odin.cmd Updated script for new doc directory 2000-07-18: Yuri Dario - INCLUDE\win: Compilation fixes for Opera - USER32: Extra logging information Fixed sending WM_PARENTNOTIFY in ::DestroyWindow 2000-07-18: Sander van Leeuwen - WINMM: If waveOutSetVolume called with NULL waveout handle, use that volume as the default for newly created streams. (fixes volume in RealPlayer 7) - KERNEL32: Fixed old unload order bug (causes a crash when quitting RealPlayer 7); increase dynamic library count after calling dll entrypoint with DLL_PROCESS_ATTACH. (used to be before; -> wrong unload order of RPAP3260 & PNRS3260) Call dll entrypoint with DLL_PROCESS_DETACH even when thread library calls disabled. 2000-07-18: knut st. osmundsen - KERNEL32: APIs are to be placed should have ordinal less than 1200 - even if they don't belong in the dll but just happend to be implemented there. The reason is for humans and for documentation tools to be able to tell which exports are APIs and which are internal Odin32 function/APIs. - div: Added some missing $Id keywords. - database: Trying to make the database more useful. Extracting more data from the source files. According to the doc\ToDo file we're to write structured and well documented code. This database is indetended to make the documentation (++) browsable. (PHP) 2000-07-17: Patrick Haller - KERNEL32: fixed ReadFile/WriteFile bugfix fixed return codes for HMWaitForSingleObject 2000-07-16: knut st. osmundsen - Win32k: Created a development branch called "Grace" and checked my current code in into it. (This is the reason why there are some new files in the src/win32k tree.) 2000-07-15: Sander van Leeuwen - USER32: XWing vs Tie Fighter fix broke RealPlayer 7 setup (missing buttons) -> rewrote RDW_INVALIDATE code in RedrawWindow to work for both applications - KERNEL32: Added extra check in isPEImage method lpNumberOfBytesRead/Written can be NULL in Read/WriteFile - PELDR: Fix for arguments with quotes (first and last quote removed) (i.e. pe rnuninst "RealNetworks|RealPlayer|6.0| -i -p") Fix for exe name with dir containing spaces 2000-07-12: Przemyslaw Dobrowolski - KERNEL32: Implemented handlemanager support for named and unnamed pipes 2000-07-10: Sander van Leeuwen - KERNEL32: Don't try to search for resources if the module doesn't contain any 2000-07-09: Patrick Haller - doc: Moved several documents to the new doc directory and created initial version of "ToDo.txt". We should place our open tasks in there for better overview and to be able to assign priorities and people to them. 2000-07-07: Sander van Leeuwen - NTDLL: Bugfix for NtQueryInformationToken (TOKEN_USER); updated with latest Wine code (TODO: NTDLL needs to be resynced) 2000-07-06: Sander van Leeuwen - KERNEL32: Store user default language in thread database struct Set/GetThreadLocale change/return this LCID value Fixed EnumSystemLocalesA/W; now returns default user language id (in text) (TODO: should return all supported locales) - KERNEL32/GDI32/USER32: Changed/fixed calls to strncpy (for 0 termination) 2000-07-06: Vitali E. Pelenyov - ODINCRT: Fixed wrong implementation of strncpy; do not 0 terminate string unless length < length parameter (this is correct behaviour according to C library manual) 2000-07-04: Sander van Leeuwen - KERNEL32: Unstubbed CopyFileExA/W (calls CopyFileA/W; not properly implemented) Unstubbed CreateDirectoryExA/W (calls CreateDirectoryA/W; not properly implemented) Fixed GetShortPathNameA/W; don't touch short path parameter if it's NULL; behaviour (as seen in NT 4, SP6): - converts long filename to 8.3 short filname (TODO: not yet done here!) - fails on volume that doesn't support 8.3 filenames - if lpszShortPath 0 or cchBuffer too small -> return required length (INCLUDING 0 terminator) - if lpszLongPath == NULL -> ERROR_INVALID_PARAMETER (return 0) - if lpszLongPath empty -> proceed as if nothing is wrong (Wine claims it sets last error to ERROR_BAD_PATHNAME) - does NOT clear the last error if successful! - if successful -> return length of string (excluding 0 terminator) - USER32: Fixed adding windows to tasklist (done too late) - GDI32/USER32: - Rewrote Set/GetViewportExtEx, Set/GetMapMode & moved them from gdi32 to user32 2000-07-03: knut st. osmundsen - KERNEL32: Added IsDebuggerPresent (debug.cpp). Returns FALSE, but by SETing ODIN32.DEBUGGERPRESENT=1 it will return TRUE. (Some application might issue calls to OutputDebugString if they think they're being debugged.) Moved OutputDebugString(A/W) to debug.cpp. 2000-07-02: Sander van Leeuwen - RICHED32: Fixed bug when creating edit window (needs to be WS_CHILD) - USER32: Fixed moving of child windows in MsgFormatFrame & move child windows if only client rectangle changes (fixes Acrobat Distiller window) - SHELL32: Put back check for registration of ShellView window class -> RegisterClass now fails if already registered (fixed openfile dialogs) 2000-06-30: Sander van Leeuwen - PELDR: Fixed bug in command line parser - KERNEL32: Fixed bugs in commitPage of memory mapped files (when part of the offending memory area is committed and the rest is not) Fixed alias check in ReadFile (include offset & size) and added the same check to WriteFile Fixed bug in OpenFile (don't set structure to 0 for OF_REOPEN mode) - USER32: Don't send WM_ACTIVATE in WM_WINDOWPOSCHANGED if window already active (endless loop in Lotus Notes) Move children if client area changed (only if window was previously smaller than client area) -> fixes install window in AIM installer. 2000-06-30: Michal Necasek - KERNEL32: Fixed lstrcpynA(toW) calls (wrong length) - WINMM: Resume playback when writing a buffer in underrun state Set minimal buffer size to (bytes per second)/32. 2000-06-29: Michal Necasek - DDRAW: Experimentally changed SurfGetDC behavior which fixed colors in some but not all cases. GDI image is still upside down. 2000-06-29: Sander van Leeuwen - INCLUDE\WIN\commctrl.h: Put undocumented parts in #ifdef COMCTL32UNDOC statement - INCLUDE\makefiles Added -DCOMCTL32UNDOC to Odin compile flags - USER32: Added HCBT_ACTIVATE hook call to SetActiveWindow Send WM_ACTIVATE from WM_WINDOWPOSCHANGED if SWP_ACTIVATE flag set -> fixes activation of odin windows Removed forwarding of messages to PM frame window handler. 2000-06-28: Sander van Leeuwen - KERNEL32: Cleaned up resource handling (findResourceA/W); much more efficient now (searching for different languages) Sets proper error code when failing to find type or name Search for language in following order: - specified language (user default if LANG_GETFIRST) - primary specified language with default sublanguage - language neutral - first available language Changed return type of HMDeviceFileClass file locking methods (DWORD -> BOOL; not a bugfix) 2000-06-28: Michal Necasek - USER32: BeginDeferWindowPos accepts count 0 as valid parameter (verified in NT; negative count is illegal) 2000-06-27: Patrick Haller - KERNEL32: Added CreatePipe() call. Note: Anonymous and named pipes do NOT comply with HandleManager right now! 2000-06-27: Michal Necasek - DINPUT: Fixed some key values, MS uses mostly raw scan codes but not always, why am I not surprised? 2000-06-26: Sander van Leeuwen - GDI32: Fixed inverse video in RealPlayer 7 with SDD video drivers - USER32: Fixed bug in InvalidateRect/Rgn, don't include children in WinInvalidateRect/Region call -> fixes painting of background bitmap in XWing vs Tie Fighter install app. WinInvalidateRegion with fIncludeChildren=0 invalidates both the parent and child windows (for !WS_CLIPCHILDREN window) fIncludeChildren=1 -> invalidates only child (in xwing case as it overlaps the invalid region completely; though parent window doesn't have WS_CLIPCHILDREN style) - KERNEL32: Added check for crossing limit of relocation section when applying fixups. (fixes crash in IBM VisualAge Java setup) 2000-06-25: Michal Necasek - KERNEL32: When creating files and mode is readonly, change to read/write (or else DosOpen fails) GetFileTime failed in OpenFile because handle wasn't saved yet 2000-06-23: Sander van Leeuwen - KERNEL32: Changed version; Odin presents itself as Windows NT 4 Service Pack 6 Return build nr in high word in GetVersion Minor fixes in GetSystemInfo (processor level & revision) FindResource bugfix for resource types starting with '#' (i.e. "#102" really means numeric id 102) 2000-06-22: Michal Necasek - KERNEL32: Added language support for Czech Republic - USER32: wsprintf bugfix for %#04x (didn't add leading 0('s) if required) 2000-06-22: Christoph Bratschi - COMCTL32: fixed ANIMATE_ThreadFunc's calling convention 2000-06-21: Sander van Leeuwen - USER32: Owner bugfix (WS_CHILD window has no owner) Replaced calls to PM frame window handler (i.e. WM_FOCUSCHANGE) Activated menu keyboard accelerators - KERNEL32: Setup environment similar to NT. I.e.: CPU=i386 HOMEDRIVE= HOMEPATH=\ NUMBER_OF_PROCESSORS=2 OS=Windows_NT PATHEXT=.COM;.EXE;.BAT;.CMD PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 6 Model 6 Stepping 5, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=0605 SystemDrive= SystemRoot= windir= TODO: Some environment variables still missing (see kernel32\initsystem.cpp) 2000-06-21: Patrick Haller - MSVCRT: - Added stub for __CxxLongjmpUnwind (NETSCAPE 4.7) - CRTDLL: - CRTDLL is in some serious troble: 1. CRTDLL__close() -> _close() CRTDLL__openU() -> CreateFileA() this combination is incompatible ! 2. calls like _close() go into the OS/2 kernel somewhere without proper FS: protection -> CRASH. CRTDLL__close() is fixed (CloseHandle()) now. 2000-06-18: Przemyslaw Dobrowolski - KERNEL32: Added language support for Poland 2000-06-18 Patrick Haller - KERNEL32: - fixed potential memory leak in GetLocaleInfoA - improved GetNumberFormatA 2000-06-17: Sander van Leeuwen - KERNEL32: Bugfix in resource handling (due to yesterday's change) DuplicateHandle fix - USER32: Region fixes (RedrawWindow) Get/SetWindowRgn fixes - INCLUDE\OS2WRAP.H: Added missing wrappers for GpiCreatePolygonRegion, GpiCreateEllipticRegion & GpiCreateRoundRectRegion 2000-06-16: Sander van Leeuwen - GDI32: Put back region 'bugfix' as it's completely wrong and breaks RealPlayer 7. - KERNEL32: FindResource bugfix for resource names starting with '#' (i.e. "#102" really means numeric id 102) 2000-06-14: Patrick Haller - KERNEL32: - fix in HandleManager::DuplicateHandler to call OSLibDosDupHandle() instead of CreateFile - fix oslibdos.h FILE_ SetFilePointer constants were shifted by 1 - fix for signed negative 32-bit seek from llseek() forwarded to the 64-bit OS/2 DosSetFilePtrL() Note: need to check file locking APIs ! - fix GPI32 region: clientHeight, clientWidth: hwnd == 0 == HWND_DESKTOP seems to be valid ! 2000-06-14: Sander van Leeuwen - USER32: Rewrote ExcludeUpdateRgn & GetUpdateRgn Check if update rectangle is emtpy in PM WM_PAINT msg; ignore it when that's the case -> fixes excessive redrawing in Lotus Notes - GDI32: Put back region apis Rewrote region functions DIB section reversal bugs fixed (as seen in Starcraft install) 2000-06-14: Patrick Haller - KERNEL32: Altered calling of dllEntryPoint() depending on static or dynamic loading if library according to the Win32 documentation. (StarCraft) 2000-06-13: Sander van Leeuwen - USER32: Check if class already exists in RegisterClass(Ex)A/W and return 0 (ERROR_CLASS_ALREADY_EXISTS) if true 2000-06-12: Patrick Haller - LZ32: Updated to current WINE level (minor changes) 2000-06-11: Patrick Haller - KERNEL32: Moved GetNumberFormat to different source file and enhanced it a little (WinRAR shows file sizes) Creating an existing directory does not return an error ?! Updated GetStringTypeA/W and GetStringTypeExA/W - SHLWAPI: Added a whole lot of missing functions, forwarders, stubs Only 50 more to go for IE4 ... 2000-06-09: Patrick Haller - COMCTL32: Added some missing stubs (.9 .10 .389 .390) - SHLWAPI: Added numerous missing functions, some stubs (.1 .2 .3 .4 .5 .6 .7 .8 .9 .10 .11 .12 .13 .14 .15 .16 .23 .28 .37 .38 .40 .43 .53 .56 .59 .60 .74 .83 .94 .95 .102 .116 .117 .158 .197 .240) 2000-06-08: Sander van Leeuwen - KERNEL32: Fixed incorrect last error for OpenFile & LoadLibrary(Ex) Added null pointer check to RegQueryValueW and fixed memory leak. - USER32: Ignore weird WM_ADJUSTWINDOWPOS messages (why are they sent?) -> fixes combo box Fixed GetUpdateRect RedrawWindow changes; SetWindowPos fix (client invalidation) Call MsgNCPaint in RedrawWindow (WM_NCPAINT is not posted if update region doesn't include (part of) the nonclient area. -> fixes RealPlayer 7 titlebar, borders & menu GetTopWindow fix. (should work properly now) 2000-08-03: knut st. osmundsen - tools/install:Added a stram 'close' on the changelog. (4OS2 can't copy files which are opened for write(?). The changelog has to be closed after copying it into the odininst.wis file.) - tools/DailyBuild: Creates .WPI releases too. (odin32pack.cmd and odin32ftp2.cmd) WarpIn is added to the build environment variables (odin32env.cmd). WarpIn is added to the build environment variables (odin32env.cmd). 2000-06-07: Sander van Leeuwen - USER32: Fixed wrong dispatch of WM_NCHITTEST Fixed DC leak in EndPaint (reset hps type to TYPE_1) -> resulted in out of memory and very slow PM operations -> ICQ 2000a install now finishes (used to run out of mem) Rewrote window management; now one PM window (non-frame) is created for each win32 window (used to be a frame/client pair) -> speeds up drawing & fixes some repaint problems Window coordinates (internally stored) are now relative to window parent (or screen coord. if no parent); client coordinates relative to the frame window GetParent now returns owner if toplevel window SetParent hides and shows window when changing parent Added support for DCX_USESTYLE, DCX_CLIPSIBLINGS, DCX_CLIPCHILDREN and DCX_PARENTCLIP in GetDCEx Rewrote Set/GetWindowPlacement + SetInternalWindowPos (Wine port) Manual minimize, maximize & restore in ShowWindow + fixes TODO: Repaint problems, move child windows when client position/size changes SetParent/GetParent fixes for desktop parent. - SHELL32: Disabled system tray window for now. (appears in top/right of the desktop otherwise) 2000-06-03: Jeroen van den Horn - WINMM: Don't start playback when WaveOutRestart is called before any buffers have been added. Clear WHDR_INQUEUE bit for buffers returned in WaveOutReset 2000-06-03: knut st. osmundsen - Win32k/REXX: Rewrote the REXX stub program in assembly. (exe size: 688 bytes) Might be able to embedd it in win32k.sys... (not priority) 2000-06-02: Jeroen van den Horn - SHELL32: Systray class registered with wrong name 2000-06-01: Sander van Leeuwen - GDI32/USER32: Moved GetClipRgn & GetClipBox into user32 (dc.cpp) - GDI32: Added more logging - KERNEL32: Rewrote CompareFileTime, DeleteFileA Put file io apis in separate handlemanager object class Rewrote most file io apis; includes support for 64 bits file pointer/size: - CreateFile/OpenFile/DuplicateHandle/CloseHandle - ReadFile(Ex)/WriteFileEx/GetFileType/GetFileInformationByHandle - SetEndOfFile/SetFileTime/GetFileTime/GetFileSize - SetFilePointer/LockFile(Ex)/UnlockFile(Ex)/FlushFileBuffers Fixed some OpenFile bugs. Put Read/WriteFileEx into file io class. Fixed LockFileEx/UnlockFileEx New file apis use OS/2 apis now; overlapped IO not yet supported. - SHELL32: Added ISF_MyComputer_fnParseDisplayName from latest Wine Fixes open file dialog 2000-05-31: Michal Necasek - KERNEL32: Remove trailing slash in SetCurrentDirectoryA 2000-05-29: Jens Wiessner - URLMON: Added (Wine 26/05/2000) - IMAGEHLP: Updated (Wine 26/05/2000) 2000-05-29: Sander van Leeuwen - KERNEL32: Make resource section read/write GDI32 changes some bitmap structures to avoid problems in Open32 -> causes crashes if resource section is readonly -> make it readonly again when gdi32 has been rewritten - GDI32: StretchDIBits bugfix (check if return value equals src height; not destination) - USER32: Groupbox should return HT_TRANSPARENT during WM_NCHITTEST 2000-05-28: Michal Necasek - DINPUT: Discard messages received multiple times. Fixes keyboard in Fallout 1/2. 2000-05-28: Sander van Leeuwen - SHELL32: Merged ShellExecuteA/W of latest Wine release (old version did not return process handle) - KERNEL32/USER32: Rewrote and cleaned up resource handling. FindResource(Ex) now returns IMAGE_RESOURCE_DATA_ENTRY pointer. 2000-05-27: Sander van Leeuwen - KERNEL32: Don't call entrypoint when executable is loaded as dll (with LoadLibrary(Ex)) Fixed bugs in GetVolumeInformationA 2000-05-26: Sander van Leeuwen - USER32: Don't call Dinput handlers (mouse & keyboard) during message translation in PeekMessage unless msg is removed. Don't use FCF_TASKLIST style anymore; manually add/remove windows from tasklist (only windows with no parent are added; visible in window list if window is visible; change tasklist status in SetWindowPos (SWP_SHOW/HIDEWINDOW) or ShowWindow) - KERNEL32: Don't delete a memory map when it's file handle is closed. Delete it when the last view has been unmapped. (and the handle is closed) Added method to query the size of a win32 image. - INCLUDE\makefiles: Added TCPV40HDRS definition 2000-05-24: Sander van Leeuwen - KERNEL32: Fixed some memory map bugs (memory sdk sample works again) - USER32: Experimental generation of own WM_HITTEST messages (disabled now) Don't activate active MDI child. 2000-05-24: Patrick Haller - WINMM: finally fixed callback type of timeSetEvent() timers - KERNEL32: changed (experimentally) behaviour of MapViewOfFileEx: lpBaseAddress is ignored (VAJ3 loads) 2000-05-23: Sander van Leeuwen - KERNEL32: Rewrote GetVolumeInformationA/W Fixed call to GetFileTime in OpenFile - DDRAW: Bugfix for querying HEL caps in DrawGetCaps (support for different DX versions) 2000-05-22: Sander van Leeuwen - KERNEL32: GetFileAttributes bugfix: Open32 returns FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_NORMAL for directories whereas NT 4 (SP6) only returns FILE_ATTRIBUTE_DIRECTORY Fixed GetFileTime; wasn't updated for handle manager (InstallShield now continues after initial window (used to stop at 99%)) Create thread security objects during THDB creation (not complete) -> fixes crash in NTDLL for thread tokens -> PowerDVD 2.55 install now completes FindResource(Ex)A/W: if resource not found, then try: - resource with user default language - resource with system default language - first available resource (any language) (TODO: Need to check what NT really does) -> fixes wrong strings (i.e. menu & buttons) in PowerDVD - GDI32: Sync dib section in StretchDIBits if destination hdc contains selected dib section -> fixes black windows in PowerDVD (todo: palette still wrong) 2000-05-21: Christoph Bratschi - USER32: merged controls with Corel WINE 20000513 fixed titlebar double click -> restore/maximize show window text changes (why was this disabled?) - COMCTL32: merged with Corel WINE 20000513 added APIs used by IE5 (credit: Patrick Haller) 2000-05-20: Sander van Leeuwen - USER32: BroadcastMessageA/W bugfix Set visible state for both client & frame windows (fixes redrawing of toolbar window in mIRC32) in SetWindowPos & ShowWindow - KERNEL32: Partly implemented GetDiskFreeSpaceExA/W; need to add support for 64 bits values! 2000-05-19: Jeroen van den Horn - ICMP: Initial release of ICMP.DLL and header files - OPENGL32: Upgraded to latest level (3.3) 2000-05-19: Yuri Dario - USER32: Don't send WM_PARENTNOTIFY if parent has already been destroyed 2000-05-19: Przemyslaw Dobrowolski - WNASPI32: Unique id & buffer length bugfixes -> CDRWIN 3.8a works now (recording on SCSI only for now) 2000-05-19: Sander van Leeuwen - SHELL32: Fixed some exports - SHLWAPI: Fixed ordinals of exports (based on NT4 SP6) + added stubs - GDI32: Fixed palette copy in SetDIBits (dib sections) -> fixes bitmap colors in WinDVD control window & X-Wing vs. Tie-Fighter install window 2000-05-18: Michal Necasek - DSOUND: An updated version, hopefully not too many bugs were introduced 2000-05-18: Sander van Leeuwen - KERNEL32: EnumResourceNamesA bugfix (wrong length in UnicodeToAsciiN call) (reported by Michal Necasek) Call CheckLogException for each exception; safety guard against exceptions inside WriteLog. - WSOCK32: Mark cancelled async select to avoid finding it before the thread removes itself from the queue Check if async select thread is blocking inside select before calling so_cancel to cancel or change the async select. - SHELL32: Removed Path* functions; added forwarders to shlwapi.dll - SHLWAPI: Merged path function with Wine 20000430 (shellpath.cpp) Added DllGetVersion export. Added SHCreateStdEnumFmtEtc, CIDLData_CreateFromIDArray, SHFindFiles SHFindComputer + other apis used by IE5 (stubs) - COMCTL32: Added export 389 (return 0 as in NT 4) & 390 (stub); IE5 needs them Added DPA_LoadStream & DPA_SaveStream (Wine port) 2000-05-16: Sander van Leeuwen - COMDLG32: Fixed shlwapi imports (GetProcAddress failed for PathFindFileNameA -> crash when calling file dialog functions) 2000-05-16: Jeroen van den Horn - GDI32: Fixed bug in font.cpp iFontRename should use strncpy instead of memcpy since source string passed may be smaller than amount of bytes to copy resulting in GPF. 2000-05-14: Przemyslaw Dobrowolski - WNASPI32: Implemented working ASPI. 2000-05-14: Patrick Haller - SHLWAPI: finally separated SHELL32 and SHLWAPI, adjusted to NT4 functions and exports 2000-05-13: knut st. osmundsen - tools\common: Corrected makefiles. 2000-05-12: Edgar Buerkle - KERNEL32: Print name of image referenced by EIP (stackdump) 2000-05-12: Sander van Leeuwen - USER32: Fixed bug in HOOK_RemoveHook (wrong call for enter semaphore method) SetSysColors bugfix (called itself for some reason) Fixed wrong dispatch of messages under certain conditions - COMDLG32: Fixed initial directory for GetOpen/SaveFileNameW If initial dir string == "" -> use current dir (not only when ptr equals NULL) (verified this behaviour in NT 4) - GDI32: Do manual image flip in dib section blit (fixes wrong position of Palm Emulator bitmap) Might also fix reversed video in RealPlayer 7 (Warp 4 FP13/WSeB FP1) 2000-05-10: Christoph Bratschi - COMCTL32: Fixed treeview item height bug (reported by Markus Montkowski) 2000-05-10: Sander van Leeuwen - USER32: Fix for SetForegroundWindow (SWP_NOZORDER flag removed) GetForegroundWindow now uses WinQueryActiveWindow instead of Open32's GetForegroundWindow - KERNEL32: Extra logging for atom functions, fixed GlobalGetAtomNameW - COMDLG32: Added missing ascii to unicode conversions in GetFileDialog95W (file name (returned), initial dir & file dialog title) - RICHED32: Added (Wine port) - TOOLS\INSTALL: Added ChangeLog to installation script 2000-05-09: Sander van Leeuwen - KERNEL32: Enclose executable name in quotes if it (or it's directory) contains spaces Route rtl error messages to logfile (_set_crt_msg_handle) Added support for system, user default & neutral language in FindResourceExA/W Fill in correct language id in GetUserDefaultLCID/GetSystemDefaultLCID GetUserDefaultLangID & GetSystemDefaultLangID; gets country with DosQueryCtryInfo - WSOCK32: Return WSAWOULDBLOCK if recv returns 0 and connection is still available. (experimental change for rp7) - USER32: MENU_PtMenu: return when menu has no window handle (prevents Moraff's YourJongg from crashing -> need to check why this happens) Bugfix in AdjustWindowRectEx; if style, exstyle and menu = 0 -> no changes required to the input rectangle (verified this in NT 4) Don't send WM_ACTIVATE, WM_SET/KILLFOCUS & WM_SHOWWINDOW messages when window is being destroyed. - SHELL32: Wrong systray classname used when creating systray window Fixed bugs in SYSTRAY_SetTip/SYSTRAY_ModifyTip; string copy operations used wrong size -> heap corruption - DINPUT: Check window handle if app acquired mouse input in cooperative mode - TOOLS\INSTALL: Fixed wrong glide dll for voodoo 2 install package 2000-05-06: Sander van Leeuwen - GDI32: Added stretch blit mode support to dibsection blits 2000-05-05: Sander van Leeuwen - USER32: Fixed window property functions (ported from Wine) The old ones used Open32 functions which no longer work due to atom api changes a few months ago. If the mouse has already been captured, then it must be released before calling WinSetCapture -> fixes menus & dialog in MS Word 97 - OLE32: Fixed BindCtxImpl_SetBindOptions/BindCtxImpl_GetBindOptions Need to check size of bind structure before copying (as done in Wine) -> fixes crash (stack corruption) in MS Word 97 - WSOCK32: When changing the receive or send buffer (setsockopt) and it fails with WSAENOBUFS, decrease size until no error is returned (63kb buffer is not always accepted by the 16 bits tcpip stack) (stops when buffer < 4096) 2000-05-04: Achim Hasenmueller - USER32: Applied fix to GetDCEx where the check to see if the window has its own DC was applying invalid style flags due to missing parantheses (reported by Oliver Braun) 2000-05-04: Sander van Leeuwen - USER32: Menu font from bold to normal again. Bold fonts are too big (rp7 menu split in two parts). 2000-05-03: Sander van Leeuwen - WSOCK32: Fixed WSAEFAULT errors in setsockopt (16 bits TCP/IP stack doesn't like high addresses; similar problems can also occur elsewhere in wsock32) - USER32: Change settings return by SystemParameterInfo for SPI_GETNONCLIENTMETRICS Caption & menu fonts now bold; different sizes (more like Wine now) Set/clear WS_VISIBLE flag in SetWindowPos; don't call ShowWindow. Implemented Set/Get/ReleaseCapture without Open32 Release capture for window that is about to be disabled Send WM_CAPTURECHANGED messages when capture changes 2000-05-02: Sander van Leeuwen - KERNEL32: GetLocaleInfoA/W fix (size of buffer for i.e. LOCALE_IDATE should be >= 2, not > 2) VirtualFree: Check for ERROR_ALIAS return value Ported and changed/fixed XFolder stack dump code (symbol file only) When a win32 app crashes, a dump of the stack is written in odin32_0.log. - USER32: Merged some Wine dialog changes (setting focus + font size) Extra logging for some apis Added support for RDW_FRAME flag to GetDCEx - INCLUDE\makefiles: Added rule for converting map to symfile A symbol file is now created for each exe/dll - INCLUDE\ODINWRAP: Turned off profiling by default. Our log is big enough as it is without even more logging. 2000-05-02: knut st. osmundsen - makefile and tools/makefile: tools/install is not a "needed tool" required for to do the rest of the build; and it'is dependent on kernel32.lib which haven't been made at the time the needed_tools are being made. So, the making of tools/install is the last thing we do in the makeprocess. - WSOCK32, WINMM: ODINWRAP changes below broke WSOCK32 and WINMM. I've created some highly temporary fix for it this problem. Could someone please make a permanent fix? - tools/bin/wrc.exe and tools/wrc: Important notice: __WIN32OS2__ is not defined when making wrc! This was the reason why ':' was used as include separator. This is corrected now. ';' is now the include separator. A new wrc.exe has been checked in. 2000-04-30: Patrick Haller - ODINWRAP: added profiling support. The odin wrapper macros now can measure function calls, this is the cumulative method call time with 838ns accuracy (tick unit). 2000-04-30: Sander van Leeuwen - KERNEL32: LocalFlags fix (low byte = lock count, hight byte (of low word) = memory flags) LocalGetFlags, LocalLock & LocalUnlock now check if the pointer is larger than 3 GB. Some apps calls these functions with GDI object handles. - OLEAUT32: Don't create logfiles in release build 2000-04-29: Yuri Dario - USER32: Bugfix for owner of windows (set to owner instead of parent now) 2000-04-29: Sander van Leeuwen - USER32/KERNEL32: Added selectable logging for level 2 dprintfs. - USER32: Commented out default x & y position code (FCF_SHELLPOSITION no longer works) -> fixes menu & toolbars in MS Word 97 - KERNEL32: Added windows directory override again (NOTE: for developers *ONLY*; DO NOT USE IT) [DEVDIRECTORIES] WINDOWS=drive:\path Default System directory is kernel32 path (with new install program: x:\odin\system32) Default Windows directory is parent of System Directory (with new install program: x:\odin) NOTE: This assumption could break current installs Will be fixed in upcoming WarpIn installation distributions Changed InitSystemAndRegistry: InitSystemAndRegistry creates: - WINDOWSDIR\SYSTEM - WINDOWSDIR\AppData - WINDOWSDIR\Cache - WINDOWSDIR\Cookies - WINDOWSDIR\Desktop - WINDOWSDIR\Favorites - WINDOWSDIR\Fonts - WINDOWSDIR\History - WINDOWSDIR\NetHood - WINDOWSDIR\My Documents - WINDOWSDIR\PrintHood - WINDOWSDIR\Recent - WINDOWSDIR\SendTo - WINDOWSDIR\Start Menu - WINDOWSDIR\Start Menu\Programs - WINDOWSDIR\Start Menu\Programs\Startup - WINDOWSDIR\ShellNew - and a minimal system registry - TOOLS\INSTALL: WarpIn install script + small install program that calls kernel32 export (InitSystemAndRegistry) - TOOLS\WRC: Forgot to add change in preproc.c (ifdef) (shouldn't really matter though) 2000-04-27: David Raison - OLE32/NEW: Work-in-progress on adding apartment handling. Added here for backup until ready for release. 2000-04-27: knut st. osmundsen - tools/DailyBuild: Checked in the scripts used for the daily build. 2000-04-27: Achim Hasenmueller - put back new wrc.exe, provide workarounds in header files, old one breaks comdlg32 TODO: find bug in new wrc and really fix it 2000-04-26: David Raison - INCLUDE/WIN: Added RPC_E_* codes to winerror.h - OLE32: Fixed StringFromGUID2 2000-04-25: Achim Hasenmueller - TOOLS/BIN: put back old wrc.exe from Oct. 99 because the new one has problems with include files... 2000-04-25: Patrick Haller - SHLWAPI: - stubbed all the UrlXXX functions (required for IE4/5 ;-) 2000-04-23: Sander van Leeuwen - GDI32: Dib section blit fix (missing pixels) - WSOCK32: Don't send FD_CLOSE message when select returns and there's no data available (recv in another thread might have taken that data before the ioctl call in the WSAAsyncSelect thread is executed) -> fixes lost connections in RealPlayer 7 2000-04-19: Patrick Haller - INCLUDE/PDWIN32.TOOLS: fix build rule for (old) .asm sources 2000-04-19: knut st. osmundsen - KERNEL32: Added fix for bug in FP13 DosQuerySysInfo. Win32k/Pe2Lx loaded files didn't work. Corrected TLS handling for Borland. 2000-04-19: Sander van Leeuwen - TOOLS\WRC: Resync with latest Wine wrc + added code to produce masm compatible assembly (for some reason removed from wrc some time ago) -> fixes file open dialog (nothing painted) - COMCTL32: Check for NULL pointers before freeing memory (toolbar; removes some warnings from the logfiles) 2000-04-18: Sander van Leeuwen - USER32: Added LR_LOADFROMFILE support for icon & cursor loading - GDI32: Dib section fixes (use height/width of window when dc belongs to a window; use correct stretchblit mode) - TOOLS\REGEDIT: Added regedit command line tool (ported this from Wine with some modifications & bug fixes) - KERNEL32: Also set FPU control word to 0x27f before calling thread functions (just to be sure) 2000-04-16: Christoph Bratschi - COMCTL32: added new resources: i.e. header cursors changed file version to 5.80 (IE5, Win2k) implemented missing listview messages, implemented some extended styles 2000-04-16: Sander van Leeuwen - KERNEL32: Put back dll search method, fixed bug in LoadLibraryEx (no return after error detection) Set FPU control word to 0x27F before calling exe entrypoint (fixes some FPU exception problems in RealPlayer 7) 2000-04-16: knut st. osmundsen - KERNEL32: Reorganized/reworte LoadLibrary/LoadLibraryEx code. isPEImage was changed to return 1 if DLL and 2 if EXE. (It still returns FALSE if not valid PE image.) - include\odin32validate.h: New header file. Parameter validation macros. - KERNEL32: Before reading Sanders last message I had rewritten most of the findDll function. So, as my implementation seems a bit more flexible I decided to commit it. Currently it's searching the three LIBPATH paths too. If this causes any real trouble we'll disable this. findDll now returns TRUE if a file were found. Callers are corrected to test for this. 2000-04-15: Christoph Bratschi - COMCTL32: rewrote listview item handling: sort bug fix, allows >= 4.70 support implemented several new messages 2000-04-15: Sander van Leeuwen - WSOCK32: Async select fix (VPBuddy can connect again) - KERNEL32: Remove terminating backslash in FindFirstFileA (if present) (otherwise DosFindFirst fails) Fixed flushing of file maps (wrong VirtualQuery parameter) Path search fix for dlls Dll search order: 1) exe dir 2) current dir 3) windows system dir (kernel32 path) 4) windows dir 5) path environment variable - ODINCRT: Added checks for failing mallocs - USER32: Corrected return value of EnableWindow Send WM_CANCELMODE message when disabling window (return true if previous state was disabled, else false (sdk docs)) Don't send mouse messages to disabled windows; reroute them to their parent windows (if any) 2000-04-14: Sander van Leeuwen - KERNEL32: Hardcoded system & windows dir system dir = kernel32 dir windows dir = kernel32 dir\win Fixed dll attach for pe2lx/win32k & lx Odin executables Command line fixes (now starts with full path of exe) Search for dlls in: 1) current dir 2) win32 exe dir 3) windows system dir 4) path Append backslash if GetFileAttributes fails (and it's missing from the filename) - PELDR/KERNEL32: Fixed starting of executable with spaces in name (might not be 100% complete yet) Fixes for relative path of executable - ODIN.INI.TXT: Removed DIRECTORIES section 2000-04-13: Sander van Leeuwen - USER32: Set thread message structure to 0 before dispatching it Prevents app from sending the same posted message twice (causing problems when freeing the postmsg struct) (fixes RealPlayer 7 Update service) - CRTDLL: Fixed div (result must be returned in edx:eax) - PE: Check PATH for executable file 2000-04-12: Christoph Bratschi - COMCTL32: listview: completed most version 4 features 2000-04-10: Sander van Leeuwen - USER32: Added support for topmost windows 2000-04-10: David Raison - COMDLG32: fixed wrong lParam in file dialog 2000-04-09: Sander van Leeuwen - GDI32: Y inversion fix for dib sections blits - WINMM: GetPosition fix (don't return 0 when stream not active) - KERNEL32: Fixed OSLibDosFindFirst. Return error if First DosFirstFirst fails. (fixes RealPlayer 7 install) 2000-04-09: Yuri Dario - INCLUDE(\WIN): - odin.h: define NONAMELESSUNION only for VA3.0 (now works with VA4); remove buildin.h when invoked from resource compiler. - commctrl.h: new macros - mmsystem.h: define DUMMYUNIONNAME with same code used in other headers to avoid precompiling errors. - shlguid.h: missing ID - shlobj.h: missing shlguid.h include - windows.h: define CINTERFACE only for C compilers or VA3.x - windowsx.h: macros - wingdi.h: few AW defines - winuser.h: new macros 2000-04-08: Christoph Bratschi - COMCTL32: added new styles and functionality, bug fixes 2000-04-08: Sander van Leeuwen - WINMM: Restart, pause & underrun fixes - KERNEL32: Fixed bug in CompareStringW. Unicode conversion was causing heap corruption. (RealPlayer 7 crashes) 2000-04-07: Michal Necasek - DDRAW\NEW: Experimental fullscreen DDraw, VIDEOPMI based. May not work with all video cards and may cause all kinds of trouble. But works swell for eg. Fallout 1/2 or HMM3. Contains some extra bugs compared to the windowed DDraw, ie. Moorhuhn and others don't work with it at all. Please tell me about your experience with this shameless hack. 2000-04-07: Sander van Leeuwen - WINMM: Don't restart when already playing - USER32: Print mark in debug log with WriteLog (#ifdef DEBUG), not dprintf Workaround for paint problems in RealPlayer 7 Update 1. (don't clip the dc with a region in DoNCPaint if the clip region has the same size as the window; doing so creates update problems for no obvious reason) - GDI32: Only change bitmap size in SetDIBitsToDevice if bitmap is not compressed. (fixes crash during startup in Excel) NOTE: Open32 doesn't implement compression type conversion correctly. (black splash screen for RLE8 bitmap) - KERNEL32: Return length of windows or system directory when GetWindowsDirectory/GetSystemDirectory is called with a NULL pointer 2000-04-07: David Raison - USER32: Set lfSmCaptionFont structure in NONCLIENTMETRICSA (SystemParametersInfoA/SPI_GETNONCLIENTMETRICS) 2000-04-07: Knut St. Osmundsen - TOOLS\DBGINFO: Sym2Hll is now able to convert .SYM files into HLL debuginfo and add it to LX executables. This might be quite useful if you want to see system DLL while debugging. But before you add debuginfo to all dll's in c:\os2\dll I have to warn that this is _very_ alpha software. Do always make a backup (Sym2Hll don't create backups!) and have recovery boot disks ready! 2000-04-06: Sander van Leeuwen - WINMM: Fixed message callback once more (previous fix broke rp7) Fixed restart 2000-04-08: Michal Necasek - WINMM: Moved phwo == NULL check below format query handling. (enables sound in Jack Jazzrabbit; still not right though) 2000-04-05: David Raison - OLEAUT32: Turned default DEBUG-info down. 2000-04-05: Knut St. Osmundsen - Win32k: Added fixpack 13 symbols to the symbol database. Using win32k.sys with fp13 works fine here. 2000-04-05: Sander van Leeuwen - WINMM: Smallest waveout buffer size = 128 bytes Fixed callback bugs (reported by Michal Necasek) 2000-04-03: David Raison - OLE32: Added CoCreateGUID (calls RPCRT4.UuidCreate) - RPCRT4: Beginning of new dll: RpcStringFreeA, RpcStringFreeW, UuidCompare UuidCreate, UuidCreateNil, UuidEqual UuidFromStringA, UuidFromStringW, UuidHash UuidIsNil, UuidToStringA, UuidToStringW 2000-04-02: Przemyslaw Dobrowolski - SHELL32: don't sort files case sensitive 2000-04-02: Christoph Bratschi - KERNEL32: FindFirst: don't return "." and ".." in root wrote long to short name conversion added error code converter - USER32: removed 'What You See Is What You Get On First Of April' 2000-04-02: Sander van Leeuwen - USER32: dc.cpp cleanup - GDI32: Dib section sync bugfix (todo: rgb 565 to 555 conversion if bpp == 16) Set y inversion to 0 if dib section isn't flipped (fixes upside down flash videos in RealPlayer 7) - WINMM: Faked mixer apis 2000-04-01: Sander van Leeuwen - GDI32: Fixed dibsection bitblits. (wrong updates of realplayer 7 videos) 2000-04-01: Christoph Bratschi - USER32: added WYSIWYGOFOA interface 2000-04-01: Edgar Buerkle - USER32: Fixed track frame width & height (now you can actually see the tracking frame when moving a window) 2000-03-31: Christoph Bratschi - USER32: readded CS_HITTEST for HT_TRANSPARENT handling, transparent tooltips are now supported (why is HT_TRANSPARENT in the groupbox control commented out?) - COMCTL32: treeview: added TTF_TRANSPARENT tooltip style 2000-03-30: Christoph Bratschi - KERNEL32: - SHLWAPI: added stubs for explorer.exe - COMCTL32: treeview: finished info tip 2000-03-30: Sander van Leeuwen - KERNEL32: Also double thread stack in release build (RealPlayer 7 runs out of stack sometimes) - WSOCK32: Fixed bugs in WSAStartup/Cleanup & select (fixes Gnutella) 2000-03-29: Sander van Leeuwen - KERNEL32: Throw exception when critical section times out - USER32: Fixed bugs in PeekMessageA/W (fixes connection failures & hangs after warning dialogs in RealPlayer 7) - GDI32: Check for NULL region in GetRgnBox; can cause a crash in Open32 2000-03-29: Christoph Bratschi - KERNEL32: added FindFileFirstMultiA for internal usage 2000-03-28: Markus Montkowski - KERNEL32: Added workaround for GetDiskFreeSpaceA; Open32 api doesn't like NULL pointers 2000-03-28: Sander van Leeuwen - KERNEL32: Fixed VirtualQuery; cbLength is length of memory structure, not range of pages Fixed compare of imported api names with length < 4 Fixed OpenFile; if filename doesn't contain path, look for it in: 1: dir from which the app loaded 2: current dir 3: windows system dir 4: windows dir 5: dirs in path path environment variable NOTE: Icon extraction in shell32 is broken; expects PE images even when looking for icons in shell32. (it should use FindResourceExA/W when looking for resources in that case) - USER32: Fixed combobox focus changes when showing dropdown window - WSOCK32: Added support for warp 4 error messages (0 based) Fixed FD_CLOSE async notification (fixes telnet ability to detect lost connections) 2000-03-28: Christoph Bratschi - SHELL32: don't use pdump() in release build - GDI32: dump ROP2 mode 2000-03-27: Sander van Leeuwen - USER32: Fixed SetParent; remove child from parent's list (previously didn't happen for children of the desktop) 2000-03-27: Christoph Bratschi - SHELL32: only scan dir once in CreateFolderEnumList floppy drives have a fixed name NOTE: delete 'bin\debug(release)\shres.*' or the resources won't be updated 2000-03-26: Christoph Bratschi - COMDLG32: - SHELL32: merged with Corel WINE 20000324 2000-03-25: Sander van Leeuwen - KERNEL32: Fixes for GetStdHandle - WSOCK32: Fixes for getservbyname & getservbyport 2000-03-24: Sander van Leeuwen - KERNEL32: Fixed typo in pe loader (check for < 512 MB) - USER32: Add size of space between two menu items when calculating size of ownerdrawn menu item (fixes RealPlayer 7 menu) - GDI32: Default format of 16 bits dibsection is RGB555 (fixes wrong colors when (sometimes) playing flash files in RealPlayer 7) - WSOCK32\NEW: Bugfixes - WSOCK32: Replaced with new wsock32 2000-03-24: Achim Hasenmueller - WSOCK32\NEW: Made it compile with the TCP/IP V5 header files. NOTE: should we rely on the 32bit stack, is there any benefit for us? - DPLAY: Added ordinals 2 and 3 to the def file, APIs already seem to be implemented?!? - COMDLG32: Fixed correct (Win95/OS2) dialog invocation 2000-03-24: Christoph Bratschi - USER32: fixed GetClipboardFormatNameW fixed scrollbar memory leak - SHELL32: fixed IDataObject_fnGetData return value (file dialog is now usable) 2000-03-23: Sander van Leeuwen - KERNEL32: Fixed shared global mutex Added VSemaphore class - USER32: Fixed shared global mutex TODO: ---->> Compiler bug: during __ctordtorInit it calls the constructor of global objects, even if the dll has already been loaded! Replaced WriteLogs by dprintfs - WSOCK32\NEW: Added WSAAsyncSelect + bugfixes 2000-03-23: Christoph Bratschi - COMDLG32: improved file dialog combobox - COMCTL32: removed static WINMM linking several listview fixes 2000-03-22: Sander van Leeuwen - WSOCK32\NEW: Completely rewritten (removed dependancy on pmwsock) Untested and unfinished (WSAAsyncSelect) 2000-03-21: Sander van Leeuwen - GDI32: Added RGB 555 to 565 conversion in dibsection blit. (fixes wrong colors in RealPlayer 7 Update 1 (rm videos only)) - include\odinwrap.h: Disable heap checking by default for debug build -> kills performance! 2000-03-21: Edgar Buerkle - MSVCRT: Adding logging statement to _EH_prolog 2000-03-21: Christoph Bratschi - COMCTL32: optimized header/treeview for AMD cpuid fixed dispinfo callbacks reduced listview redraws fixed wrong ASCII definitions in commctrl.h 2000-03-20: David Raison - OLE32: Ported OleQueryCreateFromData, OleCreateFromData from wine/corel sources. - OLEAUT32: Bugfix in ITypeLibImpl_GetDocumentation 2000-03-20: Sander van Leeuwen - WSOCK32: Fixed relay bug in WSAAsyncSelect (delete relay slot with same socket nr & window handle; there can be more selects per window) 2000-03-19: David Raison - OLE32: Bugfixes. Ported changes from wine/corel sources. Created ReadClassStm, WriteClassStm, ProgIDFromCLSID 2000-03-19: Sander van Leeuwen - ODINCRT: Fixed FS wrapper for _fdopen & others in file.cpp (missing SetFS) 2000-03-19: Michal Necasek - DINPUT: Few fixes, now Fallout 1/2 almost works 2000-03-18: Michal Necasek - DDRAW: Fixed messed up DPA callback calling convention Added some transparent blit code which was mysteriously missing 2000-03-18: Edgar Buerkle - MSVCRT: Implemented _EH_prolog 2000-03-18: Christoph Bratschi - USER32: merged with Corel WINE 20000317 added GCL_HICONSM support fixed messagebox with no icon - COMCTL32: merged with Corel WINE 20000317 + bug fixes 2000-03-18: Sander van Leeuwen - ODINCRT: Added FS wrapper for _fdopen (fixes crash at exit in Professional MineSweeper when selection About Odin from the system menu) 2000-03-17: Christoph Bratschi - COMCTL32: fixed trackbar buddy alignment added useful internal tooltip styles 2000-03-17: Sander van Leeuwen - WSOCK32: Semaphore protection for relay slot alloc/free Fixed bug in WSAAsyncSelect. Allow more than one async call per window for RelayAlloc call. If it's not alloced, pmwsock will return an error. Previously it was overwriting slots for other async calls. (WSAAsyncGetHostName in RealPlayer 7) - KERNEL32: Fixed handle creation for thread 0. 2000-03-16: knut st. osmundsen - TOOLS\FASTDEP: Speed optimizations: using AVL trees, include dir caching, dependencies stored in AVL tree until all files has been processes, buffered write. Cyclic dependency check. All files but the objectfiles now should have fully qualified paths. - INCLUDE\PDWIN32.TOOLS: DEPEND: Enabled cyclic check. 2000-03-16: Sander van Leeuwen - USER32: Fixed virtual keycode of return key TODO: Not done for all keys. Should probably looks at the scancode (not virtual char) to translate keys. - GDI32: RP7 calls CreateDIBSection with HDC 0; Call GetWindowDC(GetDesktopWindow()) in that case -> fixes crash (result of CreateDIBSection failure) TODO: Looks like this is allowed in NT, but need to check this to be sure nothing else caused this problem. (Note: most recent RealPlayer 7 version only) - KERNEL32: Semaphore protection of handle alloc Added handlemanager class for thread handles Added workaround for Open32 WaitForSingleObject bug (if thread is terminated and WaitForSingleObject is called with the thread's handle -> never returns (new rp7 hang at exit)) TODO: WaitForMultipleObjects can still hang -> Event, semaphore, mutex & wait apis need to be redesigned (not using Open32) 2000-03-14: Christoph Bratschi - USER32: implemented much faster LB_SETCOUNT 2000-03-12: Sander van Leeuwen - USER32: Put back check (oldsel == newsel) in LISTBOX_SetSelection (why was this commented out?) Fixed combobox: Clear CBF_SELCHANGE flag before calling CBUpdateEdit Don't send CBN_EDITUPDATE when CBF_NOEDITNOTIFY flag is set (by combo_handletext) -> fixes infinite loops in RealPlayer 7 (type name of file previously used in edit box; last letter entered -> crash) AdjustWindowRectEx bugfix (reported by Robert Lalla) Don't clear WS_POPUP flag. (HAS_THINFRAME depends on it) -> fixes wrong resolution changes in Quake 2 Don't clear WS_CHILD flag either. (HAS_THICKFRAME depends on it) - KERNEL32: Clear FILE_SHARE_DELETE flag before calling Open32's CreateFile. (otherwise it fails) -> fixes RealPlayer 7 Basic (new update). - WSOCK32: Changed workaround for setsockopt bug (SO_SNDBUF/SO_RCVBUF (OS/2's winsock returns WSAEINVAL if size > 64k)) Only change size if setsockopt returns WSAINVAL (32 bits stack should support size > 64 kb (?)) Added selective logging feature. 2000-03-12: Markus Montkowski - KERNEL32: Added fix for GetFileAttributes. Open32 doesn't like i.e. 'c:'; needs to be changed into 'c:\' 2000-03-12: Sander van Leeuwen - include\winconst.h: Fixed KEY_ALL_ACCESS definition (reported by Yuri Dario) - DSOUND: Replaced dsound by new version - USER32: Replaced os2.h includes by os2wrap.h Set message nr, wParam & lParam to 0 for dummy messages (to prevent keyboard or mouse messages swallowed by dinput from being dispatched) - KERNEL32: Replaced os2.h includes by os2wrap.h (cvtcursorgrp & oslibdebug) - WSOCK32: Fixed bug in setsockopt for SO_SNDBUF/SO_RCVBUF (OS/2's winsock returns WSAEINVAL if size > 64k) 2000-03-12: Michal Necasek - dsound\new: Fixed sound in Heroes of M&M III 2000-03-11: Przemyslaw Dobrowolski - OPENGL\GLIDE: Fix for Voodoo 1 glide (missing io ports) 2000-03-11: knut st. osmundsen - OPENGL\GLUT: Fix for gettimeofday. This is defined conflicting in the toolkit sys\time.h. - TOOLS\BIN: Implemented an optional directory locking in dowithdirs.cmd. (Useful for SMP builds.) 2000-03-11: Sander van Leeuwen - OPENGL\GLUT: Fixed compile problems + cleanup (use C(XX)FLAGS_WIN32APP so you don't have to explicitely specify which api type you use (ascii or unicode)!) - OPENGL\GLIDE: Fixed wrong binary path for voodoo1 glide - include\win\debugtools.h: Disable TRACE, WARN etc when DEBUG is not defined 2000-03-11: Jeroen van den Horn - OPENGL: Fixed error preventing build to complete 2000-03-09: Sander van Leeuwen - KERNEL32: Set initial max nr of file handles to 256 during kernel32 init Create DDRAW & DSOUND registry keys in InitRegistry (NOTE: Must be done in install program!) Added some win95 stubs - GDI32: Added 16 bits device apis stubs 2000-03-10: Michal Necasek - dsound\new: Changed DART buffer size calcualation, hopefully WinAmp will sound better now. 2000-03-09: knut st. osmundsen - include\pdwin32.tools: New tool, EXISTS --> \tools\bin\Exists.cmd - tools\bin\Exists.cmd: New tool which checks if the file passed in exists. If the file exists it returns 0, else 1. This is used to check if .depend and other files exists in the makefiles. (See pdwin32.post to see how.) - include\pdwin32.post: .depend is only included if it exists. You'll get a warning if it don't, but the makefile works fine. Added a check on OBJDIR not being empty in the clean rule. $(RM) $(OBJDIR)\* is will remove all files in the root dir if OBJDIR is empty. - win32k: Updated makefile with the use of EXISTS for both .depend and makfile.inc. An update check for makefile.inc <-> configure.cmd was also added. Added checks for empty variables in clean rule, and we no longer deletes * in any directory. A CVS tip: When new directories are added you have to to a 'cvs checkout .' from the root. A 'cvs update' don't get the new directories it seems (There have been added some dirs under win32k lately so please do this.) 2000-03-09: Sander van Leeuwen - KERNEL32: Major rewrite of PE loader classes to correctly support dll dependencies TODO: Circular dependencies only partly working (a->b->a works, but a->b->c->a doesn't) - USER32: Fixed bug in dialog constructor (class name translation) (only showed up in release build) Dinput mouse changes/fixes 2000-03-08: Michal Necasek - dsound\new: Fixed volume and panning calculation that sometimes caused ugly noise 2000-03-08: Michal Necasek - dsound\new: Completely new DART-based DirectSound. Works fine for me with Quake 3, Moorhuhn and WinAmp. 2000-03-07: knut st. osmundsen - makefiles and include\pdwin32.*: * Updated nearly all makefiles to the new makefile style. Win32k, pe2lx and some subdirs of Winmm * Odin32 resource files are now to have the extention .orc All files have, save some under WinMM and in old/new dirs, been renamed. There are now new interference rules in pdwin32.tools which will create the resource assembly and assemble it into an object file. So you simply have to specify the output object file for Odin32 resources along with the other object files. * A little not on forwarders. ILINK returns a warning code of 4 when aliases are generated. An errorcode <> 0 stops NMAKE normally. To workaround these problem we simply tell NMAKE to accespt all error codes in the range 0-4. This is done by putting '-4 ' in front of the $(LD2) statement. I don't want to see _any_ '-$(LD2)'!!! 2000-03-06: Sander van Leeuwen - USER32: Fixed bug in edit control If nyoff > nr lines in control -> bottom line in control window should show last line of control Wine code shows last line at the top of the control (Quake 3 startup edit control shows the problem) 2000-03-05: knut st. osmundsen - include\pdwin32.vac*: Added OS2RC and OS2RCFLAGS. This defines the OS/2 resource compiler and the flags used during compilation. When it comes to linking we should assume NO flags and simply invoke the it like this: $(OS2RC) .res .dll. (See src\kernel32\makefile for an example.) 2000-03-05: Jeroen van den Horn - GLUT32: Really fixed optimized build now. Was not a VACPP bug but error in calling convention prototype in glutint.h 2000-03-04: Jeroen van den Horn - GLUT32: Added logic to escape from optimizer bug in VACPP 2000-03-04: knut st. osmundsen - fastdep: Simple preprocessor. Commments and #if 0/1. - OPENGL: Corrected makefiles. using LD2 and LD2FLAGS. Many makefiles Didn't concider the NODEBUGINFO macro causing daily builds to become enormous. Daily build of 6MB is not good!. - include\pdwin32.v*.*: *Alternate linker tool, LD2. This is ilink for VAC. (See src\kernel32\makefile for hints how to use it). *Synced configuration for the two VAC versions. NOTE that NODEBUGINFO and DEBUGALL is handled within these files. You don't have to test for them to set the correct compiler and linker flags, this is allready done! 2000-03-04: Sander van Leeuwen - INCLUDE\pdwin32.tools, pdwin.vac* Added new build rules (conditional at this time) For each dll a subdir bin\release & bin\debug is created in which the object files of the release & build version are saved. - INCLUDE\pdwin32.post Common makefile rules to be included by all makefiles - USER32\KERNEL32: Switched to new build rules - WSOCK32: Fixed bug in setsockopt for SO_LINGER (options size wasn't adjusted) - KERNEL32: Fixed shell dirs (now all created in odin\bin dir) Partially fixed destruction of loaded dlls in ExitProcess (TODO: dependencies are not yet right; needs new design) Added check and fix for DosOpen (ERROR_TOO_MANY_OPEN_FILES) to hmdevio.cpp - USER32: Pass on keyboard messages if dinput handler returns TRUE Also send non-client mouse messages to dinput (TODO: always returns true after calling dinput handler) - OPENGL\GLIDE: Added check and fix for DosOpen (ERROR_TOO_MANY_OPEN_FILES) to hmdevio.cpp (reported by Michal Necasek) 2000-03-03: Markus Montkowski - DDRAW: Fixed bug in CreateSurface and QueryInterface (Moorhuhn now starts fine with ddraw) - USER32: Changed VirtualKey for VK_NEWLINE from 0x0A to 0x0D in the virtualKeyTable 2000-03-03: Sander van Leeuwen - KERNEL32: Create shell dirs in odin\bin directory Cleanup (never call Open32 apis directly if the proc isn't a wrapper; include win32api.h and call Odin api) Fixed FS corruption for DosAliasMem Fixed bug in Win32PeLdrImage::commitPage (quake 3 screensaver's fixup section doesn't start on page boundary) - ADVAPI32/KERNEL32: Moved registry apis in kernel32 as we need them there (importing them directly creates a circular dependency (kernel32->advapi32->kernel32)) Should probably be moved to ntdll - WINMM: Fixed typo in DartWaveOut::init to determine bits per sample (Realplayer 7 audio now works (when playing .rm files)) 2000-03-03: Jeroen van den Horn - KERNEL32: Fixed calling convention bug in conprop2.cpp (caused crashes with release build) 2000-03-02: Sander van Leeuwen - OPENGL\GLIDE: Use Odin OS/2 api wrappers in fxos2.cpp - OPENGL\MESA: Reapplied TLS fixes Check for null pointer in wglSetPixelFormat - OPENGL\MESA\3dfx: Use c files from Mesa dir Check for null pointer in wglSetPixelFormat - WINMM: Fixed DartWaveOut::getPosition (overflow) (fixes mp3 playback in RealPlayer 7) - KERNEL32: Fixed SetCurrentDirectory (don't remove backslash if app wants to change dir to "\") Create shell folders + shell keys (NOTE: This has to be done in the odin install program once we have one) - ADVAPI32: Added crypt api stubs 2000-03-01: Jeroen van den Horn - OPENGL: Implemented DIVE support in Mesa 2000-03-01: Sander van Leeuwen - USER32: Fixes for FindWindow(ExA/W) - now more like Wine (FindWindowExW was not working correctly either) First send WM_NCACTIVATE, then WM_ACTIVATE Fixed focus problems with Odin apps (Call WinSetFocus in OSLibWinSetActiveWindow instead of WinSetActiveWindow when a user clicks on the titlebar of an inactive window & after sending WM_MOUSEACTIVATE) TODO: Does WinSetActiveWindow work properly or should we always call WinSetFocus??? Call Dinput handler when translating mouse & keyboard messages (during Get/PeekMessage) - OPENGL: Always build release version of glide, mesa, glu32 & glut Build mesa software & 3dfx dlls; don't build OS/2 opengl wrapper anymore - OPENGL\GLIDE\CVG\GLIDE: Disable instruction scheduling in release build -> messed up colors when turned on (most likely VAC optimizer bug) TODO: Somebody should also check this for the voodoo 1 glide dll. - OPENGL\GLIDE\CVG: Fixed makefile - OPENGL\MESA\GL\gl.h Removed circular header dependency (breaks build) - OPENGL\MESA\3dfx: Copy 3dfx opengl32.dll to bin\glide 2000-03-01: Edgar Buerkle - USER32: Fixed dprintf in CreateWindowExW Added left & right cursor keys to Win32BaseWindow::setExtendedKey 2000-02-29: Edgar Buerkle - USER32: Added support for keyboard hooks (fixes Moorhuhn) in PeekMessage & GetMessage 2000-02-29: knut st. osmundsen - TOOLS\FASTDEP: Restructured it a little. Support for multiple languages: C and C++ (as earlier) Assembly Resource files (OS/2 resources at least...) COBOL (just for fun! - I'll use it at job) Things seems to work ok, but if an error occurs, please fix it or send me a note and I'll fix it ASAP. 2000-02-29: Sander van Leeuwen - OPENGL\MESA: Added Odin port of Mesa Opengl library (Ported by Jeroen van den Horn) NOTE: The Mesa 3D graphics library has a different license (see LICENSE.TXT in the Mesa directory) - OPENGL\MESA\3DFX: Added Odin port of 3dfx Voodoo Mesa GL (tested with simple opengl samples only, but this is the first hardware accelerated Opengl implementation for OS/2!) NOTE: The Mesa 3dfx graphics library has a different license (see LICENSE.TXT in the Mesa\3dfx directory) - KERNEL32: Only call ExitProcess the first time KillWin32Process is executed. Call DosExit otherwise. Fix for GpdDev device io (needed for native glide dll) 2000-02-28: Sander van Leeuwen - KERNEL32: Call ExitProcess in KillWin32Process to make sure the dll libmain handlers are called after a crash. (i.e. Glide needs this to restore the display) - INCLUDE\WIN: Added wgl definitions to wingdi.h 2000-02-27: Sander van Leeuwen - WINMM: Implemented waveOutGetPosition 2000-02-27: knut st. osmundsen - pdwin32.tools: "New" tool, MAKE_CMD. Passes on the DEBUG and NODEBUGINFO macros variables to the next make job. (It's better to have it here than to have it in nearly all makefiles, and forgetting to put it there...) - WIN32K: *The dep rule will make a makefile.inc if not present. It will also make dependencies for pe2lx and lib. *Have created a lib rule. *The all rule will now make Pe2Lx. - src/makefile: win32k makes pe2lx, no need for special pe2lx stuff. Sander, have a look the build and rebuild rules please. 2000-02-26: knut st. osmundsen - WIN32K: *Symbol Database is implemented. Contains symbols for most retail kernels. (see win32k.txt or readme.txt) *No scanning of the os2krnl file, the loaded image is now scanned to determin which build, debug/retail and smp/uni. *16-bit logging. *Extract.exe rule. Extract.exe program generates the SymDb.c source file found in dev16 from a collections of kernel symbol files. 2000-02-25: Christoph Bratschi - COMCTL32: added listview unicode support fixed treeview WM_VSCROLL, trap in UNILIB 2000-02-24: Achim Hasenmueller - COMCTL32: Added infoPtr == NULL checks in tooltips control to prevent crashes when tooltip creation fails 2000-02-25: Sander van Leeuwen - OPENGL\GLIDE: Added Odin version of Glide based on the OS/2 port written by Craig Ballantyne. (Voodoo 1 & Voodoo 2) NOTE: Includes 3dfx Glide license 2000-02-24: Sander van Leeuwen - USER32: WS_MAXIMIZE & WS_MINIMIZE flags updated when necessary Changed/fixed RedrawWindow -> fixes lack of erase background msg in AbiWord rebar control & Papyrus start dialog TODO: Pingpong.exe broken again. Need to fix this correctly Hide caret in BeginPaint, show it in EndPaint - GDI32: CreateICA/W bugfix (Open32 tests lpszDriver for NULL even though it's ignored) (fixes Papyrus error message about CreateIC) - COMCTL32: Fixed wrong calling convention for property sheet handlers (prsht.h in include\win) This fixes crashes in VPBUDDY (preferences dialog) AND (!) fixes the empty preferences dialog in both debug & release builds. NOTE: I've fixed similar bugs before. Somebody should verify all comctl32 handlers... 2000-02-23: Christoph Bratschi - USER32: export 55AA pattern functions for COMCTL32 fixed EN_CHANGED - COMCTL32: converted to C++ -> needs nmake dep ported animate control 2000-02-22: Sander van Leeuwen - WINMM/GDI32/KERNEL32/USER32: Fixed compile problems for release build - USER32: Fixed bug in window class ctor (windowProc not set to 0) (only showed up in release build) - KERNEL32: Fixed bug in commitPage (winimagepeldr.cpp) (only showed up in release build) Fixed wrong calling convention for SetLastError calls in OSLibiGetModuleHandleA (only showed up in release build) Fixed wrong calling convention for SetLastError calls in oslibdos.cpp. 2000-02-22: Christoph Bratschi - COMCTL32: merged with Corel WINE 20000212 added common base functions 2000-02-21: Przemyslaw Dobrowolski - CRTDLL: Added wtol, wtoi, setsystime, getsystime 2000-02-21: Christoph Bratschi - USER32: merged controls and nc code with Corel WINE 20000212 added WS_EX_CONTEXTHELP button 2000-02-21: knut st. osmundsen - WIN32K: *Initial support for UNIX-styled scripts (files starting with an #! [args...]) This is a _very_ big hack! But never the less it's working. (or at least it seems like working...) *The kernel symbol importer is enhanced to support more generic function prologs and to import variables and 16-bit functions. *Segments are now locked in physical memory. (Note, last changes have not been tested on Aurora yet, but it will hopefully work just fine.) 2000-02-21: Sander van Leeuwen - GDI32: SetDIBits bugfix (for dib sections) - USER32: Ported all Wine accelerator apis (fixes keys in calc) 2000-02-21: Jens Wiessner - RASAPI32: Added stubs - OLEPRO32: Ported Corel Wine stub dll - CRTDLL: Replaced some stubs 2000-02-18: Sander van Leeuwen - OPENGL\GLIDE: Added Odin version of Glide based on the OS/2 port written by Craig Ballantyne. (Voodoo 1) NOTE: Includes 3dfx Glide license 2000-02-17: Sander van Leeuwen - KERNEL32: Fixed memory map view bug (main map deleted when there were still views left) -> fixes crash when playing Realplayer video (.rm) files - WINMM: Added new logging feature + fixed waveout query format bug 2000-02-16: Christoph Bratschi - COMCTL32: treeview: switched to unicode, fixed many bugs 2000-02-16: Sander van Leeuwen - KERNEL32/USER32/GDI32: Added new logging feature which allows users to disable or enable logging for separate source files. (see Logging.txt for details) - GDI32: SetDIBitsToDevice fix for RealPlayer 7 (store the right bitmap size in the BITMAPINFO structure before calling Open32) 2000-02-15: Sander van Leeuwen - USER32: SetWindowPos bugfix (returned before hiding or showing windows) Fixes Delphi apps - KERNEL32: Fixed Release method of LX dlls (didn't delete object) Fixed cpuhlp assembly functions (compiler changes calling convention with optimizations on (stores parameter in eax instead of on the stack) 2000-02-14: Sander van Leeuwen - COMCTL32: Added Wine license - KERNEL32: Search in path for dlls if the pe loader can't find them (RP7 loads pngu3264.dll by changing PATH and then calling LoadLibrary) 2000-02-14: Christoph Bratschi - USER32: merged combobox with Corel 20000212 - COMCTL32: merged treeview with Corel 20000212 and continued rewrite 2000-02-12: Christoph Bratschi - USER32: added v5.00 messages to wndmsg.cpp - GDI32: LineDDA fix 2000-02-12: David Raison - OLE32: Fixed IsEqualIID issue 2000-02-11: Vit Timchishin - KERNEL32: Fix for OpenFile; fill in OFSTRUCT even if api fails (needed for Acrobat Reader 4.0) 2000-02-10: Knut Stange Osmundsen (knut.stange.osmundsen@pmsc.no) - /tools/database/ + /src/makefile: Odin32 API DB. 2000-02-10: Christoph Bratschi - USER32: added some stubs fixed wrong pixels at the right side of menu items - COMCTL32: implemented LVS_NOSORTHEADER increased statusbar height (temporal hack) first steps of treeview rewrite 2000-02-10: Sander van Leeuwen - GDI32: Added support for memory map handles in CreateDIBSection Fixed CreateICA/W; Open32's version is case sensitive whereas win32's apparently isn't. - TOOLS\makefile: fixed clean build - src\makefile: fixed clean build - src\makefile.smp: fixed incorrect dir change 2000-02-10: Knut Stange Osmundsen (knut.stange.osmundsen@pmsc.no) - *: Updated the source tree to use autogenerated dependencies. You will have to do a 'nmake dep' from either /src or / before being able to make anything. -All makefiles is required to have a 'dep' rule. -All dll makefiles is now required to have a 'lib' rule which makes the libraries for the module. This rule should also check that the library in $(PDWIN32_LIB) is up-to-date. - Tools/FastDep: Dependency tool. (Fast=Quick-and-Dirty) Moved from /src/win32k. This is currently used to generate dependency information. Note that it doesn't have any precompiler logic! This is causeing some warnings... - include/pdwin32.tool: Two new tools DEPEND and DOWITHDIRS. - src/makefile: used the DOWITHDIRS to do cleanup, lib and dep. 2000-02-10: Edgar Buerkle - GDI32: Fix alignment for 1 & 4 bits bitmaps (dibsection) - NTDLL: Pretend no debugger is active in NtQueryInformationProcess 2000-02-09: Sander van Leeuwen - USER32: Implemented WaitForInputIdle ScrollWindow fix; don't call InvalidateRect as WinScrollWindow already invalidates the area (and the call to InvalidateRect was wrong as it has to include the erase flag; should have called RedrawWindow instead) - KERNEL32: WinExec: Wait for process to block on input before returning - OpenGL base, GLUT, GLU: Added version resource, removed dll exitlist handlers 2000-02-09: Knut Stange Osmundsen (knut.stange.osmundsen@pmsc.no) - OpenGL base, GLUT, GLU: NODEBUGINFO implemented in the makefiles. 2000-02-09: Jeroen van den Horn - ODIN.INI: OPENGL32.DLL <--> OPENGL.DLL translation, since WinXX OpenGL apps can be dynamically linked with MS OpenGL (OPENGL32.DLL) *or* SGI OpenGL (OPENGL.DLL). 2000-02-09: Jeroen van den Horn - OpenGL base: Various minor fixes - OpenGL GLUT: Various minor fixes - OpenGL GLU: 'Native' port of SGI GLU 2000-02-08: Knut Stange Osmundsen - Win32k: Temporarily disabled some unused imported kernelfunctions. Corrected a problem with overloading _ldrEnum32bitRelRecs; it failed on WS4eB. (Message 'DosDevIOCtl failed') 2000-02-08: Sander van Leeuwen - USER32: Don't use shell positioning for child windows (breaks Notes) Turn of WM_BACKERASEBKGND when calling RedrawWindow to invalidate a window (without erase flag set; but also without noerase) -> fixes flickering in pingpong Opengl sample - KERNEL32: Search path for executables when they can't be found in the current directory. 2000-02-07: Christoph Bratschi - KERNEL32: Ported more Wine thunk apis 2000-02-07: Sander van Leeuwen - USER32: Fix for DCX_INTERSECTRGN in GetDCEx (use ExtSelectClipRgn to combine current & new clip region) - ADVAPI32: Ported Wine LookupAccountSidA/W (semi-stubs now) 2000-02-06: Jens Wiessner - WINMM: Updated MCI dlls (added version info) 2000-02-06: Sander van Leeuwen - KERNEL32: Changed GetProcessDword ordinal to 18 - USER32: Temporarily commented out shellposition changes (breaks i.e. calc & Notes) Started rewriting BeginPaint/EndPaint + DC apis 2000-02-06: Christoph Bratschi - USER32: ported WinHelpA from WINE 2000-02-05: Christoph Bratschi - USER32: WM_SETHOTKEY: save data prototype for WS_EX_CONTEXTHELP button check WS_EX_RIGHT in button control fixed tasklist entry implemented CW_USEDEFAULT with FCF_SHELLPOSITION 2000-02-05: Sander van Leeuwen - KERNEL32: Memory map fixes (file maps) - USER32: mdi child creation fix (child still not activated when created) Default WM_ERASEBKGND handler change (only erase invalid area) (note: might be wrong; have to check this in NT; probably need to rewrite code that sends those messages) -> fixes redraws for i.e. windows behind menu windows - GDI32: Don't use Open32 apis to load opengl32 (nor for GetProcAddress) Import wgl* apis - OPENGL: Removed OS2wgl apis (they had the wrong calling convention -> causes crashes in gdi32 when compiled with optimizations on) 2000-02-04: Markus Montkowski - DDRAW: Many minor/major bugfixes at numerous places - DSOUND: Fixed GetCurrentBufferPos in the virtual player 2000-02-04: Sander van Leeuwen - ALL: Added version resource (if not already present) Link with dllentry.obj (those dlls that don't need custom dll entrypoints) Clean up in process detach handler of win32 libmain (except for a few core dlls (gdi32/user32/kernel32)) - DLLENTRY: Standard dll entrypoint 2000-02-04: Christoph Bratschi - COMCTL32: merged with WINE 20000130 2000-02-03: Jens Wiessner - NTDLL: Ported Wine security apis - CRTDLL: Update 2000-02-03: Christoph Bratschi - USER32: merged controls with WINE 20000130 2000-02-03: Daniela Engert - GDI32: Implement RGB 555 to RGB 565 conversion in assembler 2000-02-03: Sander van Leeuwen - WININET: Ported Wininet code from Corel Wine tree - INCLUDE\WINSOCK: MS Winsock compatible header - GDI32: Prelimary RGB 555 to RGB 565 conversion in SetDIBitsToDevice (will be rewritten in assembly for better performance) (for RealPlayer videos in 16 bits mode) BitBlt fix (return after dibsection blit -> fixes Quake 2) Added MMX RGB conversion. - USER32: Added export for OS2ToWin32Handle - COMDLG32: Merged with latest Wine version (20000109) - INCLUDE\WIN: Fixes to compile comdlg32 in C mode (will be rewritten in assembly for better performance) (for RealPlayer videos in 16 bits mode) BitBlt fix (return after dibsection blit -> fixes Quake 2) 2000-02-01: Jeroen van den Horn - OPENGL: Ported SGI GLUT sources + Opengl update 2000-02-01: Sander van Leeuwen - GDI32: Cleaned up Fixes for dib section apis. RealPlayer 7 can play videos now (correct in 24 bps mode; upside down and wrong colors in 16 bps mode) 2000-02-01: Knut Stange Osmundsen - Pe2Lx: Makefile should be working again. - KERNEL32: RegisterPe2LxDll - no detach is done for Pe2Lx/Win32k DLLs. This is a temporary fix. 2000-02-01: Patrick Haller - SHELL32: Added PathSkipRootAW 2000-02-01: Jens Wiessner - NTDLL: Updated .def file (similar to NT 4 SP6) + bugfix for impdef 2000-01-31: Sander van Leeuwen - USER32: GetDCEx with window handle 0 fails in Windows 98; now it also returns an error in Odin. GetWindowDC & GetDC use the desktop window handle if hwnd == 0 (before calling GetDCEx) - GDI32: Set dibsection bitmap data to 0 when allocating it. 2000-01-30: Sander van Leeuwen - PELDR: Fixed error messages for images without fixups (peldr.dll no longer required) - GDI32: Removed wrong bugfix for GetDIBits (breaks Lotus Notes) - USER32: Don't check for window visibility when calling SetWindowPos in SetMenu. (fixes menu in standard minesweeper) (NOTE: May need to call SetWindowPos with SWP_FRAMECHANGED when showing a window (see Wine code)) Put back GetMenuStringA fix (return length of string if string pointer or size parameter == 0) (almost fixes Realplayer 7 menu) 2000-01-29: Sander van Leeuwen - GDI32: Save and restore FPU control word when calling Open32's DrawText. DrawText trashes it which causes drawing problems in RealPlayer 7. - USER32: Call DrawTextA in uitools.cpp, not Open32's DrawText. Fix for SetWindowPos for showing hidden windows (call ShowWindow) -> fixed non-visible button bar in mIRC Don't set WS_VISIBLE on by default. Windows are made visible during creation by calling ShowWindow. Call UpdateWindow for client window, not the frame. - INCLUDE\WIN\wingdi.h: Added GdiFlush declaration - INCLUDE\makefiles: Added c/c++ definitions for win32 apps (without -D__WINE__ so you don't need to specify whether you use the ascii or unicode version of a win32 api) 2000-01-29: Przemyslaw Dobrowolski - KERNEL32: Added GlobalWire/GlobalUnwire 2000-01-28: Sander van Leeuwen - GDI32: Wrong return values for GetDIBits & SetDIBitsToDevice (nr of scan lines copied; not true/false) - USER32: Don't call default frame handler for WM_ADJUSTWINDOWPOS (fixes window resize when playing videos in RealPlayer v7 & dragging titlebar in Professional Mine Sweeper) 2000-01-28: Knut St. Osmundsen - Win32k: Heap is splitted into a swappable and a resident heap. Fixups are now applied when a page is loaded from disk. This is done by overloading the kernel function called (_)ldrEnum32bitRelRecs. This should improve performance a lot! 2000-01-27: Jeroen van den Horn - OPENGL: First version of opengl implementation 2000-01-27: Sander van Leeuwen - USER32: Fixed FS corruption in OSLibPostThreadMessage Send WM_CHILDACTIVATE to child windows (not only to MDI children) instead of WM_ACTIVATE - SHELL32: Fixed FS corruption in DragAcceptFiles 2000-01-26: Yuri Dario - INCLUDE\WIN: Additions & changes for compiling Opera. - many dlls: create correct library (impdef) 2000-01-26: Jeroen van den Horn - GDI32: Changes for Opengl support 2000-01-26: Christoph Bratschi - USER32: fixed WM_MOVE, MsgFormatFrame and WM_WINDOWPOS* to use parent coordinates changed min frame size - COMCTL32: fixed wrong progress frame 2000-01-26: Sander van Leeuwen - OLEAUT32: Don't create logfile when logging is turned off - PELDR: Don't modify cmd line in PIB structure - INCLUDE: Removed string.h. - KERNEL32: Added workaround for OS/2 DosSetMem bug in VirtualAlloc (if memory is reserved, set read & write page flags) 2000-01-25: Sander van Leeuwen - PELDR/KERNEL32: Allocate low memory at right address and with right size in peldr.dll (fixes install of Windows Media Player) - KERNEL32: Print thread id for each log message 2000-01-22: Michal Necasek - DINPUT: Fixes + basic functionality is complete; enough for many games 2000-01-21: Sander van Leeuwen - USER32: Put back old WM_MOVE, MsgFormatChanged & OSLibSWPToWINDOWPOSFrame Previous changes broke many apps (VPBuddy, MIrc32) Don't update window if style changes (responsibility of the app) Store window menu & id in same variable (fixes clock -> double click on analog window -> titlebar & menu gone; menu used to stay there) Put back WM_CALCVALIDRECT code in pmwindow. Fixes updates of clock window (who's class has CS_H/VREDRAW style). - KERNEL32: Fixed image loading for resource lookup only (don't care where those images are loaded as we only use it to query the version resource; so base address doesn't matter) (-> RealPlayer 7 installs now) 2000-01-20: Sander van Leeuwen - KERNEL32: Disabled creation of pe_x.log if logging disabled Only get codepage once from odin.ini. 2000-01-20: Vit Timchishin - KERNEL32: Codepage bugfix & unicode translation changes (heapstring.cpp) - GDI32: Added codepage support for CreateCompatibleDC 2000-01-20: Christoph Bratschi - USER32: fixed WM_CONTEXTMENU dispatch WM_MOUSEMOVE in menu loop 2000-01-18: Sander van Leeuwen - USER32: Removed 'old' user32 and replaced it with the new one Call default window proc when DefMDIChildProcA/W is called for a non-MDI window. Fixed menu check & submenu marks painting - KERNEL32: Increased shared heap reserve size to 512 kb - SHELL32: Display Odin logo in Shell about dialog box 2000-01-18: Jens Wiessner - WINMM\WAVEMAP Updated to Wine level 20000109 + corrected compile - MCICDA: ported MCICDA.DLL from Wine 20000901 (Linux cdrom calls stubbed so it doesn't work) 2000-01-17: Sander van Leeuwen - USER32\NEW: Added basic support for DInput WM_CHAR notification (the rest needs to be done in dinput.dll) Use KEYBOARD_Enable user32 export to (un)register WM_CHAR handler. (WNDPROC type) It's called when a WM_CHAR message arrives for an Odin window with hwnd, msg, wParam & lParam. - DINPUT: Fixed bugs reported by Michal Necasek 2000-01-16: Christoph Bratschi - USER32/NEW: implemented sysmenu commands: SC_SIZE and SC_TASKLIST fixed WM_MOVE changed HTCAPTION system menu position changed maximized window position don't move/size maximized windows 2000-01-15: Jens Wiessner - TWAIN_32: Update - WINMM\MCIANIM,MCIAVI32,MCISEQ,MCIWAVE,MIDIMAP Updated to Wine level 20000109 + corrected compile errors - WINMM: Ported Wine wave mapper. 2000-01-15: Sander van Leeuwen - USER32\NEW: Fixed scroll repaints (never use GetMessage with window handle as that can prevent WM_PAINTs from being dispatched) (may need reworking of Get/PeekMessage instead) ScrollWindow changes Removed frame drawing 'bugfix'. Fixed system menu position for child windows (i.e. MDI) Fixed titlebar tracking for child windows (i.e. MDI) - KERNEL32: Check for null pointers in lstrcmpA 2000-01-15: Christoph Bratschi - USER32/NEW: cache menu and caption drawing changed minimize button position don't redraw system menu icon in menu.cpp hilighted menubar items don't have an edge in Win9x don't open system menu on mouseover if menubar is used and vice versa show sysmenu on WM_NCRBUTTONUP with HTCAPTION set (todo: position) use WIN32_STDCLASS2 for windows with CS_SAVEBITS class style 2000-01-14: Christoph Bratschi - USER32/NEW: added caption clipping for faster window text updates 2000-01-14: Sander van Leeuwen - USER32\NEW: Fixed min/max bug for mdi child windows Fixed DrawMenuBar (invalidate frame rectangle in FrameUpdateClient if client rectangle wasn't changed) Fixed bugs in MsgFormatFrame & SendNCCalcSize Fixed WM_WINDOWPOSCHANGED translation for frame window (not done yet) (Winamp works now) Removed code that's no longer used (subclassed OS/2 frame controls & OS/2 scrollbar functions etc) 2000-01-13: Sander van Leeuwen - USER32\NEW: WM_ACTIVATEAPP should be sent when another process' window is activated or deactivated Send correct thread id for non-Odin windows in WM_ACTIVATEAPP Set window handle of non-Odin window to window desktop in WM_ACTIVATE Return window desktop handle for window handle returned by SetActiveWindow if window is non-Odin. Fixed activation of windows. (send WM_ACTIVATE when receiving a WM_WINDOWPOSCHANGED message in pmframe.cpp) Fixed DrawFrame; bottom & right frame borders now drawn correctly Fixed scrollbar positioning (style.exe) Fixed CS_OWNDC for GetDCEx (DCX_WINDOW); don't use a window DC to save/restore a window's own dc. Fixed client rectangle problems. Client rectangles are always in frame coordinates; window rectangles in screen coordinates. Whenever necessary (i.e WM_MOVE) client coordinates are converted to coordinates relative to it's parent client window. Changed WM_MOVE -> client coordinates relative to parent origin if child; otherwise relative to screen origin. (needs testing) (WM_NCCALCSIZE needs to be done as well) - COMCTL32: Version resource version nrs changed (based on NT 4 SP3) - KERNEL32: Added DisableLogging & EnableLogging functions to disable logging in parts of code. Logging will only be done if the logcount is bigger than 0. 2000-01-12: Christoph Bratschi - USER32/NEW: fixed WM_CALCVALIDRECTS activated WM_NCPAINT clipping added improved frame redraw mechanism 2000-01-12: Sander van Leeuwen - USER32\NEW: Changed client rectangle positioning (not done by PM frame handler anymore) -> fixes problems with Shell About dialog and jumping controls when resizing (Winhlp32) Fixed menu tracking for different submenus Fixed delayed repaints of invalidated menu rectangles Ported Wine messagebox code. (for GUI consistency) Fixed bugs in ShowScrollBar. (vert. scrollbar wasn't enabled in notepad) Fixed 'frame' control updates (resizing client window in SetWindowPos for SWP_FRAMECHANGED) 2000-01-11: Jens Wiessner - TWAIN_32: Bugfix (removed test code) 2000-01-11: Christoph Bratschi - USER32/NEW: fixed AdjustWindowRectEx 2000-01-11: Sander van Leeuwen - USER32\NEW: Put nonclient code in win32wbasenonclient.cpp Removed hardcoded dependancy on shell32; load it on-demand Fixed LoadBitmap (OBM_RADIOCHECK was missing from system bitmap list) Fixed wrong return value for OSLibWinGetMsg Workaround for bug in GDI32 FillRect (menu items painted black instead of gray) (menu.cpp, MENU_DrawMenuItem) Applied patch to Wine menu code for RealPlayer Fixed default return value of DefWndProc (0) Fixed SetMenu (menus should be set when a window is no child) Call correct SetMenu function from MsgCreate Win32BaseWindow method Use WIN32_INNERFRAME frame class for top level windows again. (VPBuddy repaint problems were solved by using this class) 2000-01-10: Sander van Leeuwen - USER32: Fixed message translation for WM_TIMER with no window handle or timer proc Bugfix for OSLibWinGetMsg & OSLibWinPeekMsg (wrong return value) - WINMM: Fixed wrong error code for waveOutOpen & waveOutGetDevCaps when there's no audio device - USER32\NEW: Fixed message translation for WM_TIMER with no window handle or timer proc Changed WM_NCHITTEST behaviour. Now sent during WM_MOUSEMOVE or button down/up message translation. Fixed LoadBitmap (only load from user32 if it's a system bitmap) Added WM_NCACTIVATE message generation Bugfix for OSLibWinGetMsg & OSLibWinPeekMsg (wrong return value) Changed GetSystemMenu; added method to Win32BaseWindow class (destroy old menu if present and switch back to default system menu if bRevert = TRUE; needs changes in non-client code) 2000-01-10: Christoph Bratschi - USER32/NEW: activated menu code 2000-01-09: Sander van Leeuwen - USER32: Added border size for top-level windows in OSLibWinConvertStyle (borders are not drawn correctly) Fixed bug in pmframe WM_WINDOWPOSCHANGED handler (don't update client/window rectangle when size nor position have changed) Fixed out of sync rectWindow. (children don't get notified of parent position change -> rectWindow (in screen coord.) not updated) Fixed LoadBitmap for system bitmaps Fixes for win32 titlebar + added win32 system menu System menu commands now work Fixed repaint problem for win32 titlebar Added Christoph's gradient filled title bars code For (experimental) win32-like windows add this to odin.ini: [CUSTOMIZATION] OS2Look=0 [COLORS] UseWinColors=1 2000-01-09: David Raison - OLEAUT32: Typelib - Updated TKIND_ALIAS handling. 2000-01-09: Christoph Bratschi - USER32/NEW: implemented scrollbar nc handling windows without menus work now fine implemented gradient filled title bars 2000-01-08: Sander van Leeuwen - USER32: ModifyMenuA bugfix (changing menu ids didn't work) OSLibGetMsg bugfix + WM_QUIT translation fix OSLibGetMenuItemRect fix (y coordinate conversion) Changed WM_NCHITTEST behaviour. Now sent during WM_MOUSEMOVE or button down/up message translation. - OLE32/OLEAUT32/OLESVR32/OLEDLG/OLECLI32: Added Wine-like license that supercedes the main Odin license - CRTDLL: Fixed many register based floating point exports (CRTDLL__CIcos, CRTDLL__CIatan etc etc) 2000-01-08: Jens Wiessner - CRTDLL: Compile fix 2000-01-08: Patrick Haller - SHELL32: Update: to WINE level 2000/01/08 - KERNEL32: Add: stub for GetDiskFreeSpaceExAW 2000-01-06: Christoph Bratschi - GDI32: added PatBlt support for negative width/height 2000-01-06: Sander van Leeuwen - ADVAPI32: Implemented StartServiceCtrlDispatcherA/W Faked RegisterServiceCtrlHandlerA/W (TODO) Partly implemented SetServiceBits/SetServiceStatus Improved QueryServiceStatus Call RtlCreateAcl in InitializeAcl - LZ32: Create correct library - CRTDLL: Fixed CRTDLL__wcsnicmp (use Wine version) - VERSION: Fixed VerQueryValue32A and merged with latest Wine sources (991212) (-> fixes errors in RealPlayer) - USER32: GetMenuStringA fix (return length of string if string pointer or size parameter == 0) 2000-01-05: Jens Wiessner - TWAIN_32: Update 2000-01-05: Christoph Bratschi - USER32/NEW: single window works now 2000-01-05: Sander van Leeuwen - KERNEL32/NTDLL: Partially implemented NtOpenThreadToken (should be changed) MS Office 2000 install (first part) almost working. (installs windows installer as system service) - OLEAUT32: Typelib bugfix for MS Office 2k install - odin_ini.txt: Added information about CODEPAGES & TWAIN section 2000-01-05: David Raison - OLEAUT32: LHashValOfNameSys(A) 2000-01-04: Jens Wiessner - TWAIN_32: Created twain dll for usage with CFM Twain for OS/2. 2000-01-04: Sander van Leeuwen - USER32: InsertMenu bugfix (RealPlayer calls InsertMenu with flag 0 & pos -1) Delete old region in SetWindowRegion 2000-01-03: Przemyslaw Dobrowolski - KERNEL32: Named pipe updates & bugfixes 2000-01-03: Jens Wiessner - LZ32/TAPI32: Updated def files to match NT 4 SP6 - MSVCRT: Updated def files + MSVCRT40 version info - WINMM: Added Wine's MCI dlls (not compiled as this requires a working MCI subsystem in winmm and a redesign of wave & midi) 2000-01-03: Sander van Leeuwen - LZ32: Cleaned up .def file (don't import directly) & removed debugtools.h - USER32: Fixed PostThreadMessage + bugs in GetMessage - KERNEL32: Set hmq & hab THDB values for newly created threads (hmq not correct now) 2000-01-02: Przemyslaw Dobrowolski - KERNEL32: Started implementing named pipe apis 2000-01-02: David Raison - OLEAUT32: Typelib fixes - Custom Data & Default values. Added private logging to tlib_n.log when reading a TLIB. (Should clarify what is being read & why) Now supports embedded named TLIBS in the format \\ (required for VB6, etc.) Preparatory work to reduce dependance on current file position to enable delaying parsing data until it is requested by user. 2000-01-02: Sander van Leeuwen - USER32: Implemented Set/GetWindowRgn (not activated) - KERNEL32: Fixed Odin zombie processes when there's a trap inside vfprintf during logging. Cleaned up file io procedures in oslibdos.cpp 2000-01-01: Sander van Leeuwen - USER32: Workaround for crash in Lotus Notes when switching to a new view (PM sends WM_WINDOWPOSCHANGED msg after DestroyWindow has been called for a window -> don't dispatch this msg)