Freigeben über


OpenTnefStreamEx

Gilt für: Outlook 2013 | Outlook 2016

Erstellt ein TNEF-Objekt (Transport-Neutral Encapsulation Format), das zum Codieren oder Decodieren eines Nachrichtenobjekts in einen TNEF-Datenstrom zur Verwendung durch Transporte oder Gateways und Nachrichtenspeicher verwendet werden kann. Dies ist der Einstiegspunkt für den TNEF-Zugriff.

Eigenschaft Wert
Headerdatei
Tnef.h
Implementiert von:
MAPI
Aufgerufen von:
Transportanbieter
HRESULT OpenTnefStreamEx(
  LPVOID lpvSupport,
  LPSTREAM lpStream,
  LPSTR lpszStreamName,
  ULONG ulFlags,
  LPMESSAGE lpMessage,
  WORD wKeyVal,
  LPADDRESSBOOK lpAddressBook,
  LPITNEF FAR * lppTNEF
);

Parameter

lpvSupport

[in] Übergibt ein Supportobjekt oder übergibt NULL. Wenn NULL, sollte der lpAddressBook-Parameter ungleich NULL sein.

lpStream

[in] Zeiger auf ein Speicherstreamobjekt, z. B. eine OLE IStream-Schnittstelle, die eine Quelle oder ein Ziel für eine TNEF-Streamnachricht bereitstellt.

lpszStreamName

[in] Zeiger auf den Namen des Datenstroms, den das TNEF-Objekt verwendet. Wenn der Aufrufer die TNEF_ENCODE-Kennzeichnung (ulFlags-Parameter) in seinem Aufruf von OpenTnefStream festgelegt hat, muss der lpszName-Parameter einen Nicht-NULL-Zeiger auf eine Zeichenfolge ungleich NULL angeben, die aus Zeichen besteht, die für den Namen einer Datei gültig sind. MAPI lässt keine Zeichenfolgennamen zu, die die Zeichen „[“, „]“ oder „:“ enthalten, auch wenn das Dateisystem deren Verwendung zulässt. Die Größe der Zeichenfolge, die für den Parameter lpszName übergeben wird, darf nicht den Wert von MAX_PATH überschreiten, der maximalen Länge einer Zeichenfolge, die einen Pfadnamen enthält.

ulFlags

[in] Bitmaske von Flags, die verwendet werden, um den Modus der Funktion anzugeben. Die folgenden Werte können festgelegt werden:

TNEF_BEST_DATA

Alle möglichen Eigenschaften werden ihren Down-Level-Attributen zugeordnet, aber wenn ein möglicher Datenverlust aufgrund der Konvertierung in ein Down-Level-Attribut auftritt, wird die Eigenschaft auch in den Kapselungen codiert. Beachten Sie, dass dies zur Duplizierung von Informationen im TNEF-Stream führt. TNEF_BEST_DATA ist die Standardeinstellung, wenn keine anderen Modi angegeben werden.

TNEF_COMPATIBILITY

Bietet Abwärtskompatibilität mit älteren Clientanwendungen. TNEF-Datenströme, die mit diesem Flag codiert sind, ordnen alle möglichen Eigenschaften dem entsprechenden Down-Level-Attribut zu. Dieser Modus verursacht auch die Standardeinstellung einiger Eigenschaften, die für Down-Level-Clients erforderlich sind.

Achtung

Dieses Flag ist veraltet und sollte nicht verwendet werden.

TNEF_DECODE

Das TNEF-Objekt im angegebenen Stream wird mit schreibgeschütztem Zugriff geöffnet. Der Transportanbieter muss dieses Flag festlegen, wenn die Funktion das Objekt für die nachfolgende Decodierung initialisieren soll.

TNEF_ENCODE

Das TNEF-Objekt im angegebenen Stream wird für Lese-/Schreibberechtigung geöffnet. Der Transportanbieter muss dieses Flag festlegen, wenn die Funktion das Objekt für die nachfolgende Codierung initialisieren soll.

TNEF_PURE

Codiert alle Eigenschaften in die MAPI-Kapselungsblöcke. Daher besteht eine „reine“ TNEF-Datei höchstens aus den Attributen attMAPIProps, attAttachment, attRenddata und attRecipTable. Dieser Modus eignet sich ideal, wenn keine Abwärtskompatibilität erforderlich ist.

lpMessage

[in] Zeiger auf ein Nachrichtenobjekt als Ziel für eine decodierte Nachricht mit Anlagen oder als Quelle für eine codierte Nachricht mit Anlagen. Alle Eigenschaften einer Zielnachricht können durch die Eigenschaften einer codierten Nachricht überschrieben werden.

wKeyVal

[in] Ein Suchschlüssel, den das TNEF-Objekt verwendet, um Anlagen mit den in den Nachrichtentext eingefügten Texttags abzugleichen. Dieser Wert sollte in allen Nachrichten relativ eindeutig sein.

lpAddressBook

[in] Zeiger auf ein Adressbuchobjekt, das zum Abrufen von Adressinformationen für Eintragsbezeichner verwendet wird.

lppTNEF

[out] Zeiger auf das neue TNEF-Objekt.

Rückgabewert

S_OK

Der Aufruf erfolgreich ausgeführt und der erwartete Wert oder Werte zurückgegeben hat.

Hinweise

Die Funktion OpenTnefStreamEx -ist der empfohlene Ersatz für OpenTnefStream, dem ursprünglichen Einstiegspunkt für den TNEF-Zugriff.

Ein TNEF-Objekt, das von der OpenTnefStreamEx-Funktion erstellt wurde, ruft später die OLE-Methode IUnknown::AddRef auf, um Verweise für das Supportobjekt, das Streamobjekt und das Nachrichtenobjekt hinzuzufügen. Der Transportanbieter kann die Verweise für alle drei Objekte mit einem einzigen Aufruf der OLE-Methode IUnknown::Release für das TNEF-Objekt freigeben.

OpenTnefStreamEx ordnet dem Anbieter ein TNEF-Objekt zu, das beim Codieren einer MAPI-Nachricht in eine TNEF-Streamnachricht verwendet werden soll, und initialisiert es. Alternativ kann diese Funktion das Objekt für den Anbieter einrichten, das in nachfolgenden Aufrufen von ITnef::ExtractProps verwendet wird, um eine TNEF-Streamnachricht in eine MAPI-Nachricht zu decodieren. Um das TNEF-Objekt freizugeben und die Sitzung zu schließen, muss der Transportanbieter die geerbte IUnknown::Release-Methode für das Objekt aufrufen.

Der Basiswert für den wKeyVal-Parameter darf nicht Null sein und darf nicht bei jedem Aufruf von OpenTnefStreamExgleich sein. Verwenden Sie stattdessen Zufallszahlen, die auf der Systemzeit aus dem Zufallszahlengenerator der Laufzeitbibliothek basieren.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Kommentar
File.cpp
LoadFromTNEF
MFCMAPI verwendet die OpenTnefStreamEx-Methode, um einen Stream in der TNEF-Datei zu öffnen, damit Eigenschaften extrahiert werden können.

Siehe auch