Commit graph

60174 commits

Author SHA1 Message Date
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
David Quintana 4c893c3d59 [SEHLL32]
* Implement handling of file associations marked as "NoOpen". Patch by Lee Schroeder, with a few tweaks.
CORE-8855 #resolve #comment Commited in trunk r65697. Thanks.

svn path=/trunk/; revision=65697
2014-12-17 00:46:30 +00:00
Hermès Bélusca-Maïto 5b22f2c5c3 [WIN32K]
- Simplify NtUserInitialize: we can check whether gpepCSRSS is != NULL to see if we are initialized or not (instead of using gbInitialized).
- The UserInitialize helper doesn't need to take parameters. The two event handles (power and media, used when we receive a power event -- for sleep, etc... -- and a media event -- like USB key insertion and such --) just need to be used in the not-yet-implemented "Initialize Power Request List" and "Initialize Media Change" steps.
- Something that should be done is to bugcheck if the USER version reported is != 5.0 (as windows does).

[WINSRV]
- Collapse common inclusions from usersrv and consrv into the common header winsrv.h.

[USERSRV]
- _UserSoundSentry is NTAPI
- Stub UserClientConnect (Timo's patch contains more involved code. I will commit it later).
- Our NtUserInitialize(0, NULL, NULL); call (that made Windows BSOD) is wrong. It should be done with its first parameter correctly set to the USER version (5.0) and the two other parameters are handles to power and media events (see above). We should create them before.
This is part of patch by Timo Kreuzer.
CORE-7505 #comment UserClientConnect stubbed (it should be better implemented, I will commit the code from the patch later on); power&media events initialized; NtUserInitialize corrected.

svn path=/trunk/; revision=65696
2014-12-17 00:33:40 +00:00
David Quintana 09bdb1f5ce [SHELL32]
* Revert r65589, since it breaks tray icons.

svn path=/trunk/; revision=65695
2014-12-17 00:32:34 +00:00
Hermès Bélusca-Maïto 06c09f7300 [WIN32K]: Some code formatting in csr.c before revampering it.
svn path=/trunk/; revision=65694
2014-12-17 00:17:44 +00:00
Hermès Bélusca-Maïto 423dd92dbd [WIN32K]
Stubplement NtUserQueryInformationThread and NtUserSetInformationThread that will be used for:
- shutdown support: CORE-8322
- communicating a CSR Port handle to win32k: CORE-7505
CORE-7505 CORE-8322

svn path=/trunk/; revision=65693
2014-12-16 23:09:29 +00:00
Hermès Bélusca-Maïto 77b8d17482 ... And as a result of the previous commit, finally get rid of the "deprecated" directory!
svn path=/trunk/; revision=65692
2014-12-16 21:59:50 +00:00
Hermès Bélusca-Maïto 2b315b5802 [WIN32SS]: Push back csr code into win32k (not compiled yet). The thing is that win32k uses a LPC port to communicate with winsrv.dll . But it's winsrv.dll that gives a handle of the CSR port to win32k via a call to NtUserSetInformationThread with the UserThreadCsrApiPort information class. See part of Timo's patch in CORE-7505 that will be submitted later on. Also I need to somewhat stub the UserThreadCsrApiPort info class in NtUserSetInformationThread :)
svn path=/trunk/; revision=65691
2014-12-16 21:58:18 +00:00
Hermès Bélusca-Maïto c8b67f57b6 [KERNEL32][BASESRV]
On Windows 2k3, BASESRV_API_CONNECTINFO went under a slimming treatment and now is only 4 bytes. In fact all its information was already existing in the static base data structure (BaseStaticServerData). We should now be more 2k3-compatible :)
Fix also the testbots.

svn path=/trunk/; revision=65690
2014-12-16 21:48:23 +00:00