Condividi tramite


CComObject::CreateInstance

Questa funzione statica consente di creare un nuovo oggetto CComObject<Base>, senza il sovraccarico CoCreateInstance.

static HRESULT WINAPI CreateInstance( 
   CComObject< Base >** pp  
);

Parametri

  • pp
    [out] puntatore A un puntatore CComObject<Base>. Se CreateInstance non è riuscito, pp è impostato su NULL.

Valore restituito

Un valore standard HRESULT.

Note

L'oggetto ha restituito un conteggio dei riferimenti di zero, pertanto la chiamata AddRef immediatamente, utilizzare Release liberare il riferimento il puntatore all'oggetto al termine.

Se non è necessario l'accesso diretto all'oggetto, ma si desidera creare un nuovo oggetto senza il sovraccarico CoCreateInstance, utilizzare CComCoClass::CreateInstance anziché.

Esempio

class ATL_NO_VTABLE CMyCircle :
   public CComObjectRootEx<CComSingleThreadModel>,
   public CComCoClass<CMyCircle, &CLSID_MyCircle>,
   public IDispatchImpl<IMyCircle, &IID_IMyCircle, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
   CMyCircle()
   {
   }

DECLARE_REGISTRY_RESOURCEID(IDR_MYCIRCLE)

DECLARE_NOT_AGGREGATABLE(CMyCircle)

BEGIN_COM_MAP(CMyCircle)
   COM_INTERFACE_ENTRY(IMyCircle)
   COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()



   DECLARE_PROTECT_FINAL_CONSTRUCT()

   HRESULT FinalConstruct()
   {
      return S_OK;
   }

   void FinalRelease()
   {
   }

public:

public:
   STDMETHOD(get_XCenter)(double* pVal);
};
// Create a local instance of COM object CMyCircle. 
double x;
CComObject<CMyCircle>* pCircle;
HRESULT hRes = CComObject<CMyCircle>::CreateInstance(&pCircle);
ATLASSERT(SUCCEEDED(hRes));

// Increment reference count immediately
pCircle->AddRef();

// Access method of COM object
hRes = pCircle->get_XCenter(&x);

// Decrement reference count when done
pCircle->Release();
pCircle = NULL;

Requisiti

Header: atlcom.h

Vedere anche

Riferimenti

CComObject Class