ITypeInfo::CreateInstance

punkOuter, riid, ppvObj)
IUnknown FAR* punkOuter
REFIID riid
VOID FAR* FAR* ppvObj

Creates a new instance of a type that describes a component object class (coclass).

Parameters

punkOuter

A pointer to the controlling IUnknown. If NULL, then a stand-alone instance is created. If valid, then an aggregate object is created.

riid

An ID for the interface the caller will use to communicate with the resulting object.

ppvObj

On return, points to a pointer to an instance of the created object.

Return Value

The SCODE obtained from the returned HRESULT is one of the following:

SCODE
Meaning
S_OK
Success.
E_OUTOFMEMORY
Out of memory.
TYPE_E_WRONGTYPEKIND
Type mismatch.
E_INVALIDARG
One or more of the arguments is invalid.
E_NOINTERFACE
OLE could not find an implementation of one or more required interfaces.
TYPE_E_UNSUPFORMAT
The type library has an old format.
TYPE_E_INVALIDSTATE
The type library could not be opened.
Other returns
Additional errors may be returned from GetActiveObject or CoCreateInstance.

Comments

For types that describe a component object class (coclass), CreateInstance creates a new instance of the class. Normally CreateInstance calls CoCreateInstance with the type description's GUID. For an Application object, it first calls GetActiveObject. If the application is active, GetActiveObject returns the active object; otherwise, if GetActiveObject fails, CreateInstance calls CoCreateInstance.

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database