I want to create a property handler in .NET. I have already implemented the IInitializeWithFile, IPropertyStore and IPropertyStoreCapabilities classes but I don’t know how to implement their functions to create custom properties and display data. Can someone explain it?
I already know this: http://blogs.msdn.com/b/oldnewthing/archive/2006/12/18/1317290.aspx so please don’t discuss about that.
Remark: If the system you are running on doesn’t have .NET 4 then Microsoft recommended NOT to use .NET for this because of the inherent restriction with the older versions that one process can’t run multiple framework versions at the same time. Depending on the OS etc. case it could be recommended to implement this with C/C++. BEWARE that even with .NET 4 MS says .NET-based shell extensions are not supported. To circumvent that you should implement a native proxy DLL which gets loaded into the respective processes (like Windows Explorer) and communicates with your .NET implementation via IPC.
That aside the implementation of shell extension/property handler is a really tough job… some links with information / samples / source code / libraries etc.:
IInitializeWithStream(highly recommended by MS instead ofIInitializeWithFile!)IPropertyUIinterface