Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Classe
Questa classe fornisce una base per le classi puntatore intelligenti che usano routine di memoria basate su COM.
Sintassi
template <class T>
class CComPtrBase
Parametri
T
Tipo di oggetto a cui fare riferimento il puntatore intelligente.
Membri
Costruttori pubblici
| Nome | Descrizione |
|---|---|
CComPtrBase::~CComPtrBase |
Distruttore. |
Metodi pubblici
| Nome | Descrizione |
|---|---|
CComPtrBase::Advise |
Chiamare questo metodo per creare una connessione tra il CComPtrBasepunto di connessione del e il sink di un client. |
CComPtrBase::Attach |
Chiamare questo metodo per acquisire la proprietà di un puntatore esistente. |
CComPtrBase::CoCreateInstance |
Chiamare questo metodo per creare un oggetto della classe associata a un ID classe o a un ID programma specificato. |
CComPtrBase::CopyTo |
Chiamare questo metodo per copiare il CComPtrBase puntatore in un'altra variabile del puntatore. |
CComPtrBase::Detach |
Chiamare questo metodo per rilasciare la proprietà di un puntatore. |
CComPtrBase::IsEqualObject |
Chiamare questo metodo per verificare se i punti specificati IUnknown allo stesso oggetto associato all'oggetto CComPtrBase . |
CComPtrBase::QueryInterface |
Chiamare questo metodo per restituire un puntatore a un'interfaccia specificata. |
CComPtrBase::Release |
Chiamare questo metodo per rilasciare l'interfaccia. |
CComPtrBase::SetSite |
Chiamare questo metodo per impostare il sito dell'oggetto CComPtrBase sull'oggetto IUnknown padre. |
Operatori pubblici
| Nome | Descrizione |
|---|---|
CComPtrBase::operator T* |
Operatore cast. |
CComPtrBase::operator ! |
Operatore NOT. |
CComPtrBase::operator & |
Operatore address-of & . |
CComPtrBase::operator * |
Operatore da puntatore a * . |
CComPtrBase::operator < |
Operatore minore di. |
CComPtrBase::operator == |
Operatore di uguaglianza. |
CComPtrBase::operator -> |
Operatore puntatore a membri. |
Membri dati pubblici
| Nome | Descrizione |
|---|---|
CComPtrBase::p |
Variabile membro dati del puntatore. |
Osservazioni:
Questa classe fornisce la base per altri puntatori intelligenti che usano routine di gestione della memoria COM, ad esempio CComQIPtr e CComPtr. Le classi derivate aggiungono costruttori e operatori personalizzati, ma si basano sui metodi forniti da CComPtrBase.
Requisiti
Intestazione: atlcomcli.h
CComPtrBase::Advise
Chiamare questo metodo per creare una connessione tra il CComPtrBasepunto di connessione del e il sink di un client.
HRESULT Advise(
IUnknown* pUnk,
const IID& iid,
LPDWORD pdw) throw();
Parametri
pUnk
Puntatore a .IUnknown
iid
GUID del punto di connessione. In genere, questo GUID corrisponde all'interfaccia in uscita gestita dal punto di connessione.
pdw
Puntatore al cookie che identifica in modo univoco la connessione.
Valore restituito
Restituisce S_OK l'esito positivo o un errore in caso di errore HRESULT .
Osservazioni:
Per ulteriori informazioni, vedere AtlAdvise.
CComPtrBase::Attach
Chiamare questo metodo per acquisire la proprietà di un puntatore esistente.
void Attach(T* p2) throw();
Parametri
p2
L'oggetto CComPtrBase assumerà la proprietà di questo puntatore.
Osservazioni:
Attach chiama CComPtrBase::Release sulla variabile membro esistente CComPtrBase::p e quindi assegna p2 a CComPtrBase::p. Quando un CComPtrBase oggetto acquisisce la proprietà di un puntatore, viene chiamato Release automaticamente sul puntatore, che elimina il puntatore ed eventuali dati allocati se il conteggio dei riferimenti per l'oggetto passa a 0.
CComPtrBase::~CComPtrBase
Distruttore.
~CComPtrBase() throw();
Osservazioni:
Rilascia l'interfaccia a cui CComPtrBasepunta .
CComPtrBase::CoCreateInstance
Chiamare questo metodo per creare un oggetto della classe associata a un ID classe o a un ID programma specificato.
HRESULT CoCreateInstance(
LPCOLESTR szProgID,
LPUNKNOWN pUnkOuter = NULL,
DWORD dwClsContext = CLSCTX_ALL) throw();
HRESULT CoCreateInstance(
REFCLSID rclsid,
LPUNKNOWN pUnkOuter = NULL,
DWORD dwClsContext = CLSCTX_ALL) throw();
Parametri
szProgID
Puntatore a un ProgID, usato per ripristinare il CLSID.
pUnkOuter
Se NULL, indica che l'oggetto non viene creato come parte di un'aggregazione. Se non NULL, è un puntatore all'interfaccia dell'oggetto IUnknown aggregato (controllo IUnknown).
dwClsContext
Contesto in cui verrà eseguito il codice che gestisce l'oggetto appena creato.
rclsid
CLSID associato ai dati e al codice che verranno usati per creare l'oggetto.
Valore restituito
Restituisce S_OK in caso di esito positivo, o REGDB_E_CLASSNOTREG, CLASS_E_NOAGGREGATIONCO_E_CLASSSTRING, o E_NOINTERFACE in caso di errore. Vedere CoCreateClassInstance e CLSIDFromProgID per una descrizione di questi errori.
Osservazioni:
Se viene chiamato il primo formato del metodo, CLSIDFromProgID viene utilizzato per recuperare il CLSID. Entrambi i moduli chiamano CoCreateClassInstancequindi .
Nelle compilazioni di debug si verificherà un errore di asserzione se CComPtrBase::p non è uguale a NULL.
CComPtrBase::CopyTo
Chiamare questo metodo per copiare il CComPtrBase puntatore in un'altra variabile del puntatore.
HRESULT CopyTo(T** ppT) throw();
Parametri
ppT
Indirizzo della variabile per ricevere il CComPtrBase puntatore.
Valore restituito
Restituisce S_OK in caso di esito positivo, E_POINTER in caso di errore.
Osservazioni:
Copia il CComPtrBase puntatore in ppT. Il conteggio dei riferimenti per la CComPtrBase::p variabile membro viene incrementato.
Se è uguale a NULL, verrà restituito ppT un erroreHRESULT. Nelle compilazioni di debug si verificherà un errore di asserzione se ppT è uguale a NULL.
CComPtrBase::Detach
Chiamare questo metodo per rilasciare la proprietà di un puntatore.
T* Detach() throw();
Valore restituito
Restituisce una copia del puntatore.
Osservazioni:
Rilascia la proprietà di un puntatore, imposta la CComPtrBase::p variabile membro dati su NULL e restituisce una copia del puntatore.
CComPtrBase::IsEqualObject
Chiamare questo metodo per verificare se i punti specificati IUnknown allo stesso oggetto associato all'oggetto CComPtrBase .
bool IsEqualObject(IUnknown* pOther) throw();
Parametri
pOther
Oggetto IUnknown * da confrontare.
Valore restituito
Restituisce true se gli oggetti sono identici, false in caso contrario.
CComPtrBase::operator !
Operatore NOT.
bool operator!() const throw();
Valore restituito
Restituisce true se il CComHeapPtr puntatore è uguale a NULL, false in caso contrario.
CComPtrBase::operator &
Operatore address-of & .
T** operator&() throw();
Valore restituito
Restituisce l'indirizzo dell'oggetto a cui punta l'oggetto CComPtrBase .
CComPtrBase::operator *
Operatore da puntatore a * .
T& operator*() const throw();
Valore restituito
Restituisce il valore di CComPtrBase::p, ovvero un puntatore all'oggetto a cui fa riferimento l'oggetto CComPtrBase .
Se si esegue il debug delle compilazioni, si verificherà un errore di asserzione se CComPtrBase::p non è uguale a NULL.
CComPtrBase::operator ==
Operatore di uguaglianza.
bool operator== (T* pT) const throw();
Parametri
pT
Puntatore a un oggetto .
Valore restituito
Restituisce true se CComPtrBase e pT puntano allo stesso oggetto, false in caso contrario.
CComPtrBase::operator ->
Operatore da puntatore a membro.
_NoAddRefReleaseOnCComPtr<T>* operator->() const throw();
Valore restituito
Restituisce il valore della CComPtrBase::p variabile membro dati.
Osservazioni:
Utilizzare questo operatore per chiamare un metodo in una classe a cui punta l'oggetto CComPtrBase . Nelle compilazioni di debug si verificherà un errore di asserzione se il CComPtrBase membro dati punta a NULL.
CComPtrBase::operator <
Operatore minore di.
bool operator<(T* pT) const throw();
Parametri
pT
Puntatore a un oggetto .
Valore restituito
Restituisce true se il puntatore gestito dall'oggetto corrente è minore del puntatore a cui viene confrontato.
CComPtrBase::operator T*
Operatore cast.
operator T*() const throw();
Osservazioni:
Restituisce un puntatore al tipo di dati dell'oggetto definito nel modello di classe.
CComPtrBase::p
Variabile membro dati del puntatore.
T* p;
Osservazioni:
Questa variabile membro contiene le informazioni sul puntatore.
CComPtrBase::QueryInterface
Chiamare questo metodo per restituire un puntatore a un'interfaccia specificata.
template <class Q> HRESULT QueryInterface(Q
** pp) const throw();
Parametri
Q
Tipo di oggetto il cui puntatore di interfaccia è obbligatorio.
pp
Indirizzo della variabile di output che riceve il puntatore dell'interfaccia richiesto.
Valore restituito
Restituisce S_OK in caso di esito positivo o E_NOINTERFACE negativo.
Osservazioni:
Questo metodo chiama IUnknown::QueryInterface.
Nelle compilazioni di debug si verificherà un errore di asserzione se pp non è uguale a NULL.
CComPtrBase::Release
Chiamare questo metodo per rilasciare l'interfaccia.
void Release() throw();
Osservazioni:
L'interfaccia viene rilasciata e CComPtrBase::p è impostata su NULL.
CComPtrBase::SetSite
Chiamare questo metodo per impostare il sito dell'oggetto CComPtrBase sull'oggetto IUnknown padre.
HRESULT SetSite(IUnknown* punkParent) throw();
Parametri
punkParent
Puntatore all'interfaccia IUnknown dell'elemento padre.
Valore restituito
Restituisce S_OK l'esito positivo o un errore in caso di errore HRESULT .
Osservazioni:
Questo metodo chiama AtlSetChildSite.