* Move to shellext folder.
* Do not initialize the notification SSO, stobject will do so (like in Windows).
* Move some GUIDs to a shared header.
[STOBJECT]
* Initialize netshell's SSO the way Windows does it. Fixes network icon inconsistency.
* Move some GUIDs to a shared header.
CORE-8818 #resolve Fixed in trunk r65758.
svn path=/trunk/; revision=65758
Rename RGNOBJAPI_Lock to REGION_LockRgn and remove the 2nd argument, rename RGNOBJAPI_Unlock to REGION_UnlockRgn, remove the old inline lock/unlock functions. Do proper locking using GDIOBJ_bLockMultipleObjects in NtGdiEqualRgn.
svn path=/trunk/; revision=65746
- Crash is due to receiving an APC for the current sending thread. Prematurely freeing the data block and while the receiving thread did not have a chance to process it. Interception and calling back to user mode will allow thread to go away. What about the memory block, is it still allocated? A cleaver Hack can fix this, but still the application crashed leaving issues and trash laying about. See CORE-8779.
Reference:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff565592(v=vs.85).aspx
"Yes, for thread termination. No, for user APCs."
svn path=/trunk/; revision=65744
Add the NtfsMftZoneReservation registry key on installation
See http://support.microsoft.com/kb/174619 for more information
svn path=/trunk/; revision=65741
* Fix the focus manager to properly close the shell menus when clicking outside the menu area.
* Close the shell menus when activating a context menu action.
* Open the shell menus without activating. Fixes titlebar color changing to inactive for the Favorites menu.
[RSHELL]
[SHELL32]
[BROWSEUI]
* Remove a few DbgPrints and downgrade some others into TRACEs.
CORE-8836 #resolve
svn path=/trunk/; revision=65740
- Rename SetRectRgnEx to IntSetRectRgn and make it usermode only
- Implement IntSetNullRgn
- Improve SetRectRgn code and enable the usermode part
svn path=/trunk/; revision=65739
Rewrite CombineRgn, enabling full handling in usermode if the resulting region is either a rectangular or a NULL region.
svn path=/trunk/; revision=65738
- Make REGION_iOffsetRgn check the region for coordinate space overflow and fail, if the region cannot be moved
- Rename REGION_iOffsetRgn to REGION_bOffsetRgn and make it return BOOL instead of the complexity, since the majority of callers are not interested in the complexity. It's also more obvious that we need to check for an error.
svn path=/trunk/; revision=65733
- Rewrite NtGdiFillRgn and IntGdiPaintRgn
We now properly support painting regions on DCs with arbitrary world transforms, with pattern brushes and we respect the foreground ROP and mode of the DC. And we don't run into deadlocks due to having an exclusive region lock while trying to lock a DC. LOCKING MUST BE DONE IN PROPER ORDER!
svn path=/trunk/; revision=65730
- Rename IntSetPolyPolygonRgn to REGION_SetPolyPolygonRgn
- Implement GreCreatePolyPolygonRgn wrapper around it
- Fix iMode usage in NtGdiPolyPolyDraw
- Improve some variable naming
svn path=/trunk/; revision=65726
Rework GreCreateFrameRgn to return the new region. Implement the internal function REGION_bMakeFrameRegion doing the actual work. Fix frame calculation by moving the source region diagonal instead of only horizontal and vertical, use IntGdiOffsetRgn instead of manually fiddling with the rectangles.
svn path=/trunk/; revision=65725
More improvements to region.c:
- PROSRGNDATA -> REGION, void -> VOID, int -> INT, uppercase struct names
- do not put assignments into if statements
- !x -> x == NULL for pointers
- Add additional parentheses / curly braces
- rename RGN_ATTR::Flags to iComplexity
svn path=/trunk/; revision=65720
Temporarily disable UserClientConnect (in server side) and CSR client to server call (in client side), always set gfServerProcess to FALSE (that is normally almost true but when CSR itself does USER32 operations...), and comment again GetConnect() call in ClientThreadSetup, in an attempt to "fix" 3rd stage for bots (so that we don't assert in DesktopPtrToUser because some pdi is NULL...)
svn path=/trunk/; revision=65716
- Code formatting for NtUserProcessConnect.
[USER32]
- Hack a call to GetConnected in ClientThreadSetup in an attempt to temporarily "fix" a bug that makes the bots fail. Now we really need to fix user32 init!
svn path=/trunk/; revision=65714
- Set the process creation notify routine for BASE that needs to be called when a process is created.
Patch by Timo, see CORE-7505.
[BASESRV]
- Implement BaseSetProcessCreateNotify that just saves internally the notification function to be called when a process is created.
- Call the notification function where it should be.
CORE-7505
svn path=/trunk/; revision=65712
- Play around and declare USERSRV_API_CONNECTINFO (CSR-style-name connect info structure type) as an alias to USERCONNECT (win32k-style-name) structure that is used to perform... "connections" between user32 and winsrv/win32k subsystem.
[WIN32K]
- Make UserThreadCsrApiPort case of NtUserSetInformationThread return success to make usersrv happy (while saving CSR port handle in win32k is still not implemented).
[USER32]
- Clean up "a bit" DllMain, call CsrClientConnectToServer to connect to usersrv (copy-paste of what we do in kernel32 for base and console connection) and now determine properly whether we are doing server-to-server calls (i.e. properly set gfServerProcess).
- Reorganize GdiDllInitialize calls and put them all to the end of DllMain instead.
- No need to support DLL_THREAD_ATTACH/DETACH so call the magic DisableThreadLibraryCalls function.
[USERSRV]
- Implement UserClientConnect with the patch of Timo CORE-7505: it gives a CSR port handle to win32k (if not already done), then do process connection.
CORE-7505
svn path=/trunk/; revision=65710