Freigeben über


Statustabelle und Statusobjekte

Gilt für: Outlook 2013 | Outlook 2016

MAPI stellt eine Tabelle mit Informationen zu den status des MAPI-Subsystems, des MAPI-Spoolers, des Adressbuchs oder eines bestimmten Dienstanbieters bereit. Sie können auf diese Tabelle zugreifen, indem Sie IMAPISession::GetStatusTable aufrufen.

Jede Zeile in der status Tabelle stellt ein status-Objekt dar, das von MAPI oder einem Dienstanbieter implementiert wird. Sie können ein status -Objekt verwenden, um das Konfigurationseigenschaftenblatt eines Anbieters anzuzeigen, ein Anbieterkennwort zu ändern, Nachrichten hoch- oder herunterzuladen und mit einem bestimmten Transportanbieter zu kommunizieren.

Es gibt zwei Möglichkeiten, auf ein status-Objekt zuzugreifen:

  • Durch die status Tabelle

  • Über die OpenStatusEntry-Methode eines Anmeldeobjekts

Da Anmeldeobjekte für Clients nicht verfügbar sind, müssen Sie die status Tabelle verwenden, um auf status -Objekte zuzugreifen. Der status-Tabellenansatz ist indirekt und erfordert einige Aufrufe, bevor das status -Objekt geöffnet und ein Zeiger auf seine IMAPIStatus-Implementierung zurückgegeben wird.

So verwenden Sie die status-Tabelle zum Öffnen eines status-Objekts

  1. Rufen Sie IMAPIStatus::GetStatusTable auf, um einen IMAPITable-Zeiger abzurufen.

  2. Rufen Sie die IMAPITable::SetColumns-Methode der status Tabelle auf, um den Spaltensatz auf PR_ENTRYID (PidTagEntryId), PR_RESOURCE_TYPE (PidTagResourceType) und PR_DISPLAY_NAME (PidTagDisplayName) zu beschränken.

  3. Beschränken Sie die Tabellenansicht auf ein bestimmtes status-Objekt. Für MAPI-Implementierungen kann ein Client mithilfe von PR_RESOURCE_TYPE eine Eigenschaftseinschränkung definieren. Bei Dienstanbieterimplementierungen kann ein Client auf PR_PROVIDER_DISPLAY (PidTagProviderDisplay), den Namen des Anbieters oder auf PR_PROVIDER_DLL_NAME (PidTagProviderDllName), den Namen der Anbieter-DLL-Datei, beschränken.

  4. Rufen Sie IMAPITable::Restrict auf, um die Einschränkung festzulegen.

  5. Rufen Sie HrQueryAllRows auf, und übergeben Sie die SPropertyRestriction-Struktur, um die Zeile abzurufen, die die status des Anbieters darstellt.

  6. Rufen Sie IMAPISession::OpenEntry auf, und geben Sie dabei den Eintragsbezeichner aus der status Tabellenzeile an, um das status -Objekt zu öffnen und einen IMAPIStatus-Zeiger abzurufen.

Um ein Eigenschaftenblatt anzuzeigen, rufen Sie die IMAPIStatus::SettingsDialog-Methode des status-Objekts für den Zielanbieter auf. SettingsDialog zeigt ein Eigenschaftenblatt zum Anzeigen und In einigen Fällen zum Ändern der Konfigurationseigenschaften eines Anbieters an.

Um mit einem Transportanbieter zu kommunizieren, rufen Sie die IMAPIStatus::ValidateState-Methode des status Objekts auf. ValidateState kann einen Transportanbieter neu konfigurieren, verhindern, dass der Anbieter eine Benutzeroberfläche anzeigt, und eine Sitzung steuern, die das Herunterladen von Nachrichtenheadern von einem Remoteserver umfasst, abhängig von den flags, die Sie übergeben. Um beispielsweise das Herunterladen von Remoteheadern abzubrechen, übergeben Sie das flag ABORT_XP_HEADER_OPERATION an ValidateState. Um eine Verbindung mit dem Remoteserver herzustellen oder die Verbindung mit dem Remoteserver zu trennen, übergeben Sie FORCE_XP_CONNECT oder FORCE_XP_DISCONNECT. Um den Anbieter neu zu konfigurieren, übergeben Sie CONFIG_CHANGED.

Clients, die das Senden oder Empfangen von Nachrichten bei Bedarf implementieren, rufen entweder die IMAPIStatus::FlushQueues-Methode eines Transportanbieters oder die IMAPIStatus::FlushQueues-Methode des MAPI-Spoolers auf. Sie können drei Flags an die Methode übergeben: FLUSH_UPLOAD, FLUSH_DOWNLOAD und FLUSH_FORCE. FLUSH_UPLOAD weist den Anbieter oder den MAPI-Spooler an, alle in der Ausgabewarteschlange wartenden Nachrichten zu senden, während FLUSH_DOWNLOAD den Anbieter oder den MAPI-Spooler anweist, alle eingehenden Nachrichten zu empfangen. FLUSH_FORCE können mit einem der anderen Flags festgelegt werden, damit das status -Objekt die Leerung unabhängig vom Zeitpunkt ausführt.

Erwarten Sie nicht, dass Sie SettingsDialog oder ChangePassword für ein MAPI-Subsystem, einen MAPI-Spooler oder ein Adressbuch status-Objekte aufrufen können. Sowohl das Subsystem als auch das Adressbuch status -Objekte unterstützen nur ValidateState. Das MAPI-Spooler status -Objekt unterstützt flushQueues zusätzlich zu ValidateState.

Siehe auch

Statustabellen

MAPI-Statusobjekte