Commit graph

721 commits

Author SHA1 Message Date
Andrei Miloiu feabd323a2
[SHELL32] Update Romanian (ro-RO) translation (#6441) 2024-02-11 23:09:32 +01:00
Oleg Dubinskiy 290221ef5b
[SHELL32] Sync HCR_RegGetIconW() function to Wine 9.1 (#6418)
Import the following fixes:
- Use the number of bytes instead of the number of characters in the length
  passed to RegQueryValueExW. Calculate this by multiplying the number of
  characters on the size of one wide character in bytes, since only length
  of characters is passed to the function. This fixes ERROR_MORE_DATA
  returned from RegQueryValueExW, because the passed number of bytes was
  less than the actual length of the output buffer, since it was calculated
  incorrectly, so the function failed even when it received the correct
  number of wide characters.
  This partially imports Wine commit:
  32584bb521.
- Limit the number of characters in registry icon index buffer from 7 to 5,
  as it done in ANSI version of this function, since registry index number
  can contain up to 4 digits + space for the null-terminator.

This fixes problems when loading custom (user-defined) icons from registry,
like icons defined by the current user or for all users, instead of just
default icons from the root classes.

CORE-14758

Co-authored-by: Zhiyi Zhang <zzhang@codeweavers.com>
2024-02-02 18:10:36 +03:00
Stanislav Motylkov b50dfbcee4 [DESK][SHELL32] Improve French (fr-FR) translation
Make "My Network Places" translation consistent.
Fix suggested by Hermès Bélusca-Maïto.
2024-01-27 15:06:12 +03:00
Whindmar Saksit d41dec2e07
[SHELL32][CONTROL] Added basic IOpenControlPanel support (#6248)
Add a basic IOpenControlPanel implementation that supports Vista canonical registry names.

Implements `control.exe /name company.name [/page id]` and `IOpenControlPanel`
handling of Vista-style canonical registry names.

The documented `Microsoft.*` names don't work because they are simply not
in our registry but "[Executable Control Panel Items](https://learn.microsoft.com/en-us/windows/win32/shell/how-to-register-an-executable-control-panel-item-registration-)" registered by 3rd-party ISVs
will function correctly in control.exe and the COM API.

Notes:

- `IOpenControlPanel` is implemented in CControlPanelFolder.cpp because
  it is supposed to have tighter integration with that shell folder than
  it does in this PR.

- `IOpenControlPanel` is also supposed to handle .cpl files with canonical
  names registered under [`Extended Properties`](https://learn.microsoft.com/en-us/windows/win32/shell/how-to-register-dll-control-panel-item-registration-#step-3) but the control panel folder
  does not implement `IShellFolder2::GetDetailsEx` yet, so it will have to wait.

- These "Executable Control Panel Items" are also supposed to be displayed
  in the control panel itself but this PR does not address that. The
  `ITEMIDLIST` format for those needs investigation...

- The Wow64 handling is perhaps not correct but it does not matter,
  `ShellExecuteEx` gets to deal with whatever is in the `...\shell\open\command` key.
  `CControlPanelFolder` would have to take more care when it starts
  reading those keys so it knows when to append "(32-bit)" to the display name.

- `%s%s` because .cpl canonical names don't have the `::` prefix according
  to Geoff Chappell.

- Always returns `CPVIEW_CLASSIC` because our `CControlPanelFolder` does
  not support the category view.
2024-01-17 17:07:21 +01:00
Jose Carlos Jesus d4a453ca2e
[TRANSLATION] Improve Portuguese (pt-PT) translation (#6171)
Updates for DESK.CPL, INPUT.CPL, EXPLORER.EXE, SHELL32.DLL
2024-01-17 16:07:21 +01:00
Andrei Miloiu fd573dee26
[SHELL32] Update Romanian (ro-RO) translation (#6352) 2024-01-15 22:06:16 +01:00
Katayama Hirofumi MZ 4490a053d0
[SHELL32] Improve error message on copying files (#6290)
Based on KRosUser's copyerrorfix.patch.
JIRA issue: CORE-19414
- If feFrom->szFilename was empty,
  then use feFrom->szFullPath instead.
2024-01-12 16:01:21 +09:00
Katayama Hirofumi MZ 3299e96e91
[SHELL32] SHFileOperation: Fail elegantly if source doesn't exist (#6318)
Based on KRosUser's dragdropfixpart2.patch.
JIRA issue: CORE-19417, CORE-19211
- Check source file existence.
2024-01-09 19:38:34 +09:00
Whindmar Saksit 55a5d7a177
[SHELL32] RegFolder must correctly handle GetDisplayNameOf parsing paths (#6265) 2024-01-08 17:02:59 +01:00
Katayama Hirofumi MZ d689cfe158
[SHELL32] Don't crash on Control Panel item D&D (#6289)
Based on @douglyons 's control-panel-copy-to-desktop-fix.patch.
JIRA issue: CORE-19210
- Delete needless #ifdef __REACTOS__ guards because
  shlfileop.cpp is a forked file.
- Do NULL check against feFrom->szFilename.
2024-01-06 11:00:36 +09:00
Hermès Bélusca-Maïto a70ce994f0
🎊 🍾 🥳 Happy New Year 2024 to the ReactOS Community! 🎆 ⚛️ ☢️
.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:.██████╗  ██████╗ ██████╗ ██╗  ██╗
 __,  ,__)            __,  ,__)       __, ,__)         ╚════██╗██╔═████╗╚════██╗██║  ██║
(--|__| _ ,_ ,_      (--|\ | _       (--\ | _  _ ,_     █████╔╝██║██╔██║ █████╔╝███████║
  _|  |(_||_)|_)(_|    _| \|(/_(_|_)     \|(/_(_||     ██╔═══╝ ████╔╝██║██╔═══╝ ╚════██║
 (        |  |  ,_|   (                (__|            ███████╗╚██████╔╝███████╗     ██║
.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:.╚══════╝ ╚═════╝ ╚══════╝     ╚═╝
2024-01-01 00:00:00 +01:00
Katayama Hirofumi MZ d46d3167a3
[SHELL32] Fix status bar part sizes (#6243)
Based on KRosUser's cdefview_fixstatus.patch.
JIRA issue: CORE-19406
In CDefView::OnSize, call _ForceStatusBarResize function
instead of _HandleStatusBarResize function.
2023-12-29 13:34:23 +09:00
Николай Димитров 4514e91dd6
[TRANSLATION] Update and fix Bulgarian (bg-BG) translation (#5581)
NOTE: IDS_ADMINISTRATOR_NAME translation excluded for the time being.

It should be "Администратор", but bg-BG translation missing in samsrv.dll,
therefore don't translate it because otherwise this would introduce a mismatch
(samsrv falls back into english when translation is missing).

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2023-12-21 18:09:34 +01:00
Joachim Henze 1061ed4d28
[SHELL32] *.rc 640x480-ify IDD_FOLDER_OPTIONS_* (#6165) CORE-1762
This makes the 3 dlgs fit the screen in y for 640x480 desktop resolution like their MS role-models.

Beside that also fixes:
- the wrong vertical position of IDC_FOLDER_OPTIONS_TASKICON and wrong horizontal position of ICON IDI_SHELL_PROGRAMS_FOLDER2 for all translations
- fix some accelerator collisions for de-DE and place many FIXMEs for other translations that still have some
- improve the distance on the lower end (height) of the 3 groupboxes to look much better than before in IDD_FOLDER_OPTIONS_GENERAL for all langs
- bg-BC.rc in 1st dlg IDD_FOLDER_OPTIONS_GENERAL the text of the radiobuttons was historically shifted to the left (as part of an ancient workaround for the too long strings) and as a consquence the text was at the same area where the icons are. Fixed now.
- en-US: text truncation for IDC_FOLDER_OPTIONS_DOUBLECLICK string (affected also many other langs)
- es-ES: fix text truncation on button IDC_FOLDER_OPTIONS_RESTORE
- id-ID: BS_MULTILINE in IDC_FOLDER_OPTIONS_ULBROWSER and IDC_FOLDER_OPTIONS_ULPOINT. Added missing spacing between IDC_VIEW_APPLY_TO_ALL and IDC_VIEW_RESET_ALL buttons
- it-IT.rc fix text truncation in IDC_FOLDER_OPTIONS_RESTORE
- ro-RO.rc fix text truncation in IDC_FOLDER_OPTIONS_RESTORE
- uk-UA.rc lacked the ICON IDI_SHELL_PROGRAMS_FOLDER2 entirely (as a consequence of a historic workaround)
- fix text truncation for many languages for the radiobuttons in IDD_FOLDER_OPTIONS_GENERAL (1st dlg)
- fix text truncation for all languages for the "Opens with:" text in IDD_FOLDER_OPTIONS_FILETYPES (3rd dlg)
- strip unneeded dummy texts for IDC_FILETYPES_APPNAME
- take over "Free Space" instead of "Size available" for IDS_SHV_COLUMN_DISK_AVAILABLE which was done for en-US.rc some years ago, but was forgotten to do as well for other languages back then
- ... and so on

CORE-1762
2023-12-18 07:05:07 +01:00
Serge Gautherie 0ba94c83b5
[SHELL32] AddStaticContextMenusToMenu(): Fix 3 MSVC 'warning C4805' (#6177)
- Use 'bool' type.
- Do not abuse '|=' operator.

Addendum to commit 7fb91d98f
2023-12-17 22:20:06 +01:00
Whindmar Saksit 19a0f14bb1
[SHELL32] ShellDispatch::ShellExecute must default to displaying the window (#6143)
SW_HIDE is not the correct default show mode.

This can be reproduced by simple script:
WScript.CreateObject("Shell.Application").ShellExecute("calc.exe");
2023-12-17 15:48:24 +03:00
Katayama Hirofumi MZ 69fb160a48 [SHELL32] Improve Japanese (ja-JP) translation
CORE-18706
2023-12-16 12:57:17 +09:00
Joachim Henze d387c799ed
[SHELL32] 640x480-ify four dialogs (#6004)
IDD_DRIVE_PROPERTIES
IDD_DRIVE_TOOLS
IDD_DRIVE_HARDWARE
IDD_FOLDER_CUSTOMIZE

Afterwards all 4 dialogs do display fine even with 640x480 screen resolution. Same as their MS role-models do.

I also fixed some accelerator collisions FCIDM_SHVIEW_CUT and synced some forgotten syncs for IDM_CUT accel.
I also moved checkboxes further to the left in the checkdisk dialog, as it was done for en-US and some other languages before, but it was forgotten in other languages (AUTOCHECKBOX.*14000 and AUTOCHECKBOX.*14001)

the french accelerator-changes were
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2023-12-14 13:54:11 +00:00
Andrei Miloiu ec0e51a265
[SHELL32] Update Romanian (ro-RO) translation (#6087) 2023-12-09 20:20:12 +01:00
Stanislav Motylkov 6295c61f3f [SHELL32] Update resource file headers
Only update files that already have a non-standard header.
There are still resource files that just don't have it.

Dedicated to Joachim Henze - PR #6004 commit 273a6e2575.
2023-12-03 22:42:10 +03:00
Katayama Hirofumi MZ 4bccb6e6c9
[SHELL32][SDK][SHELL32_APITEST] Add PathIsTemporaryA/W (#6067)
- Implement PathIsTemporaryA and
  PathIsTemporaryW functions.
- Add them to <undocshell.h>.
- Add PathIsTemporary testcase.
CORE-19278
2023-12-02 23:07:28 +09:00
Katayama Hirofumi MZ 2aeda3dc15
[SHELL32][SHELL32_APITEST][SDK] Implement PathIsEqualOrSubFolder (#5714)
Implement PathIsEqualOrSubFolder function.
- Add it to <undocshell.h>.
- Add PathIsEqualOrSubFolder testcase.
- Add SHGetPathCchFromIDListW as an
  extension of SHGetPathFromIDListW.
CORE-19278
2023-11-29 22:50:01 +09:00
Katayama Hirofumi MZ 60c770db67 [SHELL32] Improve Japanese (ja-JP) translation
Just fix IDS_ANY_FILE. CORE-18706
2023-11-21 10:46:57 +09:00
Katayama Hirofumi MZ edaeef9418
[SHELL32] Fix exception on modifying deleted file type (#5996)
Based on KRosUser's filetypes.patch. Check NULL for pEntry.
CORE-19324
2023-11-20 09:27:06 +09:00
Katayama Hirofumi MZ f95c789f2b
[SHELL32] Select 1st item after deletion of file type (#6007)
Based on KRosUser's filestypedel.patch.
- Select the first item after the user deleted a
  file type.
CORE-19325
2023-11-19 22:16:03 +09:00
Whindmar Saksit 51ba3b1fb4
[SHELL32] Don't display missing applications in "Open with..." (#5587)
Don't display applications that don't exist. In Windows XP, Exe files that no longer exist are hidden but their registry entry is not deleted.

JIRA issue: CORE-19117
2023-11-15 11:20:04 +01:00
Andrei Miloiu 146d3f0bfe
[SHELL32] Update Romanian (ro-RO) translation (#5962) 2023-11-15 10:52:26 +01:00
Whindmar Saksit f283a3f9ae
[SHELL32][SHELLEXT] IEnumIDList::Next must handle pceltFetched and memory errors correctly (#5820)
- pceltFetched can be NULL if the caller is not requesting multiple items.
- All entries returned in rgelt must be valid, they cannot be NULL.
2023-11-13 16:31:37 +01:00
Whindmar Saksit 7fb91d98f9
[SHELL32] Add support for more registry verb flags and CMF flags (#5785)
- Adds support for registry controlled menu separators and the documented
  values to turn off verbs.
- Adds support for CMF_OPTIMIZEFORINVOKE, CMF_NODEFAULT, CMF_DONOTPICKDEFAULT,
  CMF_EXPLORE and CMF_DISABLEDVERBS.

Bugs fixed:

- A verb with "Extended" set in the registry could cause the menu to invoke
  the incorrect command! This happened because skipping InsertMenuItemW
  caused InvokeCommand to use the wrong index with m_StaticEntries.
- Uses IS_INTRESOURCE instead of HIWORD to check if something is a string
  (only matters on 64-bit).
- TryToBrowse leaking a PIDL when calling ILCombine.

Notes:

- This PR introduces the RosGetProcessEffectiveVersion() helper function
  discussed in chat.
- Relaxed FAILED_UNEXPECTEDLY to FAILED in two places because IContextMenu
  cannot assume that it has a site that leads to IShellBrowser.
2023-11-13 16:21:13 +01:00
Whindmar Saksit 23f31cf7b4
[SHELL32] Support more FOLDERFLAGS in DefView (#5760)
This adds support for more of the FOLDERSETTINGS FOLDERFLAGS.

- Turned on LVS_EX_DOUBLEBUFFER even though there is no setting for it.
  XP has it on for folders but not the desktop and this matches that.
  Vista might turn it on for its shadow labels on the desktop, further
  investigation required.

- Fixes a bug where LVS_EX_SNAPTOGRID was incorrectly assigned where
  the WS_EX flags go.

- LVS_AUTOARRANGE seems to be incorrectly forced on but for compatibility
  I decided to leave it but added a comment. The existing code already
  has the check for FWF_AUTOARRANGE.
2023-11-13 16:13:21 +01:00
Jose Carlos Jesus 357189bdea
[USETUP][SHELL32][ACCESS] Improve Portuguese (pt-PT) Translation (#5897) 2023-11-13 10:59:05 +01:00
Katayama Hirofumi MZ a938d19714
[SHELL32] Commonize CCopyToMenu and CMoveToMenu (#5873)
Reduce code. And correctly do the filename check.
CORE-18909
2023-11-04 21:56:15 +09:00
Andrei Miloiu c1b12b3f46
[SHELL32] Update Romanian (ro-RO) translation (#5838) 2023-11-01 16:56:50 +01:00
Katayama Hirofumi MZ 8a049d0b68
[SHELL32][SDK] Implement CopyStreamUI (#5848)
- Modify shell32.spec.
- Add CopyStreamUI prototype to <undocshell.h>.
CORE-19278
2023-10-31 22:32:02 +09:00
Katayama Hirofumi MZ 00f192fa94
[SHELL32] Improve file properties dialog (#5852)
Based on KRosUser's patches.
- Add missing version strings "Comments" and
  "LegalTrademarks".
- Add version strings "PrivateBuild" and
  "SpecialBuild" if necessary.
- Trim the version string for pretty display.
CORE-19270, CORE-19114, CORE-19275
2023-10-30 15:34:03 +09:00
Katayama Hirofumi MZ 128e7f5aea
[SHELL32][SDK] Implement SHStartNetConnectionDialogA (#5847)
and add SHStartNetConnectionDialog prototype to <shlobj.h>.
2023-10-28 22:29:05 +09:00
Katayama Hirofumi MZ a52c713755 [SHELL32][SDK] Follow-up of #5840 (ad5df2d)
Fix the parameters of Activate_RunDLL.
2023-10-28 21:31:11 +09:00
Katayama Hirofumi MZ ad5df2d199
[SHELL32][SDK] Implement Activate_RunDLL (#5840)
- Add Activate_RunDLL function implementation.
- Add Activate_RunDLL prototype to <undocshell.h>.
2023-10-28 14:56:27 +09:00
Katayama Hirofumi MZ 2ccdd87809
[SHELL32][SDK] Implement ShortSizeFormatW (#5829)
- Implement ShortSizeFormatW.
- Add ShortSizeFormatW prototype into <undocshell.h>.
- Modify shell32.spec.
2023-10-28 14:55:25 +09:00
Katayama Hirofumi MZ 81e936486e
[SHELL32] Implement ExtractIconResInfoA (#5846)
- Add ExtractIconResInfoA implementation.
- Add ExtractIconResInfo prototype to <undocshell.h>.
2023-10-28 11:38:29 +09:00
Katayama Hirofumi MZ 9dfb3e8e05
[SHELL32][SDK] Implement PathIsSlowA and SHSetFolderPathA (#5841)
- Implement PathIsSlowA and SHSetFolderPathA functions.
- Add PathIsSlow and SHSetFolderPath prototypes to <shlobj.h>.
- Fix some <shlobj.h>'s bugs.
- Improve SHOpenPropSheetA function.
2023-10-28 09:59:12 +09:00
Katayama Hirofumi MZ dcc9a2d8f3
[SHELL32][SDK] Implement SHOpenPropSheetA (#5830)
- Add SHOpenPropSheetA and
  SHOpenPropSheetW prototypes to <shlobj.h>.
- Implement SHOpenPropSheetA function.
2023-10-27 19:34:02 +09:00
Katayama Hirofumi MZ 8f6b016963
[SHELL32] Fix copyto/moveto actions of Search Results (#5816)
- Extend CDefView::InvokeContextMenuCommand 2nd parameter to LPCSTR.
- Add CDefView::_DoCopyToMoveToFolder method.
- Use CDefView::_DoCopyToMoveToFolder for FCIDM_SHVIEW_COPYTO
  and FCIDM_SHVIEW_MOVETO command actions.
CORE-18426
2023-10-27 12:34:51 +09:00
Katayama Hirofumi MZ 995f56d1d3
[SHELL32][SDK] Implement IsSuspendAllowed (#5831)
- Add IsShutdownAllowed helper function.
- Add IsSuspendAllowed prototype to
  <undocshell.h>.
- Implement IsSuspendAllowed function.
2023-10-26 23:27:45 +09:00
Katayama Hirofumi MZ 6f86e11aa2 [SHELL32] Revert CDefView change at bc70af4
CORE-18426
2023-10-23 08:13:29 +09:00
Katayama Hirofumi MZ bc70af4c13 [SHELL32] Use IS_INTRESOURCE in CCopyToMenu/CMoveToMenu::InvokeCommand
CORE-18426
2023-10-23 07:55:24 +09:00
Whindmar Saksit ded91e310a
[SHELL32] Enable Apply button when shortcut show mode is changed (#5807)
Basically this happens when the combobox selection changes.
2023-10-20 13:02:14 +02:00
Whindmar Saksit 34066e475a
GetDetailsOf does not support column flags (#5755)
GetDetailsOf does not support the column flags used by CompareIDs.
As a side effect, also fixes LPARAM to UINT truncation on 64-bit.
2023-10-03 10:43:44 +02:00
Joachim Henze 058b746bbe [SHELL32] *.rc: AGAIN! Use 1996 as birth year in IDD_ABOUT for consistency
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.
2023-09-27 22:23:31 +02:00
Katayama Hirofumi MZ d1e9fe13de
[SHELL32][SDK] Implement SHTestTokenPrivilegeW (#5725)
and modify shell32.spec.
2023-09-26 07:36:07 +09:00