Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This method reads a specified number of bytes starting at a specified offset from the beginning of the array.

Syntax

HRESULT ReadAt( 
  ULARGE_INTEGER 
ulOffset, 
  void* 
pv, 
  ULONG 
cb, 
  ULONG* 
pcbRead 
);

Parameters

ulOffset

[in] Starting point from the beginning of the byte array for reading data.

pv

[in] Pointer to the buffer into which the byte array is read.

cb

[in] Number of bytes of data to attempt to read from the byte array.

pcbRead

[out] Pointer to a location where this method writes the actual number of bytes read from 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 read.

Return Value

The following table shows the return values for this method.

Value Description

S_OK

Indicates that the specified number of bytes were read, or the maximum number of bytes were read up to the end of the byte array.

E_FAIL

Data could not be read from the byte array.

E_PENDING

Asynchronous Storage only: Part or all of the data to be read is currently unavailable.

STG_E_ACCESSDENIED

The caller does not have permission to access the byte array.

STG_E_READFAULT

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

Remarks

ILockBytes::ReadAtreads bytes from the byte array object. It reports the number of bytes that were actually read.

This value may be less than the number of bytes requested if an error occurs or if the end of the byte array is reached during the read.

It is not an error to read less than the specified number of bytes if the operation encounters the end of the byte array. (This is the same end-of-file behavior as found in MS-DOS FAT file system files.)

To determine whether the platform supports this interface, see Determining Supported COM APIs.

Requirements

Header objidl.h, objidl.idl
Library ole32.lib, uuid.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later