Cette documentation est archivée et n’est pas conservée.

System.Runtime.InteropServices, espace de noms

L'espace de noms System.Runtime.InteropServices fournit une grande variété de membres qui prennent en charge COM Interop et les services d'appel de plate-forme. Si vous n'êtes pas familiarisé avec ces services, consultez Interopération avec du code non managé.

Les membres de cet espace de noms fournissent plusieurs catégories de fonctionnalités, comme illustré dans le tableau suivant. Les attributs contrôlent le marshaling, notamment le mode d'organisation des structures et de représentation des chaînes. Les principaux attributs sont DllImportAttribute, qui permet de définir les méthodes d'appel de plate-forme pour accéder aux API non managées, et MarshalAsAttribute, qui permet de spécifier comment les données doivent être marshalées entre la mémoire managée et non managée.

 ClasseDescription
Classe publiqueAutomationProxyAttributeSpécifie si le type doit être marshalé en utilisant Automation Marshaler ou un proxy et un stub personnalisés.
Classe publiqueBestFitMappingAttributeContrôle si les caractères Unicode sont convertis en caractères ANSI offrant la correspondance la plus proche.
Classe publiqueBStrWrapperMarshale des données de type VT_BSTR de code managé en code non managé. Cette classe ne peut pas être héritée.
Classe publiqueClassInterfaceAttributeIndique le type d'interface de classe à générer pour une classe exposée à COM, si une interface est générée.
Classe publiqueCoClassAttributeSpécifie l'identificateur de classe d'une coclasse importée à partir d'une bibliothèque de types.
Classe publiqueComAliasNameAttributeIndique l'alias COM du type de paramètre ou de champ.
Classe publiqueComCompatibleVersionAttributeIndique à un client COM que toutes les classes de la version actuelle d'un assembly sont compatibles avec les classes d'une version précédente de l'assembly.
Classe publiqueComConversionLossAttributeIndique que des informations se rapportant à une classe ou à une interface ont été perdues lors de l'importation d'une bibliothèque de types vers un assembly.
Classe publiqueComDefaultInterfaceAttributeSpécifie une interface par défaut à exposer à COM. Cette classe ne peut pas être héritée.
Classe publiqueComEventInterfaceAttributeIdentifie l'interface source et la classe qui implémente les méthodes de l'interface d'événement qui est générée lorsqu'une coclasse est importée à partir d'une bibliothèque de types COM.
Classe publiqueCOMExceptionException levée quand un HRESULT non reconnu est retourné d'un appel de méthode COM.
Classe publiqueComImportAttributeIndique que le type avec attributs a été défini précédemment dans COM.
Classe publiqueComRegisterFunctionAttributeSpécifie la méthode à appeler quand vous inscrivez un assembly pour utilisation à partir de COM ; cela permet l'exécution de code écrit par l'utilisateur pendant le processus d'inscription.
Classe publiqueComSourceInterfacesAttributeIdentifie la liste des interfaces exposées sous la forme de sources d'événements COM pour la classe avec attributs.
Classe publiqueComUnregisterFunctionAttributeSpécifie la méthode à appeler quand vous annulez l'inscription d'un assembly pour utilisation à partir de COM ; cela permet l'exécution de code écrit par l'utilisateur pendant le processus d'annulation d'inscription.
Classe publiqueComVisibleAttributeContrôle l'accessibilité à COM d'un type ou membre managé individuel ou de tous les types d'un assembly.
Classe publiqueCriticalHandleReprésente une classe wrapper pour des ressources de handle.
Classe publiqueCurrencyWrapperEncapsule des objets que le marshaleur doit marshaler comme VT_CY.
Classe publiqueDefaultCharSetAttributeSpécifie la valeur de l'énumération CharSet. Cette classe ne peut pas être héritée.
Classe publiqueDefaultParameterValueAttributeDéfinit la valeur par défaut d'un paramètre lorsqu'il est appelé à partir d'un langage qui prend en charge des paramètres par défaut. Cette classe ne peut pas être héritée.
Classe publiqueDispatchWrapperEncapsule les objets que le marshaleur doit marshaler en tant que VT_DISPATCH.
Classe publiqueDispIdAttributeSpécifie l'identificateur de dispatch COM (DISPID) d'une méthode, d'un champ ou d'une propriété.
Classe publiqueDllImportAttributeIndique que la méthode avec attributs est exposée par une bibliothèque de liens dynamiques (DLL) non managée comme point d'entrée statique.
Classe publiqueErrorWrapperEncapsule les objets que le marshaleur doit marshaler en tant que VT_ERROR.
Classe publiqueExtensibleClassFactoryPermet la personnalisation d'objets managés qui sont des extensions d'objets non managés lors de la création.
Classe publiqueExternalExceptionType d'exception de base pour toutes les exceptions COM Interop et les exceptions SEH (Structured Exception Handling).
Classe publiqueFieldOffsetAttributeIndique la position physique des champs dans la représentation non managée d'une classe ou d'une structure.
Classe publiqueGuidAttributeFournit un System.Guid explicite lorsqu'un GUID automatique n'est pas recommandé.
Classe publiqueHandleCollectorEffectue le suivi des handles en attente et force une opération de garbage collection lorsque le seuil spécifié est atteint.
Classe publiqueIDispatchImplAttributeIndique l'implémentation IDispatch utilisée par le Common Language Runtime lors de l'exposition d'une interface double ou dispinterface à COM.
Classe publiqueImportedFromTypeLibAttributeIndique que les types définis dans un assembly ont été définis dans une bibliothèque de types à l'origine.
Classe publiqueInAttributeIndique que les données doivent être marshalées de l'appelant vers l'appelé, mais pas à nouveau vers l'appelant.
Classe publiqueInterfaceTypeAttributeIndique si une interface managée est double, de dispatch uniquement ou IUnknown uniquement lorsqu'elle est exposée à COM.
Classe publiqueInvalidComObjectExceptionException levée lorsqu'un objet COM non valide est utilisé.
Classe publiqueInvalidOleVariantTypeExceptionException levée par le marshaleur lorsqu'il rencontre un argument dont le type de variante ne peut pas être marshalé en code managé.
Classe publiqueLCIDConversionAttributeIndique que la signature non managée d'une méthode attend un paramètre LCID (Locale Identifier, identificateur de paramètres régionaux).
Classe publiqueMarshalFournit une collection de méthodes pour l'allocation de mémoire non managée, la copie de blocs de mémoire non managée et la conversion de types managés en types non managés, ainsi que diverses autres méthodes utilisées lors de l'interaction avec du code non managé.
Classe publiqueMarshalAsAttributeIndique comment marshaler les données entre du code managé et non managé.
Classe publiqueMarshalDirectiveExceptionException qui est levée par le marshaleur quand il rencontre un MarshalAsAttribute qu'il ne prend pas en charge.
Classe publiqueOptionalAttributeIndique qu'un paramètre est facultatif.
Classe publiqueOutAttributeIndique que les données doivent être marshalées de l'appelé vers l'appelant.
Classe publiquePreserveSigAttributeIndique que la transformation de signature HRESULT ou retval qui a lieu durant les appels COM Interop doit être supprimée.
Classe publiquePrimaryInteropAssemblyAttributeIndique que l'assembly avec attributs est un assembly PIA (Primary Interop Assembly).
Classe publiqueProgIdAttributePermet à l'utilisateur de spécifier le ProgID d'une classe.
Classe publiqueRegistrationServicesFournit un jeu de services pour inscrire et annuler l'inscription d'assemblys managés pour utilisation dans COM.
Classe publiqueRuntimeEnvironmentFournit une collection de méthodes static qui retournent des informations sur l'environnement du Common Language Runtime.
Classe publiqueSafeArrayRankMismatchExceptionException levée lorsque le rang d'un SAFEARRAY entrant ne correspond pas au rang spécifié dans la signature managée.
Classe publiqueSafeArrayTypeMismatchExceptionException levée lorsque le type du SAFEARRAY entrant ne correspond pas au type spécifié dans la signature managée.
Classe publiqueSafeHandleReprésente une classe wrapper pour des handles de système d'exploitation.
Classe publiqueSEHExceptionReprésente des erreurs SEH (Structured Exception Handler).
Classe publiqueSetWin32ContextInIDispatchAttributeCet attribut a été désapprouvé.
Classe publiqueStandardOleMarshalObjectRemplace le marshaleur libre de threads (FTM) standard du Common Language Runtime par le marshaleur STA OLE standard.
Classe publiqueStructLayoutAttributeLa classe StructLayoutAttribute permet à l'utilisateur de contrôler la disposition physique des champs de données d'une classe ou d'une structure.
Classe publiqueTypeLibConverterFournit un jeu de services qui convertissent un assembly managé en bibliothèque de types COM et réciproquement.
Classe publiqueTypeLibFuncAttributeContient les FUNCFLAGS importés à l'origine pour cette méthode à partir de la bibliothèque de types COM.
Classe publiqueTypeLibImportClassAttributeSpécifie le Type qui utilise une interface en mode exclusif. Cette classe ne peut pas être héritée.
Classe publiqueTypeLibTypeAttributeContient les TYPEFLAGS importés à l'origine pour ce type à partir de la bibliothèque de types COM.
Classe publiqueTypeLibVarAttributeContient les VARFLAGS importés à l'origine pour ce champ à partir de la bibliothèque de types COM.
Classe publiqueTypeLibVersionAttributeSpécifie le numéro de version d'une bibliothèque de types exportée.
Classe publiqueUnknownWrapperEncapsule des objets que le marshaleur doit marshaler comme VT_UNKNOWN.
Classe publiqueUnmanagedFunctionPointerAttributeContrôle le comportement de marshaling d'une signature de délégué passée comme pointeur fonction non managé vers ou à partir de code non managé. Cette classe ne peut pas être héritée.
Classe publiqueVariantWrapperMarshale des données de type VT_VARIANT | VT_BYREF de code managé en code non managé. Cette classe ne peut pas être héritée.

 InterfaceDescription
