Skip to main content
IUnknown::AddRef method

Increments the reference count for an interface on an object. This method should be called for every new copy of a pointer to an interface on an object.


ULONG AddRef();


This method has no parameters.

Return value

The method returns the new reference count. This value is intended to be used only for test purposes.


Objects use a reference counting mechanism to ensure that the lifetime of the object includes the lifetime of references to it. You use AddRef to stabilize a copy of an interface pointer. It can also be called when the life of a cloned pointer must extend beyond the lifetime of the original pointer. The cloned pointer must be released by calling IUnknown::Release.

The internal reference counter that AddRef maintains should be a 32-bit unsigned integer.

Notes to Callers

Call this method for every new copy of an interface pointer that you make. For example, if you are passing a copy of a pointer back from a method, you must call AddRef on that pointer. You must also call AddRef on a pointer before passing it as an in-out parameter to a method; the method will call IUnknown::Release before copying the out-value on top of it.


Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]






IID_IUnknown is defined as 00000000-0000-0000-C000-000000000046

See also