I decided today to have a go at making a WinMerge unpack file plugin. It's job is simple: call another executable with the infile and outfile parameters to do the work. I looked at the DisplayXML and Convert MSWord plugins and coded up something in VB.NET on VS 2010 Pro. As that failed to work I compiled a debug WinMerge build and used that to determine that at least part of the problem is that the LoadTypeLib call is failing in the Plugins.cpp file.
The VB code does implement the properties, and the UnpackFile and PackFile functions. I included the COM awareness flags and the Com attributes on the class definition. I copied over the class and interface GUIDs from the DisplayXML plugin to see if that helps, but it didn't.
I'm stumped now: any suggestions? I have no problem posting the project code if that helps... though I'm not sure what the "approved" method for that is here. The main issue is that the dll is noticed but rejected as not being a valid plugin.