Aracılığıyla paylaş


CComObject::CreateInstance

Bu statik işlevi, yeni bir oluşturmanıza olanak tanır CComObject <Base> yük bindirmeden nesne CoCreateInstance.

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

Parametreler

  • pp
    [Çıkış] Bir işaretçi bir CComObject <Base> işaretçisi.CreateInstance İşe yaramadıysa, pp ayarlamak null.

Dönüş Değeri

Standart bir HRESULT değeri.

Notlar

Döndürülen nesnesi başvuru sayısı sıfır varsa, bu nedenle arama AddRef hemen sonra kullanın yayın İşiniz bitince nesne işaretçisi üzerinde başvuru boşaltmak için.

Nesneyi doğrudan erişim değildir ancak yük bindirmeden yeni bir nesne oluşturmak istiyorsanız CoCreateInstance, kullanma CComCoClass::CreateInstance onun yerine.

Örnek

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;

Gereksinimler

Başlık: atlcom.h

Ayrıca bkz.

Başvuru

CComObject sınıfı