Windows Explorer is responsible for displaying the icons and thumbnails, and has several features that can be added by third-party applications. What you are looking for, are the ...
Shell Extensions
Shell Extensions , as the name says, can be implemented to add functionality in the OS.
They are basically implemented as COM interfaces, and entry points are defined in the Windows API.
For C #, a starting point is this:
link
Some examples of the features:
File Thumbnails
They can be associated with certain extensions or CLSID, which is what you are looking for.
PreviewHandlers
Theywouldbearelevantcomplementforthethumbnails,sinceitwilldothethumbnailsoficons,itwouldbenicetotakeadvantageofthelogictodisplayinthepreviewpaneofthewindowitself:
Overlay of icons
Synchronization programs with external storage, or applications such as TortoiseGit, may display a small indicator on the application icon to show if the file is synchronized, for example;
Propertysheets
Newpagesinthefileproperties:haveextensionstoWindowsthatallowchangingfiledates,detectionofalternativeNTFSstreams,etc.
I will not go into detail about the implementation itself, because it depends a lot on the language used.
As a companion reading, there is a very interesting series in the Code Project, made for .NET, at this address (which is where the response images came from):
link