Microsoft Windows CE 3.0  

IUnknown::AddRef

Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

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

ULONG AddRef( void );

Return Value

Returns an integer from 1 to n, the value of the new reference count. This information is meant to be used for diagnostic/testing purposes only, because, in certain situations, the value may be unstable.

Remarks

Objects use a reference counting mechanism to ensure that the lifetime of the object includes the lifetime of references to it. You use IUnknown::AddRefto 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.

Objects must be able to maintain (231) –1 outstanding pointer references. Therefore, the internal reference counter that IUnknown::AddRefmaintains must be a 32-bit unsigned integer.

Notes to Callers

Call this function 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 function, you must call IUnknown::AddRefon that pointer. You must also call IUnknown::AddRefon a pointer before passing it as an in-out parameter to a function; the function will call IUnknown::Releasebefore copying the out-value on top of it.

Requirements

Runs On Versions Defined in Include Link to
Windows CE OS 1.0 and later Unknwn.h    
Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

See Also

IUnknown::Release