Esta documentación está archivada y no tiene mantenimiento.

System.Runtime.InteropServices (Espacio de nombres)

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, tal y como se muestra en la siguiente tabla. 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.

 ClaseDescripción
Clase públicaAutomationProxyAttributeEspecifica si las referencias del tipo deben calcularse utilizando Automation Marshaler o un proxy y un código auxiliar personalizados.
Clase públicaBestFitMappingAttributeControla si los caracteres Unicode se convierten en los caracteres ANSI coincidentes más cercanos.
Clase públicaBStrWrapperCalcula referencias a los datos de tipo VT_BSTR de código administrado a no administrado. Esta clase no se puede heredar.
Clase públicaClassInterfaceAttributeIndica el tipo de interfaz de clase que debe generarse para una clase expuesta a COM, en caso de que se genere una interfaz.
Clase públicaCoClassAttributeEspecifica el identificador de clase de una coclase importada de una biblioteca de tipos.
Clase públicaComAliasNameAttributeIndica el alias COM del tipo de parámetro o campo.
Clase públicaComCompatibleVersionAttributeIndica 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.
Clase públicaComConversionLossAttributeIndica que se perdió información de una clase o interfaz al importarla desde una biblioteca de tipos a un ensamblado.
Clase públicaComDefaultInterfaceAttributeEspecifica una interfaz predeterminada que se va a exponer a COM. Esta clase no se puede heredar.
Clase públicaComEventInterfaceAttributeIdentifica 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.
Clase públicaCOMExceptionExcepción que se produce cuando se devuelve un valor HRESULT no reconocido desde una llamada de método COM.
Clase públicaComImportAttributeIndica que el tipo con atributos estaba previamente definido en COM.
Clase públicaComRegisterFunctionAttributeEspecifica 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.
Clase públicaComSourceInterfacesAttributeMuestra una lista de las interfaces expuestas como origen de los eventos COM de la clase atribuida.
Clase públicaComUnregisterFunctionAttributeEspecifica 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.
Clase públicaComVisibleAttributeControla la accesibilidad a COM de un tipo o miembro administrado individual o de todos los tipos de un ensamblado.
Clase públicaCriticalHandleRepresenta una clase contenedora para los recursos de identificador.
Clase públicaCurrencyWrapperEngloba objetos que el contador de referencias debería calcular como VT_CY.
Clase públicaDefaultCharSetAttributeEspecifica el valor de la enumeración CharSet. Esta clase no se puede heredar.
Clase públicaDefaultParameterValueAttributeEstablece el valor predeterminado de un parámetro cuando se efectúa la llamada en un lenguaje que admite los parámetros predeterminados. Esta clase no se puede heredar.
Clase públicaDispatchWrapperEmpaqueta los objetos cuya referencia se va a calcular como VT_DISPATCH.
Clase públicaDispIdAttributeEspecifica el identificador de envío (DISPID) COM de un método, campo o propiedad.
Clase públicaDllImportAttributeIndica que una biblioteca de vínculos dinámicos (DLL) no administrada expone el método con atributos como punto de entrada estático.
Clase públicaErrorWrapperEmpaqueta los objetos cuya referencia se va a calcular como VT_ERROR.
Clase públicaExtensibleClassFactoryPermite personalizar objetos administrados que se extienden a partir de objetos no administrados durante su creación.
Clase públicaExternalExceptionTipo de excepción base para todas las excepciones de interoperabilidad COM y excepciones SEH (structured exception handling, control estructurado de excepciones).
Clase públicaFieldOffsetAttributeIndica la posición física de los campos dentro de la representación no administrada de una clase o de una estructura.
Clase públicaGuidAttributeSuministra un objeto System.Guid explícitamente cuando no se desea que se genere un identificador GUID automáticamente.
Clase públicaHandleCollectorRealiza el seguimiento de los identificadores pendientes y fuerza la recolección de elementos no utilizados cuando se alcanza el umbral especificado.
Clase públicaIDispatchImplAttributeIndica qué implementación de IDispatch utiliza Common Language Runtime cuando expone interfaces duales e interfaces Dispinterface a COM.
Clase públicaImportedFromTypeLibAttributeIndica que los tipos definidos en un ensamblado se definieron originalmente en una biblioteca de tipos.
Clase públicaInAttributeIndica que el cálculo de referencias de los datos debe realizarse del llamador al destinatario de la llamada, pero no de vuelta al llamador.
Clase públicaInterfaceTypeAttributeIndica si una interfaz administrada es dual, de sólo distribución o sólo IUnknown cuando se expone a COM.
Clase públicaInvalidComObjectExceptionExcepción que se produce al utilizar un objeto COM no válido.
Clase públicaInvalidOleVariantTypeExceptionExcepción producida por el contador de referencias cuando detecta un argumento de tipo Variant cuya referencias al código administrado no se puede calcular.
Clase públicaLCIDConversionAttributeIndica que la firma no administrada de un método espera un parámetro de identificador de configuración regional (LCID).
Clase públicaMarshalProporciona 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.
Clase públicaMarshalAsAttributeIndica la forma de calcular las referencias de los datos entre el código administrado y el código no administrado.
Clase públicaMarshalDirectiveExceptionExcepción que produce el contador de referencias cuando encuentra MarshalAsAttribute que no admite.
Clase públicaOptionalAttributeIndica que un parámetro es opcional.
Clase públicaOutAttributeIndica que el cálculo de referencias de los datos debe realizarse del destinatario de la llamada al llamador.
Clase públicaPreserveSigAttributeIndica 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.
Clase públicaPrimaryInteropAssemblyAttributeIndica que el ensamblado con atributo es un ensamblado de interoperabilidad primario.
Clase públicaProgIdAttributePermite que el usuario especifique el identificador de programa (ProgID) de una clase.
Clase públicaRegistrationServicesProporciona un conjunto de servicios para registrar y anular el registro de ensamblados administrados para utilizarlos desde COM.
Clase públicaRuntimeEnvironmentProporciona una colección de métodos static que devuelven información sobre el entorno de Common Language Runtime.
Clase públicaSafeArrayRankMismatchExceptionExcepción que se produce cuando el rango de una matriz SAFEARRAY entrante no coincide con el rango especificado en la firma administrada.
Clase públicaSafeArrayTypeMismatchExceptionExcepción que se produce cuando el tipo de una matriz SAFEARRAY entrante no coincide con el tipo especificado en la firma administrada.
Clase públicaSafeHandleRepresenta una clase contenedora para los identificadores del sistema operativo.
Clase públicaSEHExceptionRepresenta errores SEH (structured exception handler, controlador estructurado de excepciones).
Clase públicaSetWin32ContextInIDispatchAttributeEste atributo está obsoleto.
Clase públicaStandardOleMarshalObjectReemplaza el contador de referencias de subprocesamiento libre de Common Language Runtime (CLR) con el contador de referencias OLE STA estándar.
Clase públicaStructLayoutAttributeLa clase StructLayoutAttribute permite al usuario controlar la distribución física de los campos de datos de una clase o una estructura.
Clase públicaTypeLibConverterProporciona un conjunto de servicios que convierten un ensamblado administrado en una biblioteca de tipos COM y viceversa.
Clase públicaTypeLibFuncAttributeContiene la enumeración FUNCFLAGS que se importó originalmente para este método desde la biblioteca de tipos COM.
Clase públicaTypeLibImportClassAttributeEspecifica qué objeto Type utiliza de modo exclusivo una interfaz. Esta clase no se puede heredar.
Clase públicaTypeLibTypeAttributeContiene TYPEFLAGS que se importó originalmente para este tipo desde la biblioteca de tipos COM.
Clase públicaTypeLibVarAttributeContiene VARFLAGS que se importó originalmente para este campo desde la biblioteca de tipos COM.
Clase públicaTypeLibVersionAttributeEspecifica el número de versión de una biblioteca de tipos exportada.
Clase públicaUnknownWrapperEngloba los objetos cuya referencia se va a calcular como VT_UNKNOWN.
Clase públicaUnmanagedFunctionPointerAttributeControla el comportamiento del cálculo de referencias de una firma de delegado pasada como un puntero a función no administrado al código no administrado o de éste. Esta clase no se puede heredar.
Clase públicaVariantWrapperCalcula referencias de datos de tipo VT_VARIANT | VT_BYREF de código administrado a no administrado. Esta clase no se puede heredar.

 InterfazDescripción
