- Also remove extra whitespace between function names and their arguments in sfc.
- Required by userenv.dll, win32k.sys, and others from Windows Server 2003 and also by some MS installers like Windows Media Encoder 7.1 installer. Now they should not fail due to that functions.
CORE-16458
Add stubs for WinStationCanLogonProceed() and _WinStationOpenSessionDirectory() functions to make winlogon from Windows Server 2003 happy.
CORE-15392 CORE-16458
Purpose
~=~=~=~
This pull request updates charmap to look a bit better (removes gap at bottom of the window), removes the blank space character (0x0020) from the charmap, and also modifies the behaviour of when a larger glyph is rendered (allowing the user to select a new glyph by holding down the mouse button). This better mimics the charmap.exe that is bundled by Microsoft.
Proposed changes
~=~=~=~=~=~=~=~=
- Remove gap where the advanced button is normally rendered when compiled with REMOVE_ADVANCED (which is the default behaviour).
- Skip over the blank space character.
- Change behaviour of rendering large glyphs to allow mouse move, and to hide on double click.
- Optimize search for glyph under the mouse by using the cellSize instead of PtInRect.
* [CHARMAP] Resize the window slightly when compiled with REMOVE_ADVANCED to avoid deadspace at the bottom of the window
* [CHARMAP] Skip over the non-printable characters by starting with character ' ' + 1
* [CHARMAP] Instead of iterating over every cell, simply compute the cell x and y using the CellSize
Modify behaviour of charmap to allow large character render on mouse move, only hiding the larger character on double click.
Since indeeed the memcpy/move type of functions usually don't operate on
pointers to 'volatile' data, don't make ClientCaptureBuffer volatile.
Instead when retrieving the values of its 'Size' and 'PointerCount'
members (see the SEH block), use the so-called technique of "volatile
glasses" [1], where the pointer will be explicitly casted to "volatile TYPE*"
where needed.
[1]: https://docs.microsoft.com/archive/blogs/itgoestoeleven/why-your-user-mode-pointer-captures-are-probably-broken
Translations for:
- Applications: clipbrd, dxdiag, rapps,
- cmdutils: attrib, find, help, label, reg, xcopy
- usetup
- dlls: browseui, shell32, syssetup
- Add Spanish translation for Accesibility Utility (utilman).
Update for the "Choose product options" strings in syssetup:
Originally "ProductType" and "ProductSuite" (typesetted without spaces) were the registry value names where these settings would go, but since it's meaningless to show these values it's better instead to use human-readable names with correct translation and spacing.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
DiskGeometryGetPartition() and DiskGeometryGetDetect() are guarded in NTDDI_VERSION for version checking as they differ between Windows XP and Server 2003. In conjunction to that, the PARTITION_INFORMATION_EX structure has "IsServicePartition" as member which is missing in the current NT IOCTL Disk interface header.
- Improve capture buffer validation in CsrCaptureArguments(), by
implementing the checks done by Windows 2003 (NT 5.2) described
in section "Server-Side Validation and Capture" of the article
https://www.geoffchappell.com/studies/windows/win32/csrsrv/api/apireqst/capture_header.htm
- In CsrReleaseCapturedArguments(), protect the data copy back into
the client buffer within a SEH block.
Rename inaccurate names 'LocalCaptureBuffer' and 'RemoteCaptureBuffer'
into 'ClientCaptureBuffer' and 'ServerCaptureBuffer' respectively.
(Recall: CSRSRV is the 'Server', and any app doing LPC calls to it is
the 'Client'.)
Also, trigger the less fatal breakpoints only if CSRSS/CSRSRV is being
debugged (the 'BeingDebugged' flag is set in the current PEB). This will
avoid any unhandled breakpoint exceptions when testing/fuzzing running
debug builds of ReactOS without any debugger attached.
- Move ConSrvInitHandlesTable() & rename it ConSrvInitProcessHandles()
since its purpose is to initialize the standard input, output and
error handles for a console process.
- Move ConSrvAllocateConsole(), ConSrvInheritConsole() and
ConSrvRemoveConsole().
Leave english strings untouched regarding space before colon.
Thanks to HBelusca for review as well.
I hope next one translating these will take care still.
Addendum to 0.4.14-dev-1405-g
dcc6dcb0bd
Readd all spaces before the colons that I removed,
as that is a french speciality and was correct,
and also add some more of those that were missing even
before my commit (was inconsistent).
Thanks to Serge Gautherie, Thomas Faber and hpoussin
for the review.
Manually Tweaked fr-FR the most, see CORE-12477
Manually Tweaked de-DE enlarged a buttons size
For All Languages harmonized " :"->":"
For All Languages harmonized the maximized available space
for dynamic strings in 2nd tab right side from 100->120
- Simplify the cleanup-code in ShowInfo
- Print the 'Primary DNS suffix' and the 'DNS Suffix Search List'
- Move the /registerdns message into its own function
Shell change notification has been implemented in #2432. But as @yagoulas said, source code structure is in mess. We improved simplicity and human readability of our source code.
- Move wine/changenotify.c code into changenotify.c and shelldesktop/CChangeNotify.cpp.
- Simplify code and rename the identifiers and add many comments. CORE-13950
All the per-API message structure unpacking and console validation done
with ConSrvGetConsole() is now automatically generated using the macros,
so that the actual implementation of each API can be done independently
of how the console object is obtained.
This could also allow reusing these API implementations with a different
mechanism for obtaining the console without changing anything in them.