JIRA issue: CORE-14177
JIRA issue: CORE-17482
- Add SHELL_InvokePidl helper
function.
- Call SHParseDisplayName and
SHELL_InvokePidl in a specific
condition.
Refactoring. Optimize for speed.
JIRA issue: CORE-12619
- Update file headers.
- Make some parameter type LPITEMIDLIST
LPCITEMIDLIST (Add const).
- Add OnChangeNotify method.
- Use SHCNRF_NewDelivery method for speed.
- Add some SAL annotations.
Fix font enumeration and AutoComplete on %WINDIR%\Fonts.
JIRA issue: CORE-9281
"Replace if (dwFlags ==
SHGDN_FORPARSING)" with
"if (dwFlags & SHGDN_FORPARSING)".
CORE-11569, CORE-19684
Addendum to commit 71bed0f5f8 (PR #7123).
The problem in uxtheme was introduced in commit 685084b63c (as part
of a fix for CORE-17203), because it was a copy-paste and adaptation
of the corresponding code in `ntuser/nonclient.c!NC_DoButton()`.
The bugs in `win32ss/user/ntuser/defwnd.c` (and `nonclient.c` as fixed by
the previous commit) were in turn introduced from the migration of menu
and related code from user32 to win32k, see commit 6dfa71c487 (r68904).
Unexpectedly remaining
AutoComplete list is annoying.
JIRA issue: CORE-19685
- Add CAutoComplete::
m_bEditHasFocus to watch
focus.
- Update m_bEditHasFocus on
WM_SETFOCUS and
WM_KILLFOCUS messages on
Edit window procedure.
- Don't open AutoComplete list
when m_bEditHasFocus was
FALSE.
The auto-complete window and
the IME candidate window were
conflicting each other.
JIRA issue: CORE-19268
Call HideDropDown method
when processing
IMN_OPENCANDIDATE message.
* [WINESYNC] ntdll: Add support for parsing application settings in manifests.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id fc14442970dc6b97032c3cdd76cab33d774dc1a2 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Implement RtlQueryActivationContextApplicationSettings.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 14b9a5af0b44d7e2ca5232ad810c77e561d5d30c by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Propagate the error through the XML buffer in manifest parser.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 7b871727e5cbb8581167acbaae2f4e34dc4ee59e by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Check the namespace in RtlQueryActivationContextApplicationSettings.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id e46259fb823f55aa331381fe56916d20049d52f2 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 10f23ddb58b0583c8bce99e59d879c653b389363 by Michael Stefaniuc <mstefani@winehq.org>
* [WINESYNC] ntdll/actctx: Don't stop looking for manifest if dll without manifest is found.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 56b3304a019486b52681a05d4b5454b475275e51 by Fabian Maurer <dark.shadow4@web.de>
* [WINESYNC] ntdll: Use the current platform as processorArchitecture instead of a wildcard.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 6abf99b4803003812d4fcf7bf9effc99030cbec9 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use strncmpiW instead of memicmpW for strings without embedded nulls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 6fc259a57dafab9e72af13980c021e2a59257935 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Avoid dead initialization (scan-build).
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 6ea282c7e1abd7ab09a5f0a18a437e63f909da96 by Alex Henrie <alexhenrie24@gmail.com>
* [NDK] Add RtlUTF8ToUnicodeN for user mode
* [WINESYNC] ntdll: Use the Rtl UTF8 conversion functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id f46fa9c92d08c6e656bc22b94e09aa9dbe7d3be9 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use module path as assembly path for manifests embedded in resources.
Fixes Office 2016 installer, which removes its .exe directory from load
path, but expects to be able to load files listed in manifest.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 2d764e90dd2c624f7a2d863ab29bd418ed33d252 by Jacek Caban <jacek@codeweavers.com>
* [WINESYNC] ntdll: Store the default process activation context into the PEB.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id e95d0813fdfcfcac2bb1761e62e1d54e6f73cd6d by Gabriel Ivăncescu <gabrielopcode@gmail.com>
* [WINESYNC] ntdll: Use wcsicmp() instead of strcmpiW() where possible.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 3e049b6b962b8e6f048101b9910c09d5b1d8f167 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use wcsnicmp() instead of strncmpiW() where possible.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id f831b3bd3d6b013893be7645df3a9cd05289c415 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use RtlEqualUnicodeString() instead of strcmpiW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 4d93bafe961ed53488ff0fb4b44cb1ad085531fe by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Avoid using memchrW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 186f189107972b739311f95a4ba3833838349b32 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Avoid using atoiW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 8f3d869d784753d814a3493d01c3650f45389eda by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Avoid using sprintfW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id eb1b2e548656dc3d08cbf3c35454621491b84126 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use wcscpy() instead of strcpyW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 18411a19b4ea3a68234980c56d4c252670dfc000 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use wcscat() instead of strcatW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 80005ee016aeed42967adfe5b3042803d008c50d by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use wcschr() instead of strchrW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 6de0ab276b3b79db4331993316f529a43f67c29a by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use wcsrchr() instead of strrchrW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 285c5490a4c0ee4a92d042a3e6ab32e6bc14fb49 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use wcslen() instead of strlenW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id e003b9884edcccc417d41d30073b312648741aaa by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use wcscmp() instead of strcmpW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 4501ab0a7c80e31e602c540a446809e8ae3ebade by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use wcsncmp() instead of strncmpW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id e36b97e1d0644f90606d27f5104bb09a910540d2 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Make the windows directory a global variable.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id ca13f489e18fb1f7944e3bdcfdfc4a810bf80994 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Use single field for misc flags in ComClass redirection section.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 72d055854b59db9059a3465f1e65247c0cc5e94e by Nikolay Sivov <nsivov@codeweavers.com>
* [WINESYNC] ntdll: Create class section for proxy-stub interface entries.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id dd9295b415345f2b686b65bd05fae0320cf6dc39 by Nikolay Sivov <nsivov@codeweavers.com>
* [WINESYNC] ntdll: Use the standard C library names for the printf functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 4478ba258e45559ac97353ab27951e84dd9865c1 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Implement RtlActivateActivationContextEx().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id c71da19d24a5d6f01e65b3b3691a9d7dd17a2278 by Alexandre Julliard <julliard@winehq.org>
* [WINESYNC] ntdll: Fix a memory leak (Valgrind).
Signed-off-by: Chao Long <longchao@uniontech.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id d0946955ec21e4da57aaec92459f81f131b27a49 by Chao Long <longchao@uniontech.com>
* [WINESYNC] rtl is now in sync with wine-staging wine-5.18
---------
Co-authored-by: winesync <ros-dev@reactos.org>
Co-authored-by: winesync <rosdev@reactos.org>
- When the address-bar asks for FORADDRESSBAR, that should prioritized over FORPARSING.
- DefView should not enter special status-bar mode when viewing the Desktop as a shell folder in the normal IShellBrowser (DefView in Progman/desktop continues to use the old mode).
The drive property sheet was modal,
so it used to lock the main thread.
This PR will unlock by using another
thread.
JIRA issue: CORE-4217
JIRA issue: CORE-11547
In dll/win32/shell32/dialogs/drive.cpp:
- Add DRIVE_PROP_DATA structure.
- Call SHCreateThread function in
SH_ShowDriveProperties function.
- Clean up the data when they should
be released.
The ampersand (&) a.k.a. prefix of
DrawText are specially treated for
adding underscores.
We have to fix drawing on toolbar
button with BTNS_NOPREFIX style.
JIRA issue: CORE-11619
- Delete DT flags hack in taskswnd.cpp.
- Add TOOLBAR_GetButtonDTFlags
helper function.
- Extend TOOLBAR_DrawString
parameters for the button info.
- Fix DrawText flags for drawing
when the button has
BTNS_NOPREFIX style.
These settings are cached per-process (and invalidated by the global counter). This should reduce the number of registry reads performed by DefView and CFSFolder.
Reduce log spams that @julenuri reported.
JIRA issue: CORE-19268
- Use Imm32IsCrossThreadAccess
instead of IS_CROSS_THREAD_HIMC in
ImmSetCompositionWindow function.
- Reduce ERR logging in
NtUserQueryInputContext function.
Fix file association UX.
JIRA issue: CORE-19670
- Check the return value of
shell32!SHOpenWithDialog function.
- If changed, then update the UI display
and internal data.
- Use OAIF_FORCE_REGISTRATION flag.
Fix wrong MAKEINTRESOURCEW() macro usage cases in LoadCursorW() system-wide.
MSDN documentation for this function states we need to use MAKEINTRESOURCEW() macro only for internal application-defined cursors (loaded from the app instance specified by hInstance parameter), but not for system-defined cursors (those begin with IDC_* prefix), in case when hInstance is NULL.
So get rid from MAKEINTRESOURCEW() macro usage for all cases when hInstance parameter is NULL. And on the contrary, when hInstance is valid and points to the application instance, then use it for the resource identifier.
- Sync translations of the same menu items in MENU_002 and MENU_003.
- Add missing accelerators.
- Also fix colliding accelerators/mnemonic keys where possible.
CORE-19243
- IShellExtInit cannot rely on a folder PIDL being present
- Use common QueryContextMenu function for both menu items
- Allow copy to the same folder
- Disable toolbar buttons when the selection is not valid
- Minor DefView cache enhancement and bugfixes
Save/Restore the state of the ShellBrowser toolbar/addressbar/statusbar.
Windows shares the state of the Go button and the locked state between Explorer and Internet Explorer but the bar states are not shared.
Notes:
- Seems to fix CORE-17236.
- The stream layout does not match Windows so it uses a different name. The toolbar customize dialog needs to be fixed before it makes sense trying to save the toolbar state and the layout of other bands.
CORE-17236
There were encoding problems due to non-
Unicode functions.
JIRA issue: CORE-19653
- Adapt _ILGetDrive, _ILGetExtension,
_ILGetFileAttributes, _ILGetFileDate,
_ILGetFileSize, and _ILGetFileType
functions to Unicode.
- Adapt SHELL_IsShortcut and
SHGetFileInfoW functions to Unicode.
- Delete useless _ILSimpleGetText
function.
Move SRW and condition variable definitions out of kernel32_vista and into the NDK.
Essentially grabbed from PR #1190
Trying to reduce diff needed for Rtl/ntdll sync.
I have edited some traslation files for the italian language, as the text
looked robotic in the way senteces were written, or in some cases it used
not-really-fitting synonymous or incorrect spelling. The edited strings
are from varius areas of ReactOS. I hope this contribution makes italian
language less strange to native speakers.
- [ACCESS] Improve Italian (it-IT) translation
- [DESK] Improve Italian (it-IT) translation
- [JOY] Improve Italian (it-IT) translation
- [MAIN] Improve Italian (it-IT) translation
- [SYSDM] Improve Italian (it-IT) translation
- [TIMEDATE] Improve Italian (it-IT) translation
- [ACPPAGE] Improve Italian (it-IT) translation
- [DESKADP] Improve Italian (it-IT) translation
- [DEVCPUX] Add Italian (it-IT) translation
- [FONTEXT] Improve Italian (it-IT) translation
- [ZIPFLDR] Improve Italian (it-IT) translation
- [BROWSEUI] Improve Italian (it-IT) translation
- [USER32] Improve Italian (it-IT) translation
- [CONSRV] Improve Italian (it-IT) translation
- [USERSRV] Improve Italian (it-IT) translation
Reviewed-by: Joachim Henze <joachim.henze@reactos.org>
Reviewed-by: Simone Mario Lombardo <me@simonelombardo.com>
and sync SAL2 annotations.
It didn't always warn in the past, our gutfeeling (we have *not* double-checked that thesis!) is that the warnings might have been triggered when 0.4.15-dev-958-g 237aa3a9c1 was committed
Implement volume level changing for Aux/MidiOut/WaveOut devices. It's represented the following WINMM functions:
- auxGetVolume,
- auxSetVolume,
- midiOutGetVolume,
- midiOutSetVolume,
- waveOutGetVolume,
- waveOutSetVolume,
which are calling the followind messages appropriately:
- AUXDM_GETVOLUME,
- AUXDM_SETVOLUME,
- MODM_GETVOLUME,
- MODM_SETVOLUME,
- WODM_GETVOLUME,
- WODM_SETVOLUME.
This fixes volume control for several 3rd-party programs (like Fox Audio Player 0.10.2 from Rapps, Winamp 2.95 with WaveOut plugin). However it does not fix changing the volume in system volume mixers (SndVol32, MMSys), since they are using their own functionality instead. They technically do the same things, but apart from the functions mentioned above.
CORE-14780
Refresh the items in the tree-view
control of SHBrowseForFolderA/W
functions against change notifications.
JIRA issue: CORE-17340
- Add BrFolder_IsTreeItemInEnum and
BrFolder_TreeItemHasThisChild helper
functions.
- Add BrFolder_Refresh,
BrFolder_RefreshRecurse, and
BrFolder_UpdateItem functions to
refresh items.
- Call BrFolder_Refresh in
BrFolder_OnChangeEx function and on
keyboard F5 and Ctrl+R actions.
We set "LoadIMM" to zero in order to disable Cicero.
The name of "LoadIMM" is a brain-dead name. This name
means Cicero despite of its name (brain-dead).
They use a human-confusing name intentionally.
JIRA issue: CORE-19320
- Set HKLM\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\IMM:LoadIMM to 0.
- Add warning comments to the brain-dead name "LoadIMM".
There was a mistake of parameter value for NtUserGetThreadState
call in Imm32InquireIme function. This affected the logon process.
JIRA issue: CORE-19320
- Replace THREADSTATE_ISWINLOGON2 with THREADSTATE_ISWINLOGON in
NtUserGetThreadState call in Imm32InquireIme function.
- Rename THREADSTATE_ISWINLOGON2 as THREADSTATE_UNKNOWN_0x10.
- Adapt NtUserGetThreadState to this change.
Follow-up to #6916. My Documents change notification was not working
due to this bug.
JIRA issue: CORE-19615
- Use _ILIsSpecialFolder for checking PIDLs.
- Simplify ILIsParentOrSpecialParent helper function.
- Add SFVM_FSNOTIFY, SFVM_QUERYFSNOTIFY, and SFVM_GETNOTIFY
callback calls.
This refactor decouples the previous assumption that the ListView column index is the same thing as the IShellFolder column index. By doing this, support for turning columns on or off becomes possible. The SHCOLSTATE_ONBYDEFAULT and SHCOLSTATE_HIDDEN flags are also respected.
I also fixes the "Arrange icons by" submenu.
CORE-18526
Refactoring. Simplify item insertion code.
JIRA issue: CORE-17340
- Remove pEnumIL member from BrItemData structure.
- Add BrFolder_GetChildrenEnum helper function.
- Remove IEnumIDList* argument from BrFolder_InsertItem and
BrFolder_Expand functions.
- Add BrFolder_OnOK function and use it.
Implementing missing folder view callbacks...
JIRA issue: CORE-19616
- Call SFVM_CANSELECTALL callback on FCIDM_SHVIEW_SELECTALL.
- If it returned S_FALSE, then do not select all.
Implementing missing folder view callbacks...
JIRA issue: CORE-19616
- Call _DoFolderViewCB on LVN_COLUMNCLICK.
- If it returned S_OK, then don't sort items.
Implementing missing folder view callbacks...
JIRA issue: CORE-19616
- In CDefView::InvokeContextMenuCommand,
call SFVM_GETCOMMANDDIR callback and
store the directory into
CMINVOKECOMMANDINFOEX structure.
New delivery method is better than old method
in performance. Now deletion notification
partially works.
JIRA issue: CORE-17340
- Specify (SHCNRF_ShellLevel |
SHCNRF_NewDelivery).
- Rewrite BrFolder_OnChange function and
add BrFolder_OnChangeEx helper function.
By correctly ordering the items of the dialog, the dialog can use auto focus.
JIRA issue: N/A
- Change the ordering of IDD_BROWSE_FOR_FOLDER dialog items.
- Remove SetFocus call.
Follow-up of #6909 (af03438). Fix assertions and exceptions of
CComPtr and CComHeapPtr.
JIRA issue: CORE-17340
- Don't use AddRef, Release, and Attach methods against CComPtr
template class. Simply use assignment.
- Fix the 3rd parameter of three IShellFolder::GetAttributesOf
method calls. It had referenced CHeapPtr::operator&.
Switching themes during initial setup broke at some point relatively recently - following said regression, selecting a theme simply has no effect at all. This fixes that.
Follow-up to #6898. These PIDLs shouldn't be
freed because they are not allocated by
CoTaskMemAlloc.
We should use PIDLs mainly in internal data
instead of physical paths for change
notifications.
JIRA issue: CORE-13950
JIRA issue: CORE-19612
- Re-implement SHGetRealIDL function.
- Translate child IDLs by using SHGetRealIDL.
- Use newly-defined pidl0Temp and pidl1Temp
for temporary creation.
- Improve ILIsParentOrSpecialParent function
without using SHGetPathFromIDListW function.
This export function is needed to implement
shell32!SHGetRealIDL function correctly.
JIRA issue: CORE-19278
- Implement IShellFolder_GetDisplayNameOf
function (This function is not inline function in
this case) with retry data.
- Add SFGDNO_RETRYALWAYS flag to
<shlwapi_undoc.h>.
- Add IShellFolderHelpers testcase.
Kill the zombie watchers for system
performance.
JIRA issue: CORE-13950
- Add HWND parameter to
CDirectoryWatcher::Create.
- Check whether the HWND is alive at
CDirectoryWatcher::IsDead.
- fixes the last text truncations we had in IDD_FOLDER_OPTIONS_GENERAL
- small tweaks otherwhere
- add some FIXMEs
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
IContextMenu (CDefaultContextMenu) only knows how to rename when its site is an IShellView. The tree must detect the rename operation and perform it in the TreeView instead.
Fixed a bug in the ListView that is triggered by activating DefView (to complete the rename): Just after DefView has been activated, the tree performs a navigation to the newly renamed folder, this causes DefView to be destroyed and in turn the ListView. The ListView tries to handle a selection change during destruction of the ListView and ends up accessing an invalid pointer.
CORE-19557
Addendum to #6517 (the rules) and
Addendum to #6657 (Andreis recent shell32 PR)
Following the rule:
1.) We use only the correct Romanian language diacritics.
This means using lowercase ţ instead of ț.
This means using lowercase ş instead of ș.
This means using uppercase Ş instead of Ș.
Some of XP/2k3sp2 fonts do lack ț and ș and Ș.
2.) Avoid the word "calculator" for the shutdown/logoff prompt (same as Andrei Miloiu did before in his PR at many locations).
Using "sistem" is fine, and using "computer" is fine.
3.) Harmonize some strings used for some FILEOPENDLG_FILTER.
TODO:
[] In a future PR we will have to do the same character replacements for the Shell folder path default values. This has to be done in sync with dll/win32/userenv/lang therefore I left them out here for now, for easier reviewability of those more delicate parts.
Generic HANDLE type is vague and unreadable.
Declare a special handle type for recycle bin
items.
JIRA issue: CORE-19595
- Declare the HDELFILE handle by
DECLARE_HANDLE(HDELFILE);.
- Use HDELFILE instead of HANDLE for
deleted items.
Implementing missing features...
JIRA issue: CORE-19278
- Implement IShellFolder_GetDisplayNameOf,
IShellFolder_ParseDisplayName, and
IShellFolder_CompareIDs functions.
- Add them to <shlwapi_undoc.h>.
- Modify shlwapi.spec.
- Add some SHCIDS_... macros into shobjidl.idl.
- Provide a macro option
SHLWAPI_ISHELLFOLDER_HELPERS to
avoid conflict with <shobjidl.h>
IShellFolder_... inline functions. Ugly hack
but effective!
dll/win32/shell32/wine/brsfolder.c.
This file is too hard to read. Nobody reads.
And WineHQ doesn't show no progress
recently in this file. OUT OF DATE!
JIRA issue: CORE-17340
- Rewrite some SendMessageW code by
using TreeView_... macros.
- Add BrsFolder_GetDataFromItem helper
function and use it.
Follow-up to #6871. Reduce indentation level.
JIRA issue: CORE-17482
In ShellExecuteExW, early check the structure
size and return on failure before
SHCoInitializeAnyApartment call.
Updating the statusbar on every LVN_ITEMCHANGED causes a massive delay when the number of changed items is large, very noticeable on Ctrl+A.
CORE-18663
Support GetControlWindow, ShowControlWindow and IsControlWindowShown for TREE and STATUS in the Shell Browser so DefView can set CMF_EXPLORE correctly.
Implement GetWavePosition API for both Legacy and MMixer modes.
[WDMAUD.DRV]
- Fix wrong I/O control code passed to DeviceIoControl for Legacy mode. Use IOCTL_GETPOS instead of IOCTL_OPEN_WDMAUD, to use the correct routine.
- Implement WdmAudGetWavePosition for MMixer mode, as it was completely unimplemented there. Call an appropiate MMixer routine and return back resulting wave position.
[WDMAUD]
- Implement WdmAudGetPostion routine, which is used by Legacy mode, and call the same MMixer routine from it too.
- Handle it in IOCTL_GETPOS I/O control request of dispatch routine.
[MMIXER]
- Implement MMixerGetWavePosition internal routine, which is called by both Legacy and MMixer modes, and does the actual work of retrieving playback position.
- Call an apporpriate KSPROPERTY_AUDIO_POSITION property from it, and return in the output resulting KSAUDIO_POSITION.PlayOffset member, which contains the current playback position offset, to be returned to the caller.
This fixes a failure retreiving the current audio playback position snd subsequent playing the audio data by several 3rd-party applications which are using this API (for example, some Gecko based browsers by @roytam1: Basilisk (Serpent) 52.9.0 IA-32 build, NewMoon 28.10.7 IA-32 build and KMeleon 76.5.3 Goanna engine).
CORE-19542
Remove WS_GROUP from: IDC_TCP_RESTRICT, IDC_UDP_RESTRICT and IDC_IP_RESTRICT
fixes CORE-19569
Thanks to Maj Soklič for the PR, based on the investigations of Krosuser.
Fix usage of left/right arrow keys in file deletion dialog
JIRA issue: CORE-19564
Remove WS_GROUP from all but the 1st button
"Inshallah brother we will fix this bug"
setlocale is coded to just return 'C' for all inquiries ignoring locale
that may be set in the environment.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 9dc5d299f11c599862d39af3e32d92e787c1ae7b by Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 0b95ebd283986fa179c7ec6d2ea3f34c977c3aaf by Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 7737693693ca46a88c41cfeab95d2b65423d8e51 by Andrew Eikum <aeikum@codeweavers.com>
Implementation and tests are based on GetSystemPreferredUILanguages.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 26d0105cd8a8ce1131033f1871de0dd9a7b4c43c by Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 505406fc83b65dd1f9ebcbaabb582f0fabec1b0a by Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
wine commit id 60226ee37de52b470b98efa13f9a5e065cedc77b by Alex Henrie <alexhenrie24@gmail.com>
When IShellFolder::ParseDisplayName is asked to parse multiple path elements, the IFileSystemBindData (if any) only applies to the last item. The other elements are always folders.
The caller of IContextMenu::QueryContextMenu must set these flags when needed, not CDefaultContextMenu.
Notes:
- CMF_CANRENAME is always set by DefView because it always supports rename in its current form. CDefaultContextMenu verifies that SFGAO_CANRENAME is also set on the items. All other callers are expected to not know how to rename unless they also set CMF_CANRENAME. This fixes the bug that the Rename item is present in the TreeView context menu even though the TreeView in ROS Explorer does not handle renaming.
- While DefView now tries to set CMF_EXPLORE correctly, the flag is never actually set because BROWSEUI does not handle FCW_TREE yet.
- This also fixes the bug where the File menu is missing the menu items when there is no selection.
This removes all fake apiset forwarders,
and handles apisets inside ntdll.
This is not 100% compatible with how windows does it, but it should be good enough for us.
Fixes COMCTL32 headers from being garbage text when resizing while drawn off screen.
- Invalidate header item rect before scrolling to prevent the divider from being redrawn over and over.
- Invalidate header item text through adding flag SW_INVALIDATE to ScrollWindowEx call to prevent the text from being redrawn over and over.
CORE-19404
This commit makes Control_RunDLLW pass all but one tests from rostests (the one test that fails is the first one, but it only fails if the path to the test program contains a space).
- Rework string parsing in the Control_DoLaunch routine
- Do not send the CPL_STARTWPARMSW message, if no extra parameters were specified (fixes the failing Got NULL lParam2! and some CPL_STARTWPARMSW: expected -1 got %d tests)
- Do not resolve invalid dialog names to index zero, unless the name is empty (fixes some of the failing CPL_DBLCLK: expected -1 got %d tests)
- Handle quotes in the second part of wszCmd
CORE-8981
* [SHELL32] Fix Desktop Folder Details View
JIRA issue: [CORE-19177|https://jira.reactos.org/browse/CORE-19177]
* Remove Comments column from Desktop Folder Details View and simplify code.
* Revise date/time sort based on reviewer comments.
* Swap size and type column positions for desktop folder details view.
With help from Whindmar, most (hopefully all) of the magic number for the columns
have been removed in all of the shell folders.
Co-authored-by: Whindmar Saksit <whindsaks@proton.me>
Co-authored-by: Carl J. Bialorucki <cbialo2@outlook.com>
Optimize for speed and memory.
JIRA issue: CORE-13950
CDirectoryList class exists just for remembering which file item is a directory or
not, in order to notify the filesystem item changes. This information can
become a tree data structure.
- Add CFSPathIterator and CFSNode helper classes.
- CFSNode is a class for tree nodes.
- Re-implement CDirectoryList class by using tree nodes.
- Delete CDirectoryItem class.
Implementing missing features...
JIRA issue: CORE-13950
- Add WM_DEVICECHANGE message handler in the shell window to detect
DBT_DEVICEARRIVAL and DBT_DEVICEREMOVECOMPLETE.
- Use GetLogicalDrives function to detect drives.
- Use SHChangeNotify to send SHCNE_DRIVEADD and
SHCNE_DRIVEREMOVED notifications.
- Modify CDefView::OnChangeNotify.
ShellExecute on a .zip file fails because the command in the registry
uses rundll32 that passes in an ANSI string, which is the default for
exported functions without a W suffix.
- This should also fix RAPPS not being able to open downloaded .zip files
- I made it use the full path to Explorer for good measure
Fixes regression introduced by 0.4.15-dev-6343-g bf2cec186c (#5411)
CORE-19506
This saves a few bytes in the binary, e.g.
comdlg32.dll master 0.4.15-dev-7887-g64a59a1 RosBEWin2.2.2 GCC8.4.0 dbg x86 shrinks
from 1.011.712 bytes to 1.009.664 bytes.
Furthermore it syncs the translations at this line, because pt-PT.rc already applied such a tweak.
Co-authored-by: Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
This prevents an issue where clicking on most of the icons on the desktop
that isn't the file explorer causes explorer to throw an exception,
and also prevents another issue where most applications won't launch from the start menu;
at least on MSVC builds running on VirtualBox 5.2.44.
^- I am pretty sure, that this was not always the case. The guilty rev is yet unknown though.
Follow-up to #6721. This PR can reduce 1KB of
binary size.
JIRA issue: CORE-19495
- Delete CStubFolderBase and derived classes.
- Add
CDesktopFolder::_ParseDisplayNameByParent
method.
- Don't use excessive IShellFolder objects in
parsing display names.
- Simplify and reduce code.
- For NT6.0+, NTDLL exports those hash APIs that ADVAPI32 thunks forward to
- Fix undocumented context structure layout and content
- Add apitests to verify both of hash result and structure content
[MMIXER] Implement hadling WAVE_FORMAT_EXTENSIBLE audio format
Fix opening audio device error when trying to open it with WAVE_FORMAT_EXTENSIBLE format tag set in wFormatTag member of WAVEFORMATEX:
- Pass additional data size from WAVEFORMATEX.cbSize to pin data format.
- Append it to the whole size of pin data format (KSDATAFORMAT.FormatSize).
- Set additional fields in WAVEFORMATEXTENSIBLE structure (data format, BPS and channel mask) when WAVE_FORMAT_EXTENSIBLE is used. They are used by our inbuilt Intel AC97 miniport driver at least. It simply fails when these members are not set.
- Fix pin connect allocation size by appending an additional data size from WAVEFORMATEX.cbSize to KSPIN_CONNECT + KSDATAFORMAT + WAVEFORMATEX. This allows to proerly initialize additional extensible data and avoids kernel memory leakage when using extensible audio format.
- Remove format tag check which allowed WAVE_FORMAT_PCM to be opened correctly. So now all possible audio formats can be opened properly at least (although it does not mean they may work correctly).
This fixes the audio playback for all apps those are supporting extensible audio data and use it by default (e. g. AIMP 5.30, QMMP 0.12.17, all Chrome/Chromium-based browsers, GameDev Tycoon Demo game etc.).
CORE-10907, CORE-14783
* [KS] Allow passing additional extensible audio data when extensible audio format is used
- Append additional data size from WAVEFORMATEX.cbSize to pin connect size passed to KsCreatePin. If the tag is WAVE_FORMAT_PCM, then this member should always be zero. So in that case, no any additional data is passed to creation request, and the passed data size is correct for PCM too (KSDATAFORMAT + WAVEFORMATEX).
This fixes audio playback in several apps those are supporting extensibble audio and use it by default (e. g. AIMP 5.30, QMMP 0.12.17, all Chrome/Chromium based browsers, GameDev Tycoon Demo game etc.).
CORE-10907, CORE-14783.
* [WDMAUD.DRV] Pass the correct additional data size to I/O control request
Store a correct size of additional data in WAVEFORMATEX.cbSize when performing open of audio device, when WAVE_FORMAT_EXTENSIBLE audio format is used.
It allows to properly open audio device with Legacy APIs enabled too.
This fixes audio playback in several apps those are using extensible audio data (e. g. AIMP 5.30, QMMP 0.12.17, all Chrome/Chromium based browsers, GameDevTycoon Demo game etc.).
CORE-10907, CORE-14783
First an foremost this fixes "the copies-icon in the print-dlg not showing" for Taiwan as well.
That part is an addendum to 0.4.15-dev-3493-g a36cc8054d (#2831)
Taiwan is untypically placed in cdlg_Zh.rc as well for comdlg, next to the traditional chinese version and therefore was forgotten.
Furthermore improve many translations a little bit, where strings could be stolen from neighbor controls. This part focuses mostly on the NEWFILEOPENV2ORD.
Then add many FIXMEs for existing accelerator collisions, many of them were introduced by adding the "Help"-button retrospectively, when other translations existed already. Let the native speakers handle them later.
Strip accelerators from some "Cancel" buttons, e.g. in cdlg_Pt.rc, and the "Save as" button, e.g. within cdlg_Es.rc as those should not exist, which most languages did properly respect already.
Also fix a few text truncations and a few accelerators, e.g. for de-DE: stc3 was cutoff, and "Öffnen" had the wrong accelerator.
This replaces the usage of FIELD_OFFSET for dynamic indexing into array fields.
Sadly GCC has broken __builtin_offsetof and they don't seem to intend to fix it.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95942
Fixes CORE-19505 'game "Hover!" from rapps does not start anymore'
It failed showing a msgbox
"There was an error allocating memory in Hover!"
the regression was introduced by
0.4.15-dev-5602-g c47506a5f4
Add missing heap initialization in DllMain entrypoints of msvcrt20.dll and msvcrt40.dll,
similarly to as it is done in msvcrt.dll (CRT).
The msvcrt.dll (CRT) initialization code was updated properly
during the last winesync, accordingly to the new changes,
but msvcrt20.dll/msvcrt40.dll one was not. So update it too.
This fixes the crash of HOVER 1.0 game from Rapps when
it tries to allocate a dynamical memory from the
unitialized heap via malloc() function exported from our msvcrt20.dll.
This fixes CORE-19497 'Regression, part of the statusbar with the sizegrip is not redrawn properly'
The regression was introduced / unhidden by 0.4.15-dev-5617-g 7866eb2886
Author of the patch: JIRA-user: I_Kill_Bugs
turned into PR by @Doug-Lyons
Thank you both!
KVM: https://reactos.org/testman/compare.php?ids=94433,94435
VBox: Builder Broken atm unfortunately
- Implement `GetFirmwareType` and improve existing API test for it
- Move (Get/Set)FirmwareEnvironmentVariableEx(A/W) to kernel32_vista_static and export them when NT version >= 6.2
Addendum to 4c8a2a8815. CORE-11954
Follow-up to #6635. The directory search without this flag didn't work.
JIRA issue: CORE-19493
- Add PRF_FIRSTDIRDEF flag for PathResolveW call.
- Delete needless macro definitions in PathQualifyExW.
- Remove an assertion in IsLFNDriveW.
- Fix shell32_apitest:FindExecutable testcase.
This is not intended to fix any specific bug. It is just meant for cleanup.
No noticable change in behavior at runtime.
Some rcs had 7 of those, some only 6. So this will also slightly improve sync between the rcs.
- This removes an ancient polish-only workaround/extrawurst of 0.4.13-dev-1171-g c81af08 which made the dialog bigger than allowed in y, and which reduced its usability on small monitor resolution.
- Sync the dialogs dimensions back to en-US and all other localizations. Notice also that both dialogs have the same height again afterwards.
- Maximizes the available space for the dynamic parts of the dialog on the right side. Historically even 160 turned out to be too short for that, e.g. EDITTEXT 14009, the dynamic part of "Lokalizacja:". and also EDITTEXT 14007, the dynamic part of "Program:". Therefore we used 170 everywhere for those widths in all other languages. But due to the polish workaround it was crippled to 155 here. Not good!
- Notice also how now the leftmost checkboxes position of the Attributes is perfectly aligned with the other dynamic content of that column above after the fix. This will be important in the future when we will restore the vertical layout of Attribute-checkboxes in both dlgs (Plik vs. checkbox, and Katalog vs. checkbox) to match 2k3sp2
---------
Co-authored-by: Adam Słaboń <asaillen@protonmail.com>
Follow-up to #6656. An approach to
implement ShellExecuteEx correctly.
JIRA issue: CORE-19493
- Rewrite code by using AssocQueryStringW
and PathResolveW functions.
same as it is already the case in IDD_MIXED_CONTENT1, just 10 lines below it.
The controls name is not referenced from code. Will save a few bytes in the binary and shortens the rc-line.
* en-US.rc: create the TODO-list for the required menu-accel-changes
* some accelerator fixes, and add many FIXMEs for stuff that still needs to be improved
* beg the translators to shorten the "On Disk:" string in IDD_FILE_PROPERTIES and IDD_FOLDER_PROPERTIES
* strip superfluous spaces at some strings end and ':' within groupboxes, MS never does that
* bg-BG.rc & fr-FR.rc: Fix text-truncation, It got worse by 0.4.15-dev-5993-g a5bff2457a (#5239) A suggestion of Stasm, personally I dislike moving/resizing controls to dimenstions != en-US
* zh-CN.rc: China is the new land of capitalism, so CAPITALIZE the S. Grab another &W used in en-US/zh-TW
* he-IL.rc: strip a useless comment which just does repeat the string 1:1
* zh-TW: This taiwanese question-mark here is wrong, because the question spans over multiple controls, and the last one already ends with such a question mark.
* pt-PT.rc: Name the attributes-column 'Atributos', as that is the same name that is used in the file-properties-dlg
* sk-SK.rc: strip a comment that does not exist in any other lang
* Fix some lines which had 2 accelerators each, e.g. de-DE.
IDD_FOLDER_OPTIONS_GENERAL has 100% correct german accelerators now (checked against german XPSP3).
* es-ES.rc: remove a stone-age-workaround, and use the height from en-US again here. The text fits the single line fine now.
* no-NO.rc: Fix a regression of 0.4.9-dev-794-g bf88116252 which added the 70 to the 3 PUSHBUTTONS for all languages, but for no-NO.rc the third button was forgotten
* pt-PT.rc: Fix 2 wrong accelerators. They have been added by a pt-PT.rc translator, but Windows doesn't have them. Windows uses ENTER and ESCAPE just here. And other translators are aware of that. The thing that actually SHOULD have an accelerator in that dialog is the LTEXT "Abrir", but ironically that one was forgotten / intentionally removed by the pt-PT.rc translator upon translation. A pity!
* pt-PT.rc: pt-PT.rc was crippled regarding accelerators, mostly during 0.4.14-dev'ing. Wisdom of the elders was trampled down here.
* pt-PT.rc: fix unintended "::"
* tr-TR.rc: During 0.4.15-dev'ing a lot of accelerators and capitalization were changed in this file, and during that the IDS_* accelerators at the bottom in that file in the
/* context menus */
section were changed, but the reminder-menu-layouts IDM_* and FCIDM_SHVIEW_* were forgotten to be kept in sync.
That is such a common pitfall. Happened to all of us more than one time already.
Sync the capitalization for that file at least. While knowing that there is still a lot of async left for other files.
* tr-TR.rc: Point with 2 FIXMEs to some accelerator-issues that only somebody with a real turkish Windows will be able to fix properly. Actually most likely at least 6 lines in this file are involved into that collision. Try to mention them within the comment at least.
IDM_COPY
IDM_CREATELINK
IDM_DELETE
and
IDS_COPY
IDS_CREATELINK
IDS_DELETE
This bug does only affect master, and no older releases in this form.
* en-US.rc: And finally add a big fat TODO comment for my future self, regarding dlg redesign where attrubutes will need to be laid out vertically in IDD_FILE_PROPERTIES and IDD_FOLDER_PROPERTIES
Implementing correct FindExecutable...
JIRA issue: CORE-19493
- If there were filename extension, then skip to the extension
by using PathFindExtensionW.
- Use "open" verb if there is no default action if possible.
- Set outlen at CQueryAssociations::ReturnString.
Fixes the reg class key order for FS items. The existing code was close,
but for some reason used `//` as the path separator for SystemFileAssociations!
- Fixed SystemFileAssociations.
- Swapped the order of `*` and `AllFilesystemObjects`. This is the documented
order and can also be observed in Process Monitor.
https://learn.microsoft.com/en-us/windows/win32/shell/fa-associationarray#about-association-arrays
- Removed `(..., L"%s//%s", extension, wszClass)`, this does not seem to be
a valid thing (`.TestAAExtWeird` in my tests).
- Adds the `Unknown` class when appropriate. Not adding the `openas` verb
to `Unknown` rgs registration now to mimic Windows, because ROS
`CDefaultContextMenu` lacks verb de-duplication and the menu would end up
with two "Open With" entries. This just uses `(cidl == 1)` to simulate
Windows, while Windows on NT6 uses `MultiSelectModel=Single`, a NT6 feature
not implemented in ROS.
- The class order for folders was wrong and is still "wrong" in this PR,
but I chose to use the Windows menu display order until the exact mechanics
required in `CDefaultContextMenu` can be understood.
- Extracts the extension from ANSI PIDLs.
- HKCR delete handling; delete the value in HKCU if it exists there, otherwise delete it in HKLM.
- Changed RegDeleteKeyValueW to just use the regular Reg functions to get HKCR handling for free.
Improve customization of Start Menu.
JIRA issue: CORE-19494
- Add SmallStartMenu flag to TW_STRUCKRECTS2
structure.
- Add IDS_ADVANCED_SMALL_START_MENU
resource string.
- Update g_TaskbarSettings.sr.SmallStartMenu via
a callback function.
- Check g_TaskbarSettings.sr.SmallStartMenu
when Start Menu is updated.
Simplify code and reduce binary size.
JIRA issue: CORE-19363
- Use shlwapi!QISearch for QueryInterface
implementation.
- Add delay link to shlwapi.
- Define QITABENT macro in <shlwapi.h>.
Add transparent 16x16 icon (just small picec of transparent background) as resource and use it for 50, 51, 52, 53 resource IDs.
Define it as IDI_SHELL_NONE_XX for all four IDs appropriately (since the icon displays nothing).
These resources are not used by anything yet, but they are confirmed to exist as resources with 50, 51, 52, 53 IDs in shell32.dll from Windows XP/Server 2003.
This allows to correct the ordering of all other resources those come starting from index 54, and hence it fixes the following icons displayed incorrectly after restoring to default system icon set via Stardock IconPackager 5.1:
- Control Panel folder icon;
- Folder Options item icon in Control Panel;
- My Music special folder in My Documents;
- several File extensions icons (.ini, .txt etc).
The icons are fixed as in the preview of IconPackager app, same in ReactOS itself.
Now only Web Browser item icon on the Desktop remains invalid. All other icons are restored correctly.
CORE-19471