Compartir a través de


IABContainer::CopyEntries

Hace referencia a: Outlook 2013 | Outlook 2016

Copia una o varias entradas, normalmente usuarios de mensajería o listas de distribución.

HRESULT CopyEntries(
  LPENTRYLIST lpEntries,
  ULONG_PTR ulUIParam,
  LPMAPIPROGRESS lpProgress,
  ULONG ulFlags
);

Parameters

lpEntries

[in] Puntero a una matriz de estructuras ENTRYLIST que contiene los identificadores de entrada de las entradas que se van a copiar.

ulUIParam

[in] Identificador de la ventana primaria de los cuadros de diálogo o ventanas que muestra este método. El parámetro ulUIParam debe ser cero si la marca de AB_NO_DIALOG está establecida en el parámetro ulFlags .

lpProgress

[in] Puntero a un objeto de progreso que muestra un indicador de progreso o NULL. Si lpProgress es NULL, se debe mostrar un indicador de progreso mediante el objeto de progreso proporcionado por MAPI mediante el método IMAPISupport::D oProgressDialog . El parámetro lpProgress se omite si la marca de AB_NO_DIALOG se establece en ulFlags.

ulFlags

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

AB_NO_DIALOG

Suprime la visualización de un indicador de progreso. Si no se establece esta marca, se muestra un indicador de progreso.

CREATE_CHECK_DUP_LOOSE

Indica que se debe realizar un nivel flexible de comprobación de entradas duplicadas. La implementación de la comprobación de entrada duplicada flexible es específica del proveedor. Por ejemplo, un proveedor puede definir una coincidencia flexible como dos entradas que tengan el mismo nombre para mostrar.

CREATE_CHECK_DUP_STRICT

Indica que se debe realizar un nivel estricto de comprobación de entrada duplicada. La implementación de la comprobación de entrada duplicada estricta es específica del proveedor. Por ejemplo, un proveedor puede definir una coincidencia estricta como dos entradas cualquiera que tengan el mismo nombre para mostrar y la misma dirección de mensajería.

CREATE_REPLACE

Indica que una nueva entrada debe reemplazar una existente si se determina que los dos son duplicados.

Valor devuelto

S_OK

La operación de copia se realizó correctamente.

MAPI_W_PARTIAL_COMPLETION

La operación de copia se realizó correctamente en general, pero no se pudo copiar una o varias de las entradas. Cuando se devuelve este valor, la llamada debe controlarse correctamente. Para probar este valor, use la macro HR_FAILED . Para obtener más información, vea Uso de macros para el control de errores.

Comentarios

El método IABContainer::CopyEntries copia las entradas del mismo contenedor o de otro contenedor. Una llamada a CopyEntries es funcionalmente equivalente a realizar las llamadas siguientes para cada entrada que se va a copiar:

  1. El método IABContainer::CreateEntry para crear la nueva entrada.

  2. El método IMAPIProp::GetProps para leer las propiedades de la entrada que se va a copiar.

  3. El método IMAPIProp::SetProps para escribir propiedades en la nueva entrada.

  4. Método IMAPIProp::SaveChanges de la nueva entrada para realizar una operación de guardado.

  5. Método IUnknown::Release de la nueva entrada para liberar la referencia del contenedor.

Notas a los implementadores

Todos los contenedores que admiten el método IABContainer::CopyEntries deben ser modificables. Establezca la marca de AB_MODIFIABLE del contenedor en su propiedad PR_CONTAINER_FLAGS (PidTagContainerFlags) para indicar que se puede modificar.

Debe admitir todas las marcas; sin embargo, la interpretación y el uso de estas marcas son específicas de la implementación, es decir, puede determinar lo que significa la semántica de las marcas de CREATE_CHECK_DUP_LOOSE y CREATE_CHECK_DUP_STRICT en el contexto de la implementación. Si no puede determinar o no si una entrada es duplicada, permita siempre que la entrada se copie.

Si se establece la marca de CREATE_REPLACE, copie siempre la entrada independientemente de si se establece CREATE_CHECK_DUP_LOOSE o CREATE_CHECK_DUP_STRICT y si la entrada es duplicada.

Si CREATE_REPLACE no está establecido y CREATE_CHECK_DUP_STRICT está establecido, compruebe si hay duplicados. Si se determina que una entrada es duplicada, no copie la entrada.

No es necesario admitir CREATE_REPLACE; no admitir CREATE_REPLACE significa que puede omitirlo de forma segura y realizar siempre una copia.

Devuelve la advertencia MAPI_W_PARTIAL_COMPLETION solo si no se puede copiar una entrada no duplicada.

Notas para los llamadores

Use las marcas CREATE_CHECK_DUP_LOOSE y CREATE_CHECK_DUP_STRICT para indicar al proveedor cómo desea que el contenedor realice la comprobación de entrada duplicada. Si necesita agregar una entrada independientemente de si es un duplicado, no establezca ninguna de estas marcas o establezca la marca de CREATE_REPLACE. CREATE_REPLACE indica que no le importa si una entrada es duplicada; siempre desea que reemplace la entrada original.

Vea también

ENTRYLIST

IABContainer::CreateEntry

IMAPIProgress : IUnknown

IMAPIProp::SaveChanges

IABContainer : IMAPIContainer