IABContainer::CopyEntries
Gilt für: Outlook 2013 | Outlook 2016
Kopiert einen oder mehrere Einträge, in der Regel Nachrichtenbenutzer oder Verteilerlisten.
HRESULT CopyEntries(
LPENTRYLIST lpEntries,
ULONG_PTR ulUIParam,
LPMAPIPROGRESS lpProgress,
ULONG ulFlags
);
Parameter
lpEntries
[in] Ein Zeiger auf ein Array von ENTRYLIST-Strukturen , das die Eintragsbezeichner der zu kopierenden Einträge enthält.
ulUIParam
[in] Das Handle zum übergeordneten Fenster aller Dialogfelder oder Fenster, die von dieser Methode angezeigt werden. Der ulUIParam-Parameter muss null sein, wenn das flag AB_NO_DIALOG im ulFlags-Parameter festgelegt ist.
lpProgress
[in] Ein Zeiger auf ein Statusobjekt, das eine Statusanzeige oder NULL anzeigt. Wenn lpProgress NULL ist, sollte eine Statusanzeige mithilfe des Statusobjekts angezeigt werden, das von MAPI über die IMAPISupport::D oProgressDialog-Methode bereitgestellt wird. Der lpProgress-Parameter wird ignoriert, wenn das flag AB_NO_DIALOG in ulFlags festgelegt ist.
ulFlags
[in] Eine Bitmaske von Flags, die steuert, wie der Kopiervorgang ausgeführt wird. Die folgenden Flags können festgelegt werden:
AB_NO_DIALOG
Unterdrückt die Anzeige einer Statusanzeige. Wenn dieses Flag nicht festgelegt ist, wird eine Statusanzeige angezeigt.
CREATE_CHECK_DUP_LOOSE
Gibt an, dass eine lose Überprüfung doppelter Einträge durchgeführt werden soll. Die Implementierung der Überprüfung von losen Doppelten Einträgen ist anbieterspezifisch. Beispielsweise kann ein Anbieter eine lose Übereinstimmung als zwei beliebige Einträge definieren, die denselben Anzeigenamen haben.
CREATE_CHECK_DUP_STRICT
Gibt an, dass eine strenge Überprüfung doppelter Einträge durchgeführt werden soll. Die Implementierung der strengen Überprüfung von Doppelten Einträgen ist anbieterspezifisch. Beispielsweise kann ein Anbieter eine strikte Übereinstimmung als zwei beliebige Einträge definieren, die sowohl den gleichen Anzeigenamen als auch die gleiche Messagingadresse haben.
CREATE_REPLACE
Gibt an, dass ein neuer Eintrag einen vorhandenen Eintrag ersetzen soll, wenn festgestellt wird, dass es sich bei beiden um Duplikate handelt.
Rückgabewert
S_OK
Der Kopiervorgang war erfolgreich.
MAPI_W_PARTIAL_COMPLETION
Der Kopiervorgang war insgesamt erfolgreich, aber mindestens ein Eintrag konnte nicht kopiert werden. Wenn dieser Wert zurückgegeben wird, sollte der Aufruf als erfolgreich behandelt werden. Verwenden Sie zum Testen dieses Werts das Makro HR_FAILED . Weitere Informationen finden Sie unter Verwenden von Makros für die Fehlerbehandlung.
Hinweise
Die IABContainer::CopyEntries-Methode kopiert Einträge aus demselben Container oder einem anderen Container. Ein Aufruf von CopyEntries entspricht funktional dem Ausführen der folgenden Aufrufe für jeden zu kopierenden Eintrag:
Die IABContainer::CreateEntry-Methode zum Erstellen des neuen Eintrags.
Die IMAPIProp::GetProps-Methode zum Lesen von Eigenschaften aus dem zu kopierenden Eintrag.
Die IMAPIProp::SetProps-Methode zum Schreiben von Eigenschaften in den neuen Eintrag.
Die IMAPIProp::SaveChanges-Methode des neuen Eintrags zum Ausführen eines Speichervorgangs.
Die IUnknown::Release-Methode des neuen Eintrags, um den Verweis des Containers freizugeben.
Hinweise für Implementierer
Alle Container, die die IABContainer::CopyEntries-Methode unterstützen, müssen änderbar sein. Legen Sie das AB_MODIFIABLE-Flag Ihres Containers in seiner PR_CONTAINER_FLAGS-Eigenschaft (PidTagContainerFlags) fest, um anzugeben, dass er änderbar ist.
Sie müssen alle Flaggen unterstützen; Die Interpretation und Verwendung dieser Flags ist jedoch implementierungsspezifisch, d. h. Sie können bestimmen, was die Semantik der CREATE_CHECK_DUP_LOOSE und CREATE_CHECK_DUP_STRICT Flags im Kontext Ihrer Implementierung bedeuten. Wenn Sie nicht feststellen können oder nicht, ob es sich bei einem Eintrag um ein Duplikat handelt, lassen Sie das Kopieren des Eintrags immer zu.
Wenn das CREATE_REPLACE-Flag festgelegt ist, kopieren Sie den Eintrag immer, unabhängig davon, ob CREATE_CHECK_DUP_LOOSE oder CREATE_CHECK_DUP_STRICT festgelegt ist und ob der Eintrag ein Duplikat ist.
Wenn CREATE_REPLACE nicht festgelegt und CREATE_CHECK_DUP_STRICT festgelegt ist, suchen Sie nach Duplikaten. Wenn ein Eintrag als Duplikat ermittelt wird, kopieren Sie den Eintrag nicht.
Sie müssen CREATE_REPLACE nicht unterstützen. keine Unterstützung für CREATE_REPLACE bedeutet, dass Sie sie sicher ignorieren und immer eine Kopie durchführen können.
Gibt die Warnung MAPI_W_PARTIAL_COMPLETION nur zurück, wenn ein nichtduplizierter Eintrag nicht kopiert werden kann.
Hinweise für Aufrufer
Verwenden Sie die flags CREATE_CHECK_DUP_LOOSE und CREATE_CHECK_DUP_STRICT, um dem Anbieter anzugeben, wie der Container die Überprüfung von Doppelten einträgen durchführen soll. Wenn Sie einen Eintrag hinzufügen müssen, unabhängig davon, ob es sich um ein Duplikat handelt, legen Sie entweder keines dieser Flags fest, oder legen Sie das CREATE_REPLACE-Flag fest. CREATE_REPLACE gibt an, dass es Ihnen egal ist, ob ein Eintrag ein Duplikat ist; sie soll immer den ursprünglichen Eintrag ersetzen.