Sdílet prostřednictvím


CComPtrBase Třída

Tato třída poskytuje základ pro třídy inteligentních ukazatelů pomocí rutin paměti založených na modelu COM.

Syntaxe

template <class T>
class CComPtrBase

Parametry

T
Typ objektu, na který má být odkazován inteligentním ukazatelem.

Členové

Veřejné konstruktory

Název Popis
CComPtrBase::~CComPtrBase Destruktor.

Veřejné metody

Název Popis
CComPtrBase::Advise Voláním této metody vytvoříte připojení mezi CComPtrBasespojovacím bodem a jímkou klienta.
CComPtrBase::Attach Voláním této metody převezmete vlastnictví existujícího ukazatele.
CComPtrBase::CoCreateInstance Voláním této metody vytvoříte objekt třídy asociované se zadaným ID třídy nebo ID programu.
CComPtrBase::CopyTo Voláním této metody zkopírujte CComPtrBase ukazatel na jinou proměnnou ukazatele.
CComPtrBase::Detach Voláním této metody uvolníte vlastnictví ukazatele.
CComPtrBase::IsEqualObject Voláním této metody zkontrolujte, zda zadané IUnknown body na stejný objekt přidružený k objektu CComPtrBase .
CComPtrBase::QueryInterface Voláním této metody vrátíte ukazatel na zadané rozhraní.
CComPtrBase::Release Voláním této metody uvolněte rozhraní.
CComPtrBase::SetSite Voláním této metody nastavíte lokalitu CComPtrBase objektu na IUnknown nadřazený objekt.

Veřejné operátory

Název Popis
CComPtrBase::operator T* Operátor přetypování.
CComPtrBase::operator ! Operátor NOT.
CComPtrBase::operator & Operátor adresy & .
CComPtrBase::operator * Operátor ukazatele na *
CComPtrBase::operator < Operátor menší než.
CComPtrBase::operator == Operátor rovnosti.
CComPtrBase::operator -> Operátor pointer-to-members.

Veřejné datové členy

Název Popis
CComPtrBase::p Proměnná datového členu ukazatele.

Poznámky

Tato třída poskytuje základ pro další inteligentní ukazatele, které používají rutiny správy paměti MODELU COM, například CComQIPtr a CComPtr. Odvozené třídy přidávají své vlastní konstruktory a operátory, ale spoléhají na metody poskytované CComPtrBase.

Požadavky

Hlavička: atlcomcli.h

CComPtrBase::Advise

Voláním této metody vytvoříte připojení mezi CComPtrBasespojovacím bodem a jímkou klienta.

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

Parametry

pUnk
Ukazatel na klienta IUnknown.

iid
Identifikátor GUID spojovacího bodu. Tento identifikátor GUID je obvykle stejný jako odchozí rozhraní spravované spojovacím bodem.

pdw
Ukazatel na soubor cookie, který jednoznačně identifikuje připojení.

Vrácená hodnota

Vrátí S_OK úspěch nebo chybu při selhání HRESULT .

Poznámky

Další informace najdete na webu AtlAdvise.

CComPtrBase::Attach

Voláním této metody převezmete vlastnictví existujícího ukazatele.

void Attach(T* p2) throw();

Parametry

p2
Objekt CComPtrBase převezme vlastnictví tohoto ukazatele.

Poznámky

Attachzavolá CComPtrBase::Release existující CComPtrBase::p členské proměnné a pak se přiřadí p2 .CComPtrBase::p CComPtrBase Když objekt převezme vlastnictví ukazatele, automaticky zavolá Release ukazatel, který odstraní ukazatel a všechna přidělená data, pokud počet odkazů na objekt přejde na 0.

CComPtrBase::~CComPtrBase

Destruktor.

~CComPtrBase() throw();

Poznámky

Uvolní rozhraní, na které CComPtrBaseodkazuje .

CComPtrBase::CoCreateInstance

Voláním této metody vytvoříte objekt třídy asociované se zadaným ID třídy nebo ID programu.

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

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

Parametry

szProgID
Ukazatel na IDENTIFIKÁTOR ProgID, který se používá k obnovení IDENTIFIKÁTORu CLSID.

pUnkOuter
Pokud má hodnotu NULL, znamená to, že se objekt nevytvořil jako součást agregace. Pokud není null, je ukazatel na rozhraní agregovaného objektu IUnknown (ovládací prvky IUnknown).

dwClsContext
Kontext, ve kterém se spustí kód, který spravuje nově vytvořený objekt.

rclsid
CLSID přidružené k datům a kódu, které se použijí k vytvoření objektu.

Vrácená hodnota

Vrátí S_OK úspěch nebo REGDB_E_CLASSNOTREG, , CLASS_E_NOAGGREGATIONCO_E_CLASSSTRING, nebo E_NOINTERFACE při selhání. Podívejte se na popis těchto chyb a CLSIDFromProgID podívejte CoCreateClassInstance se na jejich popis.

Poznámky

