* Fix assumption that the USER folder will always exist and only the COMMON folder may be missing. Allows the Start Menu to work in livecd.
[BROWSEUI]
* Apply the same fix to the Favorites folder, although the LiveCD does not currently have the folder so it will not work regardless.
svn path=/branches/shell-experiments/; revision=65098
Actually, sysinternals used to release the source code of NTFSInfo (thanks Christoph!), so we know a bit more about the interface of the user FS request.
So, implement a bit more of the interface to validate it properly works (and so far, it does!)
CORE-8725
svn path=/trunk/; revision=65097
Get ready to enter into the 10th dimension... So:
- Implement support for IRP_MJ_FILE_SYSTEM_CONTROL. Yes... You read well! So, implemented a ScsiDiskFileSystemControl() function. The way it is added to the DriverObject is a big hack, class2 is not supposed to have such requests, so, we do it in its back. Fear!
- Stubplement the NtfsRussinovichism() function. This is the only function we're supposed to call with IRP MJ FSCTRL and with IRP MN USRFSRQST. Its purpose (when its implemented) is to reply back to the M. Russinovich tools (NFI & NTFSInfo) so that they can directly dump NTFS information without going into NTFS driver. They kind of bypass it.
We do all agree this is a ugly hack. But it exists in Windows, as these tools work in Windows. And it would be useful they actually work in ReactOS.
Soon, we'll be able to publish a book "ReactOS Internals" where we speak about undocumented FS controls to dump NTFS information to show how well our NTFS works ;-).
svn path=/trunk/; revision=65090
* CMenuBand: Refcount before assigning a return pointer.
* CMenuDeskBar: Revert change and protect the refcounting in case I was wrong to assume there will be exactly one OnFinalMessage for each OnCreate.
* CMenuToolbars: Add a debug message.
* CStartMenu: Refcount correctly.
svn path=/branches/shell-experiments/; revision=65088
- addendum to revision 64877 which slightly changed UserDrawCaption's logic
- fixes window title being drawn over the icon
svn path=/trunk/; revision=65087
- Move functions to the appropriate source files, zap hacks.c, stubs.c, stubsa.c and stubsw.c (sorry for the noise, but this mess had to be cleaned up)
svn path=/trunk/; revision=65086
For now, disable the VfatSetRenameInformation() asserts in trunk.
They can be reenabled for testing by commenting "#define NASSERTS_RENAME" out.
CORE-8721 #resolve #comment Fixed with r65085
svn path=/trunk/; revision=65085
Finally, implement NtfsGetFreeClusters() which will just read the $Data stream from $BITMAP file record to get the amount of free clusters to allow estimating the free space on a volume.
The implementation is likely under-optimized... But wwell, the rest of the FSD is not better. Who talked about caching?! ;-)
Because pictures are more relevant than words in such case: http://www.heisspiter.net/~Pierre/rostests/NTFS_disksize.png
svn path=/trunk/; revision=65082
* Properly return the toolbar status on QueryStatus.
* Properly make use of the returned into from QueryStatus.
svn path=/branches/shell-experiments/; revision=65080
[user32]
- Properly notify the theme engine that the caption needs to be repainted on WM_SETICON
- Fixes a classic frame appearing when themes are enabled and we navigate to a different folder
svn path=/trunk/; revision=65077
- Stop the log from being spammed when the session is idle and no screensaver is set
- Also checking if my login still works :)
svn path=/trunk/; revision=65076
- Disable querying if audio is muted or not for now.
- Hides an assert that happened in wdmaud.drv
svn path=/branches/shell-experiments/; revision=65073
- Return a readable folder name when SHGDN_FORADDRESSBAR was specified
- We no longer show GUIDs in the address bar
svn path=/branches/shell-experiments/; revision=65072
- Actually give focus to the start menu when CMenuDeskBar::Popup is called
- Fixes opening and navigating the start menu with the keyboard
svn path=/branches/shell-experiments/; revision=65071
- Use IMenuPopup_OnSelect to close the start menu when the win key is pressed.
- Fixes closing the start menu (on windows and on reactos)
svn path=/branches/shell-experiments/; revision=65070
- Send the HSHELL_TASKMAN notification to the shell when the windows key is pressed
- Needed to open and close the start menu with the keyboard
svn path=/branches/shell-experiments/; revision=65069
* Fix some small things that were getting in the way of fixing the start menu (which was broken and no one noticed). The actual fix will come tomorrow since my brain is about to implode at this time.
svn path=/branches/shell-experiments/; revision=65065
- Use GdiGetDcAttr instead of GdiGetHandleUserData where appropriate
- Add a few missing SetLastError()
- Fix return failure return value of GetBkColor()
- Improve order of operations in SelectObject (needs more fixing)
svn path=/trunk/; revision=65063
Get rid of Fast486Interrupt, since it's not used anywhere. Also we can now remove
workarounds for all of the bugs that it caused.
Implement the "single-instruction interrupt delay" for instructions that load the
stack segment only.
svn path=/trunk/; revision=65061
- Revert a recent change in trunk that broke the new shell. Its a shame to see the new shell behave like crap because of win32k
svn path=/branches/shell-experiments/; revision=65057
Add Support routines for client objects. Will be used later. You might wonder why the code uses a lame hash table to link the client object handles to the user mode pointer, when it should be clear that a *client* object should have a user mode attribute, like other objects, that we can use, especially since that is the only real purpose of that object. Well, tell that the MS developer, who implemented client objects without a user mode attribute...
svn path=/trunk/; revision=65053
- Fail in NtGdiCreateClientObj, when the object type is not valid.
This is based on Windows behavior, only more strict. Windows allows to set the stock bit and reuse count, which is probably not what we want.
svn path=/trunk/; revision=65052
- Rewrite the monstrosity that was supposed to open control panel items. Still not really correct but works.
svn path=/branches/shell-experiments/; revision=65051