Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Deze klasse biedt een basis voor slimme aanwijzerklassen met behulp van COM-geheugenroutines.
Syntaxis
template <class T>
class CComPtrBase
Parameterwaarden
T
Het objecttype waarnaar moet worden verwezen door de slimme aanwijzer.
Leden
Openbare constructors
| Naam | Description |
|---|---|
CComPtrBase::~CComPtrBase |
De destructor. |
Openbare methoden
| Naam | Description |
|---|---|
CComPtrBase::Advise |
Roep deze methode aan om een verbinding te maken tussen het CComPtrBaseverbindingspunt en de sink van een client. |
CComPtrBase::Attach |
Roep deze methode aan om eigenaar te worden van een bestaande aanwijzer. |
CComPtrBase::CoCreateInstance |
Roep deze methode aan om een object te maken van de klasse die is gekoppeld aan een opgegeven klasse-id of programma-id. |
CComPtrBase::CopyTo |
Roep deze methode aan om de CComPtrBase aanwijzer naar een andere aanwijzervariabele te kopiƫren. |
CComPtrBase::Detach |
Roep deze methode aan om het eigendom van een aanwijzer vrij te geven. |
CComPtrBase::IsEqualObject |
Roep deze methode aan om te controleren of de opgegeven IUnknown punten naar hetzelfde object zijn gekoppeld aan het CComPtrBase object. |
CComPtrBase::QueryInterface |
Roep deze methode aan om een aanwijzer te retourneren naar een opgegeven interface. |
CComPtrBase::Release |
Roep deze methode aan om de interface vrij te geven. |
CComPtrBase::SetSite |
Roep deze methode aan om de site van het CComPtrBase object in te stellen op het IUnknown bovenliggende object. |
Openbare operators
| Naam | Description |
|---|---|
CComPtrBase::operator T* |
De cast-operator. |
CComPtrBase::operator ! |
De NOT-operator. |
CComPtrBase::operator & |
Het adres van & de operator. |
CComPtrBase::operator * |
De aanwijzer-naar-operator * . |
CComPtrBase::operator < |
De operator kleiner dan. |
CComPtrBase::operator == |
De gelijkheidsoperator. |
CComPtrBase::operator -> |
De operator aanwijzer naar leden. |
Leden van openbare gegevens
| Naam | Description |
|---|---|
CComPtrBase::p |
De gegevenslidvariabele aanwijzer. |
Opmerkingen
Deze klasse biedt de basis voor andere slimme aanwijzers die COM-geheugenbeheerroutines gebruiken, zoals CComQIPtr en CComPtr. De afgeleide klassen voegen hun eigen constructors en operators toe, maar zijn afhankelijk van de methoden die worden geleverd door CComPtrBase.
Requirements
Koptekst: atlcomcli.h
CComPtrBase::Advise
Roep deze methode aan om een verbinding te maken tussen het CComPtrBaseverbindingspunt en de sink van een client.
HRESULT Advise(
IUnknown* pUnk,
const IID& iid,
LPDWORD pdw) throw();
Parameterwaarden
pUnk
Een aanwijzer naar de client IUnknown.
iid
De GUID van het verbindingspunt. Deze GUID is doorgaans hetzelfde als de uitgaande interface die wordt beheerd door het verbindingspunt.
pdw
Een aanwijzer naar de cookie die de verbinding uniek identificeert.
Retourwaarde
Retourneert S_OK een geslaagde fout of een fout HRESULT bij een fout.
Opmerkingen
Zie AtlAdvise voor meer informatie.
CComPtrBase::Attach
Roep deze methode aan om eigenaar te worden van een bestaande aanwijzer.
void Attach(T* p2) throw();
Parameterwaarden
p2
Het CComPtrBase object wordt eigenaar van deze aanwijzer.
Opmerkingen
Attach roept CComPtrBase::Release de bestaande lidvariabele CComPtrBase::p aan en wijst vervolgens toe aan p2CComPtrBase::p. Wanneer een CComPtrBase object eigenaar wordt van een aanwijzer, wordt deze automatisch aangeroepen Release op de aanwijzer, waardoor de aanwijzer en de toegewezen gegevens worden verwijderd als het aantal verwijzingen op het object naar 0 gaat.
CComPtrBase::~CComPtrBase
De destructor.
~CComPtrBase() throw();
Opmerkingen
Hiermee wordt de interface vrijgegeven die CComPtrBasedoor .
CComPtrBase::CoCreateInstance
Roep deze methode aan om een object te maken van de klasse die is gekoppeld aan een opgegeven klasse-id of programma-id.
HRESULT CoCreateInstance(
LPCOLESTR szProgID,
LPUNKNOWN pUnkOuter = NULL,
DWORD dwClsContext = CLSCTX_ALL) throw();
HRESULT CoCreateInstance(
REFCLSID rclsid,
LPUNKNOWN pUnkOuter = NULL,
DWORD dwClsContext = CLSCTX_ALL) throw();
Parameterwaarden
szProgID
Aanwijzer naar een ProgID, gebruikt om de CLSID te herstellen.
pUnkOuter
Als NULL, geeft u aan dat het object niet wordt gemaakt als onderdeel van een statistische functie. Als niet-NULL, is dit een aanwijzer naar de interface van IUnknown het aggregaatobject (het besturingselement IUnknown).
dwClsContext
Context waarin de code waarmee het zojuist gemaakte object wordt beheerd, wordt uitgevoerd.
rclsid
CLSID die is gekoppeld aan de gegevens en code die wordt gebruikt om het object te maken.
Retourwaarde
S_OK Geeft als resultaat dat de bewerking is geslaagd, of REGDB_E_CLASSNOTREGCLASS_E_NOAGGREGATION, of CO_E_CLASSSTRINGE_NOINTERFACE bij een fout. Zie CoCreateClassInstance en CLSIDFromProgID voor een beschrijving van deze fouten.
Opmerkingen
Als de eerste vorm van de methode wordt aangeroepen, CLSIDFromProgID wordt gebruikt om de CLSID te herstellen. Beide formulieren worden vervolgens aangeroepen CoCreateClassInstance.
In builds voor foutopsporing treedt een assertiefout op als CComPtrBase::p deze niet gelijk is aan NULL.
CComPtrBase::CopyTo
Roep deze methode aan om de CComPtrBase aanwijzer naar een andere aanwijzervariabele te kopiƫren.
HRESULT CopyTo(T** ppT) throw();
Parameterwaarden
ppT
Adres van de variabele om de CComPtrBase aanwijzer te ontvangen.
Retourwaarde
S_OK Geeft als resultaat het succes, E_POINTER bij fouten.
Opmerkingen
Hiermee kopieert u de CComPtrBase aanwijzer naar ppT. Het aantal verwijzingen op de CComPtrBase::p lidvariabele wordt verhoogd.
Er wordt een fout HRESULT geretourneerd als ppT deze gelijk is aan NULL. In builds voor foutopsporing treedt er een assertiefout op als ppT deze gelijk is aan NULL.
CComPtrBase::Detach
Roep deze methode aan om het eigendom van een aanwijzer vrij te geven.
T* Detach() throw();
Retourwaarde
Retourneert een kopie van de aanwijzer.
Opmerkingen
Geeft het eigendom van een aanwijzer vrij, stelt de CComPtrBase::p gegevenslidvariabele in op NULL en retourneert een kopie van de aanwijzer.
CComPtrBase::IsEqualObject
Roep deze methode aan om te controleren of de opgegeven IUnknown punten naar hetzelfde object zijn gekoppeld aan het CComPtrBase object.
bool IsEqualObject(IUnknown* pOther) throw();
Parameterwaarden
pOther
De IUnknown * te vergelijken.
Retourwaarde
Retourneert waar als de objecten identiek zijn, anders onwaar.
CComPtrBase::operator !
De NOT-operator.
bool operator!() const throw();
Retourwaarde
Retourneert waar als de CComHeapPtr aanwijzer gelijk is aan NULL, anders onwaar.
CComPtrBase::operator &
Het adres van & de operator.
T** operator&() throw();
Retourwaarde
Retourneert het adres van het object waarnaar wordt verwezen door het CComPtrBase object.
CComPtrBase::operator *
De aanwijzer-naar-operator * .
T& operator*() const throw();
Retourwaarde
Retourneert de waarde van CComPtrBase::p; dat wil gezegd, een aanwijzer naar het object waarnaar wordt verwezen door het CComPtrBase object.
Als builds voor foutopsporing optreden, treedt er een assertiefout op als CComPtrBase::p deze niet gelijk is aan NULL.
CComPtrBase::operator ==
De gelijkheidsoperator.
bool operator== (T* pT) const throw();
Parameterwaarden
pT
Een aanwijzer naar een object.
Retourwaarde
Retourneert waar als CComPtrBase en pT wijs naar hetzelfde object, anders onwaar.
CComPtrBase::operator ->
De aanwijzer-naar-lid-operator.
_NoAddRefReleaseOnCComPtr<T>* operator->() const throw();
Retourwaarde
Retourneert de waarde van de CComPtrBase::p gegevenslidvariabele.
Opmerkingen
Gebruik deze operator om een methode aan te roepen in een klasse waarnaar wordt verwezen door het CComPtrBase object. In builds voor foutopsporing treedt er een assertiefout op als het CComPtrBase gegevenslid verwijst naar NULL.
CComPtrBase::operator <
De operator kleiner dan.
bool operator<(T* pT) const throw();
Parameterwaarden
pT
Een aanwijzer naar een object.
Retourwaarde
Retourneert waar als de aanwijzer die wordt beheerd door het huidige object kleiner is dan de aanwijzer waarop deze wordt vergeleken.
CComPtrBase::operator T*
De cast-operator.
operator T*() const throw();
Opmerkingen
Retourneert een aanwijzer naar het objectgegevenstype dat is gedefinieerd in de klassesjabloon.
CComPtrBase::p
De gegevenslidvariabele aanwijzer.
T* p;
Opmerkingen
Deze lidvariabele bevat de informatie over de aanwijzer.
CComPtrBase::QueryInterface
Roep deze methode aan om een aanwijzer te retourneren naar een opgegeven interface.
template <class Q> HRESULT QueryInterface(Q
** pp) const throw();
Parameterwaarden
Q
Het objecttype waarvan de interfacepointer is vereist.
pp
Adres van uitvoervariabele die de aangevraagde interfacepointer ontvangt.
Retourwaarde
S_OK Geeft als resultaat of bij mislukte pogingenE_NOINTERFACE.
Opmerkingen
Met deze methode wordt aangeroepen IUnknown::QueryInterface.
In builds voor foutopsporing treedt een assertiefout op als pp deze niet gelijk is aan NULL.
CComPtrBase::Release
Roep deze methode aan om de interface vrij te geven.
void Release() throw();
Opmerkingen
De interface wordt vrijgegeven en CComPtrBase::p is ingesteld op NULL.
CComPtrBase::SetSite
Roep deze methode aan om de site van het CComPtrBase object in te stellen op het IUnknown bovenliggende object.
HRESULT SetSite(IUnknown* punkParent) throw();
Parameterwaarden
punkParent
Een aanwijzer naar de IUnknown interface van het bovenliggende item.
Retourwaarde
Retourneert S_OK een geslaagde fout of een fout HRESULT bij een fout.
Opmerkingen
Met deze methode wordt aangeroepen AtlSetChildSite.