Yes, every COM class must implement IUnknown , because every COM class inherits from IUnknown - one of the main principles of COM technology. This is usually done using ATL - it has templates and macros for this rather easily, and even if you do not want to use ATL, you can easily write a template for most trivial cases (for example, implement one interface) and reuse it.
source share