The published COM specification mandates that COM objects must minimally implement the IUnknown interface. This interface is comprised of three functions - QueryInterface, AddRef and Release.
QueryInterface is used to retrieve a pointer to a vector containing pointers to object methods
AddRef is used by clients to indicate that a COM object is being referenced. This is necessary to ensure that a COM object is not disposed prematurely
Release is used by clients to indicate that they have finished using the COM object. An unreferenced COM object may be safely disposed