Publicado el
19/Dic/2004
Actualizado el 19/Dic/2004
El espacio de nombres System.Runtime.InteropServices proporciona una gran variedad de miembros que admiten la interoperabilidad COM y los servicios de invocación de plataforma. Si no está familiarizado con estos servicios, vea Interoperar con código no administrado.
Los miembros de este espacio de nombres proporcionan varias categorías de funcionalidad.
Los atributos controlan el comportamiento del cálculo de referencias, como el modo de organizar las estructuras o el modo de representar las cadenas. Entre los atributos más importantes se encuentran el atributo DllImportAttribute, que se utiliza para definir los métodos de invocación de plataforma que se utilizan para obtener acceso a las API no administradas, y el atributo MarshalAsAttribute, que se utiliza para especificar la forma de calcular las referencias de los datos entre la memoria administrada y no administrada.
Los tipos que contiene System.Runtime.InteropServices
Nota:
Si sabes de alguna colaboración o artículo (en este sitio) que incluya clases de System.Runtime.InteropServices, por favor comunícamelo indicando la URL de dicho artículo (o artículos).
Ya sabes, me mandas un mensaje indicando la URL (pero que sea de mi sitio, no de otros sitios...)
Gracias.
Los artículos publicados que utilizan algunas de las clases del espacio de nombres System.Runtime.InteropServices
- ...
Contenido de System.Runtime.InteropServices
Las clases, interfaces, estructuras, delegados y enumeraciones que contiene este espacio de nombres (según la documentación de Visual Studio .NET)Pulsa aquí si quieres ver la información (en Internet) de este espacio de nombres.
Clases:
- AutomationProxyAttribute Especifica si las referencias del tipo deben calcularse utilizando Automation Marshaler o un proxy y un código auxiliar personalizados.
- BestFitMappingAttribute Controla si los caracteres Unicode se convierten en los caracteres ANSI coincidentes más cercanos.
- ClassInterfaceAttribute Indica el tipo de interfaz de clase que debe generarse para una clase expuesta a COM, en caso de que se genere una interfaz.
- CoClassAttribute Especifica el identificador de clase de una coclase importada de una biblioteca de tipos.
- ComAliasNameAttribute Indica el alias COM del tipo de parámetro o campo.
- ComCompatibleVersionAttribute Indica a un cliente COM que todas las clases de la versión actual de un ensamblado son compatibles con las clases de una versión anterior del ensamblado.
- ComConversionLossAttribute Indica que se perdió información acerca de una clase o interfaz al importarse desde una biblioteca de tipos a un ensamblado.
- ComEventInterfaceAttribute Identifica la interfaz de origen y la clase que implementa los métodos de la interfaz de evento que se genera cuando se importa una coclase de una biblioteca de tipos COM.
- COMException Excepción que se inicia cuando se devuelve un valor HRESULT no reconocido desde una llamada de método COM.
- ComImportAttribute Indica que el tipo de atributos estaba previamente definido en COM.
- ComRegisterFunctionAttribute Especifica el método al que se debe llamar cuando se registre un ensamblado para utilizarlo desde COM; de esta manera, se permite la ejecución de código escrito por el usuario durante el proceso de registro.
- ComSourceInterfacesAttribute Muestra una lista de las interfaces expuestas como origen de los eventos COM de la clase atribuida.
- ComUnregisterFunctionAttribute Especifica el método al que se debe llamar cuando se anula el registro de un ensamblado para utilizarlo desde COM; de esta manera, se permite la ejecución de código escrito por el usuario durante el proceso de anulación del registro.
- ComVisibleAttribute Controla la accesibilidad a COM de un tipo o miembro administrado individual o de todos los tipos de un ensamblado.
- CurrencyWrapper Empaqueta los objetos cuya referencia se va a calcular como VT_CY.
- DispatchWrapper Ajusta los objetos cuya referencia se va a calcular como VT_DISPATCH.
- DispIdAttribute Especifica el identificador de envío (DISPID) COM de un método, campo o propiedad.
- DllImportAttribute Indica que una biblioteca de vínculos dinámicos (DLL) no administrada expone el método con atributos como punto de entrada estático.
- ErrorWrapper Ajusta los objetos cuya referencia se va a calcular como VT_ERROR.
- ExtensibleClassFactory Permite personalizar objetos administrados que se extienden a partir de objetos no administrados durante su creación.
- ExternalException Tipo de excepción base para todas las excepciones de interoperabilidad COM y excepciones SEH (structured exception handling, control estructurado de excepciones).
- FieldOffsetAttribute Indica la posición física de los campos dentro de la representación no administrada de una clase o de una estructura.
- GuidAttribute Suministra un System.Guid explícitamente cuando no se desea un identificador GUID automáticamente.
- IDispatchImplAttribute Indica qué implementación de IDispatch utiliza Common Language Runtime cuando expone interfaces duales e interfaces Dispinterface a COM.
- ImportedFromTypeLibAttribute Indica que los tipos definidos en un ensamblado se definieron originalmente en una biblioteca de tipos.
- InAttribute Indica que el cálculo de referencias de los datos debe realizarse del llamador al destinatario de la llamada, pero no de vuelta al llamador.
- InterfaceTypeAttribute Indica si una interfaz administrada es dual, de sólo distribución o sólo IUnknown cuando se expone a COM.
- InvalidComObjectException Excepción que se inicia al utilizar un objeto COM no válido.
- InvalidOleVariantTypeException Excepción iniciada por el contador de referencias cuando detecta un argumento de tipo Variant cuya referencias al código administrado no se puede calcular.
- LCIDConversionAttribute Indica que la firma no administrada de un método espera un parámetro de identificador de configuración regional (LCID).
- Marshal Proporciona una colección de métodos para asignar memoria no administrada, copiar bloques de memoria no administrados y convertir los tipos administrados en no administrados, así como otros métodos diversos que se utilizan al interactuar con código no administrado.
- MarshalAsAttribute Indica la forma de calcular las referencias de los datos entre el código administrado y el código no administrado.
- MarshalDirectiveException Excepción que inicia el contador de referencias cuando encuentra MarshalAsAttribute que no admite.
- OptionalAttribute Indica que un parámetro es opcional.
- OutAttribute Indica que el cálculo de referencias de los datos debe realizarse del destinatario de la llamada al llamador.
- PreserveSigAttribute Indica que debe suprimirse la transformación de la firma de retval o la transformación del valor HRESULT que tiene lugar durante las llamadas de interoperabilidad COM.
- PrimaryInteropAssemblyAttribute Indica que el ensamblado con atributo es un ensamblado de interoperabilidad primaria.
- ProgIdAttribute Permite que el usuario especifique el identificador de programa (ProgID) de una clase.
- RegistrationServices Proporciona un conjunto de servicios para registrar y anular el registro de ensamblados administrados para utilizarlos desde COM.
- RuntimeEnvironment Proporciona una colección de métodos estáticos (Shared en Visual Basic) que devuelven información sobre el entorno de Common Language Runtime.
- SafeArrayRankMismatchException Excepción que se inicia cuando el rango de una matriz SAFEARRAY entrante no coincide con el rango especificado en la firma administrada.
- SafeArrayTypeMismatchException Excepción que se inicia cuando el tipo de una matriz SAFEARRAY entrante no coincide con el tipo especificado en la firma administrada.
- SEHException Representa errores SEH (structured exception handler, controlador estructurado de excepciones).
- StructLayoutAttribute La clase StructLayoutAttribute permite al usuario controlar la distribución física de los campos de datos de una clase o una estructura.
- TypeLibConverter Proporciona un conjunto de servicios que convierten un ensamblado administrado en una biblioteca de tipos COM y viceversa.
- TypeLibFuncAttribute Contiene FUNCFLAGS que se importó originalmente para este método desde la biblioteca de tipos COM.
- TypeLibTypeAttribute Contiene TYPEFLAGS que se importó originalmente para este tipo desde la biblioteca de tipos COM.
- TypeLibVarAttribute Contiene VARFLAGS que se importó originalmente para este campo desde la biblioteca de tipos COM.
- TypeLibVersionAttribute Especifica el número de versión de una biblioteca de tipos exportada.
- UnknownWrapper Engloba los objetos cuya referencia se va a calcular como VT_UNKNOWN.
Interfaces:
- ICustomAdapter Proporciona la forma en que los clientes pueden obtener acceso a un objeto real, en lugar del objeto adaptador proporcionado por un contador de referencias personalizado.
- ICustomFactory Permite que los usuarios escriban código de activación para objetos administrados que extiendan MarshalByRefObject.
- ICustomMarshaler Diseñado para proporcionar contenedores personalizados con el fin de manejar llamadas a métodos.
- IRegistrationServices Proporciona un conjunto de servicios para registrar y anular el registro de ensamblados administrados para utilizarlos desde COM.
- ITypeLibConverter Proporciona un conjunto de servicios que convierten un ensamblado administrado en una biblioteca de tipos COM y viceversa.
- ITypeLibExporterNameProvider Proporciona control sobre la distinción entre mayúsculas y minúsculas en los nombres que se exportan a una biblioteca de tipos.
- ITypeLibExporterNotifySink Proporciona un mecanismo de devolución de llamada para que el conversor de ensamblados informe al llamador del estado de la conversión, e implicar así al llamador en el proceso de conversión.
- ITypeLibImporterNotifySink Proporciona un mecanismo de devolución de llamada para que el conversor de bibliotecas de tipos informe al llamador del estado de la conversión, e implicar así al llamador en el proceso de conversión.
- UCOMIBindCtx Definición administrada de la interfaz IBindCtx.
- UCOMIConnectionPoint Definición administrada de la interfaz IConnectionPoint.
- UCOMIConnectionPointContainer Definición administrada de la interfaz IConnectionPointContainer.
- UCOMIEnumConnectionPoints Administra la definición de la interfaz IEnumConnectionPoints.
- UCOMIEnumConnections Administra la definición de la interfaz IEnumConnections.
- UCOMIEnumMoniker Administra la definición de la interfaz IEnumMoniker.
- UCOMIEnumString Administra la definición de la interfaz IEnumString.
- UCOMIEnumVARIANT Administra la definición de la interfaz IEnumVARIANT.
- UCOMIMoniker Definición administrada de la interfaz IMoniker, con funcionalidad COM de IPersist e IPersistStream.
- UCOMIPersistFile Definición administrada de la interfaz IPersistFile, con funcionalidad de IPersist.
- UCOMIRunningObjectTable Definición administrada de la interfaz IRunningObjectTable.
- UCOMIStream Definición administrada de la interfaz IStream, con funcionalidad ISequentialStream.
- UCOMITypeComp Definición administrada de la interfaz ITypeComp.
- UCOMITypeInfo Definición administrada de la interfaz ITypeInfo.
- UCOMITypeLib Definición administrada de la interfaz ITypeLib.
Estructuras:
- ArrayWithOffset Encapsula una matriz y un desplazamiento dentro de la matriz especificada.
- BINDPTR Contiene un puntero a un enlace de una interfaz FUNCDESC, VARDESC o ITypeComp.
- BIND_OPTS Almacena los parámetros que se utilizan durante una operación de enlace de moniker.
- CONNECTDATA Describe una conexión existente a un punto de conexión determinado.
- DISPPARAMS Contiene los argumentos pasados a un método o a una propiedad mediante IDispatch::Invoke.
- ELEMDESC Contiene la descripción de tipo y la información de transferencia del proceso para una variable, función o un parámetro de función.
- ELEMDESC.DESCUNION Contiene información de un elemento.
- EXCEPINFO Describe las excepciones que ocurren durante IDispatch::Invoke.
- FILETIME Esta estructura es un valor de 64 bits que representa el número de intervalos de 100 nanosegundos desde el día 1 de enero de 1601.
- FUNCDESC Define una descripción de función.
- GCHandle Proporciona una forma de obtener acceso a un objeto administrado desde una memoria no administrada.
- HandleRef Incluye un objeto administrado que contiene un identificador de un recurso que se pasa al código no administrado invocando a la plataforma.
- IDLDESC Contiene la información necesaria para transferir un valor devuelto por una función, un parámetro o un elemento de estructura de un proceso a otro.
- PARAMDESC Contiene la información necesaria para transferir un valor devuelto por una función, un parámetro o un elemento de estructura de un proceso a otro.
- STATSTG Contiene información estadística acerca de un objeto de almacenamiento abierto, secuencia o matriz de bytes.
- TYPEATTR Contiene los atributos de UCOMITypeInfo.
- TYPEDESC Describe el tipo de una variable, el tipo devuelto por una función o el tipo de un parámetro de una función.
- TYPELIBATTR Identifica una biblioteca de tipos concreta y proporciona compatibilidad de localización para los nombres de miembros.
- VARDESC Describe una variable, una constante o un miembro de datos.
- VARDESC.DESCUNION Contiene información de una variable.
Delegados:
- ObjectCreationDelegate Crea un objeto COM.
Enumeraciones:
- AssemblyRegistrationFlags Define un conjunto de indicadores que se utiliza al registrar ensamblados.
- CALLCONV Identifica la convención de llamada utilizada por un método descrito en una estructura METHODDATA.
- CallingConvention Especifica la convención de llamada necesaria para llamar a métodos implementados en código no administrado.
- CharSet Indica qué conjunto de caracteres deben utilizar las cadenas cuya referencia se va calcular.
- ClassInterfaceType Identifica el tipo de interfaz de clase que se genera para una clase.
- ComInterfaceType Indica cómo exponer una interfaz a COM.
- ComMemberType Describe el tipo de un miembro COM.
- DESCKIND Identifica la descripción de tipo que se enlaza.
- ExporterEventKind Describe las devoluciones de llamada que el Exportador de la biblioteca de tipos realizó al exportar una biblioteca de tipos.
- FUNCFLAGS Identifica las constantes que definen las propiedades de una función.
- FUNCKIND Define cómo tener acceso a una función.
- GCHandleType Representa los tipos de identificadores que puede asignar la clase GCHandle.
- IDispatchImplType Indica qué implementación de IDispatch se utiliza para una clase determinada.
- IDLFLAG Describe cómo transferir un elemento de estructura, un parámetro o un valor devuelto por una función de un proceso a otro.
- IMPLTYPEFLAGS Define los atributos de una interfaz implementada o heredada de un tipo.
- ImporterEventKind Describe las devoluciones de llamada que el Importador de la biblioteca de tipos realizó al importar una biblioteca de tipos.
- INVOKEKIND Especifica cómo invocar una función mediante IDispatch::Invoke.
- LayoutKind Controla la disposición de un objeto cuando se exporta a código no administrado.
- LIBFLAGS Define los indicadores que se aplican a las bibliotecas de tipos.
- PARAMFLAG Describe cómo transferir un elemento de estructura, un parámetro o un valor devuelto por una función de un proceso a otro.
- SYSKIND Identifica la plataforma del sistema operativo de destino.
- TYPEFLAGS Define las propiedades y atributos de la descripción de un tipo.
- TYPEKIND Especifica varios tipos de datos y funciones.
- TypeLibExporterFlags Indica cómo se debe crear una biblioteca de tipos.
- TypeLibFuncFlags Describe la configuración original de FUNCFLAGS en la biblioteca de tipos COM desde la que se importó este método.
- TypeLibImporterFlags Indica cómo se debe crear un ensamblado.
- TypeLibTypeFlags Describe la configuración original de TYPEFLAGS en la biblioteca de tipos COM desde la que se importó el tipo.
- TypeLibVarFlags Describe la configuración original de VARFLAGS en la biblioteca de tipos COM desde la que se importó la variable.
- UnmanagedType Identifica la forma de calcular las referencias de parámetros o campos en el código no administrado.
- VarEnum Indica cómo calcular las referencias de los elementos de matriz cuando se calculan las referencias de matriz de código administrado a código no administrado como UnmanagedType.SafeArray.
- VARFLAGS Identifica las constantes que definen las propiedades de una variable.