Search code examples
c++windowsdelphiwinapishell

How to access Windows shell context menu items?


In Windows Explorer, you right click on a file, a context menu shows up which contains built-in items like 'Send to...' and/or 3rd party actions such as 'zip file with Winzip'. My question are:

  • How to obtain the full list of available menu items for a specific file?
  • For each menu item, how to get the caption?
  • How to invoke a specific menu item action for a specific disk file?

Thank you in advance!

[EDIT]: While other info is absolutely useful, Delphi solution will be much appreciated!


Solution

  • The key to obtain the Shell Context menu is use the IContextMenu interface.

    check this great article Shell context menu support for more details.

    UPDATE

    for delphi examples you can see the JclShell unit from the JEDI JCL (check the DisplayContextMenu function) and the ShellCtrls unit included in the samples folder of Delphi.