Commit graph

60192 commits

Author SHA1 Message Date
David Quintana a620535b0f [RSHELL]
* Make rshell.dll able to register its classes and support CoCreateInstance.

svn path=/trunk/; revision=65757
2014-12-20 16:04:45 +00:00
Amine Khaldi b8416cd7f3 [BROWSEUI] Reorder some exports.
CORE-8936 CORE-8174

svn path=/trunk/; revision=65756
2014-12-20 15:16:18 +00:00
Amine Khaldi c58a629e1f [SHELL32] Add export 007.. I mean 44. Mark some exports for inspection.
CORE-8936 CORE-8174

svn path=/trunk/; revision=65755
2014-12-20 15:10:45 +00:00
Amine Khaldi ae3dc3b564 [SHLWAPI] Stub some exports. Stubplement SHGetAllAccessSA. Based on a patch by Giannis Adamopoulos.
CORE-8936 CORE-8174

svn path=/trunk/; revision=65754
2014-12-20 14:54:04 +00:00
Hermès Bélusca-Maïto 88116276ee [SERVICES]: Do not use GetSystemMetrics to retrieve SafeBoot option value, but instead use directly the registry (as it is done just after...).
svn path=/trunk/; revision=65753
2014-12-20 03:12:23 +00:00
Giannis Adamopoulos 9693cd1f07 [UXTHEME]
* Implement a few functions needed by windows themeui.dll

svn path=/trunk/; revision=65752
2014-12-19 14:21:18 +00:00
Amine Khaldi 2acbdc453c [UXTHEME] Remove some exports that do not exist in native. Reorder some exports. Add some missing exports. Mark OpenThemeDataEx as noname.
CORE-8174

svn path=/trunk/; revision=65751
2014-12-19 14:00:09 +00:00
Amine Khaldi 736374efcd [SHLWAPI_WINETEST] Addendum to r65749.
CORE-7556

svn path=/trunk/; revision=65750
2014-12-19 13:22:15 +00:00
Amine Khaldi cfcca647bc [SHLWAPI] Import Wine commit 4b33a33 by Sebastian Lackner: Add implementation for StrCatChainW. Based on a patch by Huw Campbell.
CORE-7556

svn path=/trunk/; revision=65749
2014-12-19 13:20:42 +00:00
Timo Kreuzer 58d4218202 [WIN32K]
Handle coordinate translation in NtGdiOffsetClipRgn

svn path=/trunk/; revision=65748
2014-12-19 12:53:50 +00:00
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