OleLoadFromStream function (ole2.h)

Loads an object from the stream.


HRESULT OleLoadFromStream(
  [in]  LPSTREAM pStm,
  [in]  REFIID   iidInterface,
  [out] LPVOID   *ppvObj


[in] pStm

Pointer to the IStream interface on the stream from which the object is to be loaded.

[in] iidInterface

Interface identifier (IID) the caller wants to use to communicate with the object after it is loaded.

[out] ppvObj

Address of pointer variable that receives the interface pointer requested in riid. Upon successful return, *ppvObj contains the requested interface pointer on the newly loaded object.

Return value

This function returns S_OK on success. Other possible values include the following.

Return code Description
Insufficient memory for the operation.
The object does not support the specified interface.

This function can also return any of the error values returned by the ReadClassStm and CoCreateInstance functions, and the IPersistStream::Load method.



Security Note: Calling this method with untrusted data is a security risk. Call this method only with trusted data.

This function can be used to load an object that supports the IPersistStream interface. The CLSID of the object must immediately precede the object's data in the stream, which is accomplished by the companion function OleSaveToStream (or the operations it wraps, which are described under that topic).

If the CLSID for the stream is CLSID_NULL, the ppvObj parameter is set to NULL.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header ole2.h (include Ole2.h)
Library Ole32.lib
DLL Ole32.dll
API set ext-ms-win-com-ole32-l1-1-5 (introduced in Windows 10, version 10.0.15063)

See also