Follow-up to #5610.
- Add _EnsureWriteBag, _PruneMRUTree, _GetMRUSize and
_GetMRUSlots helper functions.
- Add code into _GetMRUSlot, _FindNearestInheritBag, and Write.
- Add CLSID_MruPidlList and IID_IMruPidlList definitions into
<shlguid_undoc.h>.
- Add IMruPidlList interface into <shlobj_undoc.h>.
CORE-9283
- Don't forget to release RTL_RELATIVE_NAME_U before return
- Ignore lpSearchFilter correctly as on Windows
Fixes 6 failures in kernel32:FindFiles test in LiveCD.
Previously it was in cpprt, which is a support library for C++, containing functions that are not exported by msvcrt. But since Vista __CxxFrameHandler3 is exported by msvcrt. Therefore move it to crt, and to satisfy pre-Vista configurations, also add it to msvcrtex.
Follow-up to #5590.
- Add CViewStatePropertyBag class.
- Add SHGetViewStatePropertyBag definition.
- Add FreeViewStatePropertyBagCache function and
use it in DllMain to free the cache.
CORE-9283
Currently ReactOS' winsock2 implementation lacks of non-blocking sockets support for recv() apicall, this causes that applications that make use of this feature can lead to unexpected behaviors, one of them is Nginx web server, which uses non-blocking sockets when serving pages through Https protocol.
CORE-14486
It also brings us significantly closer in master head to running Firefox 52, Mypal 29.3.0 and New Moon 28 browser, where the latter allows to connect to mattermost from within ReactOS.
In master head an additional reg file is needed to stop us from exporting specific NT6+ APIs, but in older releases all that should work out of the box with this brilliant patch.
Co-authored-by: Julio Carchi Ruiz <julcar@informaticos.com>
Co-authored-by: Stanislav Motylkov <x86corez@gmail.com>
This works similarly to how our shell stores its settings from a software design standpoint.
- Add settings.cpp file and ShellSettings structure to load and save settings.
- Add a registry value to hivedef.inf for the locked toolbar state.
This prevents a bug where the associated registry key cannot be opened or saved to.
- Add new BWM_SETTINGCHANGE window message to refresh the UI on setting changes
and send it to every open window when saving settings to the registry.
- Add new BWM_GETSETTINGSPTR window message to share the shellbrowser settings
structure pointer with child windows and toolbars.
When creating a new process the monster function CreateProcessInternalW calls BaseInitializeContext to set up the context for the initial thread. One of the parameters is the PEB pointer. Instead of passing the pointer to the newly created process' PEB, the function was passing it's own PEB address, leading to test failures. How this is not an issue otherwise is a mystery to be resolved by someone else.
Also remove ros_skip_flaky marks in kernel32_winetest:process (yes, flaky, because sometimes the PEB addresses actually match)
Create kernel32_vista_static library and link both kernel32_vista and kernel32 to it.
Export some vista functions from kernel32.
Export BaseProcessInitPostImport for Vista+, too, because ntdll needs to dynamically link to it.
Make sure RtlRemovePrivileges gets compiled, when DLL_EXPORT_VERSION is 0x600+
Enable all existing functions from rtl_vista.
Hack CsrNewThread export to exist on later versions, too
The infoPtr->marqueeRect structure is not currently initialized before the
marquee highlight sequence starts, resulting in the RECT having initial
coordinates of (0,0)-(0,0). These coordinates cause the first item in
the listview control to be identified as being within the range of the
marqueeRect's coordinates.
That item is then set to LVIS_SELECTED even though it is not part of the
marquee selection.
Wine commit: daf95aaadf3a59f0ccc129a853327417b5e4f07c
author: Hugh McMaster <hugh.mcmaster@outlook.com>
Mon, 26 Apr 2021 10:59:51 +0000 (20:59 +1000)
Follow-up to #5531. These two functions are necessary for INI file property bag support.
- Implement SHGetIniStringW and SHSetIniStringW.
- Strengthen SHPropertyBag testcase of shlwapi_apitest.
CORE-9283
- If the source and destination of copying file are on the same directory,
then enable FOF_RENAMEONCOLLISION flag. End if.
- Don't show error message IDS_COPYERRORSUBFOLDER or
IDS_MOVEERRORSUBFOLDER if the source and the destination are the same.
CORE-18599
Follow-up to #5511.
- Add CRegPropertyBag class.
- Implement SHCreatePropertyBagOnRegKey function by using CRegPropertyBag.
- Strengthen SHPropertyBag testcase in shlwapi_apitest.
CORE-9283
- Implement SheRemoveQuotesA and SheRemoveQuotesW functions.
- Add She testcase into shell32_apitest.
- Add SheRemoveQuotesA/W into <undocshell.h>.
CORE-9277
The previous version resolved the path of the parent then did logic
assuming simple pidls. This now resolves each source directly.
This change addresses a longstanding TODO in copying and moving to shell folders.
It's a simple change, but it removes a bit of code and makes things simpler.
Corresponding Wine PR: https://gitlab.winehq.org/wine/wine/-/merge_requests/3360
SHLimitInputCombo function sets limits on valid characters for a combobox control.
This function works like SHLimitInputEdit, but the target is a combobox instead of a textbox.
CORE-9277
- _WIN32_WINNT had wrong value to do workaround on Vista+ RegGetValueW.
- Do #undef and #define _WIN32_WINNT _WIN32_WINNT_VISTA in assoc.c.
- Delete _WIN32_WINNT hack in CMakeLists.txt.
CORE-9283
- Implement SHPropertyBag_ReadBSTR, SHPropertyBag_ReadStr, SHPropertyBag_ReadPOINTL,
SHPropertyBag_ReadPOINTS, and SHPropertyBag_ReadRECTL functions.
- Add link to oleaut32 in shlwapi_apitest.
CORE-9283
Add a string pointer local variable, assign it and operate on it.
This should eliminate an exception and make LsapIsLocalComputer()
function operate correctly.
CORE-18996
- Add VariantChangeTypeForRead helper function.
- Implement SHPropertyBag_ReadType, SHPropertyBag_ReadBOOL, SHPropertyBag_ReadBOOLOld, SHPropertyBag_ReadSHORT,
SHPropertyBag_ReadLONG, and SHPropertyBag_ReadDWORD functions.
- SHPropertyBag_ReadInt is an alias to SHPropertyBag_ReadLONG.
CORE-9283
- Implement SHPropertyBag_Delete, SHPropertyBag_WritePOINTL, SHPropertyBag_WritePOINTS, and SHPropertyBag_WriteRECTL functions.
- SHPropertyBag_WriteInt is an alias to SHPropertyBag_WriteLONG.
- Modify shlwapi.spec.
- Modify shlwapi_undoc.h.
- Add SHPropertyBag testcase to shlwapi_apitest.exe.
CORE-9283
- Set `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CabinetState\FullPath` to 0 by default.
Adding this registry value also enables the "Display the full path in the title bar" option in our folder options window.
- Query the same registry key when the file explorer is started to determine whether to use the full path or the display name in the window title.
CORE-19046 CORE-18904
- Add Internet icon on Desktop. You can hide/show
the icon from Desktop's customization.
- Modify "HKCR\CLSID\%CLSID_Internet%" registry key.
- Add IDS_INTERNET and IDS_INTERNET_DESCRITION into ieframe.dll.
- Modify folders/CDesktopFolder.cpp and folders/CRegFolder.cpp to add the icon.
CORE-18625
Co-authored-by: Stanislav Motylkov <x86corez@gmail.com>
Co-authored-by: Joachim Henze <joachim.henze@reactos.org>
This fixes 'Attempt to free an invalid HEAP address' error. CORE-18841
Confirmed by running new tests written by Mark Jansen, showing that
previous behavior was wrong. While here, also fix a typographical error.
New ReactOS can zip/unzip files and folders in UTF-8 filenames.
You can also choose the codepage of filenames to zip/unzip via
the ZipCodePage / UnZipCodePage registry values on the registry
key HKEY_CURRENT_USER\Software\ReactOS.
Windows 8 or later also support UTF-8 zipped folders.
You can also use 3rd party software to zip/unzip in older Windows.
- Use <atlconv.h> for string conversion.
- Use zipOpenNewFileInZip4_64 instead of zipOpenNewFileInZip3_64,
and then add MINIZIP_UTF8_FLAG flag.
- Set the filenames in UTF-8 by using CP_UTF8 codepage.
- Codepage is user selectable via registry settings.
CORE-16668
- Add _ILGetDriveType helper function.
- Use _ILGetDrive and GetDriveType functions to determine the drive type.
- If it was a CD-ROM drive, then remove SFGAO_CANRENAME flag.
CORE-18272
- Extend some Ansi strings to Wide strings.
- Check the UTF-8 flag (1 << 11). If UTF-8, then use CP_UTF8.
- s/LPCWSTR/PCWSTR/.
- s/LPWSTR/PWSTR/.
CORE-16668
- Use proper window styles when creating status bar window.
- Specify WS_VISIBLE style only when status bar display is enabled.
- Use ::CreateWindowExW() with a global namespace scope operator.
- Fix some magic constants.
CORE-19027
All ordinals > 128 regressed by
0.4.15-dev-305-g dd7fb63cd1
and were off-by-one compared to 2k3sp2 and the ros-before-state.
Now all 684 ordinals seem to be fine again.
Adding the stub might cost a few bytes unfortunately.
We do use the birth year 1996 instead of 1998
within our msgina pictures already,
and also within the [SDK] for autogenerated file-info.
Since SHELL32 IDD_ABOUT is used by many applications it makes sense to harmonize with that.
CORE-14015, CORE-6942
This makes Windows 2003 CMD.EXE to start batch files again.
Addendum to commit 17d42ae2a (r58868).
Replaces PR #3084 by freely importing and adapting Wine patch
17110a0a89
```
advapi32: Improve the SaferComputeTokenFromLevel stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47274
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
```
Only done in our own code, not in 3rd-party or in PSDK headers
(official ones also have such typos in defines...)
(NOTE: apparent "Uknown" typo in dll/cpl/sysdm/smbios.c is on-purpose:
typo by the manufacturer.)
- Convert all modeless dialog boxes back to modal dialog boxes.
- Use WM_TIMER to detect SHIFT key press instead, as you can't
directly intercept messages on modal dialog boxes.
- Remove some unused functions.
Fixes explorer crash on shutdown cancel. CORE-17749
Actually I was working on a much bigger commit in the same context for releases/0.4.7
when I realized that related glitches do also affect master head
and also other release-branches in some areas.
- Selecting all in system32 was too slow.
- Make CDefView::UpdateStatusbar function asynchronized by using a thread.
- It makes selecting all very quick.
- Add m_hUpdateStatusbarThread to asynchronize.
CORE-18663
- FCIDM_SHVIEW_NEW resource string had some problems in localization and keyboard usability.
- Add IDS_NEWITEMFORMAT resource string ("New %s") to format the new file item string.
- Modify CNewMenu::NewItemByNonCommand for IDS_NEWITEMFORMAT.
- FCIDM_SHVIEW_NEW is provided for [New] menu item, so it should have an ampersand.
Add a comment for it and then retry the translation.
CORE-18706
In C, an inequality comparison between a signed and an unsigned integer
ends up with an unsigned comparison.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52628
Wine commit: 0de8d01b09b1cc7ca34f7ae3890b4a416ff801fe
author: Eric Pouech <eric.pouech@gmail.com>
Wed, 30 Mar 2022 12:57:44 +0000 (14:57 +0200)
committer: Alexandre Julliard <julliard@winehq.org>
Fri, 1 Apr 2022 20:59:40 +0000 (22:59 +0200)