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 CComPtrBase havuzu 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 CComPtr
gibi 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 CComPtrBase
sağlanan yöntemleri kullanır.
Gereksinimler
Üst bilgi: atlcomcli.h
CComPtrBase::Advise
'nin bağlantı noktası ile istemcinin CComPtrBase
havuzu 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
Attach
mevcut CComPtrBase::p
üye değişkenini çağırır CComPtrBase::Release
ve sonra öğesine CComPtrBase::p
atarp2
. 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 CComPtrBase
iş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) IUnknown
yö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_CLASSSTRING
veya 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 ppT
kopyalar. Ü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
.