Chapter 1 is a brief introduction, and Chapter 2 provides a thorough overview. The information presented here is all taken from the COM specification. Interface Design Rules Interfaces must directly or indirectly inherit from IUnknown .
Interfaces are immutable.
Once assigned an IID and published, no element of the interface definition may change. String parameters in interface member functions should be Unicode . Implementing IUnknown Object identity. It is required that any call to QueryInterface on any interface for a given object instance for the specific interface IUnknown must always return the same physical pointer value. Static interface set.