Freigeben über


IMAPISupport::DoCopyProps

Gilt für: Outlook 2013 | Outlook 2016

Kopiert oder verschiebt eine oder mehrere Eigenschaften eines Objekts in ein anderes Objekt.

HRESULT DoCopyProps(
  LPCIID lpSrcInterface,
  LPVOID lpSrcObj,
  LPSPropTagArray lpIncludeProps,
  ULONG_PTR ulUIParam,
  LPMAPIPROGRESS lpProgress,
  LPCIID lpDestInterface,
  LPVOID lpDestObj,
  ULONG ulFlags,
  LPSPropProblemArray FAR * lppProblems
);

Parameter

lpSrcInterface

[in] Ein Zeiger auf den Schnittstellenbezeichner (Interface Identifier, IID), der die Schnittstelle darstellt, die für den Zugriff auf das Objekt mit den zu kopierenden oder zu verschiebenden Eigenschaften verwendet werden soll.

lpSrcObj

[in] Ein Zeiger auf das -Objekt, das die zu kopierenden oder zu verschiebenden Eigenschaften enthält.

lpIncludeProps

[in] Ein Zeiger auf eine SPropTagArray-Struktur , die ein gezähltes Array von Eigenschaftstags enthält, die die zu kopierenden oder zu verschiebenden Eigenschaften angeben. Der lpIncludeProps-Parameter darf nicht NULL sein.

ulUIParam

[in] Ein Handle für das übergeordnete Fenster der Statusanzeige.

lpProgress

[in] Ein Zeiger auf eine Implementierung eines Statusindikators. Wenn NULL im lpProgress-Parameter übergeben wird, wird die Statusanzeige mithilfe der MAPI-Implementierung angezeigt. Der lpProgress-Parameter wird ignoriert, es sei denn, das MAPI_DIALOG-Flag ist im ulFlags-Parameter festgelegt.

lpDestInterface

[in] Ein Zeiger auf den Schnittstellenbezeichner, der die Schnittstelle darstellt, die für den Zugriff auf das Objekt zum Empfangen der kopierten oder verschobenen Eigenschaften verwendet werden soll.

lpDestObj

[in] Ein Zeiger auf das -Objekt, um die kopierten oder verschobenen Eigenschaften zu empfangen.

ulFlags

[in] Eine Bitmaske von Flags, die steuert, wie der Kopier- oder Verschiebungsvorgang ausgeführt wird. Die folgenden Flags können festgelegt werden:

MAPI_DIALOG

Zeigt eine Statusanzeige an.

MAPI_MOVE

DoCopyProps sollte anstelle eines Kopiervorgangs einen Verschiebungsvorgang ausführen. Wenn dieses Flag nicht festgelegt ist, führt DoCopyProps einen Kopiervorgang aus.

MAPI_NOREPLACE

Vorhandene Eigenschaften im Zielobjekt sollten nicht überschrieben werden. Wenn dieses Flag nicht festgelegt ist, überschreibt DoCopyProps vorhandene Eigenschaften.

lppProblems

[in, out] Bei der Eingabe ein Zeiger auf einen Zeiger auf eine SPropProblemArray-Struktur ; andernfalls NULL, was angibt, dass keine Fehlerinformationen erforderlich sind. Wenn lppProblems ein gültiger Zeiger auf die Eingabe ist, gibt DoCopyProps ausführliche Informationen zu Fehlern beim Kopieren einer oder mehrerer Eigenschaften zurück.

Rückgabewert

S_OK

Eigenschaften wurden erfolgreich kopiert oder verschoben.

MAPI_E_COLLISION

Eine zu kopierende oder zu verschiebende Eigenschaft ist bereits im Zielobjekt vorhanden, und das MAPI_NOREPLACE-Flag ist festgelegt.

MAPI_E_FOLDER_CYCLE

Das Quellobjekt enthält direkt oder indirekt das Zielobjekt. Möglicherweise wurden erhebliche Arbeiten ausgeführt, bevor diese Bedingung erkannt wurde, sodass die Quell- und Zielobjekte möglicherweise teilweise geändert wurden.

MAPI_E_INTERFACE_NOT_SUPPORTED

Die durch den lpSrcInterface-Parameter identifizierte Schnittstelle wird vom Quellobjekt nicht unterstützt, oder die durch den lpDestInterface-Parameter identifizierte Schnittstelle wird vom Zielobjekt nicht unterstützt.

MAPI_E_NO_ACCESS

Es wurde versucht, auf ein Objekt zuzugreifen, für das der Aufrufer über unzureichende Berechtigungen verfügt. Dieser Fehler wird zurückgegeben, wenn das Zielobjekt mit dem Quellobjekt identisch ist.

Die folgenden Werte können in der SPropProblemArray-Struktur zurückgegeben werden, jedoch nicht als Rückgabewerte für DoCopyProps. Diese Fehler gelten für eine einzelne Eigenschaft.

MAPI_E_BAD_CHARWIDTH

Entweder wurde das flag MAPI_UNICODE festgelegt, und DoCopyProps unterstützt Unicode nicht, oder MAPI_UNICODE wurde nicht festgelegt und DoCopyProps unterstützt nur Unicode.

MAPI_E_COMPUTED