Interface publique_ActivatorExpose la classe System.Activator au code non managé.
Interface publique_AssemblyExpose les membres publics de la classe System.Reflection.Assembly au code non managé.
Interface publique_AssemblyBuilderExpose la classe System.Reflection.Emit.AssemblyBuilder au code non managé.
Interface publique_AssemblyNameExpose la classe AssemblyName au code non managé.
Interface publique_AttributeExpose la classe System.Attribute au code non managé.
Interface publique_ConstructorBuilderExpose la classe System.Reflection.Emit.ConstructorBuilder au code non managé.
Interface publique_ConstructorInfoExpose les membres publics de la classe System.Reflection.ConstructorInfo au code non managé.
Interface publique_CustomAttributeBuilderExpose la classe System.Reflection.Emit.CustomAttributeBuilder au code non managé.
Interface publique_EnumBuilderExpose la classe System.Reflection.Emit.EnumBuilder au code non managé.
Interface publique_EventBuilderExpose la classe System.Reflection.Emit.EventBuilder au code non managé.
Interface publique_EventInfoExpose les membres publics de la classe System.Reflection.EventInfo au code non managé.
Interface publique_ExceptionExpose les membres publics de la classe System.Exception au code non managé.
Interface publique_FieldBuilderExpose la classe System.Reflection.Emit.FieldBuilder au code non managé.
Interface publique_FieldInfoExpose les membres publics de la classe System.Reflection.FieldInfo au code non managé.
Interface publique_ILGeneratorExpose la classe System.Reflection.Emit.ILGenerator au code non managé.
Interface publique_LocalBuilderExpose la classe System.Reflection.Emit.LocalBuilder au code non managé.
Interface publique_MemberInfoExpose les membres publics de la classe System.Reflection.MemberInfo au code non managé.
Interface publique_MethodBaseExpose les membres publics de la classe System.Reflection.MethodBase au code non managé.
Interface publique_MethodBuilderExpose la classe MethodBuilder au code non managé.
Interface publique_MethodInfoExpose les membres publics de la classe System.Reflection.MethodInfo au code non managé.
Interface publique_MethodRentalExpose la classe System.Reflection.Emit.MethodRental au code non managé.
Interface publique_ModuleExpose la classe Module au code non managé.
Interface publique_ModuleBuilderExpose la classe System.Reflection.Emit.ModuleBuilder au code non managé.
Interface publique_ParameterBuilderExpose la classe System.Reflection.Emit.ParameterBuilder au code non managé.
Interface publique_ParameterInfoExpose la classe System.Reflection.ParameterInfo au code non managé.
Interface publique_PropertyBuilderExpose la classe System.Reflection.Emit.PropertyBuilder au code non managé.
Interface publique_PropertyInfoExpose les membres publics de la classe System.Reflection.PropertyInfo au code non managé.
Interface publique_SignatureHelperExpose la classe System.Reflection.Emit.SignatureHelper au code non managé.
Interface publique_ThreadExpose la classe System.Threading.Thread au code non managé.
Interface publique_TypeExpose les membres publics de la classe System.Type au code non managé.
Interface publique_TypeBuilderExpose la classe System.Reflection.Emit.TypeBuilder au code non managé.
Interface publiqueICustomAdapterPermet aux clients d'accéder à l'objet réel, plutôt qu'à l'objet adaptateur fourni par un marshaleur personnalisé.
Interface publiqueICustomFactoryPermet aux utilisateurs d'écrire un code d'activation pour des objets managés qui étendent MarshalByRefObject.
Interface publiqueICustomMarshalerConçu pour fournir des wrappers personnalisés permettant de gérer les appels de méthodes.
Interface publiqueIRegistrationServicesFournit un jeu de services pour inscrire et annuler l'inscription d'assemblys managés pour utilisation dans COM.
Interface publiqueITypeLibConverterFournit un jeu de services qui convertissent un assembly managé en bibliothèque de types COM et réciproquement.
Interface publiqueITypeLibExporterNameProviderAssure un contrôle sur la casse de noms lors de l'exportation dans une bibliothèque de types.
Interface publiqueITypeLibExporterNotifySinkFournit un mécanisme de rappel pour le convertisseur d'assembly afin d'informer l'appelant de l'état de la conversion, et impliquer l'appelant dans le processus de conversion.
Interface publiqueITypeLibImporterNotifySinkFournit un mécanisme de rappel pour le convertisseur de bibliothèque de types afin d'informer l'appelant de l'état de la conversion, et impliquer l'appelant dans le processus de conversion lui-même.
Interface publiqueUCOMIBindCtxUtilisez plutôt BIND_OPTS.
Interface publiqueUCOMIConnectionPointUtilisez plutôt IConnectionPoint.
Interface publiqueUCOMIConnectionPointContainerUtilisez plutôt IConnectionPointContainer.
Interface publiqueUCOMIEnumConnectionPointsUtilisez plutôt IEnumConnectionPoints.
Interface publiqueUCOMIEnumConnectionsUtilisez plutôt IEnumConnections.
Interface publiqueUCOMIEnumMonikerUtilisez plutôt IEnumMoniker.
Interface publiqueUCOMIEnumStringUtilisez plutôt IEnumString.
Interface publiqueUCOMIEnumVARIANTUtilisez plutôt IEnumVARIANT.
Interface publiqueUCOMIMonikerUtilisez plutôt IMoniker.
Interface publiqueUCOMIPersistFileRemarque : cette interface est maintenant obsolète. Utilisez plutôt IPersistFile.
Interface publiqueUCOMIRunningObjectTableUtilisez plutôt IRunningObjectTable.
Interface publiqueUCOMIStreamUtilisez plutôt IStream.
Interface publiqueUCOMITypeCompUtilisez plutôt ITypeComp.
Interface publiqueUCOMITypeInfoUtilisez plutôt ITypeInfo.
Interface publiqueUCOMITypeLibUtilisez plutôt ITypeLib.

 StructureDescription
