Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Outlook 2013 | Outlook 2016
Ein Client kann eine von vier Methoden verwenden, um eine Nachricht oder einen Ordner zu kopieren oder zu verschieben:
Durch Festlegen der entsprechenden Flags und Parameter können CopyTo und CopyProps wie CopyFolder oder CopyMessages verwendet werden. Berücksichtigen Sie die folgenden Probleme, wenn Sie entscheiden, welche Methode aufgerufen werden soll:
Kopieren oder verschieben Sie einen Ordner oder eine Nachricht?
Wie viel wissen Sie über den Ordner oder die Nachricht, die verschoben oder kopiert werden soll?
Wie viele eigenschaften des Ordners oder der Nachricht werden verschoben oder kopiert?
Sie können die IMAPIProp-Methoden verwenden, um einen Ordner oder eine Nachricht zu kopieren oder zu verschieben. IMAPIFolder::CopyMessages funktioniert nur mit Nachrichten; IMAPIFolder::CopyFolder funktioniert nur mit Ordnern.
Während für die Verwendung der IMAPIFolder-Methoden keine Kenntnisse über die Eigenschaften erforderlich sind, die vom zu kopierenden oder verschiebenden Ordner oder der Nachricht unterstützt werden, müssen Sie über einige Kenntnisse verfügen, um die IMAPIProp-Methoden verwenden zu können. Mit IMAPIProp::CopyProps müssen Sie explizit angeben können, welche Ordner- oder Nachrichteneigenschaften Sie kopieren oder verschieben möchten. Mit IMAPIProp::CopyTo müssen Sie explizit angeben, welche Eigenschaften ausgeschlossen werden sollen, es sei denn, Sie möchten alle Eigenschaften kopieren oder verschieben. Weitere Informationen zu diesen Methoden finden Sie unter Kopieren von MAPI-Eigenschaften.
Die Anzahl der zu kopierenden oder zu verschiebenden Eigenschaften kann sich auf Ihre Entscheidung über die zu verwendende Methode auswirken. Wenn Sie mehrere Nachrichten kopieren oder verschieben, rufen Sie IMAPIFolder::CopyMessages auf. Eine alternative Möglichkeit besteht darin, IMAPIProp::CopyProps aufzurufen, um nur die PR_CONTAINER_CONTENTS (PidTagContainerContents)-Eigenschaft des Ordners zu kopieren. Das folgende Verfahren zeigt, wie CopyMessages verwendet wird.
So kopieren oder verschieben Sie eine oder mehrere Nachrichten
Suchen Sie nach gültigen Eintragsbezeichnern für die Quell- und Zielordner.
Öffnen Sie diese Ordner im Lese-/Schreibmodus, indem Sie entweder IMAPISession::OpenEntry oder IMsgStore::OpenEntry aufrufen und das MAPI_MODIFY-Flag festlegen.
Überprüfen Sie, ob der von OpenEntry zurückgegebene Schnittstellenzeiger ein IMAPIFolder-Schnittstellenzeiger ist. Falls nicht, wandeln Sie es in den LPMAPIFOLDER-Typ um.
Erstellen Sie ein Array von Eingabebezeichnern, die eine oder mehrere zu kopierende oder zu verschiebende Nachrichten darstellen.
Rufen Sie IMAPIFolder::CopyMessages mit den folgenden flags auf:
MESSAGE_MOVE, wenn Sie einen Verschiebungsvorgang ausführen möchten.
MESSAGE_DIALOG und übergeben Sie ein Fensterhandle im ulUIParam-Parameter , wenn der Ordner eine Statusanzeige anzeigen soll.
Geben Sie die IMAPIFolder-Zeiger für die Quell- und Zielordner frei.
Wenn Sie den vollständigen Inhalt eines Ordners in einen anderen Ordner kopieren möchten, rufen Sie die IMAPIFolder::CopyFolder - oder IMAPIProp::CopyTo-Methode des Quellordners auf.
Um einige Eigenschaften eines Ordners zu kopieren, rufen Sie die ZUGEHÖRIGE IMAPIProp::CopyProps-Methode auf. Um die meisten Eigenschaften eines Ordners zu kopieren, rufen Sie IMAPIProp::CopyTo auf.
Wenn Sie beispielsweise die Eigenschaften PR_DISPLAY_NAME (PidTagDisplayName) und PR_COMMENT (PidTagComment) eines Ordners kopieren möchten, haben Sie die folgenden Optionen:
Rufen Sie IMAPIFolder::CopyFolder auf, um alle Ordnereigenschaften zu kopieren und dann die unerwünschten eigenschaften aus dem neuen Ordner zu löschen.
Rufen Sie CopyTo auf, und schließen Sie alle Eigenschaften des Ordners außer PR_DISPLAY_NAME und PR_COMMENT aus.
Rufen Sie CopyProps auf, und übergeben Sie PR_DISPLAY_NAME und PR_COMMENT im include-Array.
In diesem Fall ist CopyProps die beste Wahl, da es zum Kopieren eines kleinen Satzes von Eigenschaften verwendet werden soll und der am einfachsten zu implementierende Aufruf ist.
Um nur Ordnereigenschaften zu kopieren oder zu verschieben, ohne Nachrichten einzuschließen, rufen Sie die IMAPIProp::CopyTo-Methode des Ordners auf, und schließen Sie die folgenden Eigenschaften aus:
PR_CONTAINER_CONTENTS (PidTagContainerContents)
PR_FOLDER_ASSOCIATED_CONTENTS (PidTagFolderAssociatedContents)
Die Kopiermethoden können S_OK zurückgeben, was den Gesamterfolg, die MAPI_W_PARTIAL_COMPLETION, den Teilerfolg oder einen Fehler angibt. Wenn MAPI_W_PARTIAL_COMPLETION zurückgegeben wird, verwenden Sie das makro HR_FAILED , um auf einen spezifischeren Fehler zuzugreifen. Weitere Informationen finden Sie unter Verwenden von Makros für die Fehlerbehandlung.
Wenn Sie Nachrichten aus einem Nachrichtenspeicher in einen anderen kopieren und Unicode nicht von beiden unterstützt wird, beachten Sie, dass Informationen aufgrund der Codepagekonvertierung verloren gehen können. In der Regel können Sie nicht wissen, ob die Nachrichtenspeicher ein oder beide Formate unterstützen, sodass nicht bestimmt werden kann, ob Texteigenschaften als ASCII-Zeichenfolgen oder als Unicode-Zeichenfolgen kopiert werden sollen. Wenn Sie Unicode unterstützen, versuchen Sie, eine Unicode-Kopie durchzuführen. Wenn der Fehlerwert MAPI_E_BAD_CHARWIDTH fehlschlägt, greifen Sie auf ASCII zurück.