OleLoadPicture

Creates a new picture object and initializes it from the contents of a stream. This is equivalent to calling OleCreatePictureIndirect(NULL, ...) followed by IPersistStream::Load.

STDAPI OleLoadPicture(

IStream * pStream,

//Pointer to the stream that contains picture’s data

LONG lSize,

//Number of bytes read from the stream

BOOL fRunmode,

//The opposite of the initial value of the picture’s property

REFIID riid,

//Reference to the identifier of the interface describing the type of interface pointer to return

VOID ppvObj

//Indirect pointer to the object

);

Parameters

pStream
[in] Pointer to the stream that contains the picture’s data.
lSize
[in] Number of bytes that should be read from the stream, or zero if the entire stream should be read.
fRunmode
[in] The opposite of the initial value of the KeepOriginalFormat property. If TRUE, KeepOriginalFormat is set to FALSE and vice-versa.
riid
[in] Reference to the identifier of the interface describing the type of interface pointer to return in ppvObj.
ppvObj
[out] Indirect pointer to the interface identified by riid on the storage of the object identified by the moniker. If ppvObj is non-NULL, the implementation must call IUnknown::AddRef on the parameter; it is the caller’s responsibility to call IUnknown::Release. If an error occurs, ppvObj is set to NULL.

Return Values

This function supports the standard return values E_OUTOFMEMORY and E_UNEXPECTED, as well as the following:

S_OK
The picture was created successfully.
E_POINTER
The address in pStream or ppvObj is not valid. For example, either may be NULL.
E_NOINTERFACE
The object does not support the interface specified in riid.

Remarks

The stream must be in BMP (bitmap), WMF (metafile), or ICO (icon) format. A picture object created using OleLoadPicture always has ownership of its internal resources (fOwn==TRUE is implied).

See Also

OleCreatePictureIndirect, PICTDESC