Share via


Öffnen eines Nachrichtenspeicherordners

Gilt für: Outlook 2013 | Outlook 2016

Bevor ein Ordner geöffnet werden kann, muss sein Eintragsbezeichner verfügbar sein. Für die meisten Ordner bedeutet dies, dass ihre PR_ENTRYID Eigenschaften abgerufen werden. Für spezielle Ordner, z. B. einige der IPM-Unterstrukturordner und andere Stammordner, definiert MAPI spezielle Eintragsbezeichnereigenschaften, auf die durch Aufrufen der IMAPIProp::GetProps-Methode des Nachrichtenspeichers zugegriffen werden kann. Diese Eintragsbezeichner sind immer langfristig und werden wie folgt benannt:

Ordner Eintragsbezeichnereigenschaft
Postausgang
PR_IPM_OUTBOX_ENTRYID (PidTagIpmOutboxEntryId) (nur IPM-Nachrichtenklasse)
Ordner "Gelöschte Elemente"
PR_IPM_WASTEBASKET_ENTRYID (PidTagIpmWastebasketEntryId)
Ordner 'Gesendete Elemente'
PR_IPM_SENTMAIL_ENTRYID (PidTagIpmSentMailEntryId)
IPM-Stammordner
PR_IPM_SUBTREE_ENTRYID (PidTagIpmSubtreeEntryId)
Suchergebnisse Stammordner
PR_FINDER_ENTRYID (PidTagFinderEntryId)
Stammordner für allgemeine Ansichten
PR_COMMON_VIEWS_ENTRYID (PidTagCommonViewsEntryId)
Stammordner für persönliche Ansichten
PR_VIEWS_ENTRYID (PidTagViewsEntryId)
Stammordner "Kontakte"
PR_IPM_CONTACT_ENTRYID (PidTagIpmContactEntryId)
Drafts-Stammordner
PR_IPM_DRAFTS_ENTRYID (PidTagIpmDraftsEntryId)
Journal Stammordner
PR_IPM_JOURNAL_ENTRYID (PidTagIpmJournalEntryId)
Kalenderstammordner
PR_IPM_APPOINTMENT_ENTRYID (PidTagIpmAppointmentEntryId)
Notes-Stammordner
PR_IPM_NOTE_ENTRYID (PidTagIpmNoteEntryId)
Aufgabenstammordner
PR_IPM_TASK_ENTRYID (PidTagIpmTaskEntryId)

Bevor Sie versuchen, einen dieser speziellen Eintragsbezeichner abzurufen, rufen Sie die eigenschaft PR_VALID_FOLDER_MASK (PidTagValidFolderMask) des Nachrichtenspeichers ab. PR_VALID_FOLDER_MASK ist eine Bitmaske, die angibt, welche der speziellen Eintragsbezeichner vorhanden sind. Für jeden der speziellen Ordner gibt es ein Bit. Wenn das Bit festgelegt ist, gibt dies an, dass der entsprechende Ordner unterstützt wird und über einen gültigen Eintragsbezeichner verfügt. Wenn beispielsweise der Ordner "Gelöschte Elemente" vorhanden ist und über einen gültigen Eintragsbezeichner verfügt, wird das FOLDER_IPM_WASTEBASKET_VALID Bit in PR_VALID_FOLDER_MASK festgelegt.

