reactos/dll/win32/shell32
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
..
dialogs [SHELL32] Fix exception on modifying deleted file type (#5996) 2023-11-20 09:27:06 +09:00
droptargets [SHELL32] Add two missing GlobalUnlock() calls (#5625) 2023-08-28 21:56:02 +02:00
folders [SHELL32][CONTROL] Added basic IOpenControlPanel support (#6248) 2024-01-17 17:07:21 +01:00
lang [TRANSLATION] Improve Portuguese (pt-PT) translation (#6171) 2024-01-17 16:07:21 +01:00
res [SHELL32][CONTROL] Added basic IOpenControlPanel support (#6248) 2024-01-17 17:07:21 +01:00
shelldesktop [SHELL32][SDK] Implement SHIsTempDisplayMode (#5523) 2023-08-07 09:50:30 +09:00
shellmenu [SHELL32] Add check to CMenuToolbarBase::ShowDW 2023-01-04 10:32:28 +01:00
shellrecyclebin [SHELL32] Implement SHQueryRecycleBinW 2023-04-26 22:50:11 +02:00
wine [SHELL32][SDK][SHELL32_APITEST] Add PathIsTemporaryA/W (#6067) 2023-12-02 23:07:28 +09:00
avi_res.rc
bitmap_res.rc [SHELL32] Show Product version on About dialog bmp (#3621) 2021-05-08 15:54:32 +09:00
CActiveDesktop.cpp
CActiveDesktop.h
CCopyMoveToMenu.cpp [SHELL32] Commonize CCopyToMenu and CMoveToMenu (#5873) 2023-11-04 21:56:15 +09:00
CCopyMoveToMenu.h [SHELL32] Commonize CCopyToMenu and CMoveToMenu (#5873) 2023-11-04 21:56:15 +09:00
CDefaultContextMenu.cpp [SHELL32] AddStaticContextMenusToMenu(): Fix 3 MSVC 'warning C4805' (#6177) 2023-12-17 22:20:06 +01:00
CDefView.cpp [SHELL32] Fix status bar part sizes (#6243) 2023-12-29 13:34:23 +09:00
CDefViewBckgrndMenu.cpp [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
CDefViewDual.cpp
CDropTargetHelper.cpp
CDropTargetHelper.h
CEnumIDListBase.cpp [SHELL32][SHELLEXT] IEnumIDList::Next must handle pceltFetched and memory errors correctly (#5820) 2023-11-13 16:31:37 +01:00
CEnumIDListBase.h
CExtractIcon.cpp [PSDK][SHELL32][SHELLEXT] Add SHCreateFileExtractIconW() to the PSDK and SAL-annotate it. (#4223) 2021-12-31 02:30:58 +01:00
CFileSysBindData.cpp
CFolder.cpp [SHELL32][BROWSEUI] Fix usage of ILGetDisplayNameEx 2020-10-04 19:34:20 +02:00
CFolder.h
CFolderItems.cpp [EXPLORER][BROWSEUI][SHELL32][NETSHELL] Fix wrong usage of CComPtr 2022-10-02 00:38:23 +02:00
CFolderItems.h
CFolderItemVerbs.cpp [SHELL32] CFolderItemVerb: Zero-initialize output parameters 2022-10-14 21:04:19 +02:00
CFolderItemVerbs.h
CFolderOptions.cpp [SHELL] IShellExtInit::Initialize uses PCIDLIST_ABSOLUTE. CORE-16385 2019-09-29 12:09:02 +02:00
CFolderOptions.h [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
changenotify.cpp [SHELL32] SHChangeRegistrationReceive just returns FALSE 2023-09-21 12:09:28 +09:00
CIDLDataObj.cpp [SHELL32][SHELL32_APITEST] Implement SHCreateFileDataObject 2021-12-31 21:27:30 +01:00
CMakeLists.txt [SHELL32] Commonize CCopyToMenu and CMoveToMenu (#5873) 2023-11-04 21:56:15 +09:00
CNewMenu.cpp [SHELL32] Add IDS_NEWITEMFORMAT and retry FCIDM_SHVIEW_NEW (#5412) 2023-07-07 17:24:25 +09:00
CNewMenu.h [SHELL32] Delete unused CNewMenu::m_wszPath 2019-12-03 13:46:35 +09:00
COpenWithMenu.cpp [SHELL32] Don't display missing applications in "Open with..." (#5587) 2023-11-15 11:20:04 +01:00
COpenWithMenu.h [SHELL] IShellExtInit::Initialize uses PCIDLIST_ABSOLUTE. CORE-16385 2019-09-29 12:09:02 +02:00
CQueryAssociations.cpp [SHELL32] Use wide char string literals. 2022-01-09 22:39:29 +01:00
CQueryAssociations.h [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
CSendToMenu.cpp [SHELL32] Follow-up of #5008 (8e036fe) 2023-01-30 08:01:15 +09:00
CSendToMenu.h [SENDMAIL][ZIPFLDR][MYDOCS] Fix creation of SendTo files (#2616) 2020-04-23 04:19:20 +09:00
CShellDispatch.cpp [SHELL32] ShellDispatch::ShellExecute must default to displaying the window (#6143) 2023-12-17 15:48:24 +03:00
CShellDispatch.h
CShellItem.cpp [PSDK] Support STRICT_TYPED_ITEMIDS in shlobj.h. CORE-16385 2020-01-03 22:42:34 +01:00
CShellItem.h [SHELL] IPersistIDList/IShellLink use P(C)IDLIST_ABSOLUTE. CORE-16385 2019-09-29 12:09:39 +02:00
CShellLink.cpp [SHELL32] Enable Apply button when shortcut show mode is changed (#5807) 2023-10-20 13:02:14 +02:00
CShellLink.h [SHELL32] Implement 'Open file location' of shortcut files (#2028) 2019-11-12 16:47:36 +09:00
CUserNotification.cpp
CUserNotification.h
debughlp.cpp [SHELL32] Enable Network Connection Rename (#5073) 2023-04-30 15:40:10 +02:00
debughlp.h [SHELL32] Add extra information when encountering an unexpected pidl 2022-02-22 19:43:05 +01:00
folders.cpp
icon_res.rc
iconcache.cpp [SHELL32] Move SheRemoveQuotesA/W to utils.cpp (#5535) 2023-08-06 13:07:39 +02:00
precomp.h [SHELL32] Commonize CCopyToMenu and CMoveToMenu (#5873) 2023-11-04 21:56:15 +09:00
rgs_res.rc [SHELL32] Implement Move To Folder (#3056) 2020-08-18 05:30:54 +09:00
shell32.cpp [SHELL32][CONTROL] Added basic IOpenControlPanel support (#6248) 2024-01-17 17:07:21 +01:00
shell32.rc [TRANSLATION] Add Hong Kong Chinese (zh-HK) translation - Part 1 (#3941) 2021-12-30 00:40:57 +03:00
shell32.spec [SHELL32][SDK] Implement CopyStreamUI (#5848) 2023-10-31 22:32:02 +09:00
shell32_shldisp.idl
shell32_version.h
shell32_version.rc
shfldr.h [SHELL32] Don't smartass-renaming on LNK files (#4020) 2021-10-11 13:33:43 +09:00
shldataobject.cpp [SHELL32][SHELL32_APITEST] Add SHGetAttributesFromDataObject 2021-11-15 20:02:13 +01:00
shlexec.cpp [SHELL32] Fix for shlexec.cpp regressions (#5282) 2023-09-24 20:35:28 +00:00
shlfileop.cpp [SHELL32] Improve error message on copying files (#6290) 2024-01-12 16:01:21 +09:00
shlfolder.cpp GetDetailsOf does not support column flags (#5755) 2023-10-03 10:43:44 +02:00
shobjidl_local.idl
shresdef.h [SHELL32] Handle HotKey and ShowCmd on the shortcut property page (#5638) 2023-09-02 21:16:22 +03:00
stubs.cpp [SHELL32][SHELL32_APITEST][SDK] Implement PathIsEqualOrSubFolder (#5714) 2023-11-29 22:50:01 +09:00
systray.cpp [Explorer|Shell32] 2020-03-21 19:13:55 -05:00
utils.cpp [SHELL32][SHELL32_APITEST][SDK] Implement PathIsEqualOrSubFolder (#5714) 2023-11-29 22:50:01 +09:00
vista.c