Display custom header or column in Windows Explore

2019-01-14 04:45发布

问题:

My app adds some custom metadata to files. I want to display it in Windows Explorer like this:

or this:

Is there a way to do this in .NET?

回答1:

It can be done on XP using a Column Handler shell extension - see here: http://www.codeproject.com/Articles/3747/Explorer-column-handler-shell-extension-in-C#

However IColumnHandler is not supported on Vista and up. Here you have to implement PropertyHandler. See Windows SDK \Samples\winui\Shell\AppShellIntegration\PropertyHandlers.

Each property is described by property schema XML file. This property schema must be registered with PSRegisterPropertySchema(). Property handler implements IInitializeWithXXX, IPropertyStore and optionally IPropertyStoreCapabilities. You have to register CLSID of your implementation for each file extension you want to handle.

Unfortunately, you cannot use AllFileSystemObject or * in registration.