Aracılığıyla paylaş


CComTearOffObject sınıfı

Bu sınıf etiketleri arabirimini uygular.

template<
   class Base 
>
class CComTearOffObject :
   public Base

Parametreler

  • Base
    Kullanacağınız etiketleri sınıf türetilmiş CComTearOffObjectBase ve arabirimleri desteklemesi için etiketleri nesneniz istediğiniz.

atl iki aşamada etiketleri arabirimleri uygulayan — CComTearOffObjectBase yöntemlerini işlemek başvuru sayısı ve QueryInterface, sırada CComTearOffObject uygulayan IUnknown.

Üyeler

wh8b86c9.collapse_all(tr-tr,VS.110).gifOrtak Oluşturucusu

Ad

Description

CComTearOffObject::CComTearOffObject

Oluşturucu.

CComTearOffObject:: ~ CComTearOffObject

Yıkıcı.

wh8b86c9.collapse_all(tr-tr,VS.110).gifPublic yöntemler

Ad

Description

CComTearOffObject::AddRef

Başvuru sayısı artar bir CComTearOffObject nesnesi.

CComTearOffObject::QueryInterface

Bir işaretçi istenen arabirim etiketleri sınıfınız veya sahip sınıf döndürür.

CComTearOffObject::Release

Azaltır başvuru saymak için bir CComTearOffObject object ve onu yok eder.

wh8b86c9.collapse_all(tr-tr,VS.110).gifCComTearOffObjectBase yöntemi

CComTearOffObjectBase

Oluşturucu.

wh8b86c9.collapse_all(tr-tr,VS.110).gifCComTearOffObjectBase veri üyeleri

m_pOwner

Bir işaretçi bir CComObject sahibi sınıfından türetilir.

Notlar

CComTearOffObjectBu arabirim için sorgulandığında, örneği ayrı bir nesne olarak etiketleri arabirimini uygular.Kendi başvuru sayısı sıfır olduğunda, etiketleri silinir.Genellikle, etiketleri için bir arabirim işaretçisini vtable ana nesnenizin tüm örneklerde kaydeder bir etiketleri kullanarak bu yana, çok seyrek kullanılır bir arabirim oluşturmak.

Etiketleri arasında gerçekleştiren sınıf türetmek CComTearOffObjectBase ve hangi arabirimlerin desteklemek için etiketleri nesneniz istediğiniz.CComTearOffObjectBasesahip sınıf ve iş parçacığı modeli üzerinde templatized.Sahip sınıf kendisi için bir etiketleri uygulanmakta object sınıfıdır.Bir iş parçacığı modeli belirtmezseniz, varsayılan iş parçacığı modeli kullanılır.

Etiketleri sınıfınız için com haritası oluşturmanız gerekir.Etiketleri atl başlattığı sırada oluşturmak CComTearOffObject <CYourTearOffClass> veya CComCachedTearOffObject <CYourTearOffClass>.

Örneğin, örnekteki İKAZ, CBeeper2 sýnýftýr etiketleri sınıf ve CBeeper sahip sınıf bir sınıftır:

class CBeeper2 :
   public ISupportErrorInfo,
   public CComTearOffObjectBase<CBeeper>
{
public:
   CBeeper2() {}
   STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid)
   {
      return (InlineIsEqualGUID(IID_IBeeper, riid)) ? S_OK : S_FALSE;
   }

BEGIN_COM_MAP(CBeeper2)
   COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
};

class ATL_NO_VTABLE CBeeper :
   public CComObjectRootEx<CComSingleThreadModel>,
   public CComCoClass<CBeeper, &CLSID_Beeper>,
   public IDispatchImpl<IBeeper, &IID_IBeeper, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
   CBeeper()
   {
   }

DECLARE_REGISTRY_RESOURCEID(IDR_BEEPER)

DECLARE_NOT_AGGREGATABLE(CBeeper)

BEGIN_COM_MAP(CBeeper)
   COM_INTERFACE_ENTRY(IBeeper)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY_TEAR_OFF(IID_ISupportErrorInfo, CBeeper2)
END_COM_MAP()

// ISupportsErrorInfo
   STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);


   DECLARE_PROTECT_FINAL_CONSTRUCT()

   HRESULT FinalConstruct()
   {
      return S_OK;
   }

   void FinalRelease()
   {
   }

public:

};

Devralma hiyerarşisi

Base

CComTearOffObject

Gereksinimler

Başlık: atlcom.h

Ayrıca bkz.

Başvuru

CComCachedTearOffObject sınıfı

Diğer Kaynaklar

atl sınıfına genel bakış