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.

Calls an internal function to check the parameters client applications have passed to service providers and MAPI.

Header file:


Implemented by:


Called by:

Service providers

HRESULT UlValidateParms(
  METHODS eMethod,
  LPVOID First


[in] Specifies, by enumeration, the method to validate.


[in] Pointer to the first argument on the stack.


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


An error prevented the operation from completing.

Parameters passed between MAPI and service providers are assumed to be correct and undergo only debug validation with the CheckParms macro. Providers should check all parameters passed in by client applications, but clients should assume that MAPI and provider parameters are correct. Use the HR_FAILED macro to test return values.

The UlValidateParms macro is called differently depending on whether the calling code is C or C++. This macro is used to validate parameters for the few IUnknown and MAPI methods that return ULONG instead of HRESULT values; the ValidateParms macro works for all others.

© 2015 Microsoft