Commit graph

60182 commits

Author SHA1 Message Date
Timo Kreuzer
9959f71bba [WIN32K]
Dump object event log, when trying to dereference an object with 0 references.

svn path=/trunk/; revision=65747
2014-12-19 11:12:40 +00:00
Timo Kreuzer
b2a9ab7151 [WIN32K]
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
2014-12-19 10:34:52 +00:00
Timo Kreuzer
fc5dd61639 [WIN32K]
Make sure to respect GDI object lock order in (Nt)UserScrollDC

svn path=/trunk/; revision=65745
2014-12-19 09:26:50 +00:00
James Tabor
b037edeae8 [Win32k]
- 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
2014-12-18 23:45:11 +00:00
James Tabor
9bc240e832 - Fix a crash while moving minimized MDI window in ConTEXT.
svn path=/trunk/; revision=65743
2014-12-18 22:38:40 +00:00
Giannis Adamopoulos
a138064724 [RSHELL]
* Implement using a thin border for the start menu when themes are enabled
CORE-8925

svn path=/trunk/; revision=65742
2014-12-18 18:24:01 +00:00
Pierre Schweitzer
2de386a06c [BOOTDATA]
Add the NtfsMftZoneReservation registry key on installation

See http://support.microsoft.com/kb/174619 for more information

svn path=/trunk/; revision=65741
2014-12-18 18:15:15 +00:00
David Quintana
d73c38b69c [RSHELL]
* 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
2014-12-18 17:34:46 +00:00
Timo Kreuzer
217eef81d8 [GDI32]
- Rename SetRectRgnEx to IntSetRectRgn and make it usermode only
- Implement IntSetNullRgn
- Improve SetRectRgn code and enable the usermode part

svn path=/trunk/; revision=65739
2014-12-18 08:13:14 +00:00
Timo Kreuzer
f3f9526d93 [GDI32]
Rewrite CombineRgn, enabling full handling in usermode if the resulting region is either a rectangular or a NULL region.

svn path=/trunk/; revision=65738
2014-12-18 08:13:10 +00:00
Timo Kreuzer
383e40f59f [WIN32K]
Fix REGION_vSyncRegion and RGNOBJAPI_Unlock to actually make sense

svn path=/trunk/; revision=65737
2014-12-18 08:13:06 +00:00
Timo Kreuzer
dd9435905a [USER32]
Fix copy-paste-bug in SubtractRect

svn path=/trunk/; revision=65736
2014-12-18 08:13:01 +00:00
Timo Kreuzer
54f66b4232 [WIN32K]
- Rename xmemcheck to REGION_bGrowBufferSize
- Implement REGION_bEnsureBufferSize and REGION_vAddRect helper functions
- Replace MERGERECT macro with REGION_bMergeRect inline function

svn path=/trunk/; revision=65735
2014-12-18 08:12:55 +00:00
Timo Kreuzer
542d41ba8b [WIN32K]
Improve REGION_bMakeFrameRegion and REGION_bMakeSimpleFrameRgn

svn path=/trunk/; revision=65734
2014-12-18 08:12:51 +00:00
Timo Kreuzer
fe261bd6e2 [WIN32K]
- 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
2014-12-18 08:12:41 +00:00
Timo Kreuzer
beff5fdc06 [WIN32K]
- Rename IntGdiOffsetRgn to REGION_iOffsetRgn

svn path=/trunk/; revision=65732
2014-12-18 08:12:34 +00:00
Timo Kreuzer
72bceaffc2 [WIN32K]
Implement exclusive lock order checks for GDI objects in debug builds

svn path=/trunk/; revision=65731
2014-12-18 08:12:28 +00:00
Timo Kreuzer
c6f684e727 [WIN32K]
- 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
2014-12-18 08:12:23 +00:00
Timo Kreuzer
c3d2353ed6 [WIN32K]
Properly implement EngPaint, calling IntEngBitBlt, instead of doing a manual single color fill.

svn path=/trunk/; revision=65729
2014-12-18 08:12:19 +00:00
Timo Kreuzer
9697fb6e1e [WIN32K]
- Implement REGION_bXformRgn
- Move IntGdiPaintRgn ro bitblt.c

svn path=/trunk/; revision=65728
2014-12-18 08:12:06 +00:00
Timo Kreuzer
095f2182e8 [WIN32K]
- Move IntGdiReleaseRaoRgn and IntGdiReleaseVisRgn to cliprgn.c
- Remove unused IntUpdateVisRectRgn

svn path=/trunk/; revision=65727
2014-12-18 08:12:01 +00:00
Timo Kreuzer
e6d7e74e6a [WIN32K]
- Rename IntSetPolyPolygonRgn to REGION_SetPolyPolygonRgn
- Implement GreCreatePolyPolygonRgn wrapper around it
- Fix iMode usage in NtGdiPolyPolyDraw
- Improve some variable naming

svn path=/trunk/; revision=65726
2014-12-18 08:11:56 +00:00
Timo Kreuzer
a969022b08 [WIN32K]
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
2014-12-18 08:11:50 +00:00
Timo Kreuzer
620c12a295 [WIN32K]
- Move NtGdiFillRgn and NtGdiFrameRgn to bitblt.c
- Remove unused NtGdiUnionRectWithRgn
- Rename REGION_CreateFrameRgn to GreCreateFrameRgn

svn path=/trunk/; revision=65724
2014-12-18 08:11:42 +00:00
Timo Kreuzer
87c12612dc [WIN32K]
Move NtGdiInvertRgn to bitblt.c

