Statustabellen
Gilt für: Outlook 2013 | Outlook 2016
Die status Tabelle enthält Informationen zum Zustand der aktuellen Sitzung. Es gibt eine status Tabelle für jede MAPI-Sitzung, die informationen enthält, die von DER MAPI und von Dienstanbietern bereitgestellt werden. MAPI stellt Daten für drei Zeilen bereit: eine Zeile für das MAPI-Subsystem, eine Zeile für den MAPI-Spooler und eine Zeile für das integrierte Adressbuch. Da Transportanbieter status Informationen für die status-Tabelle bereitstellen müssen, gibt es für jeden aktiven Transportanbieter eine Zeile. Adressbuch- und Nachrichtenspeicheranbieter können auswählen, ob die status Tabelle unterstützt werden soll.
Da jede Zeile von einer anderen Ressource bereitgestellt wird, kann der Spaltensatz von Zeile zu Zeile variieren. Es gibt eine Reihe von Spalten, die jedes status -Objekt bereitstellen muss, und eine Reihe von Spalten, die MAPI bereitstellt. Ein Dienstanbieter kann diesen Sätzen hinzufügen, um anbieterspezifische Eigenschaften verfügbar zu machen. Nachrichtenspeicheranbieter können beispielsweise PR_STORE_RECORD_KEY (PidTagStoreRecordKey) hinzufügen, um Clients den Bezeichner ihres Nachrichtenspeichers bereitzustellen. Die Kunden müssen über die Existenz dieser zusätzlichen Informationen verfügen, um sie verwenden zu können.
In der folgenden Tabelle sind die Eigenschaften aufgeführt, die in jeder status Tabellenzeile enthalten sein müssen. Der Implementierer des status-Objekts stellt einige der Eigenschaften bereit, andere werden von MAPI berechnet.
Von status-Objekt bereitgestellte Eigenschaften | Von MAPI bereitgestellte Eigenschaften |
---|---|
PR_DISPLAY_NAME (PidTagDisplayName) |
PR_PROVIDER_DLL_NAME (PidTagProviderDllName) |
PR_STATUS_CODE (PidTagStatusCode) |
PR_RESOURCE_FLAGS (PidTagResourceFlags) |
PR_RESOURCE_METHODS (PidTagResourceMethods) |
PR_RESOURCE_TYPE (PidTagResourceType) |
Wenn das status-Objekt eine Identität bereitstellt, sollte es PR_IDENTITY_DISPLAY (PidTagIdentityDisplay), PR_IDENTITY_ENTRYID (PidTagIdentityEntryId) und PR_IDENTITY_SEARCH_KEY (PidTagIdentitySearchKey) festlegen und diese Eigenschaften in die Tabelle einschließen.
Vier Eigenschaften werden von MAPI für jede status Tabellenzeile berechnet:
Eigenschaft | ... |
---|---|
PR_ENTRYID (PidTagEntryId) |
PR_INSTANCE_KEY (PidTagInstanceKey) |
PR_OBJECT_TYPE (PidTagObjectType) |
PR_ROWID (PidTagRowid) |
MAPI weist der zeile status einen Eintragsbezeichner zu, damit Clients das entsprechende status -Objekt öffnen können. Ein Zeilenbezeichner wird auch zugewiesen, um die Zeile in der Tabelle zu identifizieren, da es sich um einen instance Schlüssel zum Identifizieren der Daten im status-Objekt handelt. Die eigenschaft PR_OBJECT_TYPE ist auf MAPI_STATUS festgelegt.
Um auf die status-Tabelle zuzugreifen, rufen Clients die IMAPISession::GetStatusTable-Methode auf. Dieser Aufruf sollte nicht sofort nach dem Start erfolgen. Dies liegt daran, dass GetStatusTable warten muss, bis der MAPI-Spooler die Transportanbieter initialisiert. Dies ist ein Vorgang, der bis nach Abschluss der Anmeldung des Clients verschoben wird. GetStatusTable ist ein relativ schneller Aufruf, nachdem der MAPI-Spooler die Startverarbeitung abgeschlossen hat.
Statustabelleninformationen können auf verschiedene Arten verwendet werden, z. B. für den Zugriff auf ein status-Objekt, um zu bestimmen, ob ein Client in einem verbundenen oder offline-Modus ausgeführt wird, und um den Status eines Anbieters zu überwachen. Clients können beispielsweise das status Objekt eines bestimmten Dienstanbieters öffnen, indem sie den Wert der eigenschaft PR_ENTRYID an die IMAPISession::OpenEntry-Methode übergeben. Das status-Objekt unterstützt die IMAPIStatus-Schnittstelle, eine Schnittstelle, die Methoden zum Ändern eines Dienstanbieterkennworts, zum Leeren der Nachrichtenwarteschlange, zum Anzeigen eines Konfigurationseigenschaftenblatts oder zum bestätigen status direkt mit einem Anbieter enthält. Statustabelleninformationen können auch verwendet werden, um ein Dialogfeld zu erstellen, um Clients über den Fortschritt während eines längeren Vorgangs zu informieren.
Dienstanbieter, die die status Tabelle unterstützen, verwenden die IMAPISupport::ModifyStatusRow-Methode, um ihre Zeile zu erstellen und zu aktualisieren. Wenn eine Änderung an ihrer Zeile auftritt, müssen alle Senkeobjekte benachrichtigt werden, die registriert sind, um status Tabellenbenachrichtigungen zu erhalten. Dienstanbieter können die IMAPISupport::Notify-Methode aufrufen, wenn sie das MAPI-Benachrichtigungshilfsprogramm verwenden, oder die IMAPIAdviseSink::OnNotify-Methode jeder Empfehlungssenke direkt aufrufen.