Öffnen Sie den Ordner, in dem alle eingehenden Nachrichten einer bestimmten Klasse platziert werden.

  1. Rufen Sie IMsgStore::GetReceiveFolder auf, um den Eintragsbezeichner abzurufen, und legen Sie den lpszMessageClass-Parameter so fest, dass er auf eine Zeichenfolge verweist, die die Nachrichtenklasse identifiziert. Wenn Sie beispielsweise den Posteingang für Ihre IPM-Unterstruktur öffnen möchten, verweisen Sie lpszMessageClass auf IPM. Wenn Sie den Empfangsordner für IPC-Nachrichten öffnen möchten, legen Sie ihn so fest, dass er auf IPC verweist.

    Wenn kein registrierter Empfangsordner für die Nachrichtenklasse vorhanden ist, wählt GetReceiveFolder den Empfangsordner aus, dessen zugeordnete Nachrichtenklasse dem längsten möglichen Präfix der übergebenen Nachrichtenklasse entspricht. Weitere Informationen finden Sie unter MAPI-Empfangsordner.

    Beachten Sie, dass die PR_IPM_OUTBOX_ENTRYID-Eigenschaft verwendet wird, um den Postausgangsordner nur für IPM-Nachrichten zu öffnen. Wenn Sie den Postausgang für IPC-Nachrichten öffnen, verwenden Sie stattdessen den Eintragsbezeichner für den Empfangsordner. Sowohl eingehende als auch ausgehende IPC-Nachrichten werden im Empfangsordner abgelegt.

  2. Rufen Sie eine von vier OpenEntry-Methoden auf, um den Ordner zu öffnen und einen Schnittstellenzeiger zurückzugeben, mit dem Sie darauf zugreifen können. Sie können eine der folgenden Methoden aufrufen, um einen Ordner zu öffnen:

    Die spezifische Methode, die Sie auswählen, hängt vom zu öffnenden Ordner und den objekten ab, die zu diesem Zeitpunkt verfügbar sind. Da die IMAPISession-Methode jeden Ordner für jeden Nachrichtenspeicher im aktuellen Profil öffnen kann, rufen Sie diese OpenEntry auf, wenn Sie nichts über den zu öffnenden Ordner wissen. Wenn Sie wissen, welcher Nachrichtenspeicher den Ordner besitzt und Sie über einen Zeiger auf den Nachrichtenspeicher verfügen, rufen Sie IMsgStore::OpenEntry auf.

    Verwenden Sie beispielsweise die IMsgStore-Methode , um einen Empfangsordner zu öffnen. Wenn Sie über einen Zeiger auf das Anmeldeobjekt des Nachrichtenspeicheranbieters verfügen, rufen Sie IMSLogon::OpenEntry auf. Da diese Aufrufe direkt an den Nachrichtenspeicheranbieter und nicht über MAPI gesendet werden, erfolgt die Verarbeitung schneller. Wenn der Ordner, den Sie öffnen, ein Unterordner eines Ordners ist, den Sie bereits geöffnet haben, rufen Sie die IMAPIContainer::OpenEntry-Methode des geöffneten Ordners auf. Die IMAPIContainer-Methode öffnet nur Unterordner eines aktuell geöffneten Ordners und ist die einzige Methode, die garantiert mit kurzfristigen Eingabebezeichnern funktioniert.

  3. Wenn Sie Änderungen am zu öffnenden Ordner vornehmen möchten, geben Sie eine Zugriffsebene an, indem Sie entweder das MAPI_BEST_ACCESS- oder MAPI_MODIFY-Flag im OpenEntry-Aufruf festlegen. Diese Flags sind Vorschläge für den Nachrichtenspeicheranbieter, um beim Öffnen des Ordners die höchste Zugriffsebene für MAPI_BEST_ACCESS oder Lese-/Schreibzugriff für MAPI_MODIFY zu gewähren.

    Da diese Flags nur Vorschläge sind, kann der Ordner mit der erwarteten Zugriffsebene geöffnet werden. Durch Abrufen der eigenschaft PR_ACCESS (PidTagAccess) können Sie den Bereich von Vorgängen bestimmen, die für den geöffneten Ordner ausgeführt werden können.

    Da jedoch viele Nachrichtenspeicheranbieter den Wert für diese Eigenschaft bei Bedarf berechnen, anstatt sie als Ordnereigenschaft oder als Spalte in ihrer Hierarchietabelle zu unterstützen, kann das Abrufen dieser Eigenschaft zeitaufwändig sein. Eine alternative Strategie besteht darin, einen beliebigen Vorgang zu versuchen, den Sie ausführen müssen, und bei Bedarf einen Fehler zurückzugeben.

Siehe auch