Interfaz pública_ActivatorExpone la clase System.Activator al código no administrado.
Interfaz pública_AssemblyExpone los miembros públicos de la clase System.Reflection.Assembly a código no administrado.
Interfaz pública_AssemblyBuilderExpone la clase System.Reflection.Emit.AssemblyBuilder al código no administrado.
Interfaz pública_AssemblyNameExpone la clase AssemblyName al código no administrado.
Interfaz pública_AttributeExpone la clase System.Attribute al código no administrado.
Interfaz pública_ConstructorBuilderExpone la clase System.Reflection.Emit.ConstructorBuilder al código no administrado.
Interfaz pública_ConstructorInfoExpone los miembros públicos de la clase System.Reflection.ConstructorInfo a código no administrado.
Interfaz pública_CustomAttributeBuilderExpone la clase System.Reflection.Emit.CustomAttributeBuilder al código no administrado.
Interfaz pública_EnumBuilderExpone la clase System.Reflection.Emit.EnumBuilder al código no administrado.
Interfaz pública_EventBuilderExpone la clase System.Reflection.Emit.EventBuilder al código no administrado.
Interfaz pública_EventInfoExpone los miembros públicos de la clase System.Reflection.EventInfo a código no administrado.
Interfaz pública_ExceptionExpone los miembros públicos de la clase System.Exception a código no administrado.
Interfaz pública_FieldBuilderExpone la clase System.Reflection.Emit.FieldBuilder al código no administrado.
Interfaz pública_FieldInfoExpone los miembros públicos de la clase System.Reflection.FieldInfo a código no administrado.
Interfaz pública_ILGeneratorExpone la clase System.Reflection.Emit.ILGenerator al código no administrado.
Interfaz pública_LocalBuilderExpone la clase System.Reflection.Emit.LocalBuilder al código no administrado.
Interfaz pública_MemberInfoExpone los miembros públicos de la clase System.Reflection.MemberInfo a código no administrado.
Interfaz pública_MethodBaseExpone los miembros públicos de la clase System.Reflection.MethodBase a código no administrado.
Interfaz pública_MethodBuilderExpone la clase MethodBuilder al código no administrado.
Interfaz pública_MethodInfoExpone los miembros públicos de la clase System.Reflection.MethodInfo a código no administrado.
Interfaz pública_MethodRentalExpone la clase System.Reflection.Emit.MethodRental al código no administrado.
Interfaz pública_ModuleExpone la clase Module al código no administrado.
Interfaz pública_ModuleBuilderExpone la clase System.Reflection.Emit.ModuleBuilder al código no administrado.
Interfaz pública_ParameterBuilderExpone la clase System.Reflection.Emit.ParameterBuilder a código no administrado.
Interfaz pública_ParameterInfoExpone la clase System.Reflection.ParameterInfo al código no administrado.
Interfaz pública_PropertyBuilderExpone la clase System.Reflection.Emit.PropertyBuilder al código no administrado.
Interfaz pública_PropertyInfoExpone los miembros públicos de la clase System.Reflection.PropertyInfo a código no administrado.
Interfaz pública_SignatureHelperExpone la clase System.Reflection.Emit.SignatureHelper al código no administrado.
Interfaz pública_ThreadExpone la clase System.Threading.Thread al código no administrado.
Interfaz pública_TypeExpone los miembros públicos de la clase System.Type al código no administrado.
Interfaz pública_TypeBuilderExpone la clase System.Reflection.Emit.TypeBuilder al código no administrado.
Interfaz públicaICustomAdapterProporciona 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.
Interfaz públicaICustomFactoryPermite que los usuarios escriban código de activación para objetos administrados que extiendan MarshalByRefObject.
Interfaz públicaICustomMarshalerDiseñado para proporcionar contenedores personalizados con el fin de controlar las llamadas a métodos.
Interfaz públicaIRegistrationServicesProporciona un conjunto de servicios para registrar y anular el registro de ensamblados administrados para utilizarlos desde COM.
Interfaz públicaITypeLibConverterProporciona un conjunto de servicios que convierten un ensamblado administrado en una biblioteca de tipos COM y viceversa.
Interfaz públicaITypeLibExporterNameProviderProporciona control sobre la distinción entre mayúsculas y minúsculas en los nombres que se exportan a una biblioteca de tipos.
Interfaz públicaITypeLibExporterNotifySinkProporciona un mecanismo de devolución de llamada para que el convertidor de ensamblados informe al llamador del estado de la conversión, e implicar así al llamador en el proceso de conversión.
Interfaz públicaITypeLibImporterNotifySinkProporciona un mecanismo de devolución de llamada para que el convertidor de bibliotecas de tipos informe al llamador del estado de la conversión, e implicar así al llamador en el proceso de conversión.
Interfaz públicaUCOMIBindCtxDebe utilizarse BIND_OPTS en su lugar.
Interfaz públicaUCOMIConnectionPointDebe utilizarse IConnectionPoint en su lugar.
Interfaz públicaUCOMIConnectionPointContainerSe utiliza IConnectionPointContainer en su lugar.
Interfaz públicaUCOMIEnumConnectionPointsSe utiliza IEnumConnectionPoints en su lugar.
Interfaz públicaUCOMIEnumConnectionsUtilice IEnumConnections en su lugar.
Interfaz públicaUCOMIEnumMonikerDebe utilizarse IEnumMoniker en su lugar.
Interfaz públicaUCOMIEnumStringSe utiliza IEnumString en su lugar.
Interfaz públicaUCOMIEnumVARIANTSe utiliza IEnumVARIANT en su lugar.
Interfaz públicaUCOMIMonikerSe utiliza IMoniker en su lugar.
Interfaz públicaUCOMIPersistFileNota: esta interfaz está ahora obsoleta. Se utiliza IPersistFile en su lugar.
Interfaz públicaUCOMIRunningObjectTableDebe utilizarse IRunningObjectTable en su lugar.
Interfaz públicaUCOMIStreamSe utiliza IStream en su lugar.
Interfaz públicaUCOMITypeCompSe utiliza ITypeComp en su lugar.
Interfaz públicaUCOMITypeInfoUtilice ITypeInfo en su lugar.
Interfaz públicaUCOMITypeLibUtilice ITypeLib en su lugar.

 EstructuraDescripción