Die Eigenschaft kann vom Aufrufer nicht geändert werden, da es sich um eine schreibgeschützte Eigenschaft handelt, die vom Besitzer des Zielobjekts berechnet wird. Dieser Fehler ist nicht schwerwiegend. Der Aufrufer sollte zulassen, dass der Kopiervorgang fortgesetzt wird.

MAPI_E_INVALID_TYPE

Der Eigenschaftstyp ist ungültig.

MAPI_E_UNEXPECTED_TYPE

Der Eigenschaftstyp ist nicht der Typ, den der Aufrufer erwartet.

Hinweise

Die IMAPISupport::D oCopyProps-Methode wird für Unterstützungsobjekte des Nachrichtenspeicheranbieters implementiert. Nachrichtenspeicheranbieter können DoCopyProps aufrufen, um die IMAPIProp::CopyProps-Methode für ihre Ordner und Nachrichten zu implementieren. DoCopyProps kopiert oder verschiebt die Eigenschaften, die im Eigenschaftentagarray identifiziert werden, auf das von lpIncludeProps verwiesen wird und die im Objekt vorhanden sind, auf das lpSrcObj zeigt.

Hinweise für Aufrufer

Wenn Sie Eigenschaften zwischen Objekten desselben Typs kopieren, z. B. zwei Nachrichten, müssen die Parameter lpSrcInterface und lpDestInterface denselben Schnittstellenbezeichner enthalten, und die Parameter lpSrcObj und lpDestObj müssen auf Objekte desselben Typs verweisen. Wenn lpDestInterface auf NULL festgelegt ist, gibt DoCopyProps MAPI_E_INVALID_PARAMETER zurück. Wenn Sie lpDestInterface auf einen akzeptablen Schnittstellenbezeichner festlegen, aber lpDestObj auf einen ungültigen Zeiger festlegen, sind die Ergebnisse unvorhersehbar. Höchstwahrscheinlich schlägt Ihr Anbieter fehl.

Legen Sie das MAPI_NOREPLACE-Flag fest, wenn keine der Eigenschaften im Zielobjekt überschrieben werden soll. Eigenschaften im Zielobjekt, die im Quellobjekt vorhanden sind und nicht überschrieben werden, werden nicht gelöscht oder geändert.

Um die Empfängerliste einer Nachricht zu kopieren, schließen Sie die eigenschaft PR_MESSAGE_RECIPIENTS (PidTagMessageRecipients) in das Eigenschaftentagarray ein, auf das der lpIncludeProps-Parameter verweist. Um die Anlagen der Nachricht zu kopieren, schließen Sie die eigenschaft PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments) ein.

Um die Hierarchie oder Inhaltstabelle eines Ordner- oder Adressbuchcontainers zu kopieren, fügen Sie PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) oder PR_CONTAINER_CONTENTS (PidTagContainerContents) in das Eigenschaftentagarray ein. Um die zugeordnete Inhaltstabelle eines Ordners einzuschließen, schließen Sie die eigenschaft PR_FOLDER_ASSOCIATED_CONTENTS (PidTagFolderAssociatedContents) in das Array ein.

Wenn Unterordner kopiert oder verschoben werden, werden ihre Inhalte vollständig kopiert oder verschoben, unabhängig von der Verwendung von Eigenschaften, die durch die SPropTagArray-Struktur angegeben werden.

DoCopyProps meldet globale Fehler, die mit dem Vorgang als Ganzes auftreten, sowie einzelne Fehler, die bei einer oder mehreren Eigenschaften auftreten. Diese einzelnen Fehler werden in eine SPropProblemArray-Struktur eingefügt. Sie können die Fehlerberichterstattung auf Eigenschaftsebene unterdrücken, indem Sie NULL anstelle eines gültigen Zeigers für den Strukturparameter des Eigenschaftenproblemarrays übergeben.

Wenn Sie Informationen zu Fehlern erhalten möchten, übergeben Sie einen gültigen SPropProblemArray-Strukturzeiger im lppProblems-Parameter . Wenn DoCopyProps S_OK zurückgibt, suchen Sie nach möglichen Fehlern mit einzelnen Eigenschaften in der -Struktur. Wenn DoCopyProps einen Fehler zurückgibt, werden keine Informationen in der SPropProblemArray-Struktur zurückgegeben. Rufen Sie stattdessen die IMAPISupport::GetLastError-Methode auf, um detaillierte Fehlerinformationen abzurufen.

Wenn DoCopyProps S_OK zurückgibt, geben Sie die zurückgegebene SPropProblemArray-Struktur frei, indem Sie die MAPIFreeBuffer-Funktion aufrufen.

Siehe auch

IMAPIProp::CopyProps

IMAPISupport::CopyMessages

IMAPISupport::DoCopyTo

IMAPISupport::GetLastError

PidTagContainerContents (kanonische Eigenschaft)

PidTagContainerHierarchy (kanonische Eigenschaft)

PidTagFolderAssociatedContents (kanonische Eigenschaft)

PidTagMessageAttachments (kanonische Eigenschaft)

PidTagMessageRecipients (kanonische Eigenschaft)

SPropProblemArray

SPropTagArray

IMAPISupport: IUnknown