The DllGetClassObject function is the entry point used by C++ file and stream handlers to create an instance of the handler.

STDAPI DllGetClassObject(
  const CLSID & rclsid,  
  const IID & riid,      
  void ** ppv



Class identifier of the file or stream handler.


Interface identifier of the file or stream handler.


Pointer to a buffer that receives the object of the interface query. If the interface specified in riid is not supported by the object, S_FALSE is returned and the ppvObj parameter used in the IUnknown interface must be set to NULL.

Return Values

Returns a handle of an instance of the file or stream handler.


DllGetClassObject is the only export function your DLL needs. The OLE component object DLL calls this function to obtain an instance of the stream- or file-handler interface.

Your file or stream handler should ensure that the system requests the correct class identifier before creating an instance of it.


  Windows NT/2000/XP: Included in Windows NT 3.1 and later.
  Windows 95/98/Me: Included in Windows 95 and later.
  Header: Declared in Objbase.h.
  Library: Included as a resource in Ole32.dll.

See Also

Custom File and Stream Handlers, Custom File and Stream Handler Functions, IUnknown