Estructura públicaArrayWithOffsetEncapsula una matriz y un desplazamiento dentro de la matriz especificada.
Estructura públicaBIND_OPTSSe utiliza BIND_OPTS en su lugar.
Estructura públicaBINDPTRDebe utilizarse BINDPTR en su lugar.
Estructura públicaCONNECTDATASe utiliza CONNECTDATA en su lugar.
Estructura públicaDISPPARAMSSe utiliza DISPPARAMS en su lugar.
Estructura públicaELEMDESCDebe utilizarse ELEMDESC en su lugar.
Estructura públicaELEMDESC.DESCUNIONSe utiliza ELEMDESC.DESCUNION en su lugar.
Estructura públicaEXCEPINFOUtilice EXCEPINFO en su lugar.
Estructura públicaFILETIMESe utiliza FILETIME en su lugar.
Estructura públicaFUNCDESCSe utiliza FUNCDESC en su lugar.
Estructura públicaGCHandleProporciona una forma de obtener acceso a un objeto administrado desde una memoria no administrada.
Estructura públicaHandleRefIncluye un objeto administrado que contiene un identificador de un recurso que se pasa al código no administrado invocando a la plataforma.
Estructura públicaIDLDESCUtilice IDLDESC en su lugar.
Estructura públicaPARAMDESCSe utiliza PARAMDESC en su lugar.
Estructura públicaSTATSTGSe utiliza STATSTG en su lugar.
Estructura públicaTYPEATTRDebe utilizarse TYPEATTR en su lugar.
Estructura públicaTYPEDESCDebe utilizarse TYPEDESC en su lugar.
Estructura públicaTYPELIBATTRSe utiliza TYPELIBATTR en su lugar.
Estructura públicaVARDESCSe utiliza VARDESC en su lugar.
Estructura públicaVARDESC.DESCUNIONNota: esta estructura está obsoleta. Utilice VARDESC.DESCUNION en su lugar.

 DelegadoDescripción
