In computer programming, the IUnknown interface is the fundamental interface in the Component Object Model (COM).
The COM specification[1] mandates that COM objects must implement this interface.
An IUnknown (or IUnknown-derived) interface consists of a pointer to a virtual method table that contains a list of pointers to the functions that implement the functions declared in the interface, in the order that they are declared in the interface.
[2] The IUnknown interface exposes three methods: QueryInterface, AddRef, and Release:[3] The IUnknown interface ID is defined as a GUID with the value of {00000000-0000-0000-C000-000000000046}.
A COM component's interfaces are required to exhibit the reflexive, symmetric, and transitive properties.