Condividi tramite


Moniker di classe

Anche se le classi vengono in genere identificate direttamente con CLSID a funzioni come CoCreateInstance o CoGetClassObject, le classi possono ora essere identificate anche con un moniker denominato moniker di classe. I moniker di classe vengono associati all'oggetto classe della classe per cui vengono creati.

La possibilità di identificare le classi con un moniker supporta operazioni utili che altrimenti non sono complesse. Ad esempio, i moniker di file supportavano tradizionalmente l'associazione avanzata solo alla classe associata alla classe di file a cui si fa riferimento; un moniker a un file di Excel viene associato a un'istanza di un oggetto Excel e un moniker a un'immagine GIF viene associato a un'istanza del gestore GIF attualmente registrato. Un moniker di classe consente di indicare la classe che si vuole usare per modificare un file tramite la composizione con un moniker di file. Un moniker di classe per una classe di grafici 3D composta con un moniker in un file di Excel restituisce un moniker che si associa a un'istanza dell'oggetto grafico 3D e inizializza l'oggetto con il contenuto del file di Excel.

I moniker di classe sono quindi più utili nella composizione con altri tipi di moniker, ad esempio moniker di file o moniker di elementi.

I moniker di classe possono anche essere composti a destra dei moniker che supportano l'associazione all'interfaccia IClassActivator . Se composto in questo modo, IClassActivator concede semplicemente l'accesso all'oggetto classe e alle istanze della classe tramite IClassActivator::GetClassObject. I moniker di classe possono essere identificati tramite IMoniker::IsSystemMoniker, che restituisce MKSYS_CLASSMONIKER in pdwMksys.

I programmatori creano in genere moniker di classe usando la funzione CreateClassMoniker o tramite MkParseDisplayName. (Vedere IMoniker::P arseDisplayName per i dettagli.

Anti-moniker

Moniker compositi

Moniker di file

Moniker elemento

Moniker puntatore