Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All


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.

Starts a form to open an existing message.

  ULONG_PTR ulUIParam,
  ULONG ulFlags,
  LPCSTR lpszMessageClass,
  ULONG ulMessageStatus,
  ULONG ulMessageFlags,
  LPMAPIFOLDER pFolderFocus,
  REFIID riid,
  LPVOID FAR * ppvObj


[in] A handle to the parent window of the progress indicator that is displayed while the form is opened. The ulUIParam parameter is ignored unless the MAPI_DIALOG flag is set in the ulFlags parameter.


[in] A bitmask of flags that controls how the form is opened. The following flags can be set:


Displays a user interface to provide status or prompt the user for more information. If this flag is not set, no user interface is displayed.


Only message class strings that are an exact match should be resolved.


[in] A pointer to a string that names the message class of the message to be loaded. If NULL is passed in the lpszMessageClass parameter, the message class is determined from the message pointed to by the pmsg parameter.


[in] A bitmask of client-defined or provider-defined flags copied from the PR_MSG_STATUS (PidTagMessageStatus) property of the message that provides information about the state of the message. The ulMessageStatus parameter must be set if lpszMessageClass is non-NULL; otherwise, ulMessageStatus is ignored.


[in] A pointer to a bitmask of flags copied from the PR_MESSAGE_FLAGS (PidTagMessageFlags) property of the message that indicates the current state of the message. The ulMessageFlags parameter must be set if lpszMessageClass is non-NULL; otherwise, ulMessageFlags is ignored.


[in] A pointer to the folder that directly contains the message. The pFolderFocus parameter can be NULL if such a folder does not exist (for example, if the message is embedded in another message).


[in] A pointer to the message site of the message.


[in] A pointer to the message.


[in] A pointer to the view context for the message. The pViewContext parameter can be NULL.


[in] The interface identifier (IID) of the interface to be used for the returned form object. The riid parameter must not be NULL.


[out] A pointer to a pointer to the returned interface.


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


The form does not support the requested interface.


The message class passed in lpszMessageClass does not match the message class for any form in the form library.

Form viewers call the IMAPIFormMgr::LoadForm method to open a form for an existing message. LoadForm opens the form object, loads the message into the form object, sets up the appropriate view context, if necessary, and returns the requested interface for the form object.

The pFolderFocus parameter points to the folder that contains the message. If the message is embedded in another message, pFolderFocus should be NULL.

If NULL is passed in lpszMessageClass, the implementation obtains the message's message class, status, and flags from the message's PR_MESSAGE_CLASS (PidTagMessageClass), PR_MSG_STATUS and PR_MESSAGE_FLAGS properties. If a message class string is provided in lpszMessageClass, the implementation must use the values in ulMessageStatus and ulMessageFlags.

For MFCMAPI sample code, see the following table.






MFCMAPI uses the IMAPIFormMgr::LoadForm method to load a form before displaying it.

© 2015 Microsoft