From ReactOS Wiki
Revision as of 22:23, 13 March 2008 by EmuandCo (talk | contribs) (Translations)
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)
  • Italian translation updates for usetup, winehlp, shell32, shellext, syssetup, desk, main, mmsys, user32, appwiz-new, joy ((Paolo Devoti) - / Bug 3005, 3051, 3883, 3105, 3119)
  • Ukrainian translation updates for shell32, downlaoder, vgafontedit, mmsys, devmgr, RosBE Config, desk, usetup, setup, cmd, appwiz-new ((Artem Reznikov) - / Bug 3020, 3038, 3039, 3044, 3049, 3070, 3089, 3106)
  • Bulgarian translation Updates for xcopy, control, notepad, wimhelp, usetup, format, access, netid, rasapi, serialui, shdocvw, syssetup, vmwinst, appwiz-new, kbdbgt (by ??? - / Bug 3041, 3092, 3093)
  • slovak translation updates for downloader, usetup, buuterflies, mazescr, roscalc, write, packmgr, msgina, setupapi, wnhelp, powercfg, mstsc, reactos, usetup, explorer, fdebug, appwiz, desk, input, joy, mmsys, sysdm, netid, newdev, shdocvw, shell32, syssetup, ntvdm ((Mario Kacmar) - / Bug 2988, 2992, 2993, 3021, 3033, 3053, 3110)
  • Polish translation Updates for shellext, blankscr, butterflies, cylfrac, matrix, mazescr, starfield, vgafontedit, downloader, fontview, imagesoft, magnify, packmgr, roscalc, systeminfo, write, mmsys, desk, usetup, appwiz-new, input ((Olaf Sjeka) - / Bug 3014, 3037, 3043, 3047, 3066, 3088)
  • Spanish translation Updates for notepad, regedit, winhelp, intl, sysdm, timedate, devmgr, downloader, more, wordpad, usetup, vmwinst, newdev, shell32, shellext ((Marc Piulachs) - / Bug 2984, 2986, 2994)
  • Lithuan translation Updates for control, mstsc, winhelp (by ??? - / Bug 2991)
  • Czech translation Update for solitaire, cacls, more, find, cacls, charmap, more, solitaire, logoff, mmc, notepad, usetup (by ??? - / Bug 3078, 3090, 3113)
  • German RC File Updates for csrss, ntvdm (by ??? -
  • Update German language for appwiz-new, input.cpl, desk.cpl mmsys by ((Daniel Reimer)
  • Added all missing Strings in Usetup for Translation and added the English Strings to all USETUP Resources and activated these. 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 fot 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




Bootloader (FreeLoader)

Kernel and Executive (NTOSKRNL)











Hardware Abstraction Layer (HAL)

Run Time Library (RTL)

Kernel Mode Drivers

NT System Library (NTDLL)

Static Libraries


  • Add functionality to allow translation of strings (Timo Kreuzer)

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)

Control panel applets

Win32™ Applications


  • 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)


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

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)


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