I haven't made a shell extension, but I did come across a bit of information about it a while back while researching Internet Explorer extensions (they use the same system more or less).
The easiest way to implement something like this would probably be in C# or C++, because you'll need to interface with COM. If the information is in XML I'd say go with C# as it has included facilities for dealing with XML.
This article[
^] is a bit dated, but it looks like it should give you a starting point.
[EDIT]
Found a simpler way:
This thread[
^] describes how to add tags to mkv files:
The program Icaros adds more detailed properties of the mkv files to the windows shell, available at:
http://shark007.net/tools.html[
^]
The tags exposed by Icaros are searchable if you format the search correctly, e.g. use "frameheight:1080" to find 1080p videos (Supposedly Icaros also generates thumbnails, but it's not on my system)