Also cleanup ongoing notifications during cleanup.
This fixes kernel32:change winetests crash.
This gets us from 300 tests executed, 134 failed to 312 executed, 33 failed.
CORE-2582
svn path=/trunk/; revision=62485
* SHGetImageList should not return a duplicated ImageList. In Windows the pointers returned by Shell_GetImageLists match the pointers returned by SHGetImageList for SHIL_SMALL and SHIL_LARGE.
[RSHELL]
* Remove two obsolete debug prints.
svn path=/branches/shell-experiments/; revision=62483
Fix a bug in MmGetPhysicalAddress, that resulted in unwanted sign extension of physical addresses > 2GB. Will hopefully fix some uniata related issues.
svn path=/trunk/; revision=62482
* Workaround for the exec issue. Ros currently seems to send a bogus WM_ACTIVATE message when clicking while the window is already active. Proper fix may come later if I can figure out why this happens.
CORE-7586
svn path=/branches/shell-experiments/; revision=62475
* Fix reusing the same toolbar when SetMenu is called multiple times.
* Avoid some null dereferences.
[BROWSEUI]
* Temporarily (?) disable the logo band.
The browser window's "coolbar" and menubar now display and work properly in both Windows and ReactOS.
CORE-7586
svn path=/branches/shell-experiments/; revision=62472
* Give TrackPopupMenuEx the top-level window. Need to figure out how Windows does this, it probably does not simply use the top-level window that way.
* Give TrackPopupMenuEx better flags and a better exclude rect.
CORE-7586
svn path=/branches/shell-experiments/; revision=62469
Display warning messages if a user tries to log on using a non-existing account name, a wrong password or if the account was disabled.
svn path=/trunk/; revision=62468
- Add AllocaFrame field to the exception registration record. It is required for Clang and C++ handlers.
- Fix the way how "nested functions" are emulated on Clang and C++, respecting the fact that the compiler can and will use a temporary esp-based stack frame below any alloca-allocations for function invocation. This uses the AllocaFrame field to calculate and setup a new temp stack frame for the "nested functions".
- Make use of the HandlerType field in the exception registration record to use different methods for invoking filters / finally functions.
- Write @_SEH3$_CallRtlUnwind@4 in raw asm instead of inline, because Clang cannot deal with stdcall decorations in inline asm (see http://llvm.org/bugs/show_bug.cgi?id=19027)
- Make sure ExceptionPointers are properly initialized in _SEH3$_except_handler
svn path=/trunk/; revision=62466
- Split DoLoginTasks into DoLoginTasks and CreateProfile, and fix all callers of DoLoginTasks accordingly.
- Make DoLoginTasks pass the SubStatus from MyLogonUser to its caller.
- Move the logon code from LoggedOutWindowProc to a new function DoLogon and add some experimental code to report logon errors to the user (still WIP).
svn path=/trunk/; revision=62464
Make kernel32 / winsrv console CSR structures Win2k3-compliant.
The aim is to be able to put our kernel32.dll or winsrv.dll on win2k3, and vice-versa.
Most of the changes consist in:
- adding a HANDLE ConsoleHandle; to the structures, representing the console handle of the current application;
- reorganizing the order of the members in the different structures;
- few structures need to hold a event handle because it appears that some APIs create a event handle to perform some sort of synchronization with the console server (this is totally unused at the moment).
- Since CsrClientCallServer returns the value of ApiMessage.Status, then just use ApiMessage.Status instead of declaring another Status variable for querying the return value of CsrClientCallServer.
Part 1/X
Aside:
The VerifyConsoleIoHandle winetest problem is solved here (see CORE-7941 for more details).
CORE-7941 #resolved #comment Fixed in revision 62460, thanks :)
CORE-7931
svn path=/trunk/; revision=62460
Enforce the use of a frame pointer in all functions that use PSEH, even when -fomit-frame-pointer option was specified. This way we don't need to explicitly tell PSEH with a global define, whether we have a frame pointer or not, which would also probably not have worked together with alloca().
svn path=/trunk/; revision=62458
* Rename the output to explorer_old
[EXPLORER-NEW]
* Rename the output to explorer
* Launch a browseui window when explorer is run with an existing shell process.
Shell-experiments will now be running the new shell by default.
This allows me to test the shell classes under more accurate conditions, so I was using it locally for a while.
I decided to commit because of two reasons:
1. It was making me temporarily revert some changes done to some files when I wanted to commit, and
2. It lets everyone see the results of the shell-experiments project without having to mess with the task manager.
Keep in mind that, as the branch name implies, it STILL is an experiment.
CORE-7586
svn path=/branches/shell-experiments/; revision=62449
* Load and use rshell for the menubar.
* Properly forward WM_NOTIFY and WM_COMMAND messages to the toolbars.
[RSHELL]
* Improve behaviour of horizontal menubands.
* Clicking on submenu items does not work yet.
CORE-7586
svn path=/branches/shell-experiments/; revision=62448
Add really limited support for file system notifications.
In case of file creation, we report this.
More cases are missing, such as: dir creation, attributes change, size change, last write change.
See: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364417%28v=vs.85%29.aspx as a reference
CORE-2582
svn path=/trunk/; revision=62445
- Implement VfatNotifyChangeDirectory which handles file system notifications registration
- Also add support to dispatch routine for not queuing IRPs when pending and not required
CORE-2582
svn path=/trunk/; revision=62444
Add required fields to handle file system notifications to device extension/VCB and properly initialize them on volume mount
svn path=/trunk/; revision=62443
- Implement FsRtlNotifyFilterReportChange
- Implement FsRtlNotifyUpdateBuffer
- Implement FsRtlCancelNotify
- Implement FsRtlNotifyGetLastPartOffset
- Fix implementation of FsRtlNotifyFilterChangeDirectory
This finishes the implementation of file system notifications inside the kernel.
Data are properly returned to the caller on changes.
CORE-2582
svn path=/trunk/; revision=62442
* Revert a change that removed too much. Unbreaks the "New..." menu, and anywhere else that required this, although the code feels like a workaround for a bug elsewhere.
svn path=/branches/shell-experiments/; revision=62436
* I don't know what this may fix, but it was wrong. On the upside, now there's less spam in the log.
svn path=/branches/shell-experiments/; revision=62433
* CMenuSite: Reworked the code to avoid SHIsSameObject, since newer versions of windows do not implement that function. The code should be equivalent, and does less unnecessary calls to QueryInterface.
CORE-7879
svn path=/branches/shell-experiments/; revision=62432
* CMenuSFToolbar: Keep the m_shellFolder pointer in a CComPtr, so that it doesn't get deleted and possibly reused for something else.
CORE-7586
svn path=/branches/shell-experiments/; revision=62429