Classe di CComPolyObject
Questa classe implementa IUnknown per un oggetto aggregato o non aggregato.
template<
class contained
>
class CComPolyObject : public IUnknown, public CComObjectRootEx
< contained::_ThreadModel::ThreadModelNoCS >
Parametri
- contained
I la classe, derivata da CComObjectRoot o da CComObjectRootExnonché da tutte le altre interfacce si desidera supportare l'oggetto.
Membri
Costruttori pubblici
Nome |
Descrizione |
---|---|
Costruttore. |
|
Il distruttore. |
Metodi pubblici
Nome |
Descrizione |
---|---|
Incrementa il conteggio dei riferimenti dell'oggetto. |
|
(Proprietà statica) consente di creare un nuovo oggetto CComPolyObject< contained> senza il sovraccarico CoCreateInstance. |
|
Esegue un'inizializzazione finale m_contained. |
|
Esegue la distruzione finale m_contained. |
|
Recupera un puntatore a un'interfaccia richiesta. |
|
Decrementa il conteggio dei riferimenti dell'oggetto. |
Membri dati pubblici
Nome |
Descrizione |
---|---|
Chiamate IUnknown di delegati a sconosciuto esterno se l'oggetto è aggregato o a IUnknown dell'oggetto se l'oggetto non verranno aggregati. |
Note
CComPolyObject implementa IUnknown per un oggetto aggregato o non aggregato.
Quando un'istanza CComPolyObject viene creata, il valore di sconosciuto esterno sia selezionata.Se è NULL, IUnknown viene implementato per un oggetto non aggregato.Se sconosciuto esterno non è NULL, IUnknown viene implementato per un oggetto aggregato.
Il vantaggio di l CComPolyObject è di evitare di avere sia CComAggObject che CComObject nel modulo per gestire i casi aggregati e non aggregati.Singole un oggetto CComPolyObject entrambi i casi.Questo significa che una sola copia di vtable e una copia delle funzioni esistenti nel form.Se il riferimento è elevata, questo può ridurre notevolmente la dimensione del modulo.Tuttavia, se il riferimento è ridotto, utilizzando CComPolyObject possono comportare una dimensione leggermente più grande del modulo perché non è ottimizzata per un oggetto aggregato o non aggregato, come vengono CComAggObject e CComObject.
Se la macro DECLARE_POLY_AGGREGATABLE specificata nella definizione di classe dell'oggetto, CComPolyObject verrà utilizzato per creare l'oggetto.DECLARE_POLY_AGGREGATABLE verrà automaticamente dichiarato se si utilizza la procedura guidata progetto ATL per creare un controllo completo o un controllo Internet Explorer.
Se aggregato, l'oggetto CComPolyObject dispone di un proprio IUnknown, separati da IUnknownesterno dell'oggetto e mantiene il relativo conteggio dei riferimenti.CComPolyObject utilizza CComContainedObject delegare sconosciuto esterno.
Per ulteriori informazioni su aggregazione, vedere l'articolo Principi fondamentali di oggetti COM ATL.
Gerarchia di ereditarietà
CComObjectRootBase
IUnknown
CComPolyObject
Requisiti
Header: atlcom.h