Until .NET 4.0 it was impossible to reliably create Windows Shell Extensions using .NET code. With improvements to the framework, it is now possible to use .NET to create these extensions.
Shell Context Menus are COM servers that are registered in the system that allow the context menus of shell objects to be extended. This could be the context menu for a specific file type, such as *.txt files, file classes such as ‘text files’, drives, folders and more. The context menus can be used to provide advanced functionality that can be accessed quickly through Windows Explorer. For example you can create a Shell Extension that allows you to count the lines in any text file by right clicking on it and choosing ‘Count Lines’.
You can find more about Shell Extensions and code for creating custom context menus at http://www.codeproject.com/Articles/512956/NET-Shell-Extensions-Shell-Context-Menus