Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Az aktív sablontár (ATL) továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Ez az osztály a COM-alapú memória rutinokat használó intelligens mutatóosztályok alapja.
Szemantika
template <class T>
class CComPtrBase
Paraméterek
T
Az intelligens mutató által hivatkozott objektumtípus.
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
CComPtrBase::~CComPtrBase |
A destruktor. |
Nyilvános metódusok
| Név | Description |
|---|---|
CComPtrBase::Advise |
Hívja meg ezt a metódust, hogy kapcsolatot hozzon létre a CComPtrBasekapcsolati pont és az ügyfél fogadója között. |
CComPtrBase::Attach |
Hívja meg ezt a metódust egy meglévő mutató tulajdonjogának átvételéhez. |
CComPtrBase::CoCreateInstance |
Ezt a metódust meghívva hozzon létre egy objektumot a megadott osztályazonosítóhoz vagy programazonosítóhoz társított osztályból. |
CComPtrBase::CopyTo |
Ennek a metódusnak a meghívásával másolja a mutatót CComPtrBase egy másik mutatóváltozóba. |
CComPtrBase::Detach |
Hívja meg ezt a metódust egy mutató tulajdonjogának felszabadításához. |
CComPtrBase::IsEqualObject |
Hívja meg ezt a metódust annak ellenőrzéséhez, hogy a megadott IUnknown pontok az objektumhoz társított objektumra CComPtrBase mutatnak-e. |
CComPtrBase::QueryInterface |
Hívja meg ezt a metódust, hogy egy adott felületre mutató mutatót adjon vissza. |
CComPtrBase::Release |
Hívja meg ezt a metódust a felület felszabadításához. |
CComPtrBase::SetSite |
Ennek a metódusnak a meghívásával állítsa az CComPtrBase objektum helyét a IUnknown szülőobjektumra. |
Nyilvános operátorok
| Név | Description |
|---|---|
CComPtrBase::operator T* |
A öntött operátor. |
CComPtrBase::operator ! |
A NOT operátor. |
CComPtrBase::operator & |
Az operátor címe & . |
CComPtrBase::operator * |
A mutató-operátor * . |
CComPtrBase::operator < |
A kisebb operátor. |
CComPtrBase::operator == |
Az egyenlőségi operátor. |
CComPtrBase::operator -> |
A tagokhoz mutató operátor. |
Nyilvános adatok tagjai
| Név | Description |
|---|---|
CComPtrBase::p |
A mutató adattag változója. |
Megjegyzések
Ez az osztály a COM memóriakezelési rutinokat használó egyéb intelligens mutatók, például CComQIPtr a CComPtr. A származtatott osztályok saját konstruktorokat és operátorokat adnak hozzá, de az általuk CComPtrBasebiztosított módszerekre támaszkodnak.
Requirements
Fejléc: atlcomcli.h
CComPtrBase::Advise
Hívja meg ezt a metódust, hogy kapcsolatot hozzon létre a CComPtrBasekapcsolati pont és az ügyfél fogadója között.
HRESULT Advise(
IUnknown* pUnk,
const IID& iid,
LPDWORD pdw) throw();
Paraméterek
pUnk
Mutató az ügyfélhez IUnknown.
iid
A csatlakozási pont GUID azonosítója. Ez a GUID általában megegyezik a csatlakozási pont által felügyelt kimenő felülettel.
pdw
Mutató a cookie-hoz, amely egyedileg azonosítja a kapcsolatot.
Visszaadott érték
Sikeres vagy sikertelen hibát HRESULT ad S_OK vissza.
Megjegyzések
További információért lásd AtlAdvise.
CComPtrBase::Attach
Hívja meg ezt a metódust egy meglévő mutató tulajdonjogának átvételéhez.
void Attach(T* p2) throw();
Paraméterek
p2
Az CComPtrBase objektum átveszi ennek a mutatónak a tulajdonjogát.
Megjegyzések
Attach meghívja CComPtrBase::Release a meglévő CComPtrBase::p tagváltozót, majd hozzárendeli p2 a következőhöz CComPtrBase::p: . Amikor egy CComPtrBase objektum tulajdonjogot kap egy mutatóhoz, az automatikusan meghívja Release a mutatót, amely törli a mutatót és a lefoglalt adatokat, ha az objektum hivatkozási száma 0-ra változik.
CComPtrBase::~CComPtrBase
A destruktor.
~CComPtrBase() throw();
Megjegyzések
Felszabadítja a felület által mutatott CComPtrBase.
CComPtrBase::CoCreateInstance
Ezt a metódust meghívva hozzon létre egy objektumot a megadott osztályazonosítóhoz vagy programazonosítóhoz társított osztályból.
HRESULT CoCreateInstance(
LPCOLESTR szProgID,
LPUNKNOWN pUnkOuter = NULL,
DWORD dwClsContext = CLSCTX_ALL) throw();
HRESULT CoCreateInstance(
REFCLSID rclsid,
LPUNKNOWN pUnkOuter = NULL,
DWORD dwClsContext = CLSCTX_ALL) throw();
Paraméterek
szProgID
Mutasson egy progID-ra, amely a CLSID helyreállítására szolgál.
pUnkOuter
Ha NULL, az azt jelzi, hogy az objektum nem az összesítés részeként jön létre. Ha nem NULL, akkor az összesítő objektum felületére IUnknown mutató mutató (a vezérlő IUnknown).
dwClsContext
A környezet, amelyben az újonnan létrehozott objektumot kezelő kód fog futni.
rclsid
Az objektum létrehozásához használt adatokhoz és kódhoz társított CLSID.
Visszaadott érték
Sikeres vagy REGDB_E_CLASSNOTREG, CLASS_E_NOAGGREGATIONvagy CO_E_CLASSSTRINGE_NOINTERFACE sikertelen eredményre ad S_OK vissza. Tekintse meg és CLSIDFromProgID tekintse meg CoCreateClassInstance a hibák leírását.
Megjegyzések
Ha a metódus első formáját hívják meg, CLSIDFromProgID a RENDSZER a CLSID helyreállítására használja. Ezután mindkét űrlap meghívja a következőt CoCreateClassInstance:
A hibakeresési buildekben helyességi hiba lép fel, ha CComPtrBase::p nem egyenlő a NULL értékkel.
CComPtrBase::CopyTo
Ennek a metódusnak a meghívásával másolja a mutatót CComPtrBase egy másik mutatóváltozóba.
HRESULT CopyTo(T** ppT) throw();
Paraméterek
ppT
A mutató fogadásához CComPtrBase használt változó címe.
Visszaadott érték
S_OK
E_POINTER Sikeres, sikertelen eredmény.
Megjegyzések
Másolja a mutatót a CComPtrBase következőre ppT: . A tagváltozó referenciaszáma CComPtrBase::p növekszik.
A rendszer hibát HRESULT ad vissza, ha ppT null értékű. A hibakeresési buildekben egy helyességi hiba lép fel, ha ppT null értékű.
CComPtrBase::Detach
Hívja meg ezt a metódust egy mutató tulajdonjogának felszabadításához.
T* Detach() throw();
Visszaadott érték
A mutató másolatát adja vissza.
Megjegyzések
Felszabadítja a mutató tulajdonjogát, null értékűre állítja az CComPtrBase::p adattag változót, és visszaadja a mutató egy példányát.
CComPtrBase::IsEqualObject
Hívja meg ezt a metódust annak ellenőrzéséhez, hogy a megadott IUnknown pontok az objektumhoz társított objektumra CComPtrBase mutatnak-e.
bool IsEqualObject(IUnknown* pOther) throw();
Paraméterek
pOther
Az IUnknown * az összehasonlításhoz.
Visszaadott érték
Igaz értéket ad vissza, ha az objektumok azonosak, máskülönben hamisak.
CComPtrBase::operator !
A NOT operátor.
bool operator!() const throw();
Visszaadott érték
Igaz értéket ad vissza, ha az CComHeapPtr egérmutató null értékű, máskülönben hamis.
CComPtrBase::operator &
Az operátor címe & .
T** operator&() throw();
Visszaadott érték
Az objektum által CComPtrBase mutatott objektum címét adja vissza.
CComPtrBase::operator *
A mutató-operátor * .
T& operator*() const throw();
Visszaadott érték
Az ; értékének CComPtrBase::pértékét adja vissza, vagyis az objektum által CComPtrBase hivatkozott objektumra mutató mutatót.
Ha hibakeresési buildek történnek, akkor egy helyességi hiba lép fel, ha CComPtrBase::p nem egyenlő a NULL értékkel.
CComPtrBase::operator ==
Az egyenlőségi operátor.
bool operator== (T* pT) const throw();
Paraméterek
pT
Egy objektumra mutató mutató.
Visszaadott érték
Igaz értéket ad vissza, ha CComPtrBase és pT ugyanarra az objektumra mutat, máskülönben hamis.
CComPtrBase::operator ->
A mutató–tag operátor.
_NoAddRefReleaseOnCComPtr<T>* operator->() const throw();
Visszaadott érték
Az adattag változó értékét CComPtrBase::p adja vissza.
Megjegyzések
Ezzel az operátorral meghívhat egy metódust az objektum által CComPtrBase mutatott osztályban. A hibakeresési buildekben helyességi hiba lép fel, ha az CComPtrBase adattag NULL értékre mutat.
CComPtrBase::operator <
A kisebb operátor.
bool operator<(T* pT) const throw();
Paraméterek
pT
Egy objektumra mutató mutató.
Visszaadott érték
Igaz értéket ad vissza, ha az aktuális objektum által kezelt mutató kisebb, mint az a mutató, amelyhez viszonyítva van.
CComPtrBase::operator T*
A öntött operátor.
operator T*() const throw();
Megjegyzések
Az osztálysablonban definiált objektumadat-típusra mutató mutatót ad vissza.
CComPtrBase::p
A mutató adattag változója.
T* p;
Megjegyzések
Ez a tagváltozó tárolja a mutató adatait.
CComPtrBase::QueryInterface
Hívja meg ezt a metódust, hogy egy adott felületre mutató mutatót adjon vissza.
template <class Q> HRESULT QueryInterface(Q
** pp) const throw();
Paraméterek
Q
Az az objektumtípus, amelynek az illesztőmutatója szükséges.
pp
A kért felületmutatót fogadó kimeneti változó címe.
Visszaadott érték
Sikeres vagy E_NOINTERFACE sikertelen eredményre ad S_OK vissza.
Megjegyzések
Ez a metódus meghívja a metódust IUnknown::QueryInterface.
A hibakeresési buildekben helyességi hiba lép fel, ha pp nem egyenlő a NULL értékkel.
CComPtrBase::Release
Hívja meg ezt a metódust a felület felszabadításához.
void Release() throw();
Megjegyzések
A rendszer felszabadítja az interfészt, és CComPtrBase::p NULL értékre van állítva.
CComPtrBase::SetSite
Ennek a metódusnak a meghívásával állítsa az CComPtrBase objektum helyét a IUnknown szülőobjektumra.
HRESULT SetSite(IUnknown* punkParent) throw();
Paraméterek
punkParent
A szülő felületére mutató mutató IUnknown .
Visszaadott érték
Sikeres vagy sikertelen hibát HRESULT ad S_OK vissza.
Megjegyzések
Ez a metódus meghívja a metódust AtlSetChildSite.