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 from the stream object into memory starting at the current seek pointer.

Syntax

HRESULT Read(
  void* 
pv,
  ULONG 
cb,
  ULONG* 
pcbRead 
);

Parameters

pv

[out] Pointer to the buffer into which the stream data is read. If an error occurs, this value is NULL.

cb

[in] Specifies the number of bytes of data to attempt to read from the stream object.

pcbRead

[out] Pointer to a ULONG variable that receives the actual number of bytes read from the stream object.

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

S_OK

Data was successfully read from the stream object.

S_FALSE

The data could not be read from the stream object.

E_PENDING

Asynchronous storage only: Part or all of the data to be read is currently unavailable. For more information, see IFillLockBytes.

STG_E_ACCESSDENIED

The caller does not have enough permissions for reading this stream object.

STG_E_INVALIDPOINTER

One of the pointer values is not valid.

STG_E_REVERTED

The object has been invalidated by a revert operation above it in the transaction tree.

Remarks

This method reads bytes from this stream object into memory. The stream object must be opened in STGM_READ mode. This method adjusts the seek pointer by the actual number of bytes read.

The number of bytes actually read is also returned in the pcbReadparameter.

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

Notes to Callers

The actual number of bytes read can be less than the number of bytes requested if an error occurs or if the end of the stream is reached during the read operation.

Some implementations might return an error if the end of the stream is reached during the read operation. You must be prepared to deal with the error return or S_OK return values on end-of-stream read operations.

Requirements

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

See Also