Compartir a través de


IMAPIFolder::CopyMessages

Hace referencia a: Outlook 2013 | Outlook 2016

Copia o mueve uno o varios mensajes.

HRESULT CopyMessages(
  LPENTRYLIST lpMsgList,
  LPCIID lpInterface,
  LPVOID lpDestFolder,
  ULONG_PTR ulUIParam,
  LPMAPIPROGRESS lpProgress,
  ULONG ulFlags
);

Parameters

lpMsgList

[in] Puntero a una matriz de estructuras ENTRYLIST que identifican el mensaje o los mensajes que se van a copiar o mover.

lpInterface

[in] Puntero al identificador de interfaz (IID) que representa la interfaz que se va a usar para acceder a la carpeta de destino a la que apunta el parámetro lpDestFolder . Al pasar NULL, el proveedor de servicios devuelve la interfaz de carpeta estándar IMAPIFolder : IMAPIContainer. Los clientes deben pasar NULL. Otros autores de llamadas pueden establecer el parámetro lpInterface en IID_IUnknown, IID_IMAPIProp, IID_IMAPIContainer o IID_IMAPIFolder.

lpDestFolder

[in] Puntero a la carpeta abierta para recibir los mensajes copiados o movidos.

ulUIParam

[in] Identificador de la ventana primaria de los cuadros de diálogo o ventanas que muestra este método. El parámetro ulUIParam se omite a menos que el cliente establezca la marca MESSAGE_DIALOG en el parámetro ulFlags y pase NULL en el parámetro lpProgress .

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 la marca de MESSAGE_DIALOG se establezca en ulFlags.

ulFlags

[in] Máscara de bits de marcas que controla cómo se realiza la operación de copia o movimiento. Se pueden establecer las siguientes marcas:

MAPI_DECLINE_OK

Informa al proveedor del almacén de mensajes de que devuelva inmediatamente MAPI_E_DECLINE_COPY si implementa IMAPIFolder::CopyMessages llamando al método IMAPISupport::D oCopyTo o IMAPISupport::D oCopyProps del objeto de soporte técnico.

MESSAGE_DIALOG

Muestra un indicador de progreso a medida que avanza la operación.

MESSAGE_MOVE

El mensaje o los mensajes se van a mover en lugar de copiarse. Si no se establece MESSAGE_MOVE, se copian los mensajes.

Valor devuelto

S_OK

El mensaje o los mensajes se han copiado o movido correctamente.

MAPI_E_DECLINE_COPY

El proveedor implementa este método llamando a un método de objeto de soporte técnico y el autor de la llamada ha pasado la marca de MAPI_DECLINE_OK.

MAPI_W_PARTIAL_COMPLETION

La llamada se realizó correctamente, pero no todas las entradas se copiaron o movieron 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::CopyMessages copia o mueve mensajes a otra carpeta.

Los mensajes que se abren con permiso de lectura y escritura se pueden mover o copiar.

Notas a los implementadores

Si va a copiar mensajes en otro almacén de mensajes sin usar el método IMAPISupport::CopyMessages , primero debe llamar a IMAPIFolder::SetReadFlags con la marca GENERATE_RECEIPT_ONLY establecida. El almacén de mensajes receptor no es responsable de generar informes de lectura para los mensajes copiados o movidos. Si llama a IMAPISupport::CopyMessages para implementar IMAPIFolder::CopyMessages, no llame a SetReadFlags; MAPI lo llamará.

La implementación puede mover o copiar los mensajes en cualquier orden y generar informes de estado de lectura en cualquier orden. Es decir, puede terminar de copiar mensajes antes de generar cualquiera de los informes de estado de lectura o enviar los informes antes de que la implementación inicie la operación de copia. Sin embargo, se deben enviar informes de lectura para que se copien todos los mensajes, independientemente de si la copia se realiza correctamente.

Cuando la operación de copia o movimiento implica más de un mensaje, realice la operación lo más completa posible. 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.

Intente mantener los identificadores de entrada en las operaciones de movimiento o copia. También debe conservar los identificadores de entrada, aunque no es necesario.

Envíe notificaciones al mover o copiar mensajes para que los clientes estén alertados de que sus llamadas a los métodos IMAPIProp::SaveChanges de los mensajes pueden producir un error.

No incluya el estado de un mensaje en la operación de copia o movimiento. Mover o copiar el estado de un mensaje afecta en gran medida al rendimiento.

Notas para los llamadores

Use IMAPIFolder::CopyMessages para rellenar las carpetas de resultados de búsqueda, donde los mensajes a menudo se agrupan por carpeta primaria.

Espere estos valores devueltos en las condiciones siguientes.

Condition Valor devuelto
IMAPIFolder::CopyMessages ha copiado o movido correctamente cada mensaje. S_OK
IMAPIFolder::CopyMessages no pudo copiar o mover correctamente todos los mensajes. MAPI_W_PARTIAL_COMPLETION
IMAPIFolder::CopyMessages no se pudo completar. Cualquier valor de error

Cuando IMAPIFolder::CopyMessages no se pueda completar, no suponga que no se ha realizado ningún trabajo. IMAPIFolder::CopyMessages podría haber podido copiar o mover uno o varios mensajes antes de encontrar el error.

Vea también

IMAPIFolder : IMAPIContainer