IUnknown::Release
Decrements
the reference count for the calling interface on a object. If the reference
count on the object falls to 0, the object is freed from memory.
ULONG Release(void);
Return Value
Returns the
resulting value of the reference count, which is used for diagnostic/testing
purposes only. If you need to know that resources have been freed, use an
interface with higher-level semantics.
Remarks
If IUnknown::AddRef has been called on this
object s interface n times and this is the n+1th
call to IUnknown::Release, the implementation of IUnknown::AddRef
must cause the interface pointer to free itself. When the released pointer is
the only existing reference to an object (whether the object supports single or
multiple interfaces), the implementation must free the object.
Note Aggregation of
objects restricts the ability to recover interface pointers.
Notes to Callers
Call this
function when you no longer need to use an interface pointer. If you are
writing a function that takes an in-out parameter, call IUnknown::Release
on the pointer you are passing in before copying the out-value on top of it.
See Also