IMAPISupport::DoCopyProps
Hace referencia a: Outlook 2013 | Outlook 2016
Copia o mueve una o varias propiedades de un objeto a otro objeto.
HRESULT DoCopyProps(
LPCIID lpSrcInterface,
LPVOID lpSrcObj,
LPSPropTagArray lpIncludeProps,
ULONG_PTR ulUIParam,
LPMAPIPROGRESS lpProgress,
LPCIID lpDestInterface,
LPVOID lpDestObj,
ULONG ulFlags,
LPSPropProblemArray FAR * lppProblems
);
Parameters
lpSrcInterface
[in] Puntero al identificador de interfaz (IID) que representa la interfaz que se va a usar para acceder al objeto con las propiedades que se van a copiar o mover.
lpSrcObj
[in] Puntero al objeto que contiene las propiedades que se van a copiar o mover.
lpIncludeProps
[in] Puntero a una estructura SPropTagArray que contiene una matriz contada de etiquetas de propiedad que indican las propiedades que se van a copiar o mover. El parámetro lpIncludeProps no puede ser NULL.
ulUIParam
[in] Identificador de la ventana primaria del indicador de progreso.
lpProgress
[in] Puntero a una implementación de un indicador de progreso. Si se pasa NULL en el parámetro lpProgress , el indicador de progreso se muestra mediante la implementación mapi. El parámetro lpProgress se omite a menos que se establezca la marca MAPI_DIALOG en el parámetro ulFlags .
lpDestInterface
[in] Puntero al identificador de interfaz que representa la interfaz que se va a usar para acceder al objeto para recibir las propiedades que se copian o mueven.
lpDestObj
[in] Puntero al objeto para recibir las propiedades copiadas o movidas.
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_DIALOG
Muestra un indicador de progreso.
MAPI_MOVE
DoCopyProps debe realizar una operación de movimiento en lugar de una operación de copia. Cuando no se establece esta marca, DoCopyProps realiza una operación de copia.
MAPI_NOREPLACE
No se deben sobrescribir las propiedades existentes en el objeto de destino. Cuando no se establece esta marca, DoCopyProps sobrescribe las propiedades existentes.
lppProblems
[entrada, salida] En la entrada, un puntero a un puntero a una estructura SPropProblemArray ; de lo contrario, NULL, que indica que no se necesita información de error. Si lppProblems es un puntero válido en la entrada, DoCopyProps devuelve información detallada sobre los errores al copiar una o varias propiedades.
Valor devuelto
S_OK
Las propiedades se copiaron o movieron correctamente.
MAPI_E_COLLISION
Ya existe una propiedad que se va a copiar o mover en el objeto de destino y se establece la marca de MAPI_NOREPLACE.
MAPI_E_FOLDER_CYCLE
El objeto de origen contiene directa o indirectamente el objeto de destino. Es posible que se haya realizado un trabajo significativo antes de que se detectara esta condición, por lo que los objetos de origen y destino podrían modificarse parcialmente.
MAPI_E_INTERFACE_NOT_SUPPORTED
El objeto de origen no admite la interfaz identificada por el parámetro lpSrcInterface o la interfaz identificada por el parámetro lpDestInterface no es compatible con el objeto de destino.
MAPI_E_NO_ACCESS
Se intentó acceder a un objeto para el que el autor de la llamada no tiene permisos suficientes. Este error se devuelve si el objeto de destino es el mismo que el objeto de origen.
Los siguientes valores se pueden devolver en la estructura SPropProblemArray , pero no como valores devueltos para DoCopyProps. Estos errores se aplican a una sola propiedad.
MAPI_E_BAD_CHARWIDTH
Se estableció la marca MAPI_UNICODE y DoCopyProps no admite Unicode o MAPI_UNICODE no se estableció y DoCopyProps solo admite Unicode.
MAPI_E_COMPUTED
El autor de la llamada no puede modificar la propiedad porque es una propiedad de solo lectura calculada por el propietario del objeto de destino. Este error no es grave; el autor de la llamada debe permitir que continúe la operación de copia.
MAPI_E_INVALID_TYPE
El tipo de propiedad no es válido.
MAPI_E_UNEXPECTED_TYPE
El tipo de propiedad no es el tipo que espera el autor de la llamada.
Comentarios
El método IMAPISupport::D oCopyProps se implementa para los objetos de soporte técnico del proveedor de mensajes. Los proveedores de almacén de mensajes pueden llamar a DoCopyProps para implementar el método IMAPIProp::CopyProps para sus carpetas y mensajes. DoCopyProps copia o mueve las propiedades identificadas en la matriz de etiquetas de propiedades a las que apunta lpIncludeProps y que están presentes en el objeto al que apunta lpSrcObj.
Notas para los llamadores
Al copiar propiedades entre objetos del mismo tipo, como dos mensajes, los parámetros lpSrcInterface y lpDestInterface deben contener el mismo identificador de interfaz, y los parámetros lpSrcObj y lpDestObj deben apuntar a objetos del mismo tipo. Si lpDestInterface se establece en NULL, DoCopyProps devuelve MAPI_E_INVALID_PARAMETER. Si establece lpDestInterface en un identificador de interfaz aceptable, pero establece lpDestObj en un puntero no válido, los resultados son impredecibles. Lo más probable es que su proveedor produzca un error.
Establezca la marca MAPI_NOREPLACE si no desea que se sobrescriba ninguna de las propiedades del objeto de destino. Las propiedades del objeto de destino que existen en el objeto de origen y no se sobrescriben no se eliminan ni modifican.
Para copiar la lista de destinatarios de un mensaje, incluya la propiedad PR_MESSAGE_RECIPIENTS (PidTagMessageRecipients) en la matriz de etiquetas de propiedad a la que apunta el parámetro lpIncludeProps . Para copiar los datos adjuntos del mensaje, incluya la propiedad PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments).
Para copiar la jerarquía o la tabla de contenido de un contenedor de carpetas o libretas de direcciones, incluya PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) o PR_CONTAINER_CONTENTS (PidTagContainerContents) en la matriz de etiquetas de propiedad. Para incluir la tabla de contenido asociada de una carpeta, incluya la propiedad PR_FOLDER_ASSOCIATED_CONTENTS (PidTagFolderAssociatedContents) en la matriz.
Si las subcarpetas se copian o mueven, su contenido se copia o mueve en su totalidad, independientemente del uso de las propiedades indicadas por la estructura SPropTagArray .
DoCopyProps notifica errores globales que se producen con la operación en su conjunto y errores individuales que se producen con una o varias de las propiedades. Estos errores individuales se colocan en una estructura SPropProblemArray . Puede suprimir los informes de errores en el nivel de propiedad pasando NULL, en lugar de un puntero válido, para el parámetro de estructura de matriz de problemas de propiedad.
Si desea recibir información sobre los errores, pase un puntero de estructura SPropProblemArray válido en el parámetro lppProblems . Cuando DoCopyProps devuelve S_OK, compruebe si hay posibles errores con propiedades individuales en la estructura. Cuando DoCopyProps devuelve un error, no se devuelve información en la estructura SPropProblemArray . En su lugar, llame al método IMAPISupport::GetLastError para recuperar información detallada del error.
Si DoCopyProps devuelve S_OK, libere la estructura SPropProblemArray devuelta llamando a la función MAPIFreeBuffer .
Vea también
Propiedad canónica PidTagContainerContents
Propiedad canónica PidTagContainerHierarchy
Propiedad canónica PidTagFolderAssociatedContents
Propiedad canónica PidTagMessageAttachments