Поделиться через


Метод 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 , содержащий количество байтов данных, фактически отправленных на удаленный узел.

Возвращаемое значение

Возможные возвращаемые значения включают, помимо прочего, следующие:

Код возврата Описание
S_OK
Метод успешно завершен.
E_POINTER
pdwNumberofBytesWritten имеет значение NULL.
E_INVALIDARG
pBuffer имеет значение NULL.
HRESULT_FROM_WIN32(ERROR_INVALID_OPERATION)
Интерфейс исходящего вложения не инициализирован. Вызовите WSDCreateOutboundAttachment , чтобы инициализировать интерфейс.
STG_S_BLOCK
Внутренние буферы были недоступны. Данные не были приняты и поставлены в очередь для передачи.

Комментарии

Метод 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

См. также раздел

IWSDInboundAttachment

IWSDOutboundAttachment

IWSDOutboundAttachment::Abort

IWSDOutboundAttachment::Close