Structure publiqueArrayWithOffsetEncapsule un tableau et un offset dans le tableau spécifié.
Structure publiqueBIND_OPTSUtilisez plutôt BIND_OPTS.
Structure publiqueBINDPTRUtilisez plutôt BINDPTR.
Structure publiqueCONNECTDATAUtilisez plutôt CONNECTDATA.
Structure publiqueDISPPARAMSUtilisez plutôt DISPPARAMS.
Structure publiqueELEMDESCUtilisez plutôt ELEMDESC.
Structure publiqueELEMDESC.DESCUNIONUtilisez plutôt ELEMDESC.DESCUNION.
Structure publiqueEXCEPINFOUtilisez plutôt EXCEPINFO.
Structure publiqueFILETIMEUtilisez plutôt FILETIME.
Structure publiqueFUNCDESCUtilisez plutôt FUNCDESC.
Structure publiqueGCHandleFournit un moyen pour accéder à un objet managé à partir d'un objet non managé.
Structure publiqueHandleRefEncapsule un objet managé contenant un handle d'une ressource passée à du code non managé à l'aide d'appel de plate-forme.
Structure publiqueIDLDESCUtilisez plutôt IDLDESC.
Structure publiquePARAMDESCUtilisez plutôt PARAMDESC.
Structure publiqueSTATSTGUtilisez plutôt STATSTG.
Structure publiqueTYPEATTRUtilisez plutôt TYPEATTR.
Structure publiqueTYPEDESCUtilisez plutôt TYPEDESC.
Structure publiqueTYPELIBATTRUtilisez plutôt TYPELIBATTR.
Structure publiqueVARDESCUtilisez plutôt VARDESC.
Structure publiqueVARDESC.DESCUNIONRemarque : cette structure est obsolète. Utilisez plutôt VARDESC.DESCUNION.

 DéléguéDescription
