In the course of working on TortoiseHg recently, I wrote a class called CSimpleUnknown that provides a basic IUnknown implementation, eliminating the need to duplicate the code in each class that implements a COM object. I thought that this code could also be useful in the TortoiseOverlays component and have prepared a patch that uses CSimpleUnknown to eliminate the code duplication that exists in CShellExt and CShellExtClassFactory. Please note that I've modified the class slightly from the form that it takes in TortoiseHg in order to be consistent with the coding conventions used in TortoiseOverlays.
David Golub
simpleunknown.patch
Description: Binary data

