Метод IWSDOutboundAttachment::Write (wsdattachment.h)
Отправляет данные вложения на удаленный узел с помощью контейнера MIME.
Синтаксис
HRESULT Write(
[in] const BYTE *pBuffer,
[in] DWORD dwBytesToWrite,
[out] LPDWORD pdwNumberOfBytesWritten
);
Параметры
[in] pBuffer
Указатель на буфер, содержащий выходные данные. Программа приложения отвечает за выделение и освобождение этого буфера данных.
[in] dwBytesToWrite
Число байтов, отправляемых на удаленный узел из pBuffer.
[out] pdwNumberOfBytesWritten
Указатель на DWORD , содержащий количество байтов данных, фактически отправленных на удаленный узел.
Возвращаемое значение
Возможные возвращаемые значения включают, помимо прочего, следующие:
Код возврата | Описание |
---|---|
|
Метод успешно завершен. |
|
pdwNumberofBytesWritten имеет значение NULL. |
|
pBuffer имеет значение NULL. |
|
Интерфейс исходящего вложения не инициализирован. Вызовите WSDCreateOutboundAttachment , чтобы инициализировать интерфейс. |
|
Внутренние буферы были недоступны. Данные не были приняты и поставлены в очередь для передачи. |
Комментарии
Метод Write позволяет программе приложения отправлять произвольные данные на удаленный узел в виде вложения сообщения, инкапсулированного в MIME. Первый вызов Write открывает исходящий поток вложений и инициирует передачу заголовков HTTP, данных конверта и данных приложения в кодировке MIME. Последующие вызовы write будут отправлять дополнительные блоки данных приложения в кодировке MIME, пока приложение не вызовет метод Close, который закроет поток вложений и завершит передачу данных конверта сообщения и заголовков.
Операция записи может блокироваться при нескольких условиях. В начальной операции запись будет блокироваться, пока не будут переданы заголовки HTTP и XML-содержимое. При отправке нескольких вложений в одном сообщении первый вызов метода Write для любого вложения может блокироваться до тех пор, пока не будут полностью переданы все предыдущие потоки вложений. Запись может блокироваться на срок до 30 секунд (за время ожидания передачи HTTP), если удаленный узел не отвечает.
Если при установке подключения или передаче заголовков возникает ошибка, функция Write немедленно вернет код ошибки. Если возникает ошибка передачи данных, эта ошибка может быть отложена до следующего вызова записи или закрытия.
Метод Write может успешно вернуться после неудачной попытки записи , возвращающей STG_S_BLOCK. Последующий успех указывает, что внутренние буферы были освобождены для использования после первоначальной неудачной попытки. Когда приложение получает STG_S_BLOCK , приложение может повторно отправить те же данные с помощью метода Write или завершить передачу данных с помощью метода Abort .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | wsdattachment.h (включая Wsdapi.h) |
DLL | Wsdapi.dll |