Compartir a través de


Simular interfaces COM

El contenedor COM invocable (CCW) expone la totalidad de interfaces públicas, tipos de datos y valores devueltos a los clientes COM de manera compatible con los requisitos de COM de interacción basada en la interfaz. Para los clientes COM, la llamada a métodos en un objeto .NET Framework es igual que en un objeto COM.

Para crear este enfoque sin problemas, el CCW produce interfaces COM tradicionales, como IUnknown e IDispatch. Como se muestra en la siguiente ilustración, el CCW mantiene una sola referencia en el objeto .NET que contiene. El cliente COM y el objeto .NET interaccionan entre sí mediante la construcción de proxy y código auxiliar del CCW.

Interfaces COM y el contenedor COM invocable

Interfaces COM

Además de exponer las interfaces implementadas explícitamente por una clase en el entorno administrado, .NET Framework, en nombre del objeto, proporciona implementaciones de las interfaces COM enumeradas en la siguiente tabla. Una clase .NET puede reemplazar el comportamiento predeterminado proporcionando su propia implementación de estas interfaces. Sin embargo, el motor en tiempo de ejecución proporciona siempre la implementación de las interfaces IUnknown e IDispatch.

Interfaz

Descripción

Idispatch

Proporciona un mecanismo para el enlace al tipo en tiempo de ejecución.

IerrorInfo

Proporciona una descripción del error, su origen, un archivo de ayuda, contexto de ayuda y el identificador GUID de la interfaz que definió el error (siempre GUID_NULL para las clases .NET).

IprovideClassInfo

Permite que los clientes COM tengan acceso a la interfaz ITypeInfo implementada por una clase administrada.

ISupportErrorInfo

Permite que los clientes COM determinen si el objeto administrado es compatible con la interfaz IErrorInfo. Si lo es, permite que el cliente obtenga un puntero al último objeto de excepción. Todos los tipos administrados son compatibles con la interfaz IErrorInfo.

ItypeInfo

Proporciona exactamente la misma información de tipos para las clases que la que produce Tlbexp.exe.

Iunknown

Proporciona la implementación estándar de la interfaz IUnknown con la que el cliente COM administra la duración del CCW y proporciona conversión de tipos.

Una clase administrada también puede proporcionar las interfaces COM que se describen en la siguiente tabla.

Interfaz

Descripción

Interfaz de la clase (_nombredeclase)

Interfaz, expuesta por el motor en tiempo de ejecución y no definida explícitamente, que expone todas las interfaces, métodos, propiedades y campos públicos que se exponen explícitamente en un objeto administrado.

IConnectionPoint e IConnectionPointContainer

Interfaz para objetos que son origen de eventos basados en delegados (interfaz para registrar suscriptores de eventos).

IdispatchEx

Interfaz que proporciona el motor en tiempo de ejecución si la clase implementa IExpando. La interfaz IDispatchEx es una extensión de la interfaz IDispatch que, a diferencia de IDispatch, permite la enumeración, adición, eliminación y llamada de miembros con distinción de mayúsculas y minúsculas.

IEnumVARIANT

Interfaz para clases del tipo colección, que enumera los objetos de la colección si la clase implementa IEnumerable.

Vea también

Conceptos

Contenedor COM al que se puede llamar

Presentar la interfaz de clase

Exponer componentes de .NET Framework en COM