Délégué publicObjectCreationDelegateCrée un objet COM.

 ÉnumérationDescription
Énumération publiqueAssemblyRegistrationFlagsDéfinit un jeu d'indicateurs utilisés lors de l'inscription d'assemblys.
Énumération publiqueCALLCONVUtilisez plutôt CALLCONV.
Énumération publiqueCallingConventionSpécifie la convention d'appel nécessaire pour appeler les méthodes implémentées en code non managé.
Énumération publiqueCharSetDicte le jeu de caractères utilisé par les chaînes marshalées.
Énumération publiqueClassInterfaceTypeIdentifie le type d'interface de classe qui est généré pour une classe.
Énumération publiqueComInterfaceTypeIdentifie comment exposer une interface à COM.
Énumération publiqueComMemberTypeDécrit le type d'un membre COM.
Énumération publiqueDESCKINDUtilisez plutôt DESCKIND.
Énumération publiqueExporterEventKindDécrit les rappels exécutés par l'outil Type Library Exporter (exportateur de bibliothèques de types) lors de l'exportation d'une bibliothèque de types.
Énumération publiqueFUNCFLAGSUtilisez plutôt FUNCFLAGS.
Énumération publiqueFUNCKINDUtilisez plutôt FUNCKIND.
Énumération publiqueGCHandleTypeReprésente les types de handles que la classe GCHandle peut allouer.
Énumération publiqueIDispatchImplTypeIndique l'implémentation IDispatch à utiliser pour une classe particulière.
Énumération publiqueIDLFLAGUtilisez plutôt IDLFLAG.
Énumération publiqueIMPLTYPEFLAGSUtilisez plutôt IMPLTYPEFLAGS.
Énumération publiqueImporterEventKindDécrit les rappels exécutés par l'outil Type Library Importer (importateur de bibliothèques de types) lors de l'importation d'une bibliothèque de types.
Énumération publiqueINVOKEKINDUtilisez plutôt INVOKEKIND.
Énumération publiqueLayoutKindContrôle la disposition d'un objet lorsqu'il est exporté dans du code non managé.
Énumération publiqueLIBFLAGSUtilisez plutôt LIBFLAGS.
Énumération publiquePARAMFLAGUtilisez plutôt PARAMFLAG.
Énumération publiqueRegistrationClassContextSpécifie le jeu de contextes d'exécution dans lequel un objet de classe sera rendu disponible pour les demandes de construction d'instances.
Énumération publiqueRegistrationConnectionTypeDéfinit les types de connexions à un objet de classe.
Énumération publiqueSYSKINDUtilisez plutôt SYSKIND.
Énumération publiqueTYPEFLAGSUtilisez plutôt TYPEFLAGS.
Énumération publiqueTYPEKINDUtilisez plutôt TYPEKIND.
Énumération publiqueTypeLibExporterFlagsIndique comment une bibliothèque de types doit être produite.
Énumération publiqueTypeLibFuncFlagsDécrit les paramètres d'origine de FUNCFLAGS dans la bibliothèque de types COM à partir de l'endroit où cette méthode a été importée.
Énumération publiqueTypeLibImporterFlagsIndique comment un assembly doit être produit.
Énumération publiqueTypeLibTypeFlagsDécrit les paramètres d'origine de TYPEFLAGS dans la bibliothèque de types COM à partir de l'endroit où ce type a été importé.
Énumération publiqueTypeLibVarFlagsDécrit les paramètres d'origine de VARFLAGS dans la bibliothèque de types COM à partir de l'endroit où cette variable a été importée.
Énumération publiqueUnmanagedTypeIdentifie comment marshaler les paramètres ou les champs en code non managé.
Énumération publiqueVarEnumIndique comment marshaler les éléments de tableau lorsqu'un tableau est marshalé de code managé en code non managé sous la forme de UnmanagedType.SafeArray.
Énumération publiqueVARFLAGSUtilisez plutôt VARFLAGS.
Afficher: