From ReactOS Wiki
Revision as of 12:59, 9 May 2008 by Lentin (talk | contribs)
Jump to: navigation, search

This is a work in progress!!!

Please consider the following when adding a change:

  • Write a REAL NAME of the person, no E-Mail addresses, no IRC nicks, etc. This is an official paper!
  • Reference bug numbers at the end of the change, in braces, like (your name, bug #2373)
  • Preserve an alphabetical order for applications and libraries :-)

This is the changelog for ReactOS™ version 0.3.5 (released *classified*), an open-source operating system designed to be binary executable- and device driver-compatible with Microsoft™ Windows NT™ and subsequent Microsoft operating systems such as Windows 2000™ and Windows XP™. ReactOS is written by the ReactOS development team, and the last previous version of ReactOS was version 0.3.4 (released 22 January, 2008).


Generic 0.3.5 Changes


  • Begin German translation of Kernel32 errorcodes (Timo Kreuzer)
  • Update German translation of Kernel32 errorcodes (Michael Fritscher)
  • Convert some Usetup translations to OEM charset, so that they're displayed correctly (Colin Finck)
  • Greek translation Update for Cmd, Format, Fdebug, Input.cpl, Joy.cpl, Sysdm.cpl (Apostolos Alexiadis, bugs #3152, #3161)
  • Updated Italian translation for Mstsc (Carlo Bramini, bug #3098, #3210)
  • Added/updated Italian translations for Appwiz-new.cpl, Desk.cpl, Downloader, Input.cpl, Joy.cpl, Main.cpl, Mmsys.cpl, Shell32, Shellext, Syssetup, User32, Usetup, Vgafontedit, Winhelp (Paolo Devoti, bugs #3005, #3051, #3883, #3105, #3119, #3136)
  • Added/updated Ukrainian translations for Appwiz-new.cpl, Cmd, Desk.cpl, Devmgr, Downloader, Mmsys.cpl, Reactos (Setup tool under Windows), RosBE Config, Shell32, Usetup, Vgafontedit (Artem Reznikov, bugs #3020, #3038, #3039, #3044, #3049, #3070, #3089, #3106)
  • Added/updated Bulgarian translations for Access.cpl, Appwiz-new.cpl, Control, Desk.cpl, Downloader, Fontview, Format, Imagesoft, Kbswitch, Magnify, Mazescr, Mmsys.cpl, Mstsc, Ncpa.cpl, Netid, , calc, kbswitch, Notepad, Rasapi, Serialui, Shdocvw, Shell32, Sol, Syssetup, Usetup, Vgafontedit, Vmwinst, WineMine, Winhelp, Write, Xcopy (Станев, bugs #3041, #3042, #3092, #3093, #3173, #3174, #3192, #3204)
  • Added/updated Slovak translations for Appwiz.cpl, Butterflies, Desk.cpl, Downloader, Explorer, Fdebug, Input.cpl, Joy.cpl, Mazescr, Mmsys.cpl, Msgina, Mstsc, Ncpa.cpl, Netid, Newdev, Ntvdm, Packmgr, Powercfg.cpl, Reactos (Setup tool under Windows), Roscalc, Setupapi, Shdocvw, Shell32, Sysdm.cpl, Syssetup, , magnify, access, intl, mmsys, kbswitch, Usetup, Winhelp, Winlogon, Write, Usetup (Mário Kačmár, bugs #2988, #2992, #2993, #3021, #3033, #3053, #3110, #3198, #3215)
  • Added/updated Polish translations for Appwiz-new.cpl, Blankscr, Butterflies, Cylfrac, Desk.cpl, Downloader, Dxdiag, Fontview, Imagesoft, Input.cpl, Magnify, Matrix, Mazescr, Mmsys.cpl, Packmgr, Roscalc, Shellext, Starfield, Systeminfo, Usetup, Vgafontedit, Write (Olaf Siejka, bugs #3014, #3037, #3043, #3047, #3066, #3088)
  • Added/updated Spanish translations for Desk.cpl, Devmgr, Downloader, Input.cpl, Intl.cpl, Main.cpl, Modemui, More, Mstsc, Newdev, Notepad, Regedit, Shell32, Shellext, Sysdm.cpl, Syssetup, Taskmgr, Timedate.cpl, Usetup, Vgafontedit, Vmwinst, Winhelp, Wordpad (Javier Remacha, bugs #2984, #2986, #2994, #3142, #3172, #3184, #3196)
  • Added/updated Lithuanian translations for Control, Downloader, Mmc, Mstsc, Usetup, Winhelp (Vytis Girdžijauskas, bugs #2991, #3188)
  • Added/updated Czech translations for Cacls, Charmap, Expand, Find, Format, Hdwwiz, Kbswitch, Logoff, More, Notepad, Regsvr32, Rundll32, Solitaire, Userinit, Usetup (Radek Liška, bugs #3078, #3090, #3113, #3175, #3194)
  • Updated German translations for Csrss, Ntvdm (Andreas Dieringer)
  • Added/updated German translations for Appwiz-new.cpl, Desk.cpl, Input.cpl, Mmsys.cpl (Daniel Reimer)
  • Added/updated Korean translations (Seungju Kim, bugs #3144, #3145, #3149, #3151, #3153, #3154, #3155, #3156, #3157, #3165, #3180, #3182)
  • Added/updated French translations for Kbswitch, Desk.cpl, Dxdiag, Main.cpl, Mmsys.cpl, Regedit, Shell32, Syssetup, Vgafontedit, Usetup (Pierre Schweitzer)
  • Added all missing Strings in Usetup for translation, added the English Strings to all USETUP resources and activated them. This makes translating easier. (Daniel Reimer)
  • Resort Rosapps, Setupapi and User32 RC Files. Now all Resource files except the ones synched with Wine are sorted the same way. (Daniel Reimer)
  • Remove all Manifests. They will be autogenerated in the future. This is one step to MSVC Support, too. (Daniel Reimer)
  • Checked for the right Font for Asian Languages and set a unified Font size for them. (Daniel Reimer)
  • Massive Changes in almost all RC Files. Now all non Wine Synched RC Files use these rules:
 1. Use a DIALOGEX template instead of a DIALOG template.
 2. Set the DS_SHELLFONT flag in your dialog styles.
 3. Set the dialog font to "MS Shell Dlg".
 4. Remove DS_FIXEDSYS
 5. Remove DS_SETFONT
 6. Remove DS_3DLOOK
 -> Windows 2000+ Look

Build Tools


  • Add an -M option to specify, which compression codec shall be used (either "raw" or "mszip") (Colin Finck)
  • Enable the RAW codec in the SelectCodec() function (Colin Finck)
  • Fix parsing the -L and -P parameters, when there's no whitespace between the parameter and the value (Colin Finck)
  • Remove the version number as it was never updated (Colin Finck)
  • Fix setting the file attributes when extracting files (Colin Finck)
  • Add support for multiple search criterias, which are actually checked.
    This makes it possible to pass parameters like "*.rbuild *.txt" to the cabman command line for adding, displaying and extracting files in a cabinet. (Colin Finck)
  • Overhaul CreateSimpleCabinet, make it able to add multiple files to the cabinet using the new search criteria functions. (Colin Finck)
  • Fix setting the file offsets.
    This fixes the extraction of any file, which is not the first file in the cabinet. (Colin Finck)
  • Fix the extraction of files with more than 32 characters in the file name (Colin Finck)


  • Pass the correct path to _strip_gcc_deffile (Johannes Anderwald)
  • Automatically create directories for converted def files (Johannes Anderwald)
  • Fix auto-def file generation (Johannes Anderwald)
  • If BASEDIR env var is set to point to your WDK installation, make msvcX will take it into account, and add additional include directories for WDK headers and libraries for all kernelmode modules (Aleksey Bragin)
  • Only add a command for deleting a proxy makefile, when one was really generated.
    This should fix some "Error 1 (ignored)" warnings (Colin Finck)
  • Change default intermediate directory to obj directory (Hervé Poussineau)
  • Add Rule class, for easier extending to new file types. Use it to simplify mingw backend, and fix lots of depencies issues. (Hervé Poussineau)
  • Fix memory leaks (Samuel Serapión)
  • Add basic support for targeting ARM in RBUILD (ReactOS Portable Systems Group)


Bootloader (FreeLoader)

  • Develop and switch to the new, a lot more advanced memory manager, which is compatible both with ReactOS and NT-style boot types. Added: memory types for each allocation request, ability to alloc and free memory from the heap, ability to use 1 megabyte of low memory too (which was just wasted previously), removed: a bunch of hacky stuff. (Aleksey Bragin)
  • Added a real heap manager (based on bget) into the memory manager, and switched all small memory allocations inside FreeLdr to this heap manager.(Aleksey Bragin)
  • New way of storing hardware configuration tree (compatible).(Aleksey Bragin)
  • Developed an NT kernel boot support module (codename "winldr") and integrated it into FreeLdr.(Aleksey Bragin)
  • Allow runtime enabling of caching support in FreeLdr's filesystem layer.(Aleksey Bragin)
  • Change in FreeLdr's build process: Build FreeLdr the same way other modules are built, by using gcc -Wl. This allows us to get rid of the /math directory and use -lgcc instead. - Get rid of -ffreestanding, -fno-builtin and -O2. The former are not needed anymore since we're properly building a "freestanding" image anyway, just like the kernel. The latter is removed since optimization flags come from the project settings. Update code to fix warnings caused since we've removed -ffreestanding. GCC now warns about printf, sprintf and other C calls (including a change from %wZ to %S in winldr.c's sprintf calls). Don't use printf anymore -- rename freeldr's implementation to TuiPrintf. Just like in the kernel, you can't use printf in freeldr (since it's not running in a standard/full CRT environment). 124kb saved!(Aleksey Bragin)
  • The bootloader must zero user shared data page before passing control to the kernel. This fixes the "invalid timer state", "assert(SharedUserData->NumberOfPages == 0" family of bugs after warm reboot. (Aleksey Bragin, bug #3085).
  • Make identifiers in configuration trees ASCII-strings, as they are in real NT.(Aleksey Bragin)
  • Map APIC pages, if they are present. Set the size of the memory new MM uses to 24Mb. Set heap size to 4Mb.(Aleksey Bragin)
  • Allocate memory for groups list dynamically, and make it enough (4096 bytes) for a really long list of groups. This makes Windows 2003 booting up to explorer without crashing.(Aleksey Bragin)
  • Heavily bugfix MmInitializeMemoryManager in freeldr, add slightly better bios memory map projection to the loader memory types, but this is still being investigated.(Aleksey Bragin)
  • Mark APIC's memory as WriteThrough / CacheDisabled.(Aleksey Bragin)
  • Fix a bug in MmAllocateMemoryWithType, where result of MmFindAvailablePages was checked against -1 in error case, when in reality it's 0 (spotted by Alex).(Aleksey Bragin)
  • WINLDR: Load drivers database (AppPatch/drvmain.sdb), so Windows could use it if needed.(Aleksey Bragin)
  • WINLDR: Don't store memory allocation descriptors inside the bootloader, since this memory is unmapped in kernelmode. Fixes a pagefault after switching to paged mode. Store the configuration data in the LPB.(Aleksey Bragin)
  • WINLDR: Different behavior for NT4 or NT5+ boot: NT4 requires text mode to be set up, and further version of Windows OS require a different preparation.(Aleksey Bragin)
  • WINLDR: Properly fill ACPI BIOS configuration entry (a couple of ACPI specification structures were added). This makes Windows 2003 initialize HAL (ACPI version) properly and be able to connect to the debugger.(Aleksey Bragin)
  • WINLDR: Fix an incorrect type of memory behind PDE, HAL mapping and kernel segment pagetables. They should be MemoryData (and change allocation algorithm slightly). With this change Windows 2003 boots up to the BSOD showing ACPI_BIOS_ERROR.(Aleksey Bragin)
  • WINLDR: Fix a typo in the if branch, which resulted in marking almost all memory above the bootloader as "FirmwareTemporary", even reserved ACPI pages. This should fix the ACPI BSOD Windows 2003 and XP show up. If a memory is marked as "free", leave it so, without transferring to FirmwareTemporary.(Aleksey Bragin)
  • Implement ramdisk support for FreeLoader (ReactOS Portable Systems Group)
  • Move architecture independent code out of arch/ folder (ReactOS Portable Systems Group)
  • Remove AcpiPresent flag from non-x86 builds, as it is x86 specific. Have ACPI detection set the appropriate flag for each architecture if detected (ReactOS Portable Systems Group)
  • Implement MachPrepareForReactOS as a generic pre-boot preparation routine, replacing the architecture specific functions (ReactOS Portable Systems Group)
  • Implement a proper ARM startup routine (ReactOS Portable Systems Group)
  • Fix bug in RamDiskInit that allowed reading from null pointers (ReactOS Portable Systems Group)
  • Build Freeloader with a static libgcc (ReactOS Portable Systems Group)
  • Implement returning a memory map on ARM (ReactOS Portable Systems Group)
  • Ramdisk support in ArmDiskGetBootVolume, with fixes for hex parameters and proper return values (ReactOS Portable Systems Group)
  • Fix command line parsing in Freeloader (ReactOS Portable Systems Group)
  • Enable ramdisk support so disk read/writes are handled by ramdisk routines (ReactOS Portable Systems Group)
  • Fix ramdisk start sector reporting (ReactOS Portable Systems Group)
  • Arm routines now use various i386 disk routines that were highly generic and work across platforms (ReactOS Portable Systems Group)

Kernel and Executive (NTOSKRNL)


  • Switch to using the cache bitmap (the cache manager uses one large memory region within the kernel address space and allocate/deallocate space from this block over a bitmap). It makes file copying process (not only in the 1st stage) a bit more stable. Cacheseg mapping region size enlarged to 256Mb. (bug #2872, Aleksey Bragin)


  • cmlib: Take into account non-fast/non-hash indices in CmPrepareHive, apply similar changes to freeldr's registry importing function (Filip Navara)
  • Fix out-of-bounds access in configuration manager, spotted by Christoph & GCC 4.3.0 (Aleksey Bragin)



  • Fix ExReleaseResourceLock(), spotted by Alex (Aleksey Bragin)
  • Use C define for the bit in the wait block flags that we set to specify waiting, instead of a hardcoded "1" (Aleksey Bragin)
  • Fix broken code when trying to find the last wait block in several parts of the pushlock code (Aleksey Bragin)
  • Fix broken algorithm in the optimization of the pushlock waiter list (Aleksey Bragin)
  • The wake event for the pushlock should be a synchronization event, not a notification event (Aleksey Bragin)
  • Fix broken algorithm during the release of a pushlock (in shared cases) (Aleksey Bragin)
  • Fix broken code during "try to wake pushlock" (Aleksey Bragin)
  • Remove DbgPrints from inlined pushlock code during contention (Aleksey Bragin)
  • All of ex-changes are made thanks to Alex for noticing these bugs and providing advice on the fixes. This fixes lots of race issues in the handle table implementation


  • Update FSRTL_ADVANCED_FCB_HEADER to support newer version headers, split Reserved into two bitfields: Reserved and Version (Aleksey Bragin)


  • Fix memory corruption in Io manager, thanks to Alex for reporting (Aleksey Bragin)





  • Fix initialiization of the object manager lookaside lists, don't leak object locks when destroying an object type, make directory objects and symbolic links case-insensitive, Create \KernelObjects directory during startup. (Aleksey Bragin)
  • Lock only the object header for an object instead of the entire object type, for better contention. Implement exclusive/shared lock and release routines around the existing lock slots in the object type (Aleksey Bragin)
  • Rewrite the SD Cache functions to use the Windows 2003 structures (thanks to Alex for providing them) (Aleksey Bragin)
  • Use pushlocks instead of the fast mutex that was previously used (Aleksey Bragin)
  • Implement the exported Ob APIs which were added in Windows XP to access the Sd cache ObReference/DereferenceSecurityDescriptor and ObLogSecurityDescriptor). These are used by file systems (such as NPFS) on Windows XP and higher (Aleksey Bragin)
  • Thanks to Alex for reporting all the CM issues.




Hardware Abstraction Layer (HAL)

Run Time Library (RTL)

Kernel Mode Drivers

All filesystem drivers

  • Pass cache manager callbacks structure at every CcInitializeCacheMap() call, it's mandatory (Aleksey Bragin)
  • There is no reason for CDFS to use CcRos-specific functions, it ends up with the same CcRosInit/Uninit with the same CacheSegmentSize = PAGE_SIZE (Aleksey Bragin)
  • Remove ros-specific Cc functions usage (Aleksey Bragin)


  • Read the VGA fonts from a "" file instead of "vgafont.bin" (ZIP format)
    This file is automatically created on every build by using the new CabMan simple cabinet functions (Colin Finck)



  • Rename vfatfs.sys to fastfat.sys for compatibility reasons (Aleksey Bragin)
  • Experimentally switch fastfat driver to non-Ros Cc functions, and thus no FSD in ReactOS are using CcRos-specific functions anymore (Aleksey Bragin)


  • Don't return if no keyboard or mouse is present. Instead continue detecting the devices.
    This fixes the bug that you could not use the keyboard, when no mouse was plugged in. (Colin Finck)
  • Simplified the code for connecting the interrupts. (Colin Finck)
  • Only get the first two bytes in a loop and issue just one i8042ReadDataWait command for the last byte when resetting the mouse.
    This reduces the "blank screen time" in Usetup from 45 seconds to 3 seconds on my ECS K7S5A Pro and some other boards, when no mouse is plugged in. (Colin Finck)
  • Remove much code for the mouse initialization, which had been imported from the ancient "psaux.sys" driver.
    Don't use the "Get ID" command anymore, which is not available on all systems. This way, some more mice should be detected now. (Colin Finck)
  • First detect the mouse and then the keyboard. If we do it the other way round, some systems throw away settings like the keyboard translation, when detecting the mouse.
    This solves the popular keyboard detection bug on real hardware in 0.3.4. (Colin Finck)


NT System Library (NTDLL)

Static Libraries



  • Remove much Win9x-specific stuff from the library and make it more compatible to the MS version of the library. (Colin Finck)


Win32™ Personality

User mode subsystem server (CSRSS)

Kernel-mode subsystem server (Win32K)

  • Implement NtGdiSelectBitmap, NtGdiSelectBrush, NtGdiSelectFont and NtGdiSelectPen based on NtGdiSelectObject and tests, move those functions to dc.c, remove NtGdiSelectObject (Timo Kreuzer)
  • Fix some bugs in NtGdiSelectBitmap (Timo Kreuzer)
  • Add GdiBCSelObj to GdiFlushUserBatch (James Tabor)
  • Fix type field calculation in GDIOBJ_CovertToStockObject (Timo Kreuzer)
  • Change gdi object deleting mechanism to a windows compatible one (Timo Kreuzer)
  • Fix a DC handle leak in UserDrawIconEx (Timo Kreuzer)
  • remove GDIOB_XxxDbg functions (Timo Kreuzer)
  • Enhance backtracing and debug output for GDI_DEBUG (Timo Kreuzer)
  • Implement GDIOBJ_ValidateHandle() (Timo Kreuzer)
  • Simplify a check in UserGetDcEx (Timo Kreuzer)
  • Fix a check in UserGetDcEx (Timo Kreuzer)
  • Remove DCX_KEEPCLIPRGN flag when creating a clip region in UserGetDcEx, fixes a region leak (Timo Kreuzer)
  • Don't abuse GDIOBJ_LockObj to validate a handle, use GDIOBJ_ValidateHandle instead (Timo Kreuzer)
  • Add some additional debug output to GDIOBJ_LockObj (Timo Kreuzer)
  • Recurse into IntGdiDeleteDC directly, instead of going back to NtGdiDeleteObjectApp and pass Force parameter on (Timo Kreuzer)
  • Don't create a background brush for a new menu, fixes a brush leak (Timo Kreuzer)
  • Use intrinsic interlocked functions for gdi object locking (Timo Kreuzer)
  • Add a function to get a full stackbacktrace (Timo Kreuzer)
  • Remove obsolete syscalls NtUserGetDesktopWindow and NtUserGetParent (Stefan Ginsberg)
  • Fix a mem leak in bitmap code (Timo Kreuzer)
  • BITMAPOBJ_CopyBitmap: release lock and delete created bitmap on failure, copy flags, fixes a memory leak (Timo Kreuzer)
  • Rename ObmXxx functions to UserXxx functions (Timo Kreuzer)
  • Remove some macros (Timo Kreuzer)
  • Move function prototypes to object.h (Timo Kreuzer)
  • Implement UserReferenceObjectByHandle creating a reference to the object, used for cursoricon stuff so far (Timo Kreuzer)
  • Rewrite object manager functions to reasonably handle references (Timo Kreuzer)
  • Dereference cursoricons correctly, so they will really get deleted, fixes a cursoricon leak (Timo Kreuzer)
  • Destroy submenus in NtUserDestroyMenu, fixes a menu leak (Timo Kreuzer)
  • Free the buffer of the menu text, fixes a mem leak (Timo Kreuzer)
  • Delete old bitmaps in NtUserSetCursorContent, fixes a bitmap leak (Timo Kreuzer)
  • Delete monitor object on failure (Timo Kreuzer)
  • Move NtGdiFlushUserBatch prototype to ntgdi.h (Timo Kreuzer)
  • Move pool tags from ntgdihdl.h to win32k/tags.h (Timo Kreuzer)
  • Move DC struct from ntgdihdl.h to win32k/dc.h (Timo Kreuzer)
  • Replace GDIEMPTYHDR with BASEOBJECT (Timo Kreuzer)
  • Use BASEOBJECT in DC and GDIDEVICE structures (Timo Kreuzer)
  • Rename some NtGdiXxx functions that don't deserve that name and remove some that were defined by a macro, but don't exist on windows (#if 0'ed atm) (Timo Kreuzer)
  • Remove RetrieveDisplayHDC() prototype, function doesn't exist (Timo Kreuzer)
  • Remove typecasts PBITMAPOBJ <-> PSURFOBJ (Timo Kreuzer)
  • Use GDIOBJ_ShareLockObj / _UnlockObjByPtr instead of Eng(Un)LockSurface as BITMAPOBJ_Un/LockObj (Timo Kreuzer)
  • Add BASEOBJECT to bitmap, brush, palette, font and region structures (Timo Kreuzer)
  • Move bad ntuser syscalls in ntuser.h to the bottom (Stefan Ginsberg)
  • Sort win32k export list alphabetically (Stefan Ginsberg)
  • Remove obsolete Win32kInitialize and NtGdiGetAspectRatioFilterEx (Stefan Ginsberg)
  • Add missing exports to win32k.def (all from xp) (Timo Kreuzer)
  • Don't free the memory for the palette entries in IntSetPalette (Timo Kreuzer, bug #3072)
  • Reference CursorIcon before deleting it (Timo Kreuzer)
  • IntGetPaintMessage: Set MessageQueue->PaintCount to 0, if no dirty Window is found. Stops spamming the debuglog (Timo Kreuzer)
  • UserGetDCEx: Check if a dce's hDC is valid, if not warn and create a new one (Timo Kreuzer)
  • Don't dump the stack backtrace twice in GDIOBJ_Xxx functions (Timo Kreuzer)
  • Replace GDIOBJHDR with BASEOBJECT structure (Timo Kreuzer)
  • Remove HandleTable parameter from GDIOBJ_Xxx functions (Timo Kreuzer)
  • Fix a wrong typecast in PALETTE_SetMapping (Timo Kreuzer)
  • Call PsGetCurrentThreadWin32Thread() and PsGetCurrentProcess() only once in IntGetWinstaObj (Timo Kreuzer)
  • Fix a leakage during DC deletion (introduced in revision 773) (Samuel Serapion)
  • Remove dereferencing a monitor object during successive attach branch in IntAttachMonitor (Aleksey Bragin)
  • Rename and add two application compatibility flags to W32THREADINFO structure (one for ancient compat flags, and one for a bit more modern flags), implement GetAppCompatFlags() and GetAppCompatFlags2() (Aleksey Bragin)
  • Unlink window when WM_CREATE message fails, fixes a crash (Johannes Anderwald)
  • Call ExDeleteResourceLite() before freeing an ERESOURCE, otherwise it will remain in the system resource list. (Samuel Serapion)
  • Check if the menu object has really been found to avoid memory corruptions (Johannes Anderwald)




  • Rewrite service to support multiple connections from multiple clients across all services (Ged Murphy)


Control panel applets



  • Rename german dialog to match Windows XP SP2+ name (Johannes Anderwald)
  • Fix compilation with MSVC (Johannes Anderwald)
  • Allow environment variables to be used in the "Wallpaper" registry value. (Vytis Girdžijauskas)
  • Do not display the file suffix after adding a wallpaper through the "Browse" dialog. (Vytis Girdžijauskas)
  • After using the "Browse" dialog, select the newly added item and scroll to the bottom to show it. (Colin Finck)
  • Add the LVS_SHOWSELALWAYS style to the ListViews, so items are also highlighted, when the ListView does not have the focus (Colin Finck)





Win32™ Applications


  • Reduce the amount of code significantly by using the scrnsave library (Colin Finck)


  • Added the support of untfs.dll to autochk.exe (and a bit reviewed code when loading provider) (Pierre Schweitzer)


  • Reduce the amount of code to a minimum by using the scrnsave library (Colin Finck)


  • Implement GrowIfNecessary_dbg() using file and line from the caller to cmd_alloc_dbg memory. (Timo Kreuzer)
  • Fix memory allocation size, respecting the terminating 0 (Timo Kreuzer, bug #2845)
  • Fix compilation with msvc8 (Johannes Anderwald)
  • Avoid buffer overflow in copy command argument handling (Johannes Anderwald, bug #3108)


  • Improve control a bit so it that can execute cpl specified on the command line (Johannes Anderwald)



  • Add fontview to bootcd and add ttf file association (Timo Kreuzer, bug #1411)




  • Wrote a graphical editor application for our VGA fonts (Colin Finck)

Win32™ Libraries


  • Implemented Direct3DCreate9() (Gregor Brunmar)
  • Implemented IDirect3D methods: (Gregor Brunmar)
    • GetAdapterCount
    • GetAdapterIdentifier
    • GetAdapterModeCount
    • EnumAdapterModes
    • GetAdapterDisplayMode
    • CheckDeviceType
    • CheckDeviceFormat
    • CheckDepthStencilMatch
    • CheckDeviceFormatConversion
    • GetDeviceCaps
    • GetAdapterMonitor


  • Add cGetTTFFromFOT stub to make gdi32 load on win xp (Timo Kreuzer)
  • Beginning of an implementation of SelectObject, using NtGdiSelectBitmap, NtGdiSelectBrush, NtGdiselectFont, NtGdiSelectPen and ExtSelectClipRgn instead of NtGdiSelectObject (Timo Kreuzer)
  • Add some usermode handling to SelectObject, currently if'ed out, as it doesn't properly work yet (James Tabor)
  • Add GDI_OBJECT_TYPE_COLORSPACE to SelectObject using SetColorSpace (James Tabor)



  • Implement GetConsoleAlias[A/W], AddConsoleAlias for doskey support (Johannes Anderwald)
  • Implement EnumLanguageGroupLocalesA/W, EnumUILanguagesA/W, GetUserGeoID, SetUserGeoID, SetDefaultCommConfigA/W, GetDefaultCommConfigA/W, BeginUpdateResourceA/W, UpdateResourceA/W, EnumResourceLanguagesA/W, EndUpdateResourceA/W, EnumResourceTypesA/W, GetCalendarInfoA/W, EnumDateFormatsW, EnumCalendarInfoA/W, EnumCalendarInfoExA/W, FindFirstVolumeA/W, FindNextVolumeA/W (Dmitry Chapyshev)
  • Fix GetCommState, GetSystemInfo, IsProcessorFeaturePresent, LockResource (Dmitry Chapyshev)





  • Use PatBlt and SelectObject instead of Nt functions in FillRect (Timo Kreuzer)

Keyboard Layouts