Aracılığıyla paylaş


CComPtrBase Sınıf

Bu sınıf, COM tabanlı bellek yordamlarını kullanan akıllı işaretçi sınıfları için bir temel sağlar.

Sözdizimi

template <class T>
class CComPtrBase

Parametreler

T
Akıllı işaretçi tarafından başvurulacak nesne türü.

Üyeler

Ortak oluşturucular

Veri Akışı Adı Açıklama
CComPtrBase::~CComPtrBase Yok edici.

Genel yöntemler

Veri Akışı Adı Açıklama
CComPtrBase::Advise 'nin bağlantı noktası ile istemcinin CComPtrBasehavuzu arasında bağlantı oluşturmak için bu yöntemi çağırın.
CComPtrBase::Attach Mevcut bir işaretçinin sahipliğini almak için bu yöntemi çağırın.
CComPtrBase::CoCreateInstance Belirtilen Bir Sınıf Kimliği veya Program Kimliği ile ilişkilendirilmiş sınıfın nesnesini oluşturmak için bu yöntemi çağırın.
CComPtrBase::CopyTo İşaretçiyi CComPtrBase başka bir işaretçi değişkenine kopyalamak için bu yöntemi çağırın.
CComPtrBase::Detach Bir işaretçinin sahipliğini serbest bırakmak için bu yöntemi çağırın.
CComPtrBase::IsEqualObject Belirtilen IUnknown nesnenin nesneyle ilişkili aynı nesneye işaretlenip işaret etmediğini denetlemek için bu yöntemi çağırın CComPtrBase .
CComPtrBase::QueryInterface Belirtilen arabirime işaretçi döndürmek için bu yöntemi çağır.
CComPtrBase::Release Arabirimini serbest bırakmak için bu yöntemi çağırın.
CComPtrBase::SetSite Nesnenin sitesini üst nesnenin sitesine CComPtrBase ayarlamak için IUnknown bu yöntemi çağırın.

Genel işleçler

Veri Akışı Adı Açıklama
CComPtrBase::operator T* Atama işleci.
CComPtrBase::operator ! NOT işleci.
CComPtrBase::operator & İşlecin adresi & .
CComPtrBase::operator * İşaretçi işleci * .
CComPtrBase::operator < Less-than işleci.
CComPtrBase::operator == Eşitlik işleci.
CComPtrBase::operator -> Üyelere işaretçi işleci.

Genel veri üyeleri

Veri Akışı Adı Açıklama
CComPtrBase::p İşaretçi veri üye değişkeni.

Açıklamalar

Bu sınıf, ve CComPtrgibi CComQIPtr COM bellek yönetimi yordamlarını kullanan diğer akıllı işaretçiler için temel sağlar. Türetilmiş sınıflar kendi oluşturucularını ve işleçlerini ekler, ancak tarafından CComPtrBasesağlanan yöntemleri kullanır.

Gereksinimler

Üst bilgi: atlcomcli.h

CComPtrBase::Advise

'nin bağlantı noktası ile istemcinin CComPtrBasehavuzu arasında bağlantı oluşturmak için bu yöntemi çağırın.

HRESULT Advise(
    IUnknown* pUnk,
    const IID& iid,
    LPDWORD pdw) throw();

Parametreler

pUnk
İstemcinin işaretçisi IUnknown.

iid
Bağlantı noktasının GUID'i. Bu GUID genellikle bağlantı noktası tarafından yönetilen giden arabirimle aynıdır.

pdw
Bağlantıyı benzersiz olarak tanımlayan tanımlama bilgisinin işaretçisi.

Dönüş değeri

Başarılı olduğunda veya hatada bir hata HRESULT döndürürS_OK.

Açıklamalar

Daha fazla bilgi için bkz. AtlAdvise.

CComPtrBase::Attach

Mevcut bir işaretçinin sahipliğini almak için bu yöntemi çağırın.

void Attach(T* p2) throw();

Parametreler

