Share via


CComGITPtr-klasse

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 methoden voor het omgaan met interfacepointers en de algemene interfacetabel (GIT).

Syntaxis

template <class T>
class CComGITPtr

Parameterwaarden

T
Het type interfacepointer dat moet worden opgeslagen in de GIT.

Leden

Openbare constructors

Naam Description
CComGITPtr::CComGITPtr De constructor.
CComGITPtr::~CComGITPtr De destructor.

Openbare methoden

Naam Description
CComGITPtr::Attach Roep deze methode aan om de interfacepointer te registreren in de algemene interfacetabel (GIT).
CComGITPtr::CopyTo Roep deze methode aan om de interface van de globale interfacetabel (GIT) te kopiƫren naar de doorgegeven aanwijzer.
CComGITPtr::D etach Roep deze methode aan om de interface los te koppelen van het CComGITPtr object.
CComGITPtr::GetCookie Roep deze methode aan om de cookie van het CComGITPtr object te retourneren.
CComGITPtr::Revoke Roep deze methode aan om de interface te verwijderen uit de algemene interfacetabel (GIT).

Openbare operators

Naam Description
CComGITPtr::operator DWORD Retourneert de cookie van het CComGITPtr object.
CComGITPtr::operator = Toewijzingsoperator.

Publieke dataleden

Naam Description
CComGITPtr::m_dwCookie Het koekje.

Opmerkingen

Objecten die de gratis threaded marshaler aggregeren en interfacepointers moeten gebruiken die zijn verkregen uit andere objecten, moeten extra stappen uitvoeren om ervoor te zorgen dat de interfaces correct marshaled zijn. Dit omvat meestal het opslaan van de interfacepointers in de GIT en het ophalen van de aanwijzer van de GIT telkens wanneer deze wordt gebruikt. De klasse CComGITPtr wordt geleverd om u te helpen interfacepointers te gebruiken die zijn opgeslagen in de GIT.

Opmerking

De globale interfacetabelfaciliteit is alleen beschikbaar in Windows 95 met DCOM versie 1.1 en hoger, Windows 98, Windows NT 4.0 met Service Pack 3 en hoger en Windows 2000.

Requirements

Header: atlbase.h

CComGITPtr::Attach

Roep deze methode aan om de interfacepointer te registreren in de algemene interfacetabel (GIT).

HRESULT Attach(T* p) throw();

HRESULT Attach(DWORD dwCookie) throw();

Parameterwaarden

p
De interfacepointer die moet worden toegevoegd aan de GIT.

dwCookie
De cookie die wordt gebruikt om de interfacepointer te identificeren.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

In builds voor foutopsporing treedt een assertiefout op als de GIT niet geldig is of als de cookie gelijk is aan NULL.

CComGITPtr::CComGITPtr

De constructor.

CComGITPtr() throw();
CComGITPtr(T* p);
CComGITPtr(const CComGITPtr& git);
explicit CComGITPtr(DWORD dwCookie) throw();
CComGITPtr(CComGITPtr&& rv);

Parameterwaarden

p
[in] Een interfaceaanwijzer die moet worden opgeslagen in de algemene interfacetabel (GIT).

Git
[in] Een verwijzing naar een bestaand CComGITPtr object.

dwCookie
[in] Een cookie die wordt gebruikt om de interfacepointer te identificeren.

Rv
[in] Het bronobject CComGITPtr waaruit gegevens moeten worden verplaatst.

Opmerkingen

Hiermee maakt u een nieuw CComGITPtr object, optioneel met behulp van een bestaand CComGITPtr object.

De constructor die rv gebruikt, is een verplaatsingsconstructor. De gegevens worden verplaatst van de bron, rv en vervolgens rv wordt gewist.

CComGITPtr::~CComGITPtr

De destructor.

~CComGITPtr() throw();

Opmerkingen

Hiermee verwijdert u de interface uit de algemene interfacetabel (GIT), met behulp van CComGITPtr::Revoke.

CComGITPtr::CopyTo

Roep deze methode aan om de interface van de globale interfacetabel (GIT) te kopiƫren naar de doorgegeven aanwijzer.

HRESULT CopyTo(T** pp) const throw();

Parameterwaarden

Pp
De aanwijzer die de interface moet ontvangen.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

De interface van de GIT wordt gekopieerd naar de doorgegeven aanwijzer. De aanwijzer moet worden vrijgegeven door de beller wanneer deze niet meer nodig is.

CComGITPtr::D etach

Roep deze methode aan om de interface los te koppelen van het CComGITPtr object.

DWORD Detach() throw();

Retourwaarde

Retourneert de cookie van het CComGITPtr object.

Opmerkingen

Het is aan de aanroeper om de interface uit de GIT te verwijderen met behulp van CComGITPtr::Revoke.

CComGITPtr::GetCookie

Roep deze methode aan om de cookie van het CComGITPtr object te retourneren.

DWORD GetCookie() const;

Retourwaarde

Retourneert de cookie.

Opmerkingen

De cookie is een variabele die wordt gebruikt om een interface en de locatie ervan te identificeren.

CComGITPtr::m_dwCookie

Het koekje.

DWORD m_dwCookie;

Opmerkingen

De cookie is een lidvariabele die wordt gebruikt om een interface en de locatie ervan te identificeren.

CComGITPtr::operator =

De toewijzingsoperator.

CComGITPtr& operator= (T* p);
CComGITPtr& operator= (const CComGITPtr& git);
CComGITPtr& operator= (DWORD dwCookie);
CComGITPtr& operator= (CComGITPtr&& rv);

Parameterwaarden

p
[in] Een aanwijzer naar een interface.

Git
[in] Een verwijzing naar een CComGITPtr object.

dwCookie
[in] Een cookie die wordt gebruikt om de interfacepointer te identificeren.

Rv
[in] De CComGITPtr gegevens waaruit u gegevens wilt verplaatsen.

Retourwaarde

Retourneert het bijgewerkte CComGITPtr object.

Opmerkingen

Hiermee wijst u een nieuwe waarde toe aan een CComGITPtr object, hetzij vanuit een bestaand object of vanuit een verwijzing naar een globale interfacetabel.

CComGITPtr::operator DWORD

Retourneert de cookie die aan het CComGITPtr object is gekoppeld.

operator DWORD() const;

Opmerkingen

De cookie is een variabele die wordt gebruikt om een interface en de locatie ervan te identificeren.

CComGITPtr::Revoke

Roep deze methode aan om de huidige interface te verwijderen uit de algemene interfacetabel (GIT).

HRESULT Revoke() throw();

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Hiermee verwijdert u de interface uit de GIT.

Zie ook

Gratis Threaded Marshaler
Toegang tot interfaces in meerdere appartementen
Wanneer gebruikt u de globale interfacetabel
Overzicht van klassen