The Fundamental COM Interface, IUnknown

From RAD Studio
Jump to: navigation, search

Go Up to COM Interfaces


All COM objects must support the fundamental interface, called IUnknown, a typedef to the base interface type IInterface. IUnknown contains the following routines:

QueryInterface

Provides pointers to other interfaces that the object supports.

AddRef and Release

Simple reference counting methods that keep track of the object's lifetime so that an object can delete itself when the client no longer needs its service.



Clients obtain pointers to other interfaces through the IUnknown method, QueryInterface. QueryInterface knows about every interface in the server object and can give a client a pointer to the requested interface. When receiving a pointer to an interface, the client is assured that it can call any method of the interface.

Objects track their own lifetime through the IUnknown methods, AddRef and Release, which are simple reference counting methods. As long as an object's reference count is nonzero, the object remains in memory. Once the reference count reaches zero, the interface implementation can safely dispose of the underlying object(s).

See Also