Export (0) Print
Expand All

ILockBytes::WriteAt method

The WriteAt method writes the specified number of bytes starting at a specified offset from the beginning of the byte array.

Syntax


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

Parameters

ulOffset [in]

Specifies the starting point from the beginning of the byte array for the data to be written.

pv [in]

Pointer to the buffer containing the data to be written.

cb [in]

Specifies the number of bytes of data to attempt to write into the byte array.

pcbWritten [out]

Pointer to a location where this method specifies the actual number of bytes written to the byte array. You can set this pointer to NULL to indicate that you are not interested in this value. In this case, this method does not provide the actual number of bytes written.

Return value

This method can return one of these values.

S_OK

Indicates that the specified number of bytes were written.

E_FAIL

A general failure occurred during the write operation.

E_PENDING

Asynchronous Storage only: Part or all of the data to be written is currently unavailable. For more information see IFillLockBytes and Asynchronous Storage.

STG_E_ACCESSDENIED

The caller does not have enough permissions for writing this byte array.

STG_E_WRITEFAULT

The number of bytes to be written does not equal the number of bytes that were actually written.

STG_E_MEDIUMFULL

The write operation was not completed because there is no space left on the storage device. The actual number of bytes written is still returned in pcbWritten.

Remarks

ILockBytes::WriteAt writes the specified data at the specified location in the byte array. The number of bytes actually written must always be returned in pcbWritten, even if an error is returned. If the byte count is zero bytes, the write operation has no effect.

If ulOffset is past the end of the byte array and cb is greater than zero, ILockBytes::WriteAt increases the size of the byte array. The fill bytes written to the byte array are not initialized to any particular value.

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps | Windows Store apps]

Minimum supported server

Windows 2000 Server [desktop apps | Windows Store apps]

Header

Objidl.h

IDL

Objidl.idl

Library

Uuid.lib

DLL

Ole32.dll

IID

IID_ILockBytes is defined as 0000000A-0000-0000-C000-000000000046

See also

ILockBytes::ReadAt
ILockBytes::SetSize
ILockBytes - File-Based Implementation
ILockBytes - Global Memory Implementation

 

 

Community Additions

ADD
Show:
© 2014 Microsoft