Partager via


IABContainer::CopyEntries

S’applique à : Outlook 2013 | Outlook 2016

Copie une ou plusieurs entrées, généralement des utilisateurs ou des listes de distribution.

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

Paramètres

lpEntries

[in] Pointeur vers un tableau de structures ENTRYLIST qui contient les identificateurs d’entrée des entrées à copier.

ulUIParam

[in] Handle de la fenêtre parente de toutes les boîtes de dialogue ou fenêtres affichées par cette méthode. Le paramètre ulUIParam doit être égal à zéro si l’indicateur AB_NO_DIALOG est défini dans le paramètre ulFlags .

lpProgress

[in] Pointeur vers un objet progress qui affiche un indicateur de progression, ou NULL. Si lpProgress a la valeur NULL, un indicateur de progression doit être affiché à l’aide de l’objet progress fourni par MAPI via la méthode IMAPISupport ::D oProgressDialog . Le paramètre lpProgress est ignoré si l’indicateur AB_NO_DIALOG est défini dans ulFlags.

ulFlags

[in] Masque de bits d’indicateurs qui contrôle la façon dont l’opération de copie est effectuée. Les indicateurs suivants peuvent être définis :

AB_NO_DIALOG

Supprime l’affichage d’un indicateur de progression. Si cet indicateur n’est pas défini, un indicateur de progression s’affiche.

CREATE_CHECK_DUP_LOOSE

Indique qu’un niveau faible de vérification des entrées en double doit être effectué. L’implémentation de la vérification des entrées en double libre est propre au fournisseur. Par exemple, un fournisseur peut définir une correspondance libre comme deux entrées qui ont le même nom d’affichage.

CREATE_CHECK_DUP_STRICT

Indique qu’un niveau strict de vérification des entrées en double doit être effectué. L’implémentation d’une vérification stricte des entrées en double est propre au fournisseur. Par exemple, un fournisseur peut définir une correspondance stricte comme deux entrées qui ont le même nom d’affichage et la même adresse de messagerie.

CREATE_REPLACE

Indique qu’une nouvelle entrée doit remplacer une entrée existante s’il est déterminé que les deux sont des doublons.

Valeur renvoyée

S_OK

L’opération de copie a réussi.

MAPI_W_PARTIAL_COMPLETION

L’opération de copie a réussi dans l’ensemble, mais une ou plusieurs entrées n’ont pas pu être copiées. Lorsque cette valeur est retournée, l’appel doit être géré comme réussi. Pour tester cette valeur, utilisez la macro HR_FAILED . Pour plus d’informations, consultez Utilisation de macros pour la gestion des erreurs.

Remarques

La méthode IABContainer ::CopyEntries copie les entrées du même conteneur ou d’un autre conteneur. Un appel à CopyEntries équivaut fonctionnellement à effectuer les appels suivants pour chaque entrée à copier :

  1. Méthode IABContainer ::CreateEntry pour créer la nouvelle entrée.

  2. Méthode IMAPIProp ::GetProps pour lire les propriétés de l’entrée à copier.

  3. Méthode IMAPIProp ::SetProps pour écrire des propriétés dans la nouvelle entrée.

  4. Méthode IMAPIProp ::SaveChanges de la nouvelle entrée pour effectuer un enregistrement.

  5. La méthode IUnknown ::Release de la nouvelle entrée pour libérer la référence du conteneur.

Remarques pour les responsables de l’implémentation

Tous les conteneurs qui prennent en charge la méthode IABContainer ::CopyEntries doivent être modifiables. Définissez l’indicateur AB_MODIFIABLE de votre conteneur dans sa propriété PR_CONTAINER_FLAGS (PidTagContainerFlags) pour indiquer qu’il est modifiable.

Vous devez prendre en charge tous les indicateurs ; Toutefois, l’interprétation et l’utilisation de ces indicateurs sont spécifiques à l’implémentation ; autrement dit, vous pouvez déterminer ce que signifient la sémantique des indicateurs CREATE_CHECK_DUP_LOOSE et CREATE_CHECK_DUP_STRICT dans le contexte de votre implémentation. Si vous ne pouvez pas ou ne pouvez pas déterminer si une entrée est un doublon, autorisez toujours la copie de l’entrée.

Si l’indicateur CREATE_REPLACE est défini, copiez toujours l’entrée, que CREATE_CHECK_DUP_LOOSE ou CREATE_CHECK_DUP_STRICT soit défini et qu’il s’agisse d’un doublon.

Si CREATE_REPLACE n’est pas défini et CREATE_CHECK_DUP_STRICT est défini, case activée pour les doublons. Si une entrée est considérée comme un doublon, ne copiez pas l’entrée.

Vous n’avez pas besoin de prendre en charge CREATE_REPLACE ; ne pas prendre en charge CREATE_REPLACE signifie que vous pouvez l’ignorer en toute sécurité et toujours effectuer une copie.

Retourne l’avertissement MAPI_W_PARTIAL_COMPLETION uniquement si une entrée non dupliquée ne peut pas être copiée.

Remarques pour les appelants

Utilisez les indicateurs CREATE_CHECK_DUP_LOOSE et CREATE_CHECK_DUP_STRICT pour indiquer au fournisseur comment vous souhaitez que le conteneur effectue la vérification des entrées en double. Si vous avez besoin d’ajouter une entrée, qu’il s’agisse d’un doublon, ne définissez pas ces indicateurs ou définissez l’indicateur CREATE_REPLACE. CREATE_REPLACE indique que vous ne vous souciez pas si une entrée est un doublon ; vous souhaitez toujours qu’elle remplace l’entrée d’origine.

Voir aussi

ENTRYLIST

IABContainer::CreateEntry

IMAPIProgress : IUnknown

IMAPIProp::SaveChanges

IABContainer : IMAPIContainer