Fix some compilation warnings with MSVC.
[KERNEL32-CONSRV]
- Implement console graphics screen buffers, as described in http://blog.airesoft.co.uk/2012/10/things-ms-can-do-that-they-dont-tell-you-about-console-graphics/ .
The idea is that the console server creates a memory shared section to be shared with the client console application (it increases performance). A mutex is used to "say" to the console server that he can repaint the screen. The function InvalidateConsoleDIBits is implemented too. The definition of the structure CONSOLE_GRAPHICS_BUFFER_INFO comes directly from the site.
- CreateConsoleScreenBuffer was modified to be able to create such buffers.
This is needed for a working NTVDM-like application.
[CONSRV]
- Rework the console buffer structures so that text-mode buffers and graphics-mode buffers can "inherit" from an "abstract" structure, CONSOLE_SCREEN_BUFFER. Add few helper functions for manipulating them.
- Reorganize the output code in "graphics.c" and "text.c" files to separate text-mode only code from graphics-mode only code, both in the console server and in the GUI front-end.
Other fixes:
- Fix mouse handling (left and right clicks when one goes away from the "Selection" mode); do not handle mouse signal when we reactivate the GUI front-end window by a click.
- Fix GetLargestConsoleWindowSize API in console server side. Now pressing Alt+F9 in Far Manager to "change" the "video" mode works correctly.
Finally:
- Start to implement a (fake, i.e. not using directly a VGA driver) console fullscreen mode. Currently Alt-Enter key presses call a stub which just alternates DPRINTing between "switch to fullscreen mode" and "switch to windowed mode".
Images here:
- Example of an application (a 16-bit emulator by Mysoft) which uses the console graphics screen-buffer functionality: http://img577.imageshack.us/img577/1693/mysoftemulatorargon.png
- A potpourri of console applications which use graphics screen-buffers: http://img571.imageshack.us/img571/6526/consoledelirium.png
Enjoy :)
svn path=/trunk/; revision=59099
- Add some missing 64 bit intrinsics
- Fix a warning in intsafe.h
- Use SAL2 annotations in sspi.h
- Fix some annotations
svn path=/trunk/; revision=59094
* Sync with Wine 1.5.26 and update Wine gecko package to 1.9.
[PSDK]
* Update mshtmdid.h and mshtml.idl.
[APPWIZ]
* Import the new way of handling Wine gecko package.
[BOOTDATA/PACKAGES]
* Account for the new Wine gecko package slipstreaming.
svn path=/trunk/; revision=59047
* Fix ITravelLogClient::GetWindowData() definition (parameters) and correct its use.
* Account for tlogstg.h where the ITravelLogClient interface is now defined.
[PSDK]
* Import tlogstg.idl from Wine 1.5.26.
* Remove the now duplicated definitions from shobjidl.idl.
[UUID]
* Add tlogstg.idl.
svn path=/trunk/; revision=59024
- FreeLdr is able now to load personalized Kernel Debugger Transport DLLs by reading at the kernel command line and interpreting the /DEBUGPORT=xxx entry (--> loads KDxxx.DLL dll in \SystemRoot\System32\).
Therefore we can not only load the "default" kdcom.dll, but also 3rd-party ones such as kdbazis.dll from VirtualKD (from revision 58902).
- The GCC-compiled-only version of kdcom, containing legacy COM code, was removed and put directly along KDBG. It remains only a stub / template for future kdcom-like dlls. The MSVC-version remains untouched.
- Make those functions ^ use directly the CPORTLIB library.
svn path=/trunk/; revision=58974
* Add NT_CONSOLE_PROPS and NT_FE_CONSOLE_PROPS and fix EXP_SZ_LINK.
* Add SHELL_LINK_INFO_* and some Shell Link Extra Data structures (for IShellLinkDataList).
[USERINIT][CPLS][DLLS]
* Add the now necessary wincon.h inclusion.
* Brought to you by Dominik Hornung.
CORE-7162 #resolve #comment Committed in r58930. Danke !
svn path=/trunk/; revision=58930
The idea then would be to have the following behaviour (when specifying the following options in the kernel command line):
/DEBUGPORT=COMi --> load KDCOM.DLL and use COMi port (i == 1,2,3,4) if possible.
/DEBUGPORT=FOO --> load KDFOO.DLL (useful for KDUSB.DLL, KD1394.DLL, KDBAZIS.DLL for VirtualKD, etc...)
/DEBUGPORT=ROSDBG:[COMi|SCREEN|FILE|GDB|...] --> load KDROSDBG.DLL which contains the ROS kernel debugger, and use COMi or SCREEN or... as output port.
svn path=/branches/kd++/; revision=58883
* Import from Wine 1.5.26.
[PSDK]
* Import docobjectservice.idl and htiface.idl from Wine.
* Add some missing definitions in shlobj.h.
[UUID]
* Add docobjectservice.idl and htiface.idl to the list.
* Add CGID_DocHostCommandHandler.
svn path=/trunk/; revision=58783
Merge of the ros-csrss branch created with a three-fold purpose:
- Use the new Windows-compatible Client-Server Runtime Subsystem (csrss + csrsrv)
written by Alex Ionescu to replace the old hacked one. Also the CSR client part,
residing in ntdll, is updated. Some work also done on the dlls side, which
communicate with CSR, namely kernel32.
- Replace our very old win32csr.dll CSR server by the collection basesrv.dll /
winsrv.dll as it is done under Windows.
- Since the console subsystem is (for historical purposes on Windows) the
only subsystem which exploits all the possibilities of the CSR, I decided to
put it in a new CSR dll called 'consrv.dll', even if on Windows it is included
together with other APIs inside the winsrv dll (since Windows NT 3.1 release)
(I took the name 'consrv' from the dll where it was included in Windows NT 3.1
beta from October 1991). Some work was also done on its internal architecture
(the external interface is of course unchanged for compatibility reasons) and a
two-layer approach was developed, using the existing idea of console functions +
GUI or TUI we already had in win32csr:
* the "console server" which dialogs with the console applications,
and which maintains a list of all the created consoles.
* different "front-ends" corresponding to where you want to output
the information (~= console hardware) (Work-In-Progress).
Another idea would be to make those front-ends dynamically-loadable (instead
of being compiled inside consrv).
- I also fixed some parts of the console properties dialog box.
More information can be found in http://www.reactos.org/archives/public/ros-dev/2013-April/016121.html
CORE-122 CORE-2510 CORE-7002 #resolve #comment Committed in revision r58xxx.
svn path=/trunk/; revision=58770
* Import audioclient.idl and mmdeviceapi.idl from Wine and add them to the generated PSDK headers.
* Add missing WAVE_FORMAT_IEEE_FLOAT definition to mmreg.h.
* Import audiosessiontypes.h, devpkey.h and propkey.h from Wine.
svn path=/trunk/; revision=58751
Addendum to revision r58744.
CORE-7062 #comment the NDIS_** structures, albeit containing the "recieve" misspelling, must be kept as they are because we must be compatible with the Windows DDK. Indeed this one contains the misspelling. Blame Microsoft if they do not know how to write proper English or if they do not re-read what they are writing !!
svn path=/trunk/; revision=58748
Correct spelling of "receive" throughout the codebase.
Patch by andygui.
CORE-7062 #resolve #comment Fixed in revision r58744. Thanks :)
svn path=/trunk/; revision=58744
Fix the definition of BYTES_TO_PAGES. While the macro might look overcomplicated, it actually needs to be this way to prevent integer overflows.
svn path=/trunk/; revision=58738
* Don't be so complicated for defining the DEFINE_GUIDSTRUCT and DEFINE_GUIDNAMED macros on GCC
CORE-7052 #comment fixed in 58697, thanks. #resolve
svn path=/trunk/; revision=58697
Fix spelling of 'length' in various places.
Patch by andygui
Concerning kdio.c, we can see that the original author didn't see his misspelling since he used two different variables named:
KdpScreenLineLength and KdpScreenLineLenght ! ; the latter being renamed here KdpScreenLineLengthDefault to make the difference.
CORE-7043 #comment Part for ReactOS committed in r58672, thanks!
svn path=/trunk/; revision=58672