Share via


_com_ptr_t::CreateInstance

 

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

See Also

_com_ptr_t Class