Fix the following issues:
- Skip rotated font (font name starting with "@" char)
- Fix a comment (misspelled "Richedit")
- Fix enlarged preview font in font name is long (it truncated font name in 31 chars when copying)
- Fix 2 magic values (255 here is not meaningful, and it doesn't even entirely showing Unicode Plane 0)
Patch by Roy Tam.
CORE-8966 #resolve #comment Thanks. Commited in r65829.
svn path=/trunk/; revision=65829
Add French translation
It's totally broken though because the util directly writes Unicode to console. That should be fixed (see CORE-8965).
svn path=/trunk/; revision=65826
- CreateSystemThreads' parameter is unused, and the parameter of ONEPARAM_ROUTINE_CREATESYSTEMTHREADS win32k system call is set to TRUE when creating system threads in "remote processes", i.e. not CSRSS.
- Few code formatting fixes.
CORE-8949
svn path=/trunk/; revision=65825
* Do not make browseui an NT6 dll just because it has a missing include and it needs a few previously undocumented constants. We can just define them in an undoc header.
svn path=/trunk/; revision=65821
Fix NtUserProcessConnect to use the process handle we give to it, instead of the "current process"... This should fix the user32 CSR connection that I was failing to fix in previous revisions...
CORE-8949
svn path=/trunk/; revision=65820
Fix flags usage for LoadImage / CopyImage, that made network tray applet icons uglily being downscaled from 32px versions instead of their 16px counterparts.
svn path=/trunk/; revision=65819
Reintroduce CSR support for kernel mode, based on code from Ge that was wiped out in revision 58770, and by ntdll CSR code. Is needed for kernel to user-mode CSR callbacks.
For readers, I remind you the big callback picture in the Win32 subsystem:
- In Windows NT 3.1 and 3.51, USER and GDI was modeled against client/server model (USER32.DLL and WINSRV.DLL, and GDI32.DLL and GDISRV.DLL), all running in user mode (using the CSR API).
- Starting Windows NT 4.0 (and up), some USER and GDI parts were moved into kernel mode (in the WIN32K.SYS driver) to speedup communication. We get:
* GDI32.DLL as the client, doing win32k system calls (kernel-mode system calls to win32k),
* and USER32.DLL, WINSRV.DLL and WIN32K.SYS working in tandem, USER32.DLL being the client and {WINSRV.DLL, WIN32K.SYS} being the server.
USER32.DLL can do win32k system calls or CSR calls to WINSRV.DLL (client to server calls). For server-to-server calls, we have WINSRV.DLL
doing win32k system calls, or WIN32K.SYS doing CSR calls back to WINSRV.DLL . Also, there is the possibility for WIN32K.SYS to make user-mode
callbacks to USER32.DLL.
svn path=/trunk/; revision=65817
- Crash while in recursion through hook calls. Move fast calls to api. Placed safe guards for removing message queue structures. Lock threads while calling hooks. Just add paranoid code to prevent recursion freeing that will crash the kernel at some point. Fixes OpenMPT crashes, see CORE-8819. This might improve the same issues with CORE-6734.
svn path=/trunk/; revision=65815
Implement a virtualkd compatible kernel debugger transport DLL. I started this, because I didn't manage to get the original one working, but it turned out, the original one works, you only need to use the correct virtualkd version. Anyway, it's there now. A virtualkd version that works with VBox 4.3.16+ can be found here: http://forum.sysprogs.com/viewtopic.php?f=4&t=3370 or here: http://public.avast.com/~hnanicek/VirtualKd.zip
The folder is called kdvm, since I thought about adding support for VMWare as well, but here the original one probably works as well.
Also fix my email address in some files.
svn path=/trunk/; revision=65813
Reenable some disabled tests, while disabling some other calls, namely:
- code in ClientThreadStartup (that was moved in ClientThreadSetupHelper that is hackilly now called in Init() from DllMain),
- code in User32CallClientThreadSetupFromKernel,
- add two flag manual resets in Init() and the forced call to ClientThreadSetupHelper,
- and moreover the whole CSR call in DllMain, that seems to sometimes cause some user32 internal global pointers to remain NULL where they should not (more specifically some "pdi" thing).
Obviously all these problems need to be understood (why some things do not become initialized when they should, etc...). See r65799, revert r65810, and CORE-8949.
svn path=/trunk/; revision=65811
* Fix count of visible buttons getting out of sync when removing buttons. Fixes empty space at the end of the notification toolbar.
CORE-8840 #resolve #comment This should be fixed as of r65805.
svn path=/trunk/; revision=65805
* Improve an older change that I commited by mistake, with the improvbements based on a patch by Giannis.
* In Windows, fixes the taskbar having a size grip with the taskbar is themed and locked.
* In ReactOS, the size grip never seems to disappear, contrary to Giannis' concerns in the issue.
* Because of the above, I decided to commit the changes, and let the sizing edge inconsistency be a followup to the issue.
CORE-6966 #resolve #comment A modified version of the patch was commited in r65804. Thanks.
svn path=/trunk/; revision=65804
* Handle WM_CONTEXTMENU in the notification area so it does not spread upwards to the taskbar window.
* In theory, only one of the two handlers would be necessary, and it is true when testing in Windows, but in ReactOS, the handler in CSysPagerWnd was not enough. This may be worth a look by the win32k experts to see if it's a bug, or Windows was correcting my error.
CORE-8870 #resolve #comment Should be fixed in r65803. Thanks for reporting.
svn path=/trunk/; revision=65803
So far, totally disable VPB swapout on dismount. It appears to have brought more issues than it actually solves.
A more accurate implementation will be required.
CORE-8928 #comment Can you please retry with r65801
svn path=/trunk/; revision=65801
[USER32][USERSRV][WIN32K]
- Flag CSRSS threads as such.
- Each time a win32 thread is "created" (or a win32k system call is done) a PsConvertToGuiThread call is done, that makes a Win32ThreadCallout which calls UserCreateThreadInfo. We should call back ClientThreadSetup to set client-side info.
- Introduce a ClientThreadSetupHelper function to try to understand what happens when doing direct calls to ClientThreadSetup and via win32k callbacks.
- Reenable CSR call in user32::DllMain but add shame hacks in Init(..) to force NtUserProcessConnect callbacks (yet they should not be done there): see the code comment associated for more details.
- Temporarily disable ClientThreadSetupHelper call in ClientThreadSetup because it makes things fail, like console input thread failing and so on...
- ... and in ClientThreadSetupHelper, some correct code is commented out because it currently breaks other things (like menu initialization etc...), and HACKS ARE ADDED!! (see especially the "if (gpsi)" one, that should not exist, but if removed we fail sometimes in MenuInit because gpsi becomes NULL for some reason, if some other code that makes redundant calls to NtUserProcessConnect, is uncommented).
To sum up I tried to scaffold the thing as it should be, but with disabled code to not break everything.
CORE-8949 #comment Revision 65799 committed the patch v1.
svn path=/trunk/; revision=65799
- Reenable UserClientConnect callback, it's not the problematic code that made bots to fail at 3rd stage and caused r65716 to be committed.
- Put the system threads hack *after* having called NtUserInitialize (that really initializes user-kernel interface with win32k), and not before.
svn path=/trunk/; revision=65798
- Call NtGdiInit before initializing ourselves (ok, in ROS NtGdiInit does nothing interesting, but still do it to be call-compatible with win2k3 so everything initializes as it should).
- Do some cleanup on process detach.
svn path=/trunk/; revision=65797
- In German translation, replace erroneous \" to "" for putting quotes inside strings. Fixes resource compilation in GCC/MSVC.
- Make proper help string indentation in resource files. NOTE FOR TRANSLATORS: Please keep the identation correct!
svn path=/trunk/; revision=65790
Fix invalid memory usage, memory leaks, partial zeroes, big if blocks, ...
Would be nice also to check all the allocations which are not checked yet
CORE-8533
svn path=/trunk/; revision=65788