Creating another right click menu in Windows Explorer

Hello! This is my first of hopefully many posts on C++ forums, I hope to take part in the forums in the near future!

Anyway, I have been designing a utility program which is hard to explain, but basically is useful multiple "copy locations". More or less, you can copy more than one item at once using CTRL+C+1 or CTRL+C+2. But for now I want to setup a much simpler idea before diving in. I want to have a "dropbox" to dump files in a more permanent place, so I can right click on a load of files and it will put them in a new folder under a predefined location. I shouldn't need any help with moving the files and so on, but I will need some help with the right-click part.

So, this post is requesting help for not the above, but the below.

I want to add a "right click menu" when using windows explorer. For example, currently in Windows 7 you can right click a file and then a menu pops up, you can then click Send To for example and send your file somewhere or do something with it. I want to create another one of these menus. For the sake of this post lets say when a use right-clicks on a file and pressed a button named "helloWorld" a dialog box will pop up and tell the user a message.

If you having trouble with my explanation of what I want to do, an example is 7-Zip, anyone who uses it will know you can right click on a file and you have a 7-Zip sub-menu. This is not built into Windows, it was added when I installed 7-Zip. I want to add a sub-menu with my "program", like 7-Zip. (Well, OK, not a sub-menu, rather a button for now.)

Thanks in advance, it would be a great help if you could help and give me and example. It appears examples improve my success rate magnificently :)

~Joe
I found a few things on MSDN which appear to be what you are looking for. Have a look at:
http://msdn.microsoft.com/en-us/library/cc144175(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/cc144171(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/cc144173(v=vs.85).aspx
These seem to be the most relevant. However, I couldn't immediately find a way to do it for all arbitrary file types that may exist, but looking around in that section could help.

EDIT:
Here is an article that could also help you with your understanding: http://www.codeguru.com/cpp/com-tech/shell/general/article.php/c17723/C-programming-How-does-Shell-Context-Menu-Work---Part-2.htm
Last edited on
Topic archived. No new replies allowed.