IWSDOutboundAttachment ::Write, méthode (wsdattachment.h)
Envoie des données de pièce jointe à l’hôte distant à l’aide d’un conteneur MIME.
Syntaxe
HRESULT Write(
[in] const BYTE *pBuffer,
[in] DWORD dwBytesToWrite,
[out] LPDWORD pdwNumberOfBytesWritten
);
Paramètres
[in] pBuffer
Pointeur vers une mémoire tampon contenant les données de sortie. Le programme d’application est chargé d’allouer et de libérer cette mémoire tampon de données.
[in] dwBytesToWrite
Nombre d’octets à envoyer à l’hôte distant à partir de pBuffer.
[out] pdwNumberOfBytesWritten
Pointeur vers un DWORD contenant le nombre d’octets de données réellement envoyées à l’hôte distant.
Valeur retournée
Les valeurs de retour possibles incluent, sans s’y limiter, les éléments suivants :
Code de retour | Description |
---|---|
|
La méthode s’est terminée avec succès. |
|
pdwNumberofBytesWritten a la valeur NULL. |
|
pBuffer a la valeur NULL. |
|
L’interface de pièce jointe sortante n’a pas été initialisée. Appelez WSDCreateOutboundAttachment pour initialiser l’interface. |
|
Les mémoires tampons internes n’étaient pas disponibles. Les données n’ont pas été acceptées et mises en file d’attente pour transmission. |
Remarques
La méthode Write permet à un programme d’application d’envoyer des données arbitraires à un hôte distant en tant que pièce jointe de message encapsulée mime. Le premier appel à Write ouvre le flux de pièces jointes sortantes et lance la transmission des en-têtes HTTP, des données d’enveloppe et des données d’application encodées mime. Les appels suivants à Write envoient des blocs supplémentaires de données d’application encodées en MIME jusqu’à ce que l’application effectue un appel à Fermer, ce qui ferme le flux de pièces jointes et termine la transmission des données et des en-têtes de l’enveloppe de message.
L’opération d’écriture peut se bloquer dans plusieurs conditions. Lors de l’opération initiale, Write se bloque jusqu’à ce que les en-têtes HTTP et le contenu XML aient été transmis. Lors de l’envoi de plusieurs pièces jointes dans un seul message, le premier appel à Écrire sur n’importe quelle pièce jointe peut se bloquer jusqu’à ce que tous les flux de pièces jointes précédents aient été complètement transmis. L’écriture peut se bloquer pendant jusqu’à 30 secondes (par délai d’expiration de transmission HTTP) si l’hôte distant ne répond pas.
Si une erreur se produit lors de l’établissement d’une connexion ou de la transmission d’en-têtes, Write renvoie immédiatement le code d’erreur. Si une erreur de transfert de données se produit, l’erreur peut être retardée à un appel ultérieur d’écriture ou de fermeture.
La méthode Write peut retourner avec succès après l’échec d’une tentative d’écriture qui a renvoyé STG_S_BLOCK. Une réussite ultérieure indique que les mémoires tampons internes ont été libérées pour être utilisées après l’échec initial de la tentative. Lorsque STG_S_BLOCK est reçu par une application, l’application peut renvoyer les mêmes données à l’aide de la méthode Write ou arrêter le transfert de données à l’aide de la méthode Abort .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wsdattachment.h (inclure Wsdapi.h) |
DLL | Wsdapi.dll |