Freigeben über


OpenTnefStreamEx

Gilt für: Outlook 2013 | Outlook 2016

Erstellt ein Transport-Neutral TNEF-Objekt (Kapselungsformat), das zum Codieren oder Decodieren eines Nachrichtenobjekts in einem 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 Unterstützungsobjekt 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 das TNEF_ENCODE-Flag ( ulFlags-Parameter ) in seinem Aufruf von OpenTnefStream festgelegt hat, muss der lpszName-Parameter einen Zeiger ungleich NULL auf eine Zeichenfolge ungleich NULL angeben, die aus allen Zeichen besteht, die für die Benennung einer Datei gültig sind. MAPI lässt keine Zeichenfolgennamen zu, einschließlich der Zeichen "[", "]" oder ":", auch wenn das Dateisystem ihre Verwendung zulässt. Die Größe der für den lpszName-Parameter übergebenen Zeichenfolge darf den Wert von MAX_PATH, die maximale Länge einer Zeichenfolge, die einen Pfadnamen enthält, nicht überschreiten.

ulFlags

[in] Bitmaske von Flags, die verwendet werden, um den Modus der Funktion anzugeben. Die folgenden Flags 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 attribut der downen Ebene 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 für den angegebenen Datenstrom wird für Lese-/Schreibberechtigungen 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 ist ideal für die Verwendung, wenn keine Abwärtskompatibilität erforderlich ist.

lpMessage

[in] Zeiger auf ein Nachrichtenobjekt als Ziel für eine decodierte Nachricht mit Anlagen oder eine 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 nachrichtenübergreifend relativ eindeutig sein.

lpAddressBook

[in] Zeiger auf ein Adressbuchobjekt, das zum Abrufen von Adressierungsinformationen für Eingabebezeichner 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 OpenTnefStreamEx-Funktion ist der empfohlene Ersatz für OpenTnefStream, den ursprünglichen Einstiegspunkt für den TNEF-Zugriff.

Ein von der OpenTnefStreamEx-Funktion erstelltes TNEF-Objekt ruft später die OLE-Methode IUnknown::AddRef auf, um Verweise für das Unterstützungsobjekt, 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 und initialisiert ein TNEF-Objekt für den Anbieter, um eine MAPI-Nachricht in eine TNEF-Streamnachricht zu codieren. 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 0 (null) sein und sollte nicht bei jedem Aufruf von OpenTnefStreamEx identisch sein. Verwenden Sie stattdessen Zufallszahlen basierend auf der Systemzeit aus dem Zufallszahlengenerator der Laufzeitbibliothek.

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