60 Commits
Author SHA1 Message Date
Whindmar Saksit 3b58b347bc [EXPLORER][SHELL32] Forward Explorer refresh command to the Start Menu (#9108) 2026-06-07 21:28:13 +02:00
Hermès Bélusca-Maïto 6696d40cfc [SDK] Introduce winbase_undoc.h for undocumented exported kernel32 definitions (#8019)
This header is based on the following files from the official
Windows 10.0.10240.0 PSDK, a copy of which can be found at:
- https://github.com/tpn/winsdk-10/blob/master/Include/10.0.10240.0/um/minwin/winbasep.h
- https://github.com/tpn/winsdk-10/blob/master/Include/10.0.10240.0/um/minwin/wbasek.h
2025-05-27 20:52:17 +02:00
Mohammad Amin Mollazadeh cc16769179 [SHELL32] Fix focus glitch when hovering separators with submenu open (#7932)
CORE-20124

Since `TB_HITTEST` returns negative numbers for ID for separator menu items [^1],
shell menu assumes mouse moved outside of the menu popup, highlighting the menu
item for currently open submenu.
To fix this behavior, we can detect separators in `CMenuFocusManager::ProcessMouseMove`
and negate the ID returned by `TB_HITTEST` to make it a positive number again,
so the shell menu wouldn't glitch.

[^1]: https://learn.microsoft.com/en-us/windows/win32/controls/tb-hittest
2025-05-04 17:11:44 +02:00
Mohammad Amin Mollazadeh be87e0099f [SHELL32] Return correct CSIDL for "Network Connections" menu item (#7938)
Fixes erroneous addition of "Properties" item into its context menu.

- Addendum to 0241b5c4e9 and 5aaead3fdb. CORE-20152
- Also remove FIXME for CORE-19477 which is fixed now. CORE-20151
2025-04-28 22:44:58 +03:00
Whindmar Saksit 378a335468 [SHELL32] Don't pass menu band hwnd to InvokeCommand (#7945)
The menu band window is about to go away, don't pass it to InvokeCommand because it's invalid as an owner window for any dialogs the callee might display.
2025-04-28 00:24:15 +02:00
Mohammad Amin Mollazadeh 860262952d [SHELL32] Fix Deselect highlighted item in shell menus on close (#7904)
CORE-18855

Add a call to _ChangeHotItem(NULL, -1, 0) in CMenuBand::OnSelect(MPOS_CANCELLEVEL) which causes to deselect currently selected item the moment the menu bands (including start menu) are closing.
Start Menu is not destroyed when it's closed so its allocated resources can be re-used next time user wants to open it, so to keep this behavior and still not having an item selected every time you open the start menu, you have to deselect the currently selected item.
2025-04-23 23:10:08 +02:00
Whindmar Saksit 190782c3e0 [SHELL32] Fix some clang warnings (#7845) 2025-03-31 18:59:04 +02:00
Whindmar Saksit 77e4217919 [SHELL32] CMenuBand must set ShowWindow value for InvokeCommand (#7695) 2025-02-01 13:50:22 +01:00
Katayama Hirofumi MZ fe11f7a2e5 [REACTOS] Refresh old URLs (#7632)
URLs are getting old. We have to
update URLs for documentation
purpose.
JIRA issue: CORE-19963
- Refresh old URLs.
- Add " (DEAD_LINK)" labels
  to dead links.
- Use MS Learn links rather
  than MSDN ones.
- Some dead links revived by
  Web Archive.
- Don't change Wine Tests
  and Wine Sync.
- Don't change 3rd party libraries.
- Don't append "redirected" labels.
2025-01-28 13:36:45 +09:00
Whindmar Saksit 1fec01561d [SHDOCVW][BROWSEUI][SHELL32] Correctly refcount CNSCBand and Explorer File menu (#7569)
CORE-19879 CORE-19780
2024-12-27 14:46:30 +01:00
Timo Kreuzer 0c2cdcae83 [REACTOS] Add missing line breaks at end of file 2024-10-06 10:47:11 +03:00
Whindmar Saksit 7c3d3851b8 [SHELL32] Respect menu Ctrl/Shift in CMenuBand and SHBrowseForFolder (#7015) 2024-06-13 13:11:34 +02:00
Katayama Hirofumi MZ ad748b0b3b [EXPLORER][SHELL32] Smaller Start Menu (#6646)
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.
2024-03-20 07:32:52 +09:00
Katayama Hirofumi MZ 5aaead3fdb [SHELL32] Start Menu: Enhance context menu (#6606)
Improve Start Menu usability.
JIRA issue: CORE-19477
- Add CSIDLFromID helper function.
- Return a context menu interface at CShellMenuCallback::OnGetContextMenu.
FIXME: CSIDL_CONTROLS, CSIDL_NETWORK, and CSIDL_PRINTERS context menu
wrongly open My Computer.
2024-03-12 15:58:22 +09:00
Katayama Hirofumi MZ 57592b7e22 [SHELL32] Start Menu Customize: Fix bMustHideAdminTools (#6604)
Follow-up to #6603. Fix a bug in Admin Tools display.
JIRA issue: CORE-16956
Fix the value of bMustHideAdminTools in CMenuSFToolbar::FillToolbar.
2024-03-12 08:26:07 +09:00
Katayama Hirofumi MZ acb01cf568 [EXPLORER][SHELL32] Show/hide 'Admin tools' menu (#6598)
Improve Start Menu customization.
JIRA issue: CORE-16956
- Add IsPidlPrograms helper function.
- Specify a PIDL for Programs menu.
- Check the "StartMenuAdminTools" registry value.
- Don't add "Admin Tools" menu item into
  CMenuSFToolbar::FillToolbar if necessary.
2024-03-11 21:58:30 +09:00
Katayama Hirofumi MZ 8bd071a51e [EXPLORER][SHELL32] Fix and improve Start Menu customization (#6596)
Correct the details of Start Menu customization.
JIRA issue: CORE-16956
- Hide the setting item if the item is restricted.
- Don't change restriction in Explorer.
- Fix Start Menu settings for restriction and registry.
- Fix and simplify code.
2024-03-11 20:18:07 +09:00
Katayama Hirofumi MZ 0241b5c4e9 [EXPLORER][SHELL32] Expand/unexpand Control Panel menu (#6595)
Follow-up to #6594. Improve Start Menu customization.
JIRA issue: CORE-16956
- Add IDS_ADVANCED_EXPAND_CONTROL_PANEL, IDS_ADVANCED_EXPAND_PRINTERS,
  and IDS_ADVANCED_EXPAND_NET_CONNECTIONS resource strings.
- Check the "CascadeControlPanel", "CascadeNetworkConnections", and "CascadePrinters"
  registry values.
- Modify Start Menu by using AddOrSetMenuItem and AddStartMenuItems helper
  functions in CShellMenuCallback::OnGetSubMenu.
2024-03-11 16:19:46 +09:00
Katayama Hirofumi MZ 71285dff48 [EXPLORER][SHELL32] Expand/unexpand My Documents menu (#6594)
Follow-up to #6592. Improve Start Menu
customization.
JIRA issue: CORE-16956
- Add IDS_ADVANCED_EXPAND_MY_DOCUMENTS
  and IDS_ADVANCED_EXPAND_MY_PICTURES
  resource strings.
- Check L"CascadeMyDocuments" and
  L"CascadeMyPictures" registry values.
- Add GetAdvancedValue helper function.
- Implement CreateRecentMenu function.
2024-03-11 13:18:58 +09:00
Katayama Hirofumi MZ 49b2b1dab1 [SHELL32] Use STDMETHOD macro and keyword override (#6570)
For simplicity and short typing.
JIRA issue: CORE-19469
- Replace "virtual HRESULT STDMETHODCALLTYPE
  m" with "STDMETHOD(m)" (m is a method name).
- Replace "virtual t STDMETHODCALLTYPE m" with
  "STDMETHOD_(t, m)" (t is a type. m is a method
  name).
- Use "override" keyword as possible.
- CDefView should inherit IShellView3 due to
  override CreateViewWindow3 method.
- Fix CDefView::CreateViewWindow3 (parameter
  prcView is const RECT *, not LPRECT).
2024-03-05 08:43:39 +09:00
Katayama Hirofumi MZ 059fd8e551 [SHELL32] Fix CMenuBand's context menu (#6548)
JIRA issue: CORE-17453, CORE-12328
In CMenuBand::_TrackContextMenu method:
- Use 100 for idCmdFirst, instead of zero.
- Use uCommand - idCmdFirst for cmi.lpVerb.
Zero is an invalid command ID.
2024-02-28 16:54:15 +09:00
Joachim Henze 6f91b6c0fe [SHELL32] Tweak formatting and logging
Some style-improvements I wanted to apply before a planned backport.
E.g. The biggest source-file CDefView.cpp in [SHELL32] can be shrinked considerably by stripping some outdated
comments from 10 and more years ago, when this class was still non-OOP and named ShellView.
Less excessive line-lengths also here and there.

In case it is not obvious when reviewing: In the beginning of CDevView.cpp in the declaration-part I just
reduced the indentation-level by 4 spaces for a big block.

Some shell classes were touched during 0.4.15-dev'ing for fixes like the 'unkown'-typo in
0.4.15-dev-6323-g 3854a5d8e9 for example
or missing \n were added to dbgprints like in
0.4.15-dev-4492-g 03422451b3
Touched again here, because I want to port those improvements back,
but don't intend to increase the size in older releases.

The commit looks big, but does consist solely of trivialities.
There is no functional change in this commit, aside the logging ofc.
2024-02-20 02:08:56 +01:00
Timo Kreuzer d0c1df7882 [SHELL32] Add check to CMenuToolbarBase::ShowDW
This fixes an ATL assert in shell32_apitest:menu
2023-01-04 10:32:28 +01:00
Katayama Hirofumi MZ 92c904addc [SHELL32] DestroyMenu on m_pShellMenu->SetMenu failure
CORE-13194
2022-10-10 08:48:59 +09:00
Katayama Hirofumi MZ 924a8fea10 [SHELL32] De-select m_marlett on CMenuToolbarBase::OnCustomDraw
CORE-13194
2022-10-10 08:45:04 +09:00
Mark Jansen cd2d284142 [EXPLORER][BROWSEUI][SHELL32][NETSHELL] Fix wrong usage of CComPtr 2022-10-02 00:38:23 +02:00
Mark Jansen 96e3c7bcc5 [SHELL32] Only hide a window when there is a window to hide 2022-09-12 20:00:39 +02:00
Mark Jansen d0ba8fd4a3 [SHELL32] Properly destroy window 2022-09-12 20:00:39 +02:00
Mark Jansen a6b8d4f6f0 [SHELL32] Don't try to remove buttons on a nonexisting window 2022-09-12 20:00:39 +02:00
Mark Jansen 55343f04b0 [MSPAINT][EXPLORER][SHELL32] Enable ATL asserts in CMake
CORE-17505

In MSVC builds they would not work reliably when enabled in the precompiled header
2022-09-10 17:27:50 +02:00
Serge Gautherie 03422451b3 [REACTOS] Add '\n' to debug logs
on TRACE, WARN, FIXME and ERR calls.

Plus a few nit picks.
2022-05-04 03:28:38 +03:00
Katayama Hirofumi MZ 974a0f03df [SHELL32] Fix assertion failure in CMenuToolbars
CORE-17505
2022-01-25 11:49:27 +09:00
Hermès Bélusca-Maïto a6bf77e7b9 [SDK:REACTOS] Move our ROS-specific header-only UI libraries into a "ui" sub-folder. (#4205) 2022-01-06 02:17:25 +01:00
Jesús Sanz del Rey b94b435a11 [SHELL32] Handle double click on focus manager (#4213)
CORE-9943
2021-12-29 17:00:59 +01:00
Mark Jansen 22e58e68aa [SHELL32] Fix uninitialized variable usage.
This fixes log spam about NM_CUSTOMDRAW not being handled
2021-10-01 17:40:01 +02:00
Hermès Bélusca-Maïto 9393fc320e [FORMATTING] Remove trailing whitespace. Addendum to 34593d93.
Excluded: 3rd-party code (incl. wine) and most of the win32ss.
2021-09-13 03:52:22 +02:00
Katayama Hirofumi MZ 9259ded8ae [ATL][SHELL32][EXPLORER] Disable ATLASSERT (#3527)
We are not ready for enabling ATLASSERT. Enabling ATL assertions takes time to realize. CORE-17505
- Disable ATLASSERT by undefining _DEBUG.
- Revert currently non-fixable codes.
2021-03-11 20:26:45 +09:00
Katayama Hirofumi MZ 4583eae4f7 [SHELL32] Fix CMenuToolbarBase
CORE-17505
2021-03-11 17:51:47 +09:00
Mark Jansen 1952e5b795 Fix some assertions now that they are enabled (#3524)
Fix some assertions, hack out some others (they need more ATL work).
CORE-17505
2021-03-11 07:43:06 +09:00
Jérôme Gardou 907025a018 [CMAKE] Introduce the atl_classes interface library
This takes care of adding the relvant include directory and the _ATL_NO_EXCEPTIONS define, if needed
2020-10-20 21:44:54 +02:00
Jérôme Gardou d6ea8659c8 [CMAKE] Get rid of the set_cpp macro
Instead of messing with global variables and the like, we introduce two target properties:
 - WITH_CXX_EXCEPTIONS: if you want to use C++ exceptions
 - WITH_CXX_RTTI: if you need RTTI in your module
You can use the newly introduced set_target_cpp_properties function, with WITH_EXCEPTIONS and WITH_RTTI arguments
We also introduce two libraries :
 - cpprt: for C++ runtime routines
 - cppstl: for the C++ standard template library

NB: On GCC, this requires to create imported libraries with the related built-in libraries:libsupc++, limingwex, libstdc++

Finally, we manage the relevant flags with the ad-hoc generator expressions

So, if you don't need exceptions, nor RTTI, nor use any runtime at all: you simply have nothing else to do than add your C++ file to your module
2020-10-20 21:44:54 +02:00
Timo Kreuzer 68cb54dc58 [SHELL32] Fix usage of return value 2020-09-27 19:58:21 +02:00
Katayama Hirofumi MZ 77b8505393 [SHELL32] Delete IDM_RECENTMENUHEAD resource menu (#2705)
Follow-up of #2648. Reduce translation cost and resource data.
CORE-3588, CORE-11483
2020-05-01 15:58:58 +09:00
Katayama Hirofumi MZ 8f3079c67f [SHELL32][EXPLORER] Improve Recent Documents of Start Menu (#2648)
Improve Recent Documents of Start Menu. Add items of "My Documents" and "My Pictures" into Recent menu item.
CORE-3588, CORE-11483
2020-04-30 17:09:14 +09:00
Katayama Hirofumi MZ bc1519dd87 Shell Folders: Reject invalid characters (#2328)
Reject invalid input filename characters by using shell32!SHLimitInputEdit function and IItemNameLimits interface. Improve SHLimitInputEdit to sanitize paste.
CORE-11701
2020-02-12 09:18:24 +09:00
Hermès Bélusca-Maïto be19fda765 [SHELL32] Remove some trailing spaces; use explicitly global namespace for some functions. 2019-12-29 16:14:33 +01:00
Thomas Faber c2b476bd77 [SHELL] IPersistFolder::Initialize takes a PCIDLIST_ABSOLUTE. CORE-16385 2019-09-22 16:19:11 +02:00
Thomas Faber b90c24d640 [SHELL] IPersistFolder2::GetCurFolder takes a PIDLIST_ABSOLUTE*. CORE-16385 2019-09-22 16:19:09 +02:00
Mark Jansen f5731a41f8 [SHELL32] Use the same definitions for shell32 and it's static libs 2019-04-18 19:21:37 +02:00
Mark Jansen f9e50f5471 [ATL] Add GET_X_LPARAM and GET_Y_LPARAM to atlwin.h
Remove all local definitions
2019-01-15 14:34:53 +02:00