IUnknown , . SDK , , QueryInterface, AddRef Release, C++. (Component Object Model Specification) , . IUnknown IUnknown , .
2 ++- , . , , IUnknown. , . , , , , , , vptr. , , IUnknown vptr , .
IUnknown , . IUnknown, . :
import "unknwn.idl"; [object, uuid(CD538340-A56D-11d0-8C2F-0080C73925BA)] interface IVehicle : IUnknown { HRESULT GetMaxSpeed([out, retval] long *pMax); } [object, uuid(CD53834l-A56D-11d0-8C2F-0080C73925BA)] interface ICar : IVehicle { HRESULT Brake(void); } [object, uuid(CD538342-A56D-11d0-8C2F-0080C73925BA)] interface IPlane : IVehicle { HRESULT TakeOff(void); } [object, uuid(CD538343-A56D-11d0-8C2F-0080C73925BA)] interface IBoat : IVehicle { HRESULT Sink(void); }
. , . IUnknown. 4.1 CarBoatPlane, . , , , : , CarBoatPlane : IBoat, IPlane, ICar, IVehicle IUnknown.
IUnknown, , , QueryInterface , (Symmetric/Transitive/Reflexive). (identity) . IUnknown, , , , .