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 |
---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
pdwNumberofBytesWritten ist NULL. |
|
pBuffer ist NULL. |
|
Die Schnittstelle für ausgehende Anlagen wurde nicht initialisiert. Rufen Sie WSDCreateOutboundAttachment auf, um die Schnittstelle zu initialisieren. |
|
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 |