Commit graph

912 commits

Author SHA1 Message Date
Whindmar Saksit
5797340164
[SHELL32] Fix broken delete file type verb (#7462)
CORE-19809
2024-10-18 14:42:08 +02:00
Whindmar Saksit
f271bebb71
[SHELL32] Exclude executable extensions from File Types dialog (#7452)
PathIsExeW is used and will exclude exe, com, pif, cmd, bat, scf and scr. The previous #6122 PR added support for the FTA_Exclude flag and that will exclude .lnk files.

CORE-19805
2024-10-16 14:09:33 +02:00
Joachim Henze
478a9030a5 [SHELL32] ro-RO.rc: Strip unintended empty line that we don't have in en-US
Addendum to last commit 43d07fe695
which accidentally introduced it.
2024-10-14 20:40:36 +02:00
Whindmar Saksit
43d07fe695
[SHELL32] File Types dialog: Add functionality, optimize loading time (#6122)
- Support loading protocols like XP
- Support most of the relevant EditFlags
- Support reading/writing the AlwaysShowExt and BrowserFlags properties
- Loads the list much faster with optimized code and delaying the large icon and description string
- Reduce the number of magic buffer sizes by replacing them with defines that are in the ballpark of being correct
- Implemented column sorting
- Removed custom icon extraction code
- Removed IDS_FILE_EXT_TYPE string because it must be the same as IDS_ANY_FILE
- Don't touch verb keys that are not edited to retain the original REG type
- Don't clobber unchanged %1 icon location when editing a type

CORE-19756
2024-10-14 18:03:28 +02:00
Whindmar Saksit
325d74c30f
[SHELL32] Don't display .zip files in BrowseForFolder (#7437)
.zip files have both SFGAO_STREAM and SFGAO_FOLDER attributes set (https://devblogs.microsoft.com/oldnewthing/20171101-00/?p=97325)

CORE-19751
2024-10-11 23:57:28 +02:00
Whindmar Saksit
abf3bde91b
[SHELL32] Make Recycle Bin PIDL data handling more robust (#7328) 2024-10-11 23:47:06 +02:00
Whindmar Saksit
52265ae007
[SHELL32] Implement SSF_NOCONFIRMRECYCLE recycler setting (#7434)
CORE-12309
2024-10-09 22:00:11 +02:00
Whindmar Saksit
8ff9781eae
[SHELL32] Always initialize COM for Folder Options dialog (#7433)
CORE-19784
2024-10-09 21:58:44 +02:00
Whindmar Saksit
f4cb10f596
[SHELL32] Remove view related items from File menu (#7429)
CORE-19778
2024-10-08 18:17:24 +02:00
Timo Kreuzer
0c2cdcae83 [REACTOS] Add missing line breaks at end of file 2024-10-06 10:47:11 +03:00
Hermès Bélusca-Maïto
058a67cb4a
[SHELL32] Use the correct flags with ListView's GetNextItem()
LVIS_* -> LVNI_*
2024-09-19 18:44:37 +02:00
Whindmar Saksit
d4815873fe
[SHELL32] Don't leak SetProp (#7347) 2024-09-18 21:48:58 +02:00
Hermès Bélusca-Maïto
144a8b5b84
[SHELL32][SDK] Move SHMenuIndexFromID() definition to shlwapi_undoc.h 2024-09-14 23:05:52 +02:00
Whindmar Saksit
7b081be46d
[SHELL32][MKSHELLLINK] Support EXP_SPECIAL_FOLDER datablock in shortcuts (#7158)
CORE-19692
2024-09-14 13:10:49 +02:00
Whindmar Saksit
751641c2be
[SHELL32][COMCTL32][BROWSEUI][EXPLORER] Update color usage on WM_SYSCOLORCHANGE (#7325) 2024-09-14 13:07:11 +02:00
Whindmar Saksit
bad0dd5991
[SHELL32] Store target FS attributes in .lnk header (#7302) 2024-09-12 19:28:15 +02:00
Hermès Bélusca-Maïto
0293d0c597
[SHELL32] CDefView.cpp: fix MSVC build warning C5208
"unnamed class used in typedef name cannot declare members other than
non-static data members, member enumerations, or member classes."

Suggestion by Whindmar Saksit.

Use `struct LISTVIEW_SORT_INFO` instead of the typedef, since this
is a structure defined and used only in this file, and we don't use
pointers to it (LPLISTVIEW_SORT_INFO).
2024-09-10 15:12:10 +02:00
Whindmar Saksit
bc8c7d185d
[SHELL32] Fix CRecycleBin crash caused by PR #7173 (#7330)
PR #7173 (22b913928f) fails to initialize the DELETED_FILE_RECORD struct when constructing a RecycleBin5File instance. This causes _ILCreateRecycleItem to create PIDLs without filenames and the CRecycleBin IShellFolder does not expect this to happen.

Also fixes incorrect usage of SHFileOperationW when restoring deleted files. The previous code might have worked by chance in the past if the string just happened to be double-null terminated as required by this API!
2024-09-08 22:08:15 +02:00
Hermès Bélusca-Maïto
c1e642fdb5
Revert "[SHELL32] Show Product version on About dialog bmp (#3621)" (#7327)
This reverts commit 2636cff09f
by Cătălin Gabriel Drăghiță (@jeffbox12) as well as any subsequent changes.

This was agreed upon by the original author on our official Mattermost
chat (chat.reactos.org)

The reactos.bmp banners are again generated from the file:
  dll/win32/msgina/resources/svg/reactos.svg
2024-09-08 14:55:47 +02:00
Splitwirez
3fa740aa81
[SHELL32] Revise "Desktop" icon (#7312)
Makes the "Desktop" icon look a bit more than the thing from Windows 7. Both: bottom-most right-most within the taskbar, and also used within the comdlg32 file-open-dialog.

* Update desktop icon (35) in shell32

* Fix SVGs
2024-09-08 13:10:05 +02:00
Whindmar Saksit
a509941786
[SHELL32] Pass and expand .lnk working directory (#7314) 2024-09-06 14:31:24 +02:00
Whindmar Saksit
13b9c2a6d6
[SHELL32] Lnk propertysheet must disallow editing special targets (#6993)
CORE-16505
2024-09-03 17:38:03 +02:00
Vitaly Orekhov
06024c97fe
[SDK][SHELL32] Make CLSID_NetworkConnections the default name (#7266)
- [SDK][INCLUDE] Redirect CLSID_ConnectionFolder to CLSID_NetworkConnections

CLSID_NetworkConnections is the official known name for the class behind it,
thus to avoid breaking current code I 'softlink' CLSID_ConnectionFolder
to the currently used CLSID_NetworkConnections in shlguid_undoc.h.

- [SHELL32] Refer to CLSID_NetworkConnections from PSDK
2024-09-01 11:40:24 +03:00
Whindmar Saksit
6ae11ba09d
[SHELL32] Don't display non-enumerable nor non-folder items in Explorer tree (#7189)
This partially implements RegFolder required items as described by Geoff Chappell.

CORE-19176 CORE-14061
2024-08-29 20:45:59 +02:00
Whindmar Saksit
cca9acfa1d
[SHELL32] Create link must ask for a parsing name for file targets (#7267) 2024-08-24 19:01:27 +02:00
Whindmar Saksit
3b73d62eaa
[SHELL32] Pass correct lParam to DFM_INVOKECOMMAND (#6765) 2024-08-22 21:04:48 +02:00
Whindmar Saksit
d009de44ad
[SHELL32] CDefaultContextMenu must forward the .lnk path (#7264)
Forward the .lnk path (if any) so consrv gets STARTF_TITLEISLINKNAME and can apply console properties and icon from the shortcut.
2024-08-22 14:34:22 +02:00
Whindmar Saksit
e639d7c1e7
[SHELL32] Handle SHCreateShellFolderViewEx callback function (#7240)
The caller supplied callback function is wrapped in a IShellFolderViewCB so we can use (the newer) SHCreateShellFolderView.
2024-08-19 00:34:05 +02:00
Whindmar Saksit
d5f6b8c50b
[SHELL32] Implement the Select verb in CommDlgBrowser (#7225)
- Use Select instead of Open default menu item.
- Support CDB2GVF_NOSELECTVERB, CDB2GVF_NOINCLUDEITEM and CDB2GVF_SHOWALLFILES flags.
2024-08-15 18:40:32 +02:00
Whindmar Saksit
ea60890961
[NETSHELL][SHELL32] Make NetShell PIDL format more Windows compatible (#7183)
- The PIDL format needs to be Windows compatible so that wlanwiz can get the connection GUID.
- SHELL32::ILIsEqual cannot deem PIDL formats it does not understand as invalid.
- DefView must ask the folder when comparing PIDLs.
2024-08-08 22:00:03 +02:00
Whindmar Saksit
724b20d414
[SHELL32] Don't add the file to the parameters if the registry command did not ask for a file (#7139)
Bugs fixed:
 - fDefault detection of default verb is flawed because it checks the ici struct after conversion instead of the source sei struct.
 - The command to execute should not have the filename appended just because %1 nor %L did not appear in the registry command template.
2024-08-08 19:30:14 +02:00
Katayama Hirofumi MZ
266e2e5052
[SHELL32] shlexec: Simplify parameters parsing (#7207)
Simplify code logic.
JIRA issue: N/A
- Use PathGetArgsW, PathRemoveArgsW,
  and PathUnquoteSpacesW for
  parsing parameters.
2024-08-03 15:46:24 +09:00
Katayama Hirofumi MZ
ea936478f5
[BROWSEUI][SHELL32] Fix shell path parsing (#7202)
Fix shell path parsing.
JIRA issue: CORE-19693
JIRA issue: CORE-19694
- Fix CACListISF class by using
  PIDL attributes.
- Use min macro instead of max
  macro in Shell_ParseSpecialFolder
  function.
2024-08-02 04:16:02 +09:00
Katayama Hirofumi MZ
766d04d937
[SHELL32] shlexec: Do not expand without SEE_MASK_DOENVSUBST (#7206)
JIRA issue: N/A
Don't expand the application name
unless SEE_MASK_DOENVSUBST
is not specified.
2024-08-02 04:03:25 +09:00
Katayama Hirofumi MZ
51b662f90d
[SHELL32] shlexec: Support SEE_MASK_FLAG_SEPVDM (#7205)
JIRA issue: N/A
Add CREATE_SEPARATE_WOW_VDM
flag to creation flags on
SEE_MASK_FLAG_SEPVDM.
2024-08-02 04:02:27 +09:00
Katayama Hirofumi MZ
73e7956563
[SHELL32] Follow-up of #7169 (#7175)
Follow-up of #7169
JIRA issue: CORE-19595
- Revert some code in
  RecycleBinGeneric::DeleteFile.
2024-07-29 20:37:42 +09:00
Katayama Hirofumi MZ
90a5b9a83f
[SHELL32] RecycleBin5: Make it C++ (#7174)
Modernize code.
JIRA issue: CORE-19595
Rewrite RecycleBin5 in C++.
2024-07-29 09:20:36 +09:00
Katayama Hirofumi MZ
22b913928f
[SHELL32] RecycleBin5Enum: Make it C++ (#7173)
Modernize code.
JIRA issue: CORE-19595
Rewrite RecycleBin5Enum in C++.
2024-07-29 08:14:02 +09:00
Katayama Hirofumi MZ
6910fa624f
[SHELL32] RecycleBinGeneric: Make it C++ (#7169)
Modernize code.
JIRA issue: CORE-19595
Rewrite RecycleBinGeneric in C++.
2024-07-24 12:16:37 +09:00
Katayama Hirofumi MZ
72116d0558
[SHELL32] RecycleBinGenericEnum: Make it C++ (#7167)
Modernize code.
JIRA issue: CORE-19595
Rewrite RecycleBinGenericEnum
in C++.
2024-07-24 11:24:56 +09:00
Whindmar Saksit
d5aca44042
[SHELL32] Forward CDefaultContextMenu::InvokeCommand parameters to ShellExecute (#7172) 2024-07-23 18:58:02 +02:00
Katayama Hirofumi MZ
876d1c2dc8
[SHELL32] Use DECLARE_INTERFACE_ for IRecycleBin5 (#7168)
Improve interoperability between
C and C++.
JIRA issue: CORE-19595
Rewrite IRecycleBin5 interface
by using STDMETHOD and
DECLARE_INTERFACE_ macro.
2024-07-23 22:21:11 +09:00
Katayama Hirofumi MZ
166c7ee33c
[SHELL32] CRecycleBin: Add backshash if path is drive only (#7170)
JIRA issue: CORE-18006
If the original location is drive
only (C:, D: etc.), then append a
backslash.
2024-07-23 15:46:18 +09:00
Katayama Hirofumi MZ
b40046f426
[SHELL32] ShellExecCmdLine: Use SearchPathW (#7166)
Based on @Doug-Lyons
shlexec-winR-fonts.patch.
#4932 (f691efe) introduced
some regression.
JIRA issue: CORE-19688
Call SearchPathW function before
PathFindOnPathExW call in
ShellExecCmdLine function.
2024-07-23 15:08:16 +09:00
Whindmar Saksit
6219a1abe5
[BROWSEUI][SHELL32] Ignore navigation requests during browser destruction (#7161)
PR #7141 causes calls to IShellBrowser::BrowseObject while the shell browser is in the middle of destruction and the ShellView ListView has already been destroyed and DefView is not prepared for this.
2024-07-22 21:25:58 +02:00
Whindmar Saksit
f6a25d48d5
[SHELL32] Invoke the ItemIDList of shortcuts (#7152)
Invoking the IDList as if the target was double-clicked in Explorer fixes shortcuts to control panel items (both .cpl and ShellFolder types).

CORE-19690
2024-07-22 19:31:48 +02:00
Katayama Hirofumi MZ
7f0e8a3697 [SHELL32] RecycleBinGenericEnum: Convert tabs to spaces
CORE-19595
2024-07-22 13:24:12 +09:00
Katayama Hirofumi MZ
b6b82fee3f
[SHELL32] Refactor CShellLink::DoOpen (#7149)
Reduce code. Modernize code.
JIRA issue: N/A
Use CStringW and CComHeapPtr<WCHAR> for
dynamic allocation.
2024-07-21 10:08:16 +09:00
Whindmar Saksit
802dc9714b
[SHELL32][SHLWAPI][BROWSEUI][EXPLORER] Save folder view state (#7127)
Saves/restores the Listview icon mode, columns and sort info per-folder.
2024-07-19 14:40:20 +02:00
Whindmar Saksit
fa95a96e9b
[SHELL32] Use correct PIDL and name when dropping to create a shortcut (#6999)
Ask for the editing name instead of the parsing name to get a suitable shortcut name for PIDL items.
2024-07-19 13:37:53 +02:00