Megosztás a következőn keresztül:


CComPtrBase osztály

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.

Lásd még

Osztály áttekintése