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


Метод ILockBytes::WriteAt (objidl.h)

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

Синтаксис

HRESULT WriteAt(
  [in]  ULARGE_INTEGER ulOffset,
  [in]  const void     *pv,
  [in]  ULONG          cb,
  [out] ULONG          *pcbWritten
);

Параметры

[in] ulOffset

Указывает начальную точку с начала массива байтов для записываемых данных.

[in] pv

Указатель на буфер, содержащий записываемые данные.

[in] cb

Указывает количество байтов данных для записи в массив байтов.

[out] pcbWritten

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

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

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK Указывает, что было записано указанное число байтов.
E_FAIL Во время операции записи произошел общий сбой.
E_PENDING Только асинхронное хранилище. Часть или все записываемые данные в настоящее время недоступны.
STG_E_ACCESSDENIED Вызывающий объект не имеет достаточных разрешений для записи этого массива байтов.
STG_E_WRITEFAULT Число записываемых байтов не равно количеству байтов, которые были записаны на самом деле.
STG_E_MEDIUMFULL Операция записи не была завершена, так как на устройстве хранения не осталось места. Фактическое число записанных байтов по-прежнему возвращается в pcbWritten.

Комментарии

ILockBytes::WriteAt записывает указанные данные в указанное расположение в массиве байтов. Количество фактически записанных байтов всегда должно возвращаться в pcbWritten, даже если возвращается ошибка. Если число байтов равно нулю, операция записи не оказывает никакого влияния.

Если ulOffset находится за концом массива байтов, а cb больше нуля, ILockBytes::WriteAt увеличивает размер массива байтов. Байты заполнения, записанные в массив байтов, не инициализируются каким-либо конкретным значением.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header objidl.h
Библиотека Uuid.lib
DLL Ole32.dll

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

ILockBytes — реализация File-Based

ILockBytes — реализация глобальной памяти

ILockBytes::ReadAt

ILockBytes::SetSize