Freigeben über


Stream für automatisches Vervollständigen

Gilt für: Outlook 2013 | Outlook 2016

Sie müssen nicht nur wissen, wie Microsoft Outlook mit dem Stream für automatisches Vervollständigen interagiert, sondern auch das Binärformat von AutoVervollständigen verstehen.

Der Stream für automatisches Vervollständigen besteht aus mehreren Zeilen mit Empfänger-Eigenschaften, die als binärer Stream zusammen mit einigen Verwaltungsmetadaten gespeichert und nur von Microsoft Outlook 2013, Microsoft Outlook 2010, Microsoft Office Outlook 2007 und Microsoft Outlook 2003 verwendet werden. Die Metadaten sind relevant für Outlook-Interaktionen mit dem Stream für automatisches Vervollständigen, sodass Dritte die Inhalte jedes Metadatenblocks beibehalten müssen, wenn sie einen geänderten Stream für automatisches Vervollständigen speichern. Dritte sollten also nur den Zeilensatz des Binärformats ändern und die Inhalte der Metadatenblöcke des Streams für automatisches Vervollständigen beibehalten.

Stream-Visualisierung

Das allgemeine Layout des Streams für automatisches Vervollständigen lautet wie folgt:

Metadaten (4 Bytes)

Hauptversionsnummer (4 Bytes)

Nebenversionsnummer (4 Bytes)

Anzahl der Zeilen n (4 Bytes)

Anzahl der Eigenschaften p in der ersten Zeile (4 Bytes)

Tag der Eigenschaft 1 (4 Bytes)

Reservierte Daten der Eigenschaft 1 (4 Bytes)

Wertvereinigung der Eigenschaft 1 (8 Bytes)

Wertdaten der Eigenschaft 1 (0 oder variable Bytes)

… (Eigenschaft 2 bis Eigenschaft P-1)

Tag der Eigenschaft p (4 Bytes)

Reservierte Daten der Eigenschaft p (4 Bytes)

Wertvereinigung der Eigenschaft p (8 Bytes)

Wertdaten der Eigenschaft p (0 oder variable Bytes)

Anzahl der Eigenschaften q in der zweiten Zeile (4 Bytes)

… (Eigenschaften der zweiten Zeile)

… (Zeile 3 bis Zeile n-1)

Anzahl der Eigenschaften r in Zeile n (4 Bytes)

… (Eigenschaften der Zeile n)

Zusätzliche Informationen Byteanzahl EI (4 Bytes)

Zusätzliche Informationen (EI-Bytes)

Metadaten (8 Bytes)

Ein Beispiel für eine binäre Struktur finden Sie im Binärbeispiel in den Outlook 2003/2007 NK2-Dateiformat- und Entwicklerrichtlinien.

Allgemeines Layout

Das allgemeine Layout des Streams für automatisches Vervollständigen lautet wie folgt:

Wertdaten Anzahl der Bytes
Metadaten
4
Nummer der Hauptversion
4
Nummer der Nebenversion
4
Zeilensatz
Variable
Zusätzliche Informationen Byteanzahl EI
4
Weitere Informationen
EI
Metadaten
8

Wenn die Hauptversion nicht 12, sollte dieser Datenstrom nicht gelesen oder geschrieben werden. Die aktuelle Nebenversion des Streams für automatisches Vervollständigen ist 0, d. h. die Bytes für die zusätzlichen Informationen sind auf "0" festgelegt. Wenn die Nebenversion nicht 0 ist, befinden sich Informationen in den zusätzlichen Informationen, die beim Lesen des Streams gelesen und beim Schreiben des Streams beibehalten werden müssen. Die Nebenversion muss auch beim Schreiben des Streams beibehalten werden. Wenn beide nicht beibehalten werden, verlieren Instanzen von Outlook, die die zusätzlichen Informationen schreiben, Daten.

Hinweis

Anwendungen dürfen keine benutzerdefinierten Daten zum Feld Zusätzliche Informationen hinzufügen und nicht die Nebenversion ändern, da diese Funktion Outlook-Erweiterungen des Formats und keine beliebigen Erweiterungen von Drittanbietern unterstützt.

Zeilensatz-Layout

