This can be done, but it is not necessarily a good idea. You need to wrap the shell extension API, which is all COM based, so it can be used from .NET.
However, the problem occurs if the user has extensions that use .NET 1.1. Version 2 of the CLR cannot be loaded into the application loading the v1.1 CLR, so this can lead to very odd behavior. CLR 4 and .NET 4 address this by allowing .NET hosting alongside the process.
source
share