IMAPIFolder::DeleteMessages
Hace referencia a: Outlook 2013 | Outlook 2016
Elimina uno o varios mensajes.
HRESULT DeleteMessages(
LPENTRYLIST lpMsgList,
ULONG_PTR ulUIParam,
LPMAPIPROGRESS lpProgress,
ULONG ulFlags
);
Parameters
lpMsgList
[in] Puntero a una estructura ENTRYLIST que contiene el número de mensajes que se van a eliminar y una matriz de estructuras ENTRYID que identifican los mensajes.
ulUIParam
[in] Identificador de la ventana primaria del indicador de progreso. El parámetro ulUIParam se omite a menos que se establezca la marca MESSAGE_DIALOG en el parámetro ulFlags .
lpProgress
[in] Puntero a un objeto de progreso que muestra un indicador de progreso. Si se pasa NULL en lpProgress, el proveedor del almacén de mensajes muestra un indicador de progreso mediante la implementación del objeto de progreso MAPI. El parámetro lpProgress se omite a menos que se establezca la marca MESSAGE_DIALOG en el parámetro ulFlags .
ulFlags
[in] Máscara de bits de marcas que controla cómo se eliminan los mensajes. Se pueden establecer las siguientes marcas:
DELETE_HARD_DELETE
Quita permanentemente todos los mensajes, incluidos los eliminados temporalmente.
MESSAGE_DIALOG
Muestra un indicador de progreso a medida que avanza la operación.
Valor devuelto
S_OK
El mensaje o los mensajes especificados se eliminaron correctamente.
MAPI_W_PARTIAL_COMPLETION
La llamada se realizó correctamente, pero no todos los mensajes se eliminaron correctamente. Cuando se devuelve esta advertencia, la llamada debe controlarse correctamente. Para probar esta advertencia, use la macro HR_FAILED . Para obtener más información, vea Uso de macros para el control de errores.
Comentarios
El método IMAPIFolder::D eleteMessages elimina los mensajes de una carpeta. Los mensajes que no existen, que se han movido a otro lugar, que están abiertos con permiso de lectura y escritura o que se envían actualmente no se pueden eliminar.
Notas a los implementadores
Cuando la operación de eliminación implica más de un mensaje, realice la operación lo más completa posible para cada carpeta, incluso si uno o varios de los mensajes no se pueden eliminar. No detenga la operación prematuramente a menos que se produzca un error que esté fuera de su control, como quedarse sin memoria, quedarse sin espacio en disco o daños en el almacén de mensajes.
Notas para los llamadores
Espere estos valores devueltos en las condiciones siguientes.
Condition | Valor devuelto |
---|---|
DeleteMessages ha eliminado correctamente todos los mensajes. | S_OK |
DeleteMessages no pudo eliminar correctamente todos los mensajes y subcarpetas. | MAPI_W_PARTIAL_COMPLETION o MAPI_E_NOT_FOUND |
DeleteMessages no se pudo completar. | Cualquier valor de error excepto MAPI_E_NOT_FOUND |
Cuando DeleteMessages no se pueda completar, no suponga que no se ha realizado ningún trabajo. Es posible que DeleteMessages haya podido eliminar uno o varios de los mensajes antes de encontrar el error.
DeleteMessages devuelve MAPI_W_PARTIAL_COMPLETION o MAPI_E_NOT_FOUND, en función de la implementación del almacén de mensajes.
Referencia de MFCMAPI
Para obtener un ejemplo de código de MFCMAPI, vea la siguiente tabla.
Archivo | Función | Comment |
---|---|---|
FolderDlg.cpp |
CFolderDlg::OnDeleteSelectedItem |
MFCMAPI usa el método IMAPIFolder::D eleteMessages para eliminar los mensajes especificados. |