Compartir a través de


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.

Vea también

ENTRYID

ENTRYLIST

IMAPIFolder : IMAPIContainer

MFCMAPI como un ejemplo de código

Uso de macros para el control de errores