Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The latest version of this topic can be found at _com_ptr_t::CreateInstance.
Microsoft Specific**
Creates a new instance of an object given a CLSID or ProgID.
Syntax
HRESULT CreateInstance(
const CLSID& rclsid,
IUnknown* pOuter=NULL,
DWORD dwClsContext = CLSCTX_ALL
) throw( );
HRESULT CreateInstance(
LPCWSTR clsidString,
IUnknown* pOuter=NULL,
DWORD dwClsContext = CLSCTX_ALL
) throw( );
HRESULT CreateInstance(
LPCSTR clsidStringA,
IUnknown* pOuter=NULL,
DWORD dwClsContext = CLSCTX_ALL
) throw( );
Parameters
rclsid
The CLSID of an object.
clsidString
A Unicode string that holds either a CLSID (starting with "{") or a ProgID.
clsidStringA
A multibyte string, using the ANSI code page, that holds either a CLSID (starting with "{") or a ProgID.
dwClsContext
Context for running executable code.
pOuter
The outer unknown for aggregation.
Remarks
These member functions call CoCreateInstance to create a new COM object and then queries for this smart pointer's interface type. The resulting pointer is then encapsulated within this _com_ptr_t object. Release is called to decrement the reference count for the previously encapsulated pointer. This routine returns the HRESULT to indicate success or failure.
CreateInstance(
rclsid,dwClsContext) Creates a new running instance of an object given a CLSID.CreateInstance(
clsidString,dwClsContext) Creates a new running instance of an object given a Unicode string that holds either a CLSID (starting with "{") or a ProgID.CreateInstance(
clsidStringA,dwClsContext) Creates a new running instance of an object given a multibyte character string that holds either a CLSID (starting with "{") or a ProgID. Calls MultiByteToWideChar, which assumes that the string is in the ANSI code page rather than an OEM code page.
END Microsoft Specific