Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer


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 page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Provides an alternative way to invoke the OLE method IUnknown::Release.

Header file:


Implemented by:


Called by:

Client applications and service providers

ULONG UlRelease(
  LPVOID punk


[in] Pointer to an interface derived from the IUnknown interface, in other words any MAPI interface.


The call succeeded and has returned the expected value or values.


An error of unexpected or unknown origin prevented the operation from completing.

The reference count is the number of existing pointers to the object to be released.

If the punk parameter is NULL, the function returns immediately without calling IUnknown::Release

UlRelease returns the value returned by the IUnknown::Release method, which can be equal to the reference count for the object to be released.

For more information about IUnknown::Release, see Implementing the IUnknown Interface.

© 2015 Microsoft