Delegado públicoObjectCreationDelegateCrea un objeto COM.

 EnumeraciónDescripción
Enumeración públicaAssemblyRegistrationFlagsDefine un conjunto de indicadores que se utiliza al registrar ensamblados.
Enumeración públicaCALLCONVSe utiliza CALLCONV en su lugar.
Enumeración públicaCallingConventionEspecifica la convención de llamada necesaria para llamar a métodos implementados en código no administrado.
Enumeración públicaCharSetIndica qué conjunto de caracteres deben utilizar las cadenas cuya referencia se va calcular.
Enumeración públicaClassInterfaceTypeIdentifica el tipo de interfaz de clase que se genera para una clase.
Enumeración públicaComInterfaceTypeIndica cómo exponer una interfaz a COM.
Enumeración públicaComMemberTypeDescribe el tipo de un miembro COM.
Enumeración públicaDESCKINDSe utiliza DESCKIND en su lugar.
Enumeración públicaExporterEventKindDescribe las devoluciones de llamada que el Exportador de la biblioteca de tipos realizó al exportar una biblioteca de tipos.
Enumeración públicaFUNCFLAGSSe utiliza FUNCFLAGS en su lugar.
Enumeración públicaFUNCKINDSe utiliza FUNCKIND en su lugar.
Enumeración públicaGCHandleTypeRepresenta los tipos de identificadores que puede asignar la clase GCHandle.
Enumeración públicaIDispatchImplTypeIndica qué implementación de IDispatch se utiliza para una clase determinada.
Enumeración públicaIDLFLAGSe utiliza IDLFLAG en su lugar.
Enumeración públicaIMPLTYPEFLAGSDebe utilizarse IMPLTYPEFLAGS en su lugar.
Enumeración públicaImporterEventKindDescribe las devoluciones de llamada que el Importador de la biblioteca de tipos realizó al importar una biblioteca de tipos.
Enumeración públicaINVOKEKINDSe utiliza INVOKEKIND en su lugar.
Enumeración públicaLayoutKindControla el diseño de un objeto cuando se exporta a código no administrado.
Enumeración públicaLIBFLAGSUtilice LIBFLAGS en su lugar.
Enumeración públicaPARAMFLAGUtilice PARAMFLAG en su lugar.
Enumeración públicaRegistrationClassContextEspecifica el conjunto de contextos de ejecución en los que un objeto de clase se pondrá a disposición para peticiones de construcción de instancias.
Enumeración públicaRegistrationConnectionTypeDefine los tipos de conexiones con un objeto de clase.
Enumeración públicaSYSKINDSe utiliza SYSKIND en su lugar.
Enumeración públicaTYPEFLAGSUtilice TYPEFLAGS en su lugar.
Enumeración públicaTYPEKINDDebe utilizarse TYPEKIND en su lugar.
Enumeración públicaTypeLibExporterFlagsIndica cómo se debe crear una biblioteca de tipos.
Enumeración públicaTypeLibFuncFlagsDescribe la configuración original de FUNCFLAGS en la biblioteca de tipos COM desde la que se importó este método.
Enumeración públicaTypeLibImporterFlagsIndica cómo se debe crear un ensamblado.
Enumeración públicaTypeLibTypeFlagsDescribe la configuración original de TYPEFLAGS en la biblioteca de tipos COM desde la que se importó el tipo.
Enumeración públicaTypeLibVarFlagsDescribe la configuración original de VARFLAGS en la biblioteca de tipos COM desde la que se importó la variable.
Enumeración públicaUnmanagedTypeIdentifica la forma de calcular las referencias de parámetros o campos en el código no administrado.
Enumeración públicaVarEnumIndica 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.
Enumeración públicaVARFLAGSUtilice VARFLAGS en su lugar.
Mostrar: