Yes, and what I said is correct. You must define a persistence handler for your document type and register it. Windows Explorer will use this information to generate a thumbnail. The links I gave you provide you with more information about this process. How your IExtractImage implementation gets the image is entirely up to you. For many Microsoft Office types, a thumbnail is generated when the document is saved and stored in the compound document structure. The persistence handler for those document types extracts that image. For support videos in Windows Explorer, the IExtractImage implementation extacts the frame so many seconds into the movie and uses that for the thumbmail, which is cached in the Thumbs.db. Read the Platform SDK for more information. You can also read Mike Dunn's The Complete Idiot's Guide to Writing Shell Extensions - Part I[^], a step-by-step tutorial on writing shell extensions in C++. There is a whole series. This doesn't cover the IExtractImage extension, but should give you a basic idea of what I already covered. I also gave you the information you need to know how to implement the shell interface in C# and register your .NET assembly as a CCW, or COM-Callable Wrapper, so that it can be used by the shell to use your IExtractImage implementation for your document type.
Microsoft MVP, Visual C# My Articles