Pokud je volána první forma metody, CLSIDFromProgID slouží k obnovení CLSID. Oba formuláře pak volají CoCreateClassInstance.

V sestaveních ladění dojde k chybě kontrolního výrazu, pokud CComPtrBase::p není rovna hodnotě NULL.

CComPtrBase::CopyTo

Voláním této metody zkopírujte CComPtrBase ukazatel na jinou proměnnou ukazatele.

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

Parametry

ppT
Adresa proměnné pro příjem CComPtrBase ukazatele

Vrácená hodnota

Vrátí S_OK úspěch E_POINTER při selhání.

Poznámky

Zkopíruje CComPtrBase ukazatel na ppT. Počet odkazů na člennou CComPtrBase::p proměnnou se zvýší.

Pokud se rovná hodnotě NULL, vrátí ppT se chybaHRESULT. V buildech ladění dojde k chybě kontrolního výrazu, pokud ppT je rovna hodnotě NULL.

CComPtrBase::Detach

Voláním této metody uvolníte vlastnictví ukazatele.

T* Detach() throw();

Vrácená hodnota

Vrátí kopii ukazatele.

Poznámky

Uvolní vlastnictví ukazatele, nastaví proměnnou datového CComPtrBase::p členu na hodnotu NULL a vrátí kopii ukazatele.

CComPtrBase::IsEqualObject

Voláním této metody zkontrolujte, zda zadané IUnknown body na stejný objekt přidružený k objektu CComPtrBase .

bool IsEqualObject(IUnknown* pOther) throw();

Parametry

pOther
Porovnání IUnknown * .

Vrácená hodnota

Vrátí hodnotu true, pokud jsou objekty identické, jinak false.

CComPtrBase::operator !

Operátor NOT.

bool operator!() const throw();

Vrácená hodnota

Vrátí hodnotu true, CComHeapPtr pokud je ukazatel roven hodnotě NULL, jinak nepravda.

CComPtrBase::operator &

Operátor adresy & .

T** operator&() throw();

Vrácená hodnota

Vrátí adresu objektu, na který CComPtrBase odkazuje objekt.

CComPtrBase::operator *

Operátor ukazatele na *

T& operator*() const throw();

Vrácená hodnota

Vrátí hodnotu CComPtrBase::p; to znamená ukazatel na objekt odkazovaný objektem CComPtrBase .

Pokud se ladí sestavení, dojde k chybě kontrolního výrazu, pokud CComPtrBase::p se nerovná hodnotě NULL.

CComPtrBase::operator ==

Operátor rovnosti.

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

Parametry

pT
Ukazatel na objekt.

Vrácená hodnota

Vrátí hodnotu true, pokud CComPtrBase a pT nasměruje na stejný objekt, jinak nepravda.

CComPtrBase::operator ->

Operátor pointer-to-member.

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

Vrácená hodnota

Vrátí hodnotu proměnné datového členu CComPtrBase::p .

Poznámky

Tento operátor slouží k volání metody ve třídě odkazované objektem CComPtrBase . V sestaveních ladění dojde k selhání kontrolního výrazu CComPtrBase , pokud datový člen odkazuje na hodnotu NULL.

CComPtrBase::operator <

Operátor menší než.

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

Parametry

pT
Ukazatel na objekt.

Vrácená hodnota

Vrátí hodnotu true, pokud je ukazatel spravovaný aktuálním objektem menší než ukazatel, na který se porovnává.

CComPtrBase::operator T*

Operátor přetypování.

operator T*() const throw();

Poznámky

Vrátí ukazatel na datový typ objektu definovaný v šabloně třídy.

CComPtrBase::p

Proměnná datového členu ukazatele.

T* p;

Poznámky

Tato proměnná člena obsahuje informace o ukazateli.

CComPtrBase::QueryInterface

Voláním této metody vrátíte ukazatel na zadané rozhraní.

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

Parametry

Q
Typ objektu, jehož ukazatel rozhraní je povinný.

pp
Adresa výstupní proměnné, která přijímá požadovaný ukazatel rozhraní.

Vrácená hodnota

Vrátí S_OK úspěch nebo E_NOINTERFACE selhání.

Poznámky

Tato metoda volá IUnknown::QueryInterface.

V sestaveních ladění dojde k chybě kontrolního výrazu, pokud pp není rovna hodnotě NULL.

CComPtrBase::Release

Voláním této metody uvolněte rozhraní.

void Release() throw();

Poznámky

Rozhraní je vydáno a CComPtrBase::p je nastaveno na HODNOTU NULL.

CComPtrBase::SetSite

Voláním této metody nastavíte lokalitu CComPtrBase objektu na IUnknown nadřazený objekt.

HRESULT SetSite(IUnknown* punkParent) throw();

Parametry

punkParent
Ukazatel na IUnknown rozhraní nadřazeného objektu.

Vrácená hodnota

Vrátí S_OK úspěch nebo chybu při selhání HRESULT .

Poznámky

Tato metoda volá AtlSetChildSite.

Viz také

Přehled třídy