Freigeben über


IWSDOutboundAttachment::Write-Methode (wsdattachment.h)

Sendet Anlagedaten mithilfe eines MIME-Containers an den Remotehost.

Syntax

HRESULT Write(
  [in]  const BYTE *pBuffer,
  [in]  DWORD      dwBytesToWrite,
  [out] LPDWORD    pdwNumberOfBytesWritten
);

Parameter

[in] pBuffer

Zeiger auf einen Puffer, der die Ausgabedaten enthält. Das Anwendungsprogramm ist für die Zuweisung und Freigabe dieses Datenpuffers verantwortlich.

[in] dwBytesToWrite

Anzahl der Bytes, die von pBuffer an den Remotehost gesendet werden sollen.

[out] pdwNumberOfBytesWritten

Zeiger auf ein DWORD , das die Anzahl der Bytes von Daten enthält, die tatsächlich an den Remotehost gesendet wurden.

Rückgabewert

Mögliche Rückgabewerte sind unter anderem folgendes:

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
E_POINTER
pdwNumberofBytesWritten ist NULL.
E_INVALIDARG
pBuffer ist NULL.
HRESULT_FROM_WIN32(ERROR_INVALID_OPERATION)
Die Schnittstelle für ausgehende Anlagen wurde nicht initialisiert. Rufen Sie WSDCreateOutboundAttachment auf, um die Schnittstelle zu initialisieren.
STG_S_BLOCK
Interne Puffer waren nicht verfügbar. Die Daten wurden nicht akzeptiert und für die Übertragung in die Warteschlange gestellt.

Hinweise

Mit der Write-Methode kann ein Anwendungsprogramm beliebige Daten als MIME-gekapselte Nachrichtenanlage an einen Remotehost senden. Der erste Aufruf von Write öffnet den ausgehenden Anlagedatenstrom und initiiert die Übertragung der HTTP-Header, Umschlagdaten und mime-codierten Anwendungsdaten. Nachfolgende Aufrufe von Write senden zusätzliche Blöcke mit MIME-codierten Anwendungsdaten , bis die Anwendung close aufruft, wodurch der Anlagenstream geschlossen und die Übertragung der Nachrichtenumschlagdaten und -header abgeschlossen wird.

Der Schreibvorgang kann unter verschiedenen Bedingungen blockiert werden. Beim ersten Vorgang wird Das Schreiben blockiert, bis die HTTP-Header und der XML-Inhalt übertragen wurden. Beim Senden mehrerer Anlagen in einer einzelnen Nachricht kann der erste Aufruf des Schreibens für eine Anlage blockiert werden, bis alle vorherigen Anlagendatenströme vollständig übertragen wurden. Schreibvorgänge können bis zu 30 Sekunden lang blockiert werden (pro HTTP-Sendetimeout), wenn der Remotehost nicht antwortet.

Wenn beim Herstellen einer Verbindung oder beim Übertragen von Headern ein Fehler auftritt, gibt Write den Fehlercode sofort zurück. Wenn ein Datenübertragungsfehler auftritt, kann der Fehler auf einen zukünftigen Aufruf von Write oder Close verzögert werden.

Die Write-Methode kann nach einem fehlgeschlagenen Schreibversuch , der STG_S_BLOCK zurückgegeben hat, erfolgreich zurückgegeben werden. Ein nachfolgender Erfolg weist darauf hin, dass die internen Puffer nach dem ersten fehlgeschlagenen Versuch zur Verwendung freigegeben wurden. Wenn STG_S_BLOCK von einer Anwendung empfangen wird, kann die Anwendung die gleichen Daten entweder mithilfe der Write-Methode erneut senden oder die Datenübertragung mit der Abort-Methode beenden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wsdattachment.h (include Wsdapi.h)
DLL Wsdapi.dll

Weitere Informationen

IWSDInboundAttachment

IWSDOutboundAttachment

IWSDOutboundAttachment::Abort

IWSDOutboundAttachment::Close