This fixes icons that should be drawn transparently not showing as such until window gets repainted.
For example, hidden shell folders that are not drawn transparently until the filebrowser window is resized...
CORE-16722
- Only export stdcall annotated functions on x86
- Turn annotated stubs / forwarders into normal exports
- Note: MSVC removes decorated exports / forwarders, as soon as the undecorated version is exported, even when _declspec(dllexport) is used, no idea how to fix that.
Addendum to commit 8c4b0c914.
Base ourselves on pSetupIsUserAdmin() and other similar functions in our
codebase. Note that what we are actually interested here, is whether the
current thread runs with Administrator privileges.
(As noticed by contributor 'whindsaks', "Not only is this code simpler,
it now will correctly handle deny-only SIDs in the token!")
- Convert some notations to SAL2
- "Name" parameter in LdrGetProcedureAddress/LdrpGetProcedureAddress should be optional
- "DllCharacteristics" parameter in LdrGetDllHandle should be optional
- [EXPLORER] Set maximum balloon width for notification area
- [COMCTL32] Fix balloon tooltip shape
- Limit balloon tooltips from extending past the edges of the monitor, not the edges of the work area.
- Instead of simply repositioning the main rectangle when the balloon is too far towards one edge of the screen,
try flipping the balloon the other way. This is the same behavior as Windows Server 2003.
- Tweak some values used to draw the balloon tooltips to more closely follow the Windows balloon tooltip style.
- Removing trailing whitespace.
- While the new changes are guarded, consider cancelling our Wine sync for common controls.
Our common controls are responsible for many graphical issues and lack of features throughout ReactOS.
CORE-19109
Adds the option to set the address edit box to use the display name or the full path. Also refreshes the window title and edit box in all open explorer windows when changing these settings using the folder options dialog.
## PROPOSED CHANGES ##
- Create a new CabinetStateSettings type that inherits from the CABINETSTATE type. This allows us to add additional cabinet state settings not exposed in the CABINETSTATE type as well as adding a Load() method to easily populate the cabinet state settings.
- Add a global cabinet state settings object. While most settings in browseui are stored independently in each shellbrowser window, cabinet state settings are global and apply to every shellbrowser window. This can be confirmed on Windows Server 2003 and Windows 7.
- When receiving the WM_SETTINGCHANGE window message from the folder options dialog, refresh the title of the window and the text in the address edit box. This is the same behavior as Windows Server 2003 and Windows 7.
Add a DWORD registry value to HKCU\...\Explorer\CabinetState\FullPathAddress to allow users to toggle this setting on or off in our folder options.
CORE-9277
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.
Was done already during 0.4.15-dev for SHELL32, but we have to do it again,
since some recent translation PRs to match the en-US.rc again.
fixes CORE-18967 'Taskbar toolbar - Right click > Open folder fails'
by restoring the code-path we removed with the guilty
0.4.15-dev-3847-g /9b716539182864bc077e362febcda74da50287ed
and add test_sei_lpIDList to shell32:ShellExecuteEx apitest test to protect
that functionality on future attempts to simplify.
movaps is a 128 bit aligned move, we need a 64 bit unaligned move, so use movsd.
Fixes a crash in oleaut32_winetest tmarshal.
Also add a comment about the use of movd instead of movq.
- CDM_SETDEFEXT message handling was a
missing feature of COMDLG32.
- Make info->defext dynamic allocation.
- On CDM_SETDEFEXT handling, replace
info->defext data.
CORE-15020
- comdlg32:filedlg could encounter an assertion error in CWindow::SendMessage.
- Assert the existence of the listview control m_ListView in the CDefView::LV_... function.
- Actually check the existence of m_ListView outside the CDefView::LV_... function.
ROSTESTS-388
Follow-up to #5634.
- Implement CMruBase::_UseEmptySlot.
- Implement CMruLongList and CMruShortList.
- Add CMruClassFactory class and modify
DllGetClassObject function by using it.
- Add shdocvw_apitest.exe.
CORE-9283
- Implement CShellBrowser::GetPropertyBag
a little by using SHGetViewStatePropertyBag.
- Add SHGetPathFromIDListWrapW prototype to
<shlwapi_undoc.h>.
CORE-9283
This is prerequisite to supporting Vista+ iteration of the msstyles format,
and also for implementing GetThemeStream() later.
Visual styles compiled for Vista+ can now use PNG images in the IMAGE group.
This does not affect the ability to use BMP images, they can be mixed now.
CORE-18958
Introduce an emergency log-off and restart feature, available when holding
down the control key and selecting "Log Off" or "Shut down" in the MSGINA
Ctrl-Alt-Del security dialog, similar to Windows Server 2003 and newer
Windows versions.
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.
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.
- 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
- 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
- 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)
Note that since str is a buffer it cannot be NULL.
Based on Wine commit: 6a4347be371bea544e0d4a81f4cfacd29af18d6e
author: Francois Gouget <fgouget@free.fr>
Mon, 16 Sep 2019 14:01:04 +0000 (16:01 +0200)
committer: Alexandre Julliard <julliard@winehq.org>
Mon, 16 Sep 2019 20:58:42 +0000 (22:58 +0200)