Freigeben über


Erstellen einer Nachrichtenanlage

Gilt für: Outlook 2013 | Outlook 2016

Eine Nachrichtenanlage ist einige zusätzliche Daten, z. B. eine Datei, eine andere Nachricht oder ein OLE-Objekt, die Sie zusammen mit einer Nachricht senden oder speichern können. Jede Anlage verfügt über eine Auflistung von Eigenschaften, die sie identifizieren und ihren Typ und ihre Art beschreiben, wie sie gerendert wird. Wie Empfänger kann auf Nachrichtenanlagen nur über die Nachricht zugegriffen werden, zu der sie gehören. Damit eine Anlage verwendet werden kann, muss ihre Nachricht daher geöffnet sein.

Erstellen einer Nachrichtenanlage

  1. Rufen Sie die IMessage::CreateAttach-Methode der Nachricht auf, und übergeben Sie NULL als Schnittstellenbezeichner. CreateAttach gibt eine Zahl zurück, die die neue Anlage innerhalb der Nachricht eindeutig identifiziert. Die Anlagenummer wird in der eigenschaft PR_ATTACH_NUM (PidTagAttachNumber) gespeichert und ist nur gültig, solange die Nachricht, die die Anlage enthält, geöffnet ist.

  2. Rufen Sie IMAPIProp::SetProps auf, um PR_ATTACH_METHOD (PidTagAttachMethod) festzulegen, um anzugeben, wie auf die Anlage zugegriffen werden soll. PR_ATTACH_METHOD ist erforderlich. Legen Sie sie auf Folgendes fest:

    • ATTACH_BY_VALUE, wenn es sich bei der Anlage um Binärdaten handelt.

    • ATTACH_BY_REFERENCE, ATTACH_BY_REF_RESOLVE oder ATTACH_BY_REF_ONLY, wenn die Anlage eine Datei ist.

    • ATTACH_EMBEDDED_MSG, ob die Anlage eine Nachricht ist.

    • ATTACH_OLE, wenn die Anlage ein OLE-Objekt ist.

  3. Legen Sie die entsprechende Anlagendateneigenschaft fest:

  4. Legen Sie PR_ATTACH_RENDERING (PidTagAttachRendering) fest, um die grafische Darstellung der Anlage für Datei- oder binäre Anlagen zu speichern. Legen Sie sie nicht für OLE-Objekte fest, in denen die Renderinginformationen intern gespeichert werden, oder für angefügte Nachrichten.

  5. Legen Sie PR_RENDERING_POSITION (PidTagRenderingPosition) fest, um anzugeben, wo die Anlage angezeigt werden soll. PR_RENDERING_POSITION gilt nur für Clients, die die eigenschaft PR_BODY festlegen. Wenn Sie nur PR_RTF_COMPRESSED unterstützen, platzieren Sie die folgenden Platzhalterinformationen in den komprimierten Stream:

    \objattph

    Um PR_RENDERING_POSITION festzulegen, weisen Sie entweder eine Zahl zu, die einen Ordnungsoffset in Zeichen darstellt, wobei das erste Zeichen von PR_BODY 0 ist, wenn Sie wissen müssen, wo in der Nachricht die Anlage gerendert wird, oder 0xFFFFFFFF, wenn Sie Anlagen nicht innerhalb PR_BODY rendern.

  6. Legen Sie PR_ATTACH_FILENAME (PidTagAttachFilename) fest, um den Kurznamen der Datei für eine Dateianlage anzugeben, und PR_ATTACH_LONG_FILENAME (PidTagAttachLongFilename), um den Namen der Datei anzugeben, der auf einer Plattform unterstützt wird, die das Format für lange Dateinamen verarbeitet. Beide Eigenschaften sind optional. Wenn Sie jedoch PR_ATTACH_LONG_FILENAME festlegen, legen Sie auch PR_ATTACH_FILENAME fest.

  7. Legen Sie PR_DISPLAY_NAME (PidTagDisplayName) fest, um den Namen für die Anlage anzugeben, die in einem Dialogfeld angezeigt werden kann. PR_DISPLAY_NAME ist optional.

Festlegen PR_ATTACH_DATA_BIN

  1. Rufen Sie IMAPIProp::OpenProperty auf, um die Eigenschaft mit der IStream-Schnittstelle zu öffnen.

  2. Wenn eine Datei die Daten enthält und geöffnet ist oder Sie explizite Kontrolle über die Puffergröße benötigen, rufen Sie IStream::Write in einer Schleife auf, um die Daten im Stream zu platzieren.

  3. Eine weitere Möglichkeit besteht darin, OpenStreamOnFile aufzurufen, um einen Datenstrom für den Zugriff auf die Datendatei zu erstellen, und dann die IStream::CopyTo-Methode dieses Datenstroms aufzurufen, um die Daten in den von OpenProperty zurückgegebenen Stream zu kopieren.

  4. Rufen Sie die IStream::Commit-Methode des neuen Streams auf.

Festlegen von PR_ATTACH_DATA_OBJ

  1. Rufen Sie IMAPIProp::OpenProperty auf, um die Eigenschaft mit der IStreamDocfile-Schnittstelle zu öffnen, um einen Stream zu erstellen, der mit strukturiertem Speicher funktioniert. IStreamDocfile wird von Nachrichtenspeicheranbietern implementiert, um Clients eine leistungsstärkere Möglichkeit zum Speichern und Abrufen von strukturiertem Speicher zu bieten. Die IStreamDocfile-Schnittstelle ist identisch mit IStream, aber der Inhalt des Datenstroms ist garantiert als strukturierter Speicher formatiert. Wenn dieser Aufruf erfolgreich ist, erstellen Sie den Stream mit den gleichen Schritten, die zum Festlegen PR_ATTACH_DATA_BIN beschrieben sind.

  2. Wenn OpenProperty fehlschlägt:

    1. Rufen Sie OpenProperty erneut auf, und fragen Sie nach IStorage.

    2. Rufen Sie StgOpenStorage auf, um das OLE-Objekt zu öffnen und ein Speicherobjekt zurückzugeben.

    3. Rufen Sie die IStorage::CopyTo-Methode des zurückgegebenen Speicherobjekts auf, um in das von OpenProperty zurückgegebene Speicherobjekt zu kopieren.

    4. Rufen Sie die IStorage::Commit-Methode des neuen Speicherobjekts auf.

Festlegen von PR_ATTACH_PATHNAME

  1. Ordnen Sie eine SPropValue-Struktur zu, und legen Sie das ulPropTag-Element auf PR_ATTACH_PATHNAME und das Value.LPSZ-Element auf die Zeichenfolge fest, die den Dateinamen darstellt.

  2. Rufen Sie die IMAPIProp::SetProps-Methode der Anlage auf.

Hinweis

Wenn Ihre Plattform lange Dateinamen unterstützt, legen Sie sowohl PR_ATTACH_PATHNAME als auch PR_ATTACH_LONG_PATHNAME fest. Es kann erforderlich sein, einen Betriebssystemaufruf zu tätigen, um den kurzen Dateinamen abzurufen.

Siehe auch