IMessage::SetReadFlag
Hace referencia a: Outlook 2013 | Outlook 2016
Establece o borra la marca de MSGFLAG_READ en la propiedad PR_MESSAGE_FLAGS (PidTagMessageFlags) del mensaje y administra el envío de informes de lectura.
HRESULT SetReadFlag(
ULONG ulFlags
);
Parameters
ulFlags
[in] Máscara de bits de marcas que controla la configuración de la marca de lectura de un mensaje, es decir, la marca de MSGFLAG_READ del mensaje en su propiedad PR_MESSAGE_FLAGS y el procesamiento de informes de lectura. Se pueden establecer las siguientes marcas:
CLEAR_READ_FLAG: la marca de MSGFLAG_READ debe borrarse en PR_MESSAGE_FLAGS y no se debe enviar ningún informe de lectura.
CLEAR_NRN_PENDING: la marca de MSGFLAG_NRN_PENDING debe borrarse en PR_MESSAGE_FLAGS y no se debe enviar un informe sin lectura.
CLEAR_RN_PENDING: la marca de MSGFLAG_RN_PENDING debe borrarse en PR_MESSAGE_FLAGS y no se debe enviar ningún informe de lectura.
GENERATE_RECEIPT_ONLY: se debe enviar un informe de lectura si uno está pendiente, pero no debe haber ningún cambio en el estado de la marca de MSGFLAG_READ.
MAPI_DEFERRED_ERRORS: permite que SetReadFlag se devuelva correctamente, posiblemente antes de que se complete la operación.
SUPPRESS_RECEIPT: se debe cancelar un informe de lectura pendiente si se ha solicitado un informe de lectura y esta llamada cambia el estado del mensaje de no leído a leído. Si esta llamada no cambia el estado del mensaje, el proveedor del almacén de mensajes puede omitir esta marca.
Valor devuelto
S_OK
La marca de lectura del mensaje se ha establecido o borrado correctamente.
MAPI_E_NO_SUPPRESS
El proveedor del almacén de mensajes no admite la supresión de informes de lectura.
MAPI_E_INVALID_PARAMETER
Una de las siguientes combinaciones de marcas se establece en el parámetro ulFlags :
SUPPRESS_RECEIPT | CLEAR_READ_FLAG
SUPPRESS_RECEIPT | CLEAR_READ_FLAG | GENERATE_RECEIPT_ONLY
CLEAR_READ_FLAG | GENERATE_RECEIPT_ONLY
Comentarios
El método IMessage::SetReadFlag establece o borra la marca de MSGFLAG_READ del mensaje en la propiedad PR_MESSAGE_FLAGS y llama a IMAPIProp::SaveChanges para guardar el mensaje. Al establecer la marca de MSGFLAG_READ se marca un mensaje como leído, lo que no indica necesariamente que el destinatario previsto haya leído realmente el mensaje.
SetReadFlags también administra el envío de informes de lectura. Solo se envía un informe de lectura si el remitente ha solicitado uno.
La marca de lectura no se puede modificar para:
Mensajes que no existen.
Mensajes que se han movido a otro lugar.
Mensajes abiertos con permiso de lectura y escritura.
Mensajes que se envían actualmente.
Notas para los llamadores
Si no se establece ninguna de las marcas en el parámetro ulFlags , se aplican las reglas siguientes:
Si MSGFLAG_READ ya está establecido, no haga nada.
Si no se establece MSGFLAG_READ, establézcalo y envíe los informes de lectura pendientes si se establece la propiedad PR_READ_RECEIPT_REQUESTED (PidTagReadReceiptRequested).
Si se establecen las marcas SUPPRESS_RECEIPT y GENERATE_RECEIPT_ONLY, el bit PR_READ_RECEIPT_REQUESTED, si se establece, debe borrarse y no se debe enviar un informe de lectura.
Cuando se establece la marca de SUPPRESS_RECEIPT:
Si MSGFLAG_READ ya está establecido, no haga nada.
Si no se establece MSGFLAG_READ, establézcalo y cancele los informes de lectura pendientes.
Cuando se establezca la marca de CLEAR_READ_FLAG, desactive la marca de MSGFLAG_READ en la propiedad PR_MESSAGE_FLAGS de cada mensaje y no envíe ningún informe de lectura.
Cuando se establezca la marca de GENERATE_RECEIPT_ONLY, envíe los informes de lectura pendientes. No establezca ni borre MSGFLAG_READ.
Cuando se establezcan las marcas SUPPRESS_RECEIPT y GENERATE_RECEIPT_ONLY, establezca la propiedad PR_READ_RECEIPT_REQUESTED en FALSE si está establecida y no envíe un informe de lectura.
Puede optimizar el comportamiento de los informes suprimiendo la generación de informes de lectura en determinadas condiciones. Sin embargo, si no admite la supresión de informes y un cliente llama a SetReadFlag con la marca SUPPRESS_RECEIPT establecida, devuelva MAPI_E_NO_SUPPRESS.
Referencia de MFCMAPI
Para obtener un ejemplo de código de MFCMAPI, vea la siguiente tabla.
Archivo | Función | Comment |
---|---|---|
FolderDlg.cpp |
CFolderDlg::OnSetReadFlag |
MFCMAPI usa el método IMessage::SetReadFlag para establecer marcas de lectura en los mensajes seleccionados. |