This method creates a new instance of a type that describes a component object class (coclass).

HRESULT CreateInstance( 
IUnknown FAR *pUnkOuter, 
REFIID riid, 
VOID FAR* FAR *ppvObj );


  • pUnkOuter
    Pointer to the controlling IUnknown. If NULL, then a stand-alone instance is created. If valid, then an aggregate object is created.
  • riid
    Reference to an identifier for the interface that the caller will use to communicate with the resulting object.
  • ppvObj
    On return, pointer to a pointer to an instance of the created object.

Return Values

One of the values described in the following table is returned.

Value Description
S_OK Success.
E_OUTOFMEMORY Out of memory.
E_INVALIDARG One or more of the parameters is invalid.
E_NOINTERFACE OLE could not find an implementation of one or more required interfaces.
TYPE_E_UNSUPFORMAT The type library has an older format.
TYPE_E_INVALIDSTATE The type library could not be opened.
Other return codes Additional errors may be returned from CoCreateInstance.


For types that describe a component object class (coclass), CreateInstance creates a new instance of the class. Usually, CreateInstance calls CoCreateInstance with the type description's GUID.


Runs on Versions Defined in Include Link to
Windows CE OS 2.0 and later Oaidl.h    

Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

 Last updated on Tuesday, July 13, 2004

© 1992-2000 Microsoft Corporation. All rights reserved.