svn path=/trunk/; revision=65723
2014-12-18 08:11:36 +00:00
Timo Kreuzer
163de23b57 [WIN32K]
- Remove useless offset part in REGION_CropAndOffsetRegion

svn path=/trunk/; revision=65722
2014-12-18 08:11:31 +00:00
Timo Kreuzer
4fa10c7ef9 [WIN32K]
Fix MSVC warnings

svn path=/trunk/; revision=65721
2014-12-18 08:11:25 +00:00
Timo Kreuzer
2768e3abbd [WIN32K]
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
2014-12-18 08:11:19 +00:00
Timo Kreuzer
1a37b7cfb8 [WIN32K/FORMATTING]
- Tabs -> spaces
- Fix indentation
- Improve comment formating
- No code change

svn path=/trunk/; revision=65719
2014-12-18 08:11:13 +00:00
Timo Kreuzer
0d02208b99 [GDI32]
Avoid casting RECT and POINT to RECTL and POINTL by adding a define

svn path=/trunk/; revision=65718
2014-12-18 08:11:09 +00:00
Timo Kreuzer
ab81b74bb4 [GDI32]
Implement GdiGetRgnAttr

svn path=/trunk/; revision=65717
2014-12-18 08:11:04 +00:00
Hermès Bélusca-Maïto
f9b8d7214f [USER32][USERSRV]
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
2014-12-18 01:53:08 +00:00
Hermès Bélusca-Maïto
e157eb4929 [CONSRV]: Explicitely use UNICODE SetWindowText API.
svn path=/trunk/; revision=65715
2014-12-18 01:35:55 +00:00
Hermès Bélusca-Maïto
c6fccde6d2 [WIN32K]
- 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
2014-12-18 00:30:27 +00:00
James Tabor
5b624b75db [NtUser]
- Cleanup status and update header.

svn path=/trunk/; revision=65713
2014-12-18 00:19:33 +00:00
Hermès Bélusca-Maïto
effa3a4d24 [USERSRV]
- 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
2014-12-17 23:03:36 +00:00
Hermès Bélusca-Maïto
ae2e894b80 [USERSRV]: usersrv needs static-link to basesrv because it'll use an API in the next commit :p (hint: process creation notification). For Timo's patch CORE-7505
svn path=/trunk/; revision=65711
2014-12-17 22:34:13 +00:00
Hermès Bélusca-Maïto
672f036f93 [HEADERS]
- 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
2014-12-17 22:22:05 +00:00
Hermès Bélusca-Maïto
6268701e22 [KERNEL32]: Minor code formatting.
svn path=/trunk/; revision=65709
2014-12-17 22:07:41 +00:00
Hermès Bélusca-Maïto
2abc02f9c7 Delete unuseful file...
svn path=/trunk/; revision=65708
2014-12-17 22:06:36 +00:00
Daniel Reimer
42b68bba90 [SHELL32]
German translation update

svn path=/trunk/; revision=65707
2014-12-17 21:09:30 +00:00
Amine Khaldi
eb0152b771 [USRMGR] Italian translation update by Nicolò Altamura. CORE-8857
svn path=/trunk/; revision=65706
2014-12-17 17:59:02 +00:00
Amine Khaldi
041fb54b3e [MPLAY32] Update Chinese (zh-CN) translation. By Henry Tang Ih.
CORE-8918

svn path=/trunk/; revision=65705
2014-12-17 17:51:10 +00:00
Amine Khaldi
e6d6e86150 [SYSDM] Minor changes to the Startup and Recovery options dialog resource. Brought to you by Ricardo Hanke.
CORE-8924

svn path=/trunk/; revision=65704
2014-12-17 17:47:54 +00:00
Giannis Adamopoulos
59dee0fd6f [EXPLORER]
* Remove internal IStartMenuSite interface that didn't serve any purpose.
* Stop using global instances of some core classes.

svn path=/trunk/; revision=65703
2014-12-17 12:44:58 +00:00
Giannis Adamopoulos
2d5024bcae [RSHELL]
* Disable themes for the toolbars used for shell menus
* See issue CORE-8922 for details

svn path=/trunk/; revision=65702
2014-12-17 12:38:19 +00:00
Giannis Adamopoulos
f8294a310a [RSHELL]
- Remove definition for an undocumented function that already exists in our headers
- See issue CORE-8920

svn path=/trunk/; revision=65701
2014-12-17 12:28:35 +00:00
Giannis Adamopoulos
fadad0db13 [RSHELL]
- Simplify some code by using shlwapi helpers
- See issue CORE-8919

svn path=/trunk/; revision=65700
2014-12-17 12:11:31 +00:00
Giannis Adamopoulos
3f135b5ac6 Try to fix build
svn path=/trunk/; revision=65699
2014-12-17 11:46:19 +00:00
Giannis Adamopoulos
cfac63ea85 [BROWSEUI]
* Simplify a lot of methods my using helpers from shlwapi.
* Remove declarations for undocumented functions that are already declared in our headers.
* Move definitions of IID_IAugmentedShellFolder and CLSID_MergedFolder to our headers.
* Remove definitions of functions that are already implemented in shlwapi.
* Add CreateMergedFolder and CreateMenuBand functions in precomp.h in order to simplify creating these objects when using rshell.

svn path=/trunk/; revision=65698
2014-12-17 11:35:07 +00:00