Freigeben über


Öffnen eines Nachrichtenspeichers

Gilt für: Outlook 2013 | Outlook 2016

Je nach Profil muss ein Client während einer typischen Sitzung einen oder mehrere Nachrichtenspeicher öffnen. Das Öffnen eines Nachrichtenspeichers bedeutet, zugriff auf einen Zeiger auf seine IMsgStore: IMAPIProp-Implementierung zu erhalten. Die IMsgStore-Schnittstelle bietet Methoden für Benachrichtigungen, Ordnerzuweisungen und den Zugriff auf Ordner und Nachrichten.

Clients öffnen Nachrichtenspeicher bei der Anmeldung und beim Ändern eines Profils. Wenn Ihr Client benutzern das Hinzufügen von Nachrichtenspeichern zum Profil während einer aktiven Sitzung zulässt, können Sie sie entweder sofort öffnen oder sie bis zur nächsten Sitzung ignorieren. Wenn Sie sich für Benachrichtigungen in der Nachrichtenspeichertabelle registrieren, werden Sie über die Verfügbarkeit eines neuen Nachrichtenspeichers benachrichtigt.

Um einen Nachrichtenspeicher zu öffnen, muss der eintragsbezeichner verfügbar sein. Die meisten Clients greifen auf die Eingabebezeichner für die Nachrichtenspeicher zu, die sie über die Nachrichtenspeichertabelle öffnen möchten. Einige Nachrichtenspeicher dokumentieren jedoch das Format ihrer Eintragsbezeichner, sodass Clients die Nachrichtenspeichertabelle umgehen und den erforderlichen Eintragsbezeichner erstellen können. Sie können diesen Eintragsbezeichner direkt an IMAPISession::OpenMsgStore übergeben, und MAPI erstellt automatisch einen Profilabschnitt für den Anbieter, ohne ihn einem Nachrichtendienst zuzuordnen.

Abrufen eines Eintragsbezeichners aus der Nachrichtenspeichertabelle

  1. Rufen Sie IMAPISession::GetMsgStoresTable auf, um die Nachrichtenspeichertabelle zu öffnen.

  2. Rufen Sie IMAPITable::SetColumns auf, um die Tabelle auf einen kleinen Spaltensatz zu beschränken, der die folgenden Spalten enthält:

    • PR_PROVIDER_DISPLAY oder PR_DISPLAY_NAME
    • PR_ENTRYID Eigenschaften
    • PR_MDB_PROVIDER
    • PR_RESOURCE_FLAGS
  3. Erstellen Sie eine Einschränkung, um die Zeile herauszufiltern, die den zu öffnenden Nachrichtenspeicher darstellt. Weitere Informationen zum Suchen nach dem Standardnachrichtenspeicher finden Sie unter Öffnen des Standardnachrichtenspeichers. Um nach einem Nachrichtenspeicher anhand des Namens zu suchen, wenden Sie eine der folgenden Eigenschaftseinschränkungen an:

    • Übereinstimmung mit PR_PROVIDER_DISPLAY (PidTagProviderDisplay) mit dem allgemeinen Namen für diesen Nachrichtenspeichertyp. Beispielsweise kann PR_PROVIDER_DISPLAY auf "Persönliche Ordner" festgelegt werden.

    • Übereinstimmung PR_MDB_PROVIDER (PidTagStoreProvider) mit der spezifischen MAPIUID für diesen Nachrichtenspeichertyp.

    • Übereinstimmung PR_DISPLAY_NAME (PidTagDisplayName) mit dem Namen für diesen bestimmten Nachrichtenspeicher. Beispielsweise kann PR_DISPLAY_NAME auf "Meine Nachrichten für das Geschäftsjahr 2010" festgelegt werden.

  4. Rufen Sie HrQueryAllRows auf, um die entsprechende Zeile aus der Nachrichtenspeichertabelle abzurufen. Der Eintragsbezeichner für die Zeile wird in das Eigenschaftenwertarray für den aRow-Member der Zeilenmenge eingeschlossen, auf die der pprows-Parameter verweist.

  5. Rufen Sie FreeProws auf, um die Zeile frei zu geben, auf die die Zeilensätze verweisen.

  6. Geben Sie die Nachrichtenspeichertabelle durch Aufrufen der IUnknown::Release-Methode frei.

Wenn Sie einen benutzerdefinierten Eintragsbezeichner für den zu öffnenden Nachrichtenspeicher erstellt haben, rufen Sie die WrapStoreEntryID-Funktion auf, um sie in einen Standardeintragsbezeichner zu konvertieren.

Nachdem Sie über den Eintragsbezeichner eines Nachrichtenspeichers verfügen, rufen Sie eine der folgenden Methoden auf, um ihn zu öffnen:

Rufen Sie OpenMsgStore auf, wenn Sie eine Vielzahl spezieller Optionen für den Nachrichtenspeicher angeben müssen. Mit OpenMsgStore können Sie die Anzeige von Dialogfeldern unterdrücken, den Nachrichtenspeicher als temporären oder nichtmessenden Speicher identifizieren, Zugriffsebenen festlegen und Fehler zurückstellen. Mit OpenEntry können Sie nur Zugriffsebenen festlegen und Fehler zurückstellen.

Das Festlegen des MDB_NO_MAIL-Flags weist MAPI darauf hin, dass der Nachrichtenspeicher nicht zum Senden oder Empfangen von Nachrichten verwendet wird. MAPI informiert den MAPI-Spooler nicht über das Vorhandensein dieses Nachrichtenspeichers. Das MDB_TEMPORARY-Flag bezeichnet einen Nachrichtenspeicher als temporär, was bedeutet, dass er nicht zum Speichern dauerhafter Informationen verwendet werden kann. Temporäre Nachrichtenspeicher werden nicht in der Nachrichtenspeichertabelle angezeigt.

Siehe auch