Question

How do tools like SVN and Git attach themselves to Windows Explorer, such that they add options to the right-click menu as well as adding the tick/exclamation mark based on whether a file has been edited?

(I'm not after Git or SVN-specific information - I just used them as examples)

Was it helpful?

Solution

What you want is called Shell Extensions, are in-process COM objects which extends the abilities of Windows operating system.

alt text
(source: csscript.net)

you can see these links

Bye.

OTHER TIPS

Explorer allows DLLs to register as shell extensions. A shell extension can provide context menu items, icon overlays and numerous other features. It does this by exposing certain COM interfaces which Explorer calls e.g. prior to displaying a menu or icon. Here's the MSDN home page for shell extensibility -- though oddly enough the stuff about context menus and icon overlays no longer seems to be there -- you may have to try the offline SDK under Win32 and COM Development | User Interface | Windows User Experience | Windows Shell | Shell Developer's Guide | Integration of Applications into the Shell.

Depending on the shell extension you want, they can be QUITE complex to implement. I don't know what you're looking for, to quickly write a nice extension, or to get in to the nitty-gritty and learn all the hands-on of it all. If you aren't as concerned with the how, and just have some ideas you want to implement, check out this library for writing shell extensions...

EZShellExtensions MFC
EZShellExtensions.NET

There are a lot of different types:
- Context Menus
- Property Pages
- Icon Handlers
and many more...

They also have another library for writing namespace extensions (things that show up in the tree pane of Windows Explorer).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top