Freigeben über


IMAPIFolder::CreateFolder

Gilt für: Outlook 2013 | Outlook 2016

Erstellt einen neuen Unterordner.

HRESULT CreateFolder(
  ULONG ulFolderType,
  LPSTR lpszFolderName,
  LPSTR lpszFolderComment,
  LPCIID lpInterface,
  ULONG ulFlags,
  LPMAPIFOLDER FAR * lppFolder
);

Parameter

ulFolderType

[in] Der Typ des zu erstellenden Ordners. Die folgenden Flags können festgelegt werden:

FOLDER_GENERIC

Ein generischer Ordner sollte erstellt werden.

FOLDER_SEARCH

Ein Suchergebnisordner sollte erstellt werden.

lpszFolderName

[in] Ein Zeiger auf eine Zeichenfolge, die den Namen für den neuen Ordner enthält. Dieser Name ist die Grundlage für die eigenschaft PR_DISPLAY_NAME (PidTagDisplayName) des neuen Ordners.

lpszFolderComment

[in] Ein Zeiger auf eine Zeichenfolge, die einen Kommentar enthält, der dem neuen Ordner zugeordnet ist. Diese Zeichenfolge wird zum Wert der eigenschaft PR_COMMENT (PidTagComment) des neuen Ordners. Wenn NULL übergeben wird, enthält der Ordner keinen anfänglichen Kommentar.

lpInterface

[in] Ein Zeiger auf den Schnittstellenbezeichner (Interface Identifier, IID), der die Schnittstelle darstellt, die für den Zugriff auf den neuen Ordner verwendet werden soll. Die Übergabe von NULL bewirkt, dass der Nachrichtenspeicheranbieter die Standardordnerschnittstelle IMAPIFolder : IMAPIContainer zurückgibt. Clients müssen NULL übergeben. Andere Aufrufer können den lpInterface-Parameter auf IID_IUnknown, IID_IMAPIProp, IID_IMAPIContainer oder IID_IMAPIFolder festlegen.

ulFlags

[in] Eine Bitmaske von Flags, die steuert, wie der Ordner erstellt wird. Die folgenden Flags können festgelegt werden:

MAPI_DEFERRED_ERRORS

Ermöglicht es CreateFolder , erfolgreich zurückzugeben, möglicherweise bevor der neue Ordner vollständig für den aufrufenden Client verfügbar ist. Wenn der neue Ordner nicht verfügbar ist, kann ein späterer Aufruf einen Fehler verursachen.

MAPI_UNICODE

Der Name des Ordners weist das Unicode-Format auf. Wenn das MAPI_UNICODE-Flag nicht festgelegt ist, weist der Ordnername das ANSI-Format auf.

OPEN_IF_EXISTS

Ermöglicht es der Methode, auch dann erfolgreich zu sein, wenn der im lpszFolderName-Parameter benannte Ordner bereits vorhanden ist, indem der vorhandene Ordner mit diesem Namen geöffnet wird. Beachten Sie, dass Nachrichtenspeicheranbieter, die nebengeordneten Ordnern denselben Namen erlauben, möglicherweise keinen vorhandenen Ordner öffnen, wenn mehr als einer mit dem angegebenen Namen vorhanden ist.

lppFolder

[out] Ein Zeiger auf einen Zeiger auf den neu erstellten Ordner.

Rückgabewert

S_OK

Der neue Ordner wurde erfolgreich erstellt oder geöffnet, wenn das flag OPEN_IF_EXISTS festgelegt ist.

MAPI_E_BAD_CHARWIDTH

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

MAPI_E_COLLISION

Ein Ordner mit dem im lpszFolderName-Parameter angegebenen Namen ist bereits vorhanden. Ordnernamen müssen eindeutig sein.

Hinweise

Die IMAPIFolder::CreateFolder-Methode erstellt einen Unterordner im aktuellen Ordner und weist dem neuen Ordner einen Eintragsbezeichner zu.

Hinweise für Aufrufer

Wenn CreateFolder zurückgibt, beachten Sie, dass der Eintragsbezeichner für den neuen Ordner möglicherweise nicht verfügbar ist. Einige Nachrichtenspeicheranbieter stellen Eingabebezeichner erst zur Verfügung, nachdem Sie die IMAPIProp::SaveChanges-Methode des neuen Ordners aufgerufen haben, um ihn dauerhaft zu speichern. Dies gilt insbesondere, wenn Sie das MAPI_DEFERRED_ERRORS-Flag festgelegt haben.

Beachten Sie, dass einige Nachrichtenspeicheranbieter den lppFolder-Parameter immer auf die Standardschnittstelle des Ordners verweisen, unabhängig vom Wert, den Sie für den lpInterface-Parameter übergeben. Da der zurückgegebene Schnittstellenzeiger möglicherweise nicht den erwarteten Typ aufweist, rufen Sie die IMAPIProp::GetProps-Methode des neuen Ordners auf, um die eigenschaft PR_OBJECT_TYPE (PidTagObjectType) abzurufen. Wandeln Sie den Zeiger bei Bedarf in einen geeigneteren Typ um, bevor Sie weitere Aufrufe ausführen.

Die meisten Nachrichtenspeicheranbieter erfordern, dass der Name des neuen Ordners in Bezug auf die Namen der nebengeordneten Ordner eindeutig ist. Sie können den MAPI_E_COLLISION Fehlerwert behandeln, der zurückgegeben wird, wenn diese Regel nicht befolgt wird.

Um den Eintragsbezeichner des neu erstellten Ordners zu bestimmen, rufen Sie die IMAPIProp::GetProps-Methode des neuen Ordners auf, um die PR_ENTRYID -Eigenschaft (PidTagEntryId) abzurufen.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Kommentar
MsgStoreDlg.cpp
CMsgStoreDlg::OnCreateSubFolder
MFCMAPI verwendet die CMsgStoreDlg::OnCreateSubFolder-Methode , um neue Ordner in MFCMAPI zu erstellen.

Siehe auch

IMAPIProp::GetProps

IMAPIFolder : IMAPIContainer

MFCMAPI (engl.) als ein Codebeispiel