p2
CComPtrBase Nesnesi bu işaretçinin sahipliğini alır.

Açıklamalar

Attachmevcut CComPtrBase::p üye değişkenini çağırır CComPtrBase::Release ve sonra öğesine CComPtrBase::patarp2. Bir CComPtrBase nesne işaretçinin sahipliğini aldığında, işaretçiyi ve nesnedeki başvuru sayısı 0'a giderse ayrılan verileri silen işaretçiyi otomatik olarak çağırır Release .

CComPtrBase::~CComPtrBase

Yok edici.

~CComPtrBase() throw();

Açıklamalar

tarafından CComPtrBaseişaret edilen arabirimi serbest bırakır.

CComPtrBase::CoCreateInstance

Belirtilen Bir Sınıf Kimliği veya Program Kimliği ile ilişkilendirilmiş sınıfın nesnesini oluşturmak için bu yöntemi çağırın.

HRESULT CoCreateInstance(
    LPCOLESTR szProgID,
    LPUNKNOWN pUnkOuter = NULL,
    DWORD dwClsContext = CLSCTX_ALL) throw();

HRESULT CoCreateInstance(
    REFCLSID rclsid,
    LPUNKNOWN pUnkOuter = NULL,
    DWORD dwClsContext = CLSCTX_ALL) throw();

Parametreler

szProgID
CLSID'yi kurtarmak için kullanılan bir ProgID işaretçisi.

pUnkOuter
NULL ise, nesnenin bir toplamanın parçası olarak oluşturulmadığını gösterir. NULL değilse, toplama nesnesinin IUnknown arabirimine (denetim) IUnknownyönelik bir işaretçidir.

dwClsContext
Yeni oluşturulan nesneyi yöneten kodun çalıştırılacağı bağlam.

rclsid
Nesneyi oluşturmak için kullanılacak veri ve kodla ilişkili CLSID.

Dönüş değeri

Başarı veya REGDB_E_CLASSNOTREG, CLASS_E_NOAGGREGATION, CO_E_CLASSSTRINGveya E_NOINTERFACE hata durumunda döndürürS_OK. Bu hataların açıklaması için ve CLSIDFromProgID bölümüne bakınCoCreateClassInstance.

Açıklamalar

Yöntemin ilk biçimi çağrılırsa, CLSIDFromProgID CLSID'yi kurtarmak için kullanılır. Her iki form da öğesini çağırır CoCreateClassInstance.

Hata ayıklama derlemelerinde, NULL'a eşit değilse CComPtrBase::p bir onaylama hatası oluşur.

CComPtrBase::CopyTo

İşaretçiyi CComPtrBase başka bir işaretçi değişkenine kopyalamak için bu yöntemi çağırın.

HRESULT CopyTo(T** ppT) throw();

Parametreler

ppT
İşaretçiyi alacak değişkenin CComPtrBase adresi.

Dönüş değeri

Başarılı olduğunda, E_POINTER başarısız olduğunda döndürürS_OK.

Açıklamalar

İşaretçiyi CComPtrBase öğesine ppTkopyalar. Üye değişkeninde CComPtrBase::p başvuru sayısı artırılır.

NULL'a eşitse ppT bir hata HRESULT döndürülür. Hata ayıklama derlemelerinde, NULL'a eşitse ppT bir onaylama hatası oluşur.

CComPtrBase::Detach

Bir işaretçinin sahipliğini serbest bırakmak için bu yöntemi çağırın.

T* Detach() throw();

Dönüş değeri

İşaretçinin bir kopyasını döndürür.

Açıklamalar

bir işaretçinin sahipliğini serbest bırakır, veri üyesi değişkenini CComPtrBase::p NULL olarak ayarlar ve işaretçinin bir kopyasını döndürür.

CComPtrBase::IsEqualObject

Belirtilen IUnknown nesnenin nesneyle ilişkili aynı nesneye işaretlenip işaret etmediğini denetlemek için bu yöntemi çağırın CComPtrBase .