Das Zeilensatz-Layout lautet wie folgt:

Wertdaten Anzahl der Bytes
Anzahl der Zeilen
4
Zeilen
Variable

Die Anzahl der Zeilen gibt an, wie viele Zeilen im nächsten Teil der binären Datenstromsequenz enthalten sind.

Zeilen-Layout

Jede Zeile besitzt das folgende Format:

Wertdaten Anzahl der Bytes
Anzahl der Eigenschaften
4
Eigenschaften
Variable

Die Anzahl der Eigenschaften gibt an, wie viele Eigenschaften im nächsten Teil der binären Datenstromsequenz enthalten sind.

Eigenschaften-Layout

Jede Eigenschaft besitzt das folgende Format:

Wertdaten Anzahl der Bytes
Tag der Eigenschaft
4
Reservierte Daten
4
Eigenschaftswertvereinigung
Wertdaten
0 oder Variable (abhängig vom Tag der Eigenschaft)

Interpretation des Eigenschaftswerts

Die Eigenschaftswertvereinigung und die Wertdaten werden basierend auf dem Tag der Eigenschaft in den ersten 4 Bytes des Eigenschaftsblocks interpretiert. Das Tag der Eigenschaft liegt im selben Format vor wie das Tag der MAPI-Eigenschaft. Die Bits 0 bis 15 des Tags der Eigenschaft geben den Typ der Eigenschaft an. Die Bits 16 bis 31 sind Bezeichner der Eigenschaft. Der Eigenschaftentyp bestimmt, wie der Rest der Eigenschaft gelesen werden soll.

Statischer Wert

Einige Eigenschaften besitzen keine Wertdaten und verfügen nur in der Vereinigung über Daten. Die folgenden Eigenschaftstypen (die aus dem Eigenschafts-Tag stammen) sollten die 8 Byte Daten der Eigenschaftsvereinigung wie folgt interpretieren:

Eigenschaftstyp Interpretation der Eigenschaftsvereinigung
PT_I2
short int
PT_LONG
long
PT_ERROR
long
PT_R4
float
PT_DOUBLE
double
PT_BOOLEAN
short int
PT_SYSTIME
FILETIME
PT_I8
LARGE_INTEGER

Dynamische Werte

Andere Eigenschaften weisen nach den 16 Bytes Daten in einem Wertdatenblock auf, die das Tag der Eigenschaft, die Reservierten Daten und die Eigenschaftswertvereinigung enthalten. Im Gegensatz zu statischen Werten sind die Daten, die in der 8-Byte-Eigenschaftswertvereinigung gespeichert sind, irrelevant für das Lesen. Stellen Sie beim Schreiben sicher, dass die 8 Bytes mit Werten gefüllt werden. Der Inhalt der 8 Bytes ist jedoch nicht wichtig. Bei dynamischen Werten bestimmt der Tagtyp der Eigenschaft die Interpretation der Wertdaten.

PT_STRING8

Wertdaten Anzahl der Bytes
Anzahl der Bytes n
4
Bytes werden als ANSI-Zeichenfolge interpretiert (beinhaltet NULL-Abschlusszeichen)
n

PT_CLSID

Wertdaten Anzahl der Bytes
Bytes, die als GUID interpretiert werden
16

PT_BINARY

Wertdaten Anzahl der Bytes
Anzahl der Bytes n
4
Bytes, die als Byte-Array interpretiert werden
n

PT_MV_BINARY

Wertdaten Anzahl der Bytes
Anzahl der binären Arrays X
4
Eine Ausführung von Bytes, die X binäre Arrays enthält. Jedes Array sollten exakt wie die PT_BINARY-Byte-Ausführung interpretiert werden. Variable

PT_MV_STRING8 (Outlook 2007, Outlook 2010, and Outlook 2013)

Wertdaten Anzahl der Bytes
Anzahl der ANSI-Zeichenfolgen X
4
Eine Ausführung von Bytes, die X ANSI-Zeichenfolgen enthält. Jede Zeichenfolge sollte exakt wie die PT_STRING8-Byte-Ausführung interpretiert werden. Variable

PT_MV_UNICODE (Outlook 2007, Outlook 2010, Outlook 2013)

Wertdaten Anzahl der Bytes
Anzahl der Unicode-Zeichenfolgen X
4
Eine Ausführung von Bytes, die X UNICODE-Zeichenfolgen enthält. Jede Zeichenfolge sollte exakt wie die PT_UNICODE-Byte-Ausführung interpretiert werden. Variable

Wesentliche Eigenschaften

Wie zuvor in diesem Artikel erwähnt, besitzen die binären Blöcke, die Eigenschaften darstellen, Eigenschafts-Tags, die Eigenschaften von Adressbuchempfängern entsprechen. Eine Beschreibung der Eigenschaften, die hier nicht aufgeführt sind, finden Sie unter https://msdn.microsoft.com/library/cc433490(EXCHG.80).aspx.

Eigenschaftsname Eigenschafts-Tag Beschreibung (weitere Informationen finden Sie unter MSDN)
PR_NICK_NAME_W (nicht auf Empfänger übertragen, spezifisch für den Stream für automatisches Vervollständigen)
0x6001001f
Diese Eigenschaft muss in jeder Empfängerzeile zuerst stehen. Die Funktion dient als Schlüssel-ID für die Empfängerzeile.
PR_ENTRYID
0x0FFF0102
Eintrag-ID des Adressbuchs für den Empfänger
PR_DISPLAY_NAME_W
0x3001001F
Anzeigename des Empfängers
PR_EMAIL_ADDRESS_W
0x3003001F
Die E-Mail-Adresse des Empfängers (z. B. johndoe@contoso.com oder /o=Contoso/OU=Foo/cn=Recipients/cn=johndoe)
PR_ADDRTYPE_W
0x3002001F
Adresstyp des Empfängers (z. B. SMTP oder EX).
PR_SEARCH_KEY
0x300B0102
MAPI-Suchschlüssel des Empfängers
PR_SMTP_ADDRESS_W
0x39FE001f
SMTP-Adresse des Empfängers
PR_DROPDOWN_DISPLAY_NAME_W (nicht auf Empfänger übertragen, spezifisch für den Stream für automatisches Vervollständigen)
0X6003001f
Zeichenfolge, die in der AutoVervollständigen-Liste angezeigt wird
PR_NICK_NAME_WEIGHT (nicht auf Empfänger übertragen, spezifisch für den Stream für automatisches Vervollständigen)
0x60040003
Gewichtung dieses AutoVervollständigen-Eintrags Mit der Gewichtung wird bestimmt, in welcher Reihenfolge AutoVervollständigen-Einträge beim Abgleich der AutoVervollständigen-Liste ausgeführt werden. Einträge mit höherer Gewichtung werden vor Einträgen mit geringerer Gewichtung angezeigt. Die komplette AutoVervollständigen-Liste wird nach dieser Eigenschaft sortiert. Die Gewichtung wird in regelmäßigen Abständen über einen Zeitraum verringert und wird vergrößert, wenn der Benutzer eine E-Mail-Nachricht an diesen Empfänger sendet. Weitere Informationen zu dieser Eigenschaft finden Sie weiter unten in diesem Thema.

PR_NICK_NAME_WEIGHT

Der Zeilensatz dieses Streams für automatisches Vervollständigen ist in absteigender Reihenfolge nach der Eigenschaft PR_NICK_NAME_WEIGHT sortiert, und der Stream für automatisches Vervollständigen sollte dieses Sortierverhalten immer beibehalten. Aus diesem Grund sollte bei Änderungen an der Gewichtung einer Zeile sichergestellt werden, dass die Position der Zeile die Sortierreihenfolge des kompletten Zeilensatzes beibehält. Zusätze zum Zeilensatz sollten an der richtigen Stelle eingefügt werden, um die Sortierreihenfolge beizubehalten.

Der Mindestwert für diese Gewichtung ist 0x1, und der Maximalwert beträgt LONG_MAX. Alle anderen Werte für die Gewichtung werden als ungültig betrachtet.

Wenn Outlook 2007 eine E-Mail an einen Empfänger versendet oder einen Empfänger auflöst, wird die Gewichtung dieses Empfängers um 0x2000 erhöht.