Compartir a través de


IMAPIFormAdviseSink::OnActivateNext

Hace referencia a: Outlook 2013 | Outlook 2016

Indica si el formulario puede controlar la clase de mensaje del siguiente mensaje que se va a mostrar.

HRESULT OnActivateNext(
  LPCSTR lpszMessageClass,
  ULONG ulMessageStatus,
  ULONG ulMessageFlags,
  LPPERSISTMESSAGE FAR * ppPersistMessage
);

Parameters

lpszMessageClass

[in] Puntero a la clase de mensaje del siguiente mensaje.

ulMessageStatus

[in] Máscara de bits de marcas definidas por el cliente o definidas por el proveedor, copiadas de la propiedad PR_MSG_STATUS (PidTagMessageStatus) del siguiente mensaje que se va a mostrar, que proporciona información de estado sobre la tabla de contenido en la que se incluye el mensaje.

ulMessageFlags

[in] Puntero a una máscara de bits de marcas copiadas de la propiedad PR_MESSAGE_FLAGS (PidTagMessageFlags) del mensaje siguiente para mostrar que indica el estado actual del mensaje.

ppPersistMessage

[out] Puntero a un puntero a la implementación de IPersistMessage para el objeto de formulario usado para el nuevo formulario, si se requiere un nuevo formulario. Se puede devolver un puntero a NULL si se puede usar el objeto de formulario actual para mostrar y guardar el siguiente mensaje.

Valor devuelto

S_OK

La notificación se realizó correctamente y el formulario puede controlar el siguiente mensaje.

S_FALSE

El formulario no controla la clase de mensaje del mensaje siguiente.

Comentarios

Los visores de formularios llaman al método IMAPIFormAdviseSink::OnActivateNext para ayudar al formulario a determinar si puede mostrar el siguiente mensaje en una carpeta. El siguiente mensaje podría ser un mensaje de cualquier clase, pero normalmente es de la misma clase o de una clase relacionada. Esto hace que el proceso de lectura de varios mensajes de la misma clase sea más eficaz al permitir que las aplicaciones cliente reutilicen objetos de formulario siempre que sea posible.

La mayoría de los objetos form usarán la clase de mensaje a la que apunta el parámetro lpszMessageClass para determinar si pueden controlar el siguiente mensaje. Normalmente, un formulario puede controlar los mensajes que pertenecen a clases de las que la clase predeterminada del formulario es una subclase, además de los mensajes que pertenecen a la clase predeterminada. Sin embargo, un formulario puede usar otros factores para determinar sin duda si se puede controlar un mensaje, como el estado enviado o no del mensaje siguiente.

Notas a los implementadores

Devuelve S_OK y NULL en el parámetro ppPersistMessage si el formulario puede controlar la clase de mensaje. Si el formulario puede crear un nuevo formulario que pueda controlar el mensaje que el formulario no puede controlar, siga estos pasos:

  1. Llame al generador de clases del formulario para crear una instancia de un nuevo objeto de formulario.

  2. Almacene esa instancia en el contenido del parámetro de puntero ppPersistMessage .

  3. Devuelve S_OK.

El visor de formulario cargará el mensaje mediante el método IPersistMessage::Load que pertenece al objeto al que apunta ppPersistMessage.

Si ni el formulario ni un formulario que puede crear pueden controlar el siguiente mensaje, devuelva S_FALSE. Sin embargo, en general, los formularios no deben devolver este valor porque provoca una disminución del rendimiento en el visor de formularios.

Referencia de MFCMAPI

Para obtener un ejemplo de código de MFCMAPI, vea la siguiente tabla.

Archivo Función Comment
MAPIFormFunctions.cpp
CMyMAPIFormViewer::ActivateNext
MFCMAPI usa el método IMAPIFormAdviseSink::OnActivateNext para implementar el método IMAPIViewContext::ActivateNext .

Vea también

IMAPIViewContext::ActivateNext

IPersistMessage : IUnknown

IPersistMessage::Load

Propiedad canónica PidTagMessageFlags

Propiedad canónica PidTagMessageStatus

IMAPIFormAdviseSink : IUnknown

MFCMAPI como un ejemplo de c�digo