bool IsEqualObject(IUnknown* pOther) throw();

Parametreler

pOther
IUnknown * Karşılaştıracak.

Dönüş değeri

Nesneler özdeşse true, aksi takdirde false döndürür.

CComPtrBase::operator !

NOT işleci.

bool operator!() const throw();

Dönüş değeri

İşaretçi NULL'a eşitse CComHeapPtr true, aksi takdirde false döndürür.

CComPtrBase::operator &

İşlecin adresi & .

T** operator&() throw();

Dönüş değeri

Nesnenin işaret ettiği nesnenin CComPtrBase adresini döndürür.

CComPtrBase::operator *

İşaretçi işleci * .

T& operator*() const throw();

Dönüş değeri

değerini CComPtrBase::p, yani nesnesi tarafından başvuruda bulunan nesnenin işaretçisini CComPtrBase döndürür.

Hata ayıklama derlenirse, NULL'a eşit değilse CComPtrBase::p bir onaylama hatası oluşur.

CComPtrBase::operator ==

Eşitlik işleci.

bool operator== (T* pT) const throw();

Parametreler

pT
Nesne işaretçisi.

Dönüş değeri

true döndürür ve pT aynı nesneye işaret ederse CComPtrBase false değerini döndürür.

CComPtrBase::operator ->

İşaretçiden üyeye işleci.

_NoAddRefReleaseOnCComPtr<T>* operator->() const throw();

Dönüş değeri

Veri üyesi değişkeninin CComPtrBase::p değerini döndürür.

Açıklamalar

Nesne tarafından CComPtrBase işaret edilen bir sınıftaki bir yöntemi çağırmak için bu işleci kullanın. Hata ayıklama derlemelerinde, veri üyesi NULL'a işaret ederse CComPtrBase onay hatası oluşur.

CComPtrBase::operator <

Less-than işleci.

bool operator<(T* pT) const throw();

Parametreler

pT
Nesne işaretçisi.

Dönüş değeri

Geçerli nesne tarafından yönetilen işaretçi, karşılaştırıldığı işaretçiden küçükse true döndürür.

CComPtrBase::operator T*

Atama işleci.

operator T*() const throw();

Açıklamalar

Sınıf şablonunda tanımlanan nesne veri türüne bir işaretçi döndürür.

CComPtrBase::p

İşaretçi veri üye değişkeni.

T* p;

Açıklamalar

Bu üye değişkeni işaretçi bilgilerini tutar.

CComPtrBase::QueryInterface

Belirtilen arabirime işaretçi döndürmek için bu yöntemi çağır.

template <class Q> HRESULT QueryInterface(Q
** pp) const throw();

Parametreler

Q
Arabirim işaretçisi gereken nesne türü.

pp
İstenen arabirim işaretçisini alan çıkış değişkeninin adresi.

Dönüş değeri

Başarılı veya E_NOINTERFACE başarısız olduğunda döndürürS_OK.

Açıklamalar

Bu yöntem çağırır IUnknown::QueryInterface.

Hata ayıklama derlemelerinde, NULL'a eşit değilse pp bir onaylama hatası oluşur.

CComPtrBase::Release

Arabirimini serbest bırakmak için bu yöntemi çağırın.

void Release() throw();

Açıklamalar

Arabirim serbest bırakılır ve CComPtrBase::p NULL olarak ayarlanır.

CComPtrBase::SetSite

Nesnenin sitesini üst nesnenin sitesine CComPtrBase ayarlamak için IUnknown bu yöntemi çağırın.

HRESULT SetSite(IUnknown* punkParent) throw();

Parametreler

punkParent
Üst öğesinin IUnknown arabirimine ilişkin bir işaretçi.

Dönüş değeri

Başarılı olduğunda veya hatada bir hata HRESULT döndürürS_OK.

Açıklamalar

Bu yöntem çağırır AtlSetChildSite.

Ayrıca bkz.

Sınıfa genel bakış