Freigeben über


One-Off-Tabellen

Gilt für: Outlook 2013 | Outlook 2016

Eine einmalige Tabelle enthält Informationen zu den Vorlagen, die ein Adressbuchanbieter zum Erstellen neuer Empfänger unterstützt. Einmalige Tabellen werden von Adressbuchanbietern, einzelnen Adressbuchcontainern und MAPI implementiert und können persistent oder temporär sein.

Hinweis

Verwechseln Sie die Vorlagen in einmaligen Tabellen nicht mit Vorlagenbezeichnern. obwohl ihre Zwecke ähnlich sind, sind ihre Codekonstrukte nicht gleich. Vorlagen werden verwendet, um Empfänger eines bestimmten Typs zu erstellen, während Vorlagenbezeichner verwendet werden, um die Daten eines Empfängers, der zu einem Hostanbieter gehört, mit Code zu binden, der einen anderen Empfänger unterstützt, der zu einem ausländischen Anbieter gehört.

Clients erstellen neue Empfänger:

  • Zum Hinzufügen zur Empfängerliste einer ausgehenden Nachricht.

  • Zum Hinzufügen zu einem der Container im Adressbuch.

In beiden Szenarien wird ein Adressbuchanbieter aufgefordert, eine einmalige Tabelle zurückzugeben. Adressbuchanbieter können entweder eine einzelne einmalige Tabelle implementieren, die in beiden Situationen verwendet werden soll, oder eine eindeutige einmalige Tabelle für jede Situation.

Wenn der Empfänger in eine ausgehende Nachricht eingeschlossen wird, ruft MAPI die IABLogon::GetOneOffTable-Methode des Adressbuchanbieters auf, um die einmalige Tabelle abzurufen. Die einmalige Tabelle enthält Vorlagen, die es einem Benutzer ermöglichen, Informationen einzugeben, die zur Erstellung eines Empfängers mit einer gültigen Adresse führen. MAPI registriert sich für Benachrichtigungen für diese Tabelle und lässt sie offen, damit Änderungen an den Benutzer wiedergegeben werden können. MAPI gibt die Tabelle nur dann frei, wenn das Subsystem oder Adressbuch status IMAPIStatus::ValidateState-Methode des Objekts aufgerufen wird.

Wenn der Empfänger einem Container hinzugefügt wird, führt MAPI einen anderen Aufruf aus und ruft die IMAPIProp::OpenProperty-Methode des Containers auf, um die PR_CREATE_TEMPLATES -Eigenschaft (PidTagCreateTemplates) abzurufen. Der Satz von Vorlagen, die in dieser einmaligen Tabelle enthalten sind, stellt die Empfängertypen dar, die dem Container hinzugefügt werden können. Beispielsweise machen E-Mail-Server häufig einen Container für jedes installierte Gateway verfügbar, sodass jeder Container nur Adressen enthält, die für das entsprechende Gateway spezifisch sind.

MAPI stellt eine einmalige Tabelle bereit, die eigene Vorlagen sowie Vorlagen von jedem Adressbuchanbieter in der Sitzung enthält. MAPI stellt eine generische Vorlage bereit, die verwendet werden kann, um einen neuen Empfänger für jeden Adresstyp zu erstellen, vorausgesetzt, dass der Benutzer sein Format kennt. Adressbuchanbieter verwenden diese einmalige Tabelle, indem sie IMAPISupport::GetOneOffTable aufrufen. Jede der Vorlagen, die in der einmaligen MAPI-Tabelle enthalten sind, führt zur Erstellung von Empfängern mit gültigen Empfängeradressen.

Adressbuchanbieter stellen in der Regel eine Vorlage für jeden unterstützten Adresstyp bereit. Unterstützung für Vorlagen ist jedoch nicht erforderlich. Adressbuchanbieter, die die Erstellung neuer Adressen nicht zulassen, können MAPI_E_NO_SUPPORT zurückgeben, wenn MAPI aufruft, um eine einmalige Tabelle anzufordern. Adressbuchanbieter, die zwar die Erstellung neuer Adressen zulassen, aber keine Vorlagen bereitstellen, können IMAPISupport::GetOneOffTable aufrufen, um die in der einmaligen MAPI-Tabelle aufgeführten Vorlagen zu verwenden.

Die folgenden Eigenschaften bilden den erforderlichen Spaltensatz in einmaligen Tabellen:

PR_ADDRTYPE gibt den Adresstyp an, der dem neuen Empfänger zugeordnet werden kann, der mit der Vorlage erstellt wurde.

PR_DISPLAY_NAME und PR_DISPLAY_TYPE daten dem neuen Empfänger zuordnen. PR_DISPLAY_NAME enthält eine Zeichenfolge, die den neuen Empfänger identifiziert, und PR_DISPLAY_TYPE enthält eine Konstante, die den Typ des Symbols angibt, das mit der Zeile angezeigt werden soll. Für Vorlagen für Messagingbenutzer ist die PR_DISPLAY_TYPE Spalte auf DT_MAILUSER festgelegt. für Vorlagen für Verteilerlisten ist die PR_DISPLAY_TYPE Spalten auf DT_DISTLIST festgelegt.

PR_ENTRYID ist der Eintragsbezeichner der Vorlage, die zum Erstellen eines neuen Empfängers verwendet werden soll. Dieser Eintragsbezeichner kann an zukünftige IAddrBook::NewEntry-, IAddrBook::OpenEntry- und IABContainer::CreateEntry-Aufrufe übergeben werden. Container legen die PR_ENTRYID Spalte ihrer Zeile für die Standardbenutzervorlage für Nachrichten auf PR_DEF_CREATE_MAILUSER (PidTagDefCreateMailuser) und die PR_ENTRYID Spalte ihrer Zeile für die Standardvorlage für verteilerlisten auf PR_DEF_CREATE_DL (PidTagDefCreateDl) fest.

PR_DEPTH wird verwendet, um die hierarchische Anzeige der Einträge in einer einmaligen Tabelle zu unterstützen, indem die Ebene des Einzugs für die Vorlage angegeben wird. Obwohl einmalige Tabellen entweder als flache Liste oder als hierarchische Anzeige angezeigt werden können, ist letzteres vorzuziehen, und Adressbuchanbieter sollten dies unterstützen, indem sie die PR_DEPTH Spalte für jede Zeile entsprechend festlegen. PR_DEPTH ist nullbasiert; Zeilen mit dem Wert 0 in ihrer PR_DEPTH Spalte werden nicht eingezogen. Je höher der Wert von PR_DEPTH, desto stärker wird die Zeile eingezogen. Zeilen, bei denen PR_DEPTH auf 1 festgelegt ist, werden beispielsweise um eine Registerkarte eingerückt, während Zeilen mit PR_DEPTH auf 3 festgelegt sind, drei Registerkarten eingezogen werden.

PR_SELECTABLE wird verwendet, um anzugeben, ob eine Zeile in der Tabelle eine Vorlage darstellt, die ausgewählt und zum Erstellen eines neuen Empfängers verwendet werden kann. Obwohl die meisten Zeilen in einer einmaligen Tabelle Vorlagen darstellen, können Anbieter Zeilen enthalten, die keine Vorlagen sind. Beispielsweise kann ein Anbieter die einmalige Tabelle nach Vorlagentyp organisieren, einschließlich einer Kategoriezeile, die in der Anzeige angezeigt wird, aber nicht für die Empfängererstellung verwendet wird.

Siehe auch

MAPI-Tabellen