Aracılığıyla paylaş


CComObject Sınıfı

Bu sınıf, toplanmamış bir nesne için uygular IUnknown .

Sözdizimi

template<class Base>
class CComObject : public Base

Parametreler

Taban
Sınıfınız, CComObjectRoot veya CComObjectRootEx'ten ve nesne üzerinde desteklemek istediğiniz diğer arabirimlerden türetilir.

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CComObject::CComObject Oluşturucu.
CComObject::~CComObject Yok edici.

Genel Yöntemler

Veri Akışı Adı Açıklama
CComObject::AddRef Nesnedeki başvuru sayısını artırır.
CComObject::CreateInstance (Statik) Yeni CComObject bir nesne oluşturur.
CComObject::QueryInterface İstenen arabirim için bir işaretçi alır.
CComObject::Release Nesnedeki başvuru sayısını azaltma.

Açıklamalar

CComObject, bir nonaggregated nesnesi için IUnknown uygular. Ancak, , AddRefve Release çağrıları QueryInterfaceiçin CComObjectRootExtemsilci olarak sağlanır.

kullanma CComObjecthakkında daha fazla bilgi için ATL COM Nesnelerinin Temelleri makalesine bakın.

Devralma Hiyerarşisi

Base

CComObject

Gereksinimler

Üst bilgi: atlcom.h

CComObject::AddRef

Nesnedeki başvuru sayısını artırır.

STDMETHOD_(ULONG, AddRef)();

Dönüş Değeri

Bu işlev nesnedeki yeni artımlı başvuru sayısını döndürür. Bu değer tanılama veya test için yararlı olabilir.

CComObject::CComObject

Oluşturucu, modül kilit sayısını artırır.

CComObject(void* = NULL);

Parametreler

boşluk*
[in] Bu adlandırılmamış parametre kullanılmaz. Diğer CComXXXObjectXXX oluşturucularla simetri için mevcuttur.

Açıklamalar

Yok edici onu yok eder.

CComObject-derived nesnesi işleci kullanılarak new başarıyla oluşturulursa, ilk başvuru sayısı 0'dır. Başvuru sayısını uygun değere (1) ayarlamak için AddRef işlevine bir çağrı yapın.

CComObject::~CComObject

Yok edici.

CComObject();

Açıklamalar

Ayrılan tüm kaynakları serbest bırakma, FinalRelease çağrısı yapma ve modül kilitleme sayısını azaltma.

CComObject::CreateInstance

Bu statik işlev, CoCreateInstance ek yükü olmadan yeni bir CComObjectBase>< nesnesi oluşturmanıza olanak tanır.

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

Parametreler

Pp
[out] CComObject<>Base işaretçisine bir işaretçi. Başarısız olursa CreateInstance , pp null olarak ayarlanır.

Dönüş Değeri

Standart bir HRESULT değeri.

Açıklamalar

Döndürülen nesnenin başvuru sayısı sıfır olduğundan hemen çağırın AddRef , ardından Release işiniz bittiğinde nesne işaretçisinde başvuruyu serbest bırakın.

Nesnesine doğrudan erişime ihtiyacınız yoksa, ancak yine de ek yükü CoCreateInstanceolmadan yeni bir nesne oluşturmak istiyorsanız, bunun yerine CComCoClass::CreateInstance kullanın.

Ö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;

CComObject::QueryInterface

İstenen arabirim için bir işaretçi alır.

STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp);

Parametreler

iid
[in] İstenen arabirimin tanımlayıcısı.

ppvObject
[out] iid ile tanımlanan arabirim işaretçisinin işaretçisi. Nesne bu arabirimi desteklemiyorsa, ppvObject NULL olarak ayarlanır.

Pp
[out] türüne Qgöre tanımlanan arabirim işaretçisinin işaretçisi. Nesne bu arabirimi desteklemiyorsa, pp null olarak ayarlanır.

Dönüş Değeri

Standart bir HRESULT değeri.

CComObject::Release

Nesnedeki başvuru sayısını azaltma.

STDMETHOD_(ULONG, Release)();

Dönüş Değeri

Bu işlev nesnedeki yeni azalan başvuru sayısını döndürür. Hata ayıklama derlemelerinde, dönüş değeri tanılama veya test için yararlı olabilir. Hata ayıklama olmayan derlemelerde Release her zaman 0 döndürür.

Ayrıca bkz.

CComAggObject Sınıfı
CComPolyObject Sınıfı
DECLARE_AGGREGATABLE
DECLARE_NOT_AGGREGATABLE
Sınıfa Genel Bakış