# 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