Looks great. But with the EZShellExtensions.Net product,
I'd be very careful writing shell extensions in .NET,
because there can be a lot of versioning problems there.
The ideal solution would be similar to ASP.NET where the
.NET stuff is hosted in a totally separate process, and
the "framework" that they provide is in unmanaged code.
The problem isn't that you might have .NET 1.1 and .NET
2.0 extensions at the same time (which the .NET folks
have tried very had to get right anyway). The problem is
that if you run a .NET 1.1 application which then pops
up a file Open/Save dialog, that dialog uses loads the
shell into it's process, which will try to load your
extension. If your extension is .NET 2.0, then it's
going to crash.