Condividi tramite


Simulazione di interfacce COM

Il COM Callable Wrapper (CCW) espone ai client COM tutti i tipi di dati, i valori restituiti e le interfacce pubbliche visibili a COM in modo conforme al meccanismo di interazione COM basato sulle interfacce. Per un client COM, chiamare i metodi di un oggetto .NET Framework non è diverso dal chiamare i metodi di un oggetto COM.

Per assicurare questo approccio naturale, il CCW crea interfacce COM tradizionali quali IUnknown e IDispatch. Come illustrato nella figura che segue, il CCW mantiene un solo riferimento all'oggetto .NET di cui effettua il wrapping. Il client COM e l'oggetto .NET interagiscono tramite il proxy e lo stub del CCW.

Interfacce COM e il COM Callable Wrapper

COM (interfacce)

Oltre a esporre le interfacce che sono esplicitamente implementate da una classe dell'ambiente gestito, .NET Framework fornisce per l'oggetto un'implementazione delle interfacce COM elencate nella tabella che segue. Una classe .NET può cambiare il comportamento predefinito fornendo la propria implementazione di queste interfacce. Il runtime tuttavia fornisce sempre l'implementazione delle interfacce IUnknown e IDispatch.

Interfaccia

Descrizione

IDispatch

Fornisce un meccanismo per l'associazione tardiva al tipo.

IErrorInfo

Fornisce una descrizione testuale dell'errore, la relativa origine, un file della Guida, un contesto della Guida e il GUID dell'interfaccia che ha definito l'errore (sempre GUID_NULL per le classi .NET).

IProvideClassInfo

Consente ai client COM di ottenere l'accesso all'interfaccia ITypeInfo implementata da una classe gestita.

IsupportErrorInfo

Consente a un client COM di determinare se l'oggetto gestito supporta l'interfaccia IErrorInfo. Se sì, consente al client di ottenere un puntatore all'ultimo oggetto di eccezione. Tutti i tipi gestiti supportano l'interfaccia IErrorInfo.

ItypeInfo

Fornisce per le classi le stesse informazioni sul tipo che fornisce Tlbexp.exe.

IUnknown

Fornisce l'implementazione standard dell'interfaccia IUnknown con cui il client COM gestisce la durata del CCW e provvede all'assegnazione forzata.

Le classi gestite possono anche fornire le interfacce COM descritte nella tabella che segue.

Interfaccia

Descrizione

L'interfaccia della classe (_nomeclasse)

Interfaccia, esposta dal runtime e non definita esplicitamente, che espone tutte le interfacce, i metodi, le proprietà e i campi pubblici esplicitamente esposti su un oggetto gestito.

IConnectionPoint e IconnectionPointContainer

Interfaccia per oggetti che originano eventi basati su delegati (un'interfaccia per la registrazione di sottoscrittori di eventi).

IdispatchEx

Interfaccia fornita dal runtime se la classe implementa IExpando. L'interfaccia IDispatchEx è un'estensione dell'interfaccia IDispatch, ma diversamente da IDispatch consente l'enumerazione, l'aggiunta, l'eliminazione e la chiamata dei membri con distinzione tra maiuscole e minuscole.

IEnumVARIANT

Interfaccia per classi di tipo insieme, che enumerano gli oggetti dell'insieme se la classe implementa IEnumerable.

Vedere anche

Concetti

COM Callable Wrapper

Introduzione all'interfaccia della classe

Esposizione di componenti .NET Framework a COM