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


Метод IByteBuffer::Write

[Метод Write доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Интерфейс IStream предоставляет аналогичные функции.]

Метод Write записывает указанное число из байтов в объект потока, начиная с текущего указателя поиска.

Синтаксис

HRESULT Write(
  [in]  BYTE *pByte,
  [in]  LONG cb,
  [out] LONG *pcbWritten
);

Параметры

pByte [in]

Адрес буфера, содержащего данные, которые должны быть записаны в поток. Для этого параметра должен быть указан допустимый указатель, даже если cb равен нулю.

cb [in]

Число байтов данных для записи в поток. Этот параметр может быть равен нулю.

pcbWritten [out]

Адрес переменной LONG , в которой этот метод записывает фактическое число байтов, записанных в объект потока. Вызывающий объект может задать для этого указателя значение NULL. В этом случае этот метод не предоставляет фактическое число записанных байтов.

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

Возвращаемое значение — HRESULT. Значение S_OK указывает, что вызов выполнен успешно.

Комментарии

Метод IByteBuffer::Write записывает указанные данные в объект потока. Указатель поиска корректируется в соответствии с фактически записанным числом байтов. Число фактически записанных байтов возвращается в параметре pcbWritten . Если число байтов равно нулю байтов, операция записи не оказывает никакого влияния.

Если указатель поиска находится за концом потока, а число байтов не равно нулю, этот метод увеличивает размер потока в указатель поиска и записывает указанные байты, начиная с указателя поиска. Байты заполнения, записанные в поток, не инициализируются каким-либо определенным значением. Это то же самое, что поведение конца файла в файловой системе MS-DOS FAT.

При нулевом количестве байтов и указателе поиска после конца потока этот метод не создает байты заполнения для увеличения потока до указателя поиска. В этом случае необходимо вызвать метод IByteBuffer::SetSize , чтобы увеличить размер потока и записать байты заполнения.

Параметр pcbWritten может иметь значение даже при возникновении ошибки.

В реализации, предоставленной COM, потоковые объекты не являются разреженными. Все байты заполнения в конечном итоге выделяются на диске и назначаются потоку.

Примеры

В следующем примере показано запись байтов в объект потока.

LONG     lWrite;
HRESULT  hr;

// Write to the buffer.
// byData is an array of 64 bytes.
hr = pIByteBuff->Write(byData,
                       64,
                       &lWrite);
if (FAILED(hr))
  printf("Failed IByteBuffer::Write\n");

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Окончание поддержки клиентов
Windows XP
Прекращение поддержки сервера
Windows Server 2003
Заголовок
Scardssp.h
Библиотека типов
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer определяется как E126F8FE-A7AF-11D0-B88A-00C04FD424B9