mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
![]() 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. |
||
---|---|---|
.. | ||
dialogs | ||
droptargets | ||
folders | ||
lang | ||
res | ||
shelldesktop | ||
shellmenu | ||
shellrecyclebin | ||
wine | ||
avi_res.rc | ||
bitmap_res.rc | ||
CActiveDesktop.cpp | ||
CActiveDesktop.h | ||
CCopyMoveToMenu.cpp | ||
CCopyMoveToMenu.h | ||
CDefaultContextMenu.cpp | ||
CDefView.cpp | ||
CDefViewBckgrndMenu.cpp | ||
CDefViewDual.cpp | ||
CDropTargetHelper.cpp | ||
CDropTargetHelper.h | ||
CEnumIDListBase.cpp | ||
CEnumIDListBase.h | ||
CExtractIcon.cpp | ||
CFileSysBindData.cpp | ||
CFolder.cpp | ||
CFolder.h | ||
CFolderItems.cpp | ||
CFolderItems.h | ||
CFolderItemVerbs.cpp | ||
CFolderItemVerbs.h | ||
CFolderOptions.cpp | ||
CFolderOptions.h | ||
changenotify.cpp | ||
CIDLDataObj.cpp | ||
CMakeLists.txt | ||
CNewMenu.cpp | ||
CNewMenu.h | ||
COpenWithMenu.cpp | ||
COpenWithMenu.h | ||
CQueryAssociations.cpp | ||
CQueryAssociations.h | ||
CSendToMenu.cpp | ||
CSendToMenu.h | ||
CShellDispatch.cpp | ||
CShellDispatch.h | ||
CShellItem.cpp | ||
CShellItem.h | ||
CShellLink.cpp | ||
CShellLink.h | ||
CUserNotification.cpp | ||
CUserNotification.h | ||
debughlp.cpp | ||
debughlp.h | ||
folders.cpp | ||
icon_res.rc | ||
iconcache.cpp | ||
precomp.h | ||
rgs_res.rc | ||
shell32.cpp | ||
shell32.rc | ||
shell32.spec | ||
shell32_shldisp.idl | ||
shell32_version.h | ||
shell32_version.rc | ||
shfldr.h | ||
shldataobject.cpp | ||
shlexec.cpp | ||
shlfileop.cpp | ||
shlfolder.cpp | ||
shobjidl_local.idl | ||
shresdef.h | ||
stubs.cpp | ||
systray.cpp | ||
utils.cpp | ||
vista.c |