Improve human readability of filesystem change notification.
- Rename the identifiers for human readabilities.
- Split the code into CFilePathList and CDirectoryWatcher classes.
- Encapsulation of code.
CORE-13950
* api-ms-win-downlevel-shell32-l1-1-0.dll is NT10+ and win32 only
* api-ms-win-shcore-obsolete-l1-1-0.dll is NT10+ and win32 only
* api-ms-win-downlevel-shlwapi-l2-1-0.dll is NT10+ and win32 only
CORE-8880
MSVC's LINK is not able to export both the undecorated and decorated symbol from the same dll. This results in an incoherence between the spec file entries and the actual exports, breaking the dll export versioning.
The build broke due to a typo introduced by
0.4.15-dev-275-g
612729b092
../dll/win32/syssetup/wizard.c: In function 'ProductPageDlgProc':
../dll/win32/syssetup/wizard.c:527:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-
after-statement]
cc1.exe: all warnings being treated as errors
- Make "ReactOS Server" the default product option again instead of "ReactOS Workstation".
- Write "Service Pack" info onto registry.
- Add ProductOption option to bootcd unattend.inf.
- Delete IDC_PRODUCT_SUITE and IDC_PRODUCT_TYPE controls.
CORE-17028
During initialization of property sheet dialogs, their overall size can change (when adding property sheets) after the dialog has been created and pre-positioned by win32k.
Therefore their position needs to be recomputed so that they try to fit the best on screen.
CORE-9008, CORE-9602
If the registry key that holds the names of installed opengl drivers is missing, all list boxes in openglcfg are empty. This is a minor code rearrangement to fix this behavior.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
- Comment some other missing exports Windows regapi.dll has them, but Wine's one doesn't.
Required by MS winlogon with Win32SS replaced. I double-rechecked: now it doesn't fail due to missing regapi.dll in system32 or separate missing functions in this dll, exactly the same as with MS regapi. In pair with my profmap.dll (which was merged recently), now it fails due to InitializeUserProfile() stub in our userenv.dll (if to replace msgina too).
Also I compared the exports of MS regapi.dll and Wine's one. Win2k3 version has all exports that Wine version has and some others (which looks like were dropped in NT6). But those exports which already exist, are enough to allow MS winlogon no longer fail.
CORE-16458
PrintUI : Move to printing base directory.
NTPrint : Import from wine.
NTPrint does have a API test program from wine, not imported at this
time.
These will be Sync/Ported to full forked.
To fix 'MSTSC fails to connect with error "ERROR: Bad packet header"'
which regressed by 0.4.12-dev-752-g
6bc61f63f1
In 0.4.12 and 0.4.13 releases I totally reverted
Pierre Schweitzer's work instead.
Thanks to Doug Lyons, author of this new workaround,
we can keep Pierre's work.
We think MSAFD is a better place to workaround than
our MSTSC binary, because our MSTSC runs fine on
W2K3SP2.
I will backport this new workaround also into 0.4.14RC.
Remove WM_SYSKEYDOWN handling at component level, in consistency with other components (ListView,...)
Early embodiement of the fix proposed to WineHQ : https://bugs.winehq.org/show_bug.cgi?id=49097 in order to remove functionnal limitation in ReactOS. CORE-17020
## Purpose
[SYSDM]
- When closing System Properties page, log show
(win32ss/user/ntuser/windc.c:749) err: [00060138] GetDC() without ReleaseDC()!
because GetDC() is called (multiple times) without properly calling ReleaseDC() as required in order to release a device context.
- This module also lacks some error management in case null DC are provided (on error).
- LiveCD Userinit, based on SYSDM is affected too.
[DESK]
- Fix missing ReleaseDC related to the spectrum (color depth)
## Proposed changes
- ReleaseDC() added.
- Error management in case of null DC.
- Overall alignement of LiveCD Userinit and SYSDM.
In current implementation, when regedit opens HKCR root key, an error is logged
err:(dll/win32/advapi32/reg/hkcr.c:964) Returning 259.
This is not correct as the code 259 is ERROR_NO_MORE_ITEMS which is the nominal return value when end of enumeration is reached.
Notify filesystem change notifications by using ReadDirectoryChangesW function. Creating/Deleting files/folders will be responsive in Explorer. CORE-13950
- Check for changes of the host and domain name.
- Use NetGetJoinInformation to retrieve the join status.
- Implement the SyncDomainWithMembership setting.
- Disable the administrator warning temporarily.
CORE-15262
This fixes the exceptions raised when calling "Scan folder" a second time in SUMo 5.10.16.
The problem was reported to WineHQ : https://bugs.winehq.org/show_bug.cgi?id=48941
Import Wine commits by Nikolay Sivov, with the help of Doug Lyons:
- 08f4b6ee0a
ole32: Fix IMalloc::DidAlloc() return value to reflect block validity.
- 1e3bc9f3a6
ole32: Improve thread safety in DidAlloc().
- 06d36b1adf
ole32: Fix spy callback arguments for IMalloc::GetSize().
CORE-16981
The problem:
============
- When opening "Open With..." dialog for a given file format, multiple MRU items are appended to registry : 2 items written, even if dialog is closed "cancel".
- Expected behavior : 1 MRU item if execute is selected and 0 MRU if cancel is selected.
Fix:
====
- MRU item to be added when "Execute" is selected only.
- Once added, set the presence flag to avoid multiple MRU items being added later.
* [DESK] Add initial directory flag and set it to My Pictures. Also set OFN_EXPLORER style.
* Use CSIDL_MYPICTURES instead of environment variable concoction.
* Fix formatting.
Import Wine commits by Dmitry Timoshkov:
* 0cd8502b49 windowscodecs: Add support for 4bps RGBA format to TIFF decoder.
* 962bb99352 windowscodecs/tests: Add a separate test for 4bps BGRA TIFF format.
It may happen that the time-zone information in the registry key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
contains an empty StandardName / DaylightName, or is too long for the
standard maximum 32-character length, and therefore is returned empty.
And/or it may happen as well that some of the standard names (value "Std")
present in some of the time zones listed in
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
are similarly too long, and therefore are returned as empty strings.
In case this happens, perform comparisons instead with the numerical
values Bias, StandardBias, DaylightBias, StandardDate and DaylightDate
in order to find a match.
It is interesting to note also that in Vista+ there is an additional
REG_SZ value "TimeZoneKeyName" in
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
that allows to directly find a match in the time zones list in
"Windows NT\CurrentVersion\Time Zones".
This small win32 library provides time-zone utility wrappers around
Win32 functions, that are used by different ReactOS modules such as
timedate.cpl, syssetup.dll, and a possible future 'tzutil' tool.
The code has been extracted from the common code found in both
timedate.cpl and syssetup.dll.
This occurred in the file explorer because the menu isn't destroyed and recreated each time, so the menu item, once checked, will stay checked forever. We must call CheckMenuItem with MF_UNCHECKED to clear the check when necessary
The return result of ParseNow was never checked, but contained useful information on what type of error may have occurred. If the error is an issue with the path not existing the explorer will now show an error message notifying the user of the problem instead of silently failing.
Note: Shell32 does not properly return ERROR_INVALID_DRIVE when the drive path does not exist. For that reason, it is still possible to browse to a non-existent drive. However, once shell32 is patched this code will work properly, as it checks for both ERROR_INVALID_DRIVE and ERROR_FILE_NOT_FOUND.
Some 'BindToObject' methods are incomplete, and in some cases relative paths are simply not possible (especially in special folders such as the desktop)
-Avoid text truncations regarding the checkbox
in a uniform way
-Reduce chance of text truncations for a button
in a uniform way
-Fix es-ES dlg layout and harmonize its dlg Size
with other languages
-de-DE fix double accelerator
-Some inspiration from de-DE which I improved years ago
-Avoid text truncations and control overlapping that
happened in almost all other languages
-Increase the size of the listView for all except es-ES & pt-PT
-es-ES & pt-PT had different dlgs sizes, I only slightly tweaked
those therefore
-In sum this brings the RCs much closer to each other
-Unrelated: fix a white-space-typo we had in some but not all RCs
DD_LAN_NETSTATUS & IDD_LAN_NETSTATUSADVANCED
Reason for the change:
-dlgs sizes did differ (between langs and also within same lang)
-groupboxes sizes did differ (between langs and also within same lang)
-tabbing through both dlgs looked poorly therefore in almost all langs
(margin and groupbox jumping)
-in some languages we had truncation
-in some languages we had unintended scaling for the icon
-after the change all controls and dlgs have the exact same size for all languages,
I managed to achieve the common detominator for
everything that looks good in all languages and guarantees to not introduce any truncation
Only exception is the icons horizontal position which may require individual tweaking!
* [TRANSLATION] New PT translation to inetcpl
* [TRANSLATION] Fix SUBLANG in file cpl/joy/lang/pt-PT.rc to SUBLAG_NEUTRAL
* [TRANSLATION] New PT translation to cpl/mmsys/lang/pt-PT.rc
* [TRANSLATION] Fix SUBLANG in cryptui_Pt.rc file
- 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
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>
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
Remove RTC switch from configure.cmd, now MSVC runtime checks are
supposed to be enabled/disabled via CMake define (-DRUNTIME_CHECKS=1)
Prepare for adding more dynamic analysis options
Invalidating and updating the whole window is a waste of computation resources and may cause certain controls notably the text string control to flicker. So instead, just invalidate the specific portion of the client area which is the animation bar.
- On desktop view, we have to watch both the common desktop and the private desktop.
- In Windows, IShellLink::Save (shortcut creation) sends SHCNE_CREATE or SHCNE_UPDATEITEM notification.
- Simplify CChangeNotify::ShouldNotify.
CORE-10391
This adds missing features like using events and APCs within IcmpSendEcho2
functions and others.
CORE-10742 CORE-14411
Co-authored-by: Tim Crawford <crawfxrd@gmail.com>
Updating translation for:
notepad, reactos, usetup, explorer, netshell, msgina, setupapi, shell32.
- Complete and Fix the SPANISH TRANSLATION on Setup
- Correct the random names, fixing the denominations, translate of the English words, and fixing random and incorrect denominations like "Cabinet" or "distribuciones".
- Fixed the notepad shortcuts of "Save" (Ctrl+g) and "Replace".
CORE-6561 CORE-13442
- Call GetComputerNameA() only when a non-empty server name has been
provided, thus slightly improving speed for the most common case when
local calls (with an empty server name) are done.
- When a server name is passed, trim any leading UNC server prefix since
the latter will be restored when building the pipe name string.
which implements the required functionality.
ntdll and ntoskrnl now have a wrapper for this, with SEH.
This protects the function against malformed / bad images,
whilst still being able to use the code in freeldr et al.
Idea from Thomas.
CORE-14857
Fix SHAppBarMessage (not perfect) by adapting wine code. See CORE-14439.
More work is required. Kept the original code for reference.
Example : SetWindowPos should be called via Post Message.
Code commit is to wake up other developers.
* [SHELL32] Add shortcut to rename folders with the F2 key.
Sync Wine Commit 2e25a43f3fb6230460447bae6fb5db2edbd4a42f by Fabian Maurer
* [SHELL32] Add shortcut to delete folders with the delete key.
Sync Wine Commit 43f44ffb3779ff23c863d9b3297f92720e7e3733 by Fabian Maurer
* Disable the code for file deletion. The Wine way doesn't work on ROS. Add an explaining comment why we can't use the Wine code, as requested by Amine
Replace the call to PNP_DeviceInstanceAction(PNP_DEVINST_DISABLE) by a call to PNP_DisableDevInst() because PNP_DeviceInstanceAction(PNP_DEVINST_DISABLE) is a no-op.
A non optimized mesh does not prevent rendering as long as we return valid data to the application.
In our case we provided an identity remapping array when no vertices reordering is done.
Avencast demo works perfectly well (using native effects functions).
wine-staging patch by Christian Costa <titan.costa@gmail.com>
This patch fixes vertex processing issue of bug 33770.
The problem comes from the fact that even if the call succeeds,
the game interprets a non null error_messages pointer as an error.
By calling D3DCompile we use a newer version of the compiler which is more
strict and generates the following warning.
- warning X3206: 'dot': implicit truncation of vector type
- warning X3206: implicit truncation of vector type
- warning X3206: 'mul': implicit truncation of vector type
D3DCompileShader does not generate such warnings.
These is confirmed in the DX SDK release note:
New Warning X3206: Implicit Truncation of Vector Type
Beginning in the August 2009 release of the DirectX SDK, the compiler will warn
when an implicit truncation of a vector type occurs.
The warnings cannot be disable so this patch filters out these strings in D3DCompileShader
and reset the error messages pointer if the resulting buffer is empty.
Try 2:
- only filter out lines containing "X3206:" in case d3dcompiler_43 has localization
Try 3:
- use move in place instead of copying the buffer
Try 4:
- filter simplification by Sebastian and remove 'mul' testing left-out in search string
wine-staging patch by Christian Costa <titan.costa@gmail.com>
Fix remaining text issues in Air Strike.
Should fix text placement in Stronghold Kingdoms.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
Changes by Sebastian Lackner <sebastian@fds-team.de>:
* Use pitch value for locked buffer instead of assuming that pitch = width * bytesperpixel
* Avoid one for loop to simplify code
* Ensure that DrawText doesn't dereference a NULL pointer when count != 0.
Changes by Christian Costa <titan.costa@gmail.com>
* Use dedicated variables for text width & height instead of reusing rect.right and rect.bottom
* Remove useless test in pixel conversion
* Remove left over 'partial stub' in fixme
Changes by Sebastian Lackner <sebastian@fds-team.de>:
* Replace code to convert text from ascii to widechar
* Strip terminating NULL chars before drawing text
wine-staging patch by Christian Costa <titan.costa@gmail.com>
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id f72204abd6037e59ba1bf500a3a9d0316e65a024 by Paul Gofman <gofmanp@gmail.com>
The issue is spotted in https://bugs.winehq.org/show_bug.cgi?id=46553,
while fixing it alone is reported not to affect the bug.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id b3e91c3408797da72fdd5066e983d8861d9271ea by Paul Gofman <gofmanp@gmail.com>
A non optimized mesh does not prevent rendering as long as we return valid data to the application.
In our case we provided an identity remapping array when no vertices reordering is done.
Avencast demo works perfectly well (using native effects functions).
wine-staging patch by Christian Costa <titan.costa@gmail.com>
This patch fixes vertex processing issue of bug 33770.
The problem comes from the fact that even if the call succeeds,
the game interprets a non null error_messages pointer as an error.
By calling D3DCompile we use a newer version of the compiler which is more
strict and generates the following warning.
- warning X3206: 'dot': implicit truncation of vector type
- warning X3206: implicit truncation of vector type
- warning X3206: 'mul': implicit truncation of vector type
D3DCompileShader does not generate such warnings.
These is confirmed in the DX SDK release note:
New Warning X3206: Implicit Truncation of Vector Type
Beginning in the August 2009 release of the DirectX SDK, the compiler will warn
when an implicit truncation of a vector type occurs.
The warnings cannot be disable so this patch filters out these strings in D3DCompileShader
and reset the error messages pointer if the resulting buffer is empty.
Try 2:
- only filter out lines containing "X3206:" in case d3dcompiler_43 has localization
Try 3:
- use move in place instead of copying the buffer
Try 4:
- filter simplification by Sebastian and remove 'mul' testing left-out in search string
wine-staging patch by Christian Costa <titan.costa@gmail.com>
Fix remaining text issues in Air Strike.
Should fix text placement in Stronghold Kingdoms.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
Changes by Sebastian Lackner <sebastian@fds-team.de>:
* Use pitch value for locked buffer instead of assuming that pitch = width * bytesperpixel
* Avoid one for loop to simplify code
* Ensure that DrawText doesn't dereference a NULL pointer when count != 0.
Changes by Christian Costa <titan.costa@gmail.com>
* Use dedicated variables for text width & height instead of reusing rect.right and rect.bottom
* Remove useless test in pixel conversion
* Remove left over 'partial stub' in fixme
Changes by Sebastian Lackner <sebastian@fds-team.de>:
* Replace code to convert text from ascii to widechar
* Strip terminating NULL chars before drawing text
wine-staging patch by Christian Costa <titan.costa@gmail.com>