sharpshell icon indicating copy to clipboard operation
sharpshell copied to clipboard

rfc other methods to create context menu items

Open Countryen opened this issue 5 years ago • 0 comments

Version of SharpShell used: 2.x.y

Related type(s) of SharpShell-Server: SharpContextMenu

Hey there, this is a request for comment, requesting everyones oppinion. Also, it is a new feature/improvement, which doesn't have a very high priority right now, just wanted to write it down as it might proof useful in the future.

I've have been reading a bit microsoft docs lately and found this article very interesting. Basically, Microsoft discourages the use of IContextMenu and encourages the use of "static verbs" or "other dynamic verb methods".

They say you shouldn't use IContextMenu because it's over-powered and complicated and there are easier/leightweight options:

  • static CreateProcess
  • static IDropTarget
  • static IExecuteCommand
  • static IExplorerCommand
  • dynamic Advanced Query Syntax + static verb
  • IExplorerCommand
  • IExplorerCommandState + static verb

First: Maybe SharpShell could provide multiple options to build SharpContextMenu or decide dynamically which option to chose (for registration mainly) to have the least impact. Of course, we should keep in mind not to make it complicated for new projects/beginners.

Second: The docs and examples could highlight even more of these best practice for SharpContextMenu (dos and don'ts).

These two steps could help improve optimizing the ContextMenu if an over-powered IContextMenu isn't really needed.

Countryen avatar Nov 05 '19 21:11 Countryen