[ros-kernel] Status of Explorer under ReactOS
Filip Navara
xnavara at volny.cz
Tue Nov 4 18:08:07 CET 2003
Hi all!
After few recent messages about the Explorer and announcement of Richard
Campbell's return I thought it would be good to inform about the current
state of Explorer under ReactOS. This message is supposed to tell developers
about possible tasks and also to tell beta-testers what they can expect.
WARNING: The next lines represents solely my own thoughts and it can be far
from correct!
Current status:
Basicly it only starts, but almost all need underlying features of the
system are implemented. There are only bugs, bugs and bugs that prevent is
from working correctly... :-(
Known issues:
* Strings in Start Menu aren't displayed correctly.
In Ansi version of exporer.exe only first letter of Start button and Start
Menu items is shown. Cause of this bug is unknown, but it works correctly
with unicode version of explorer.exe.
* Icons on desktop aren't shown.
There are black (with older CVS snapshots) or white (with > November 31st
2003 CVS) squares displayed instead of real icons. I am not sure, but I
think the cause of this are unimplemented PrivateExtractIcon[s][AW]
functions in user32.dll.
* Desktop background is white.
This is not our bug, but rather incompletness of Wine's shell32.dll. I did a
small patch for this that was persent in my last Wine DLLs snapshot, but it
wasn't completly correct.
* Moving with mouse through Start Menu causes kernel mode crash.
Cause of this bug?
set_focus_window (line ~780) - subsys/win32k/ntuser/window.c
It crashes on line
Window->MessageQueue->FocusWindow = New;
and now you can guess what window doesn't have message queue? Yes, it's the
desktop one! And how do we got there? It's called from WinPosShowWindow
function (when submenu of the Start Menu is hidden). It should be fairly
easy to fix, but I will not do that because there is plan to move desktop
handling into CSRSS and that will fix this bug in more clever way.
* Explorer crashes right after started. (introduced November 2nd 2003)
This bug appered after adding MDI support to user32.dll. It appers because
before this commit no windows were opened and there were no buttons on
taskbar. I don't know what's the direct cause of this bug. For now the only
way to workaround this is to run explorer with parameter "-noexplorer".
Stack trace:
- DrawIconEx (called with invalid icon handle) - lib/user32/windows/icon.c
- create_bitmap_from_icon - subsys/system/explorer/taskbar/taskbar.cpp
...
* Explorer browsing doesn't work when run with "-nodesktop".
For some reason IShellFolder::ParseDisplayName (from shell32.dll) returns
E_INVALIDARG in call from subsys/system/explorer/utility/shellclasses.h
(line ~ 526) with path "c:\reactos". When you close the message box shown
and try to click on one of the buttons in toolbar (Shell, A:\, C:\, ...) it
causes usermode exception. Stack trace:
- _splitpath - lib/msvcrt/stdlib/splitp.c
- MainFrame::activate_drive_window -
subsys/system/explorer/shell/mainframe.cpp
- MainFrame::Command - subsys/system/explorer/shell/mainframe.cpp
- Window::WindowWndProc - subsys/system/explorer/utility/window.cpp
- CallWindowProcW - lib/user32/windows/message.c
- User32CallWindowProcFromKernel - lib/user32/windows/window.c
...
Feel free comment on this.
Filip
P.S. Sorry for my terrible English and ugly writing style. ;-)
More information about the Ros-kernel
mailing list