Partager via


System.Runtime.InteropServices Espace de noms

Fournit un large éventail de membres qui prennent en charge les services COM Interop et Platform Invoke. Si vous ne connaissez pas ces services, consultez interopération avec le code non managé.

Classes

AllowReversePInvokeCallsAttribute

Permet à une méthode non managée d’appeler une méthode managée.

AutomationProxyAttribute

Spécifie si le type doit être marshalé à l’aide du marshaleur Automation ou d’un proxy personnalisé et d’un stub.

BestFitMappingAttribute

Contrôle si les caractères Unicode sont convertis en caractères ANSI correspondants les plus proches.

BStrWrapper

Marshale les données de type VT_BSTR du code managé au code non managé. Cette classe ne peut pas être héritée.

ClassInterfaceAttribute

Indique le type d’interface de classe à générer pour une classe exposée à COM, si une interface est générée du tout.

CoClassAttribute

Spécifie l’identificateur de classe d’une coclasse importée à partir d’une bibliothèque de types.

CollectionsMarshal

Classe non sécurisée qui fournit un ensemble de méthodes permettant d’accéder aux représentations de données sous-jacentes des collections.

ComAliasNameAttribute

Indique l’alias COM d’un paramètre ou d’un type de champ.

ComAwareEventInfo

Autorise l’inscription tardive d’un gestionnaire d’événements.

ComCompatibleVersionAttribute

Indique à un client COM que toutes les classes de la version actuelle d’un assembly sont compatibles avec les classes d’une version antérieure de l’assembly.

ComConversionLossAttribute

Indique que les informations ont été perdues à propos d’une classe ou d’une interface lorsqu’elles ont été importées d’une bibliothèque de types vers un assembly.

ComDefaultInterfaceAttribute

Spécifie une interface par défaut à exposer à COM. Cette classe ne peut pas être héritée.

ComEventInterfaceAttribute

Identifie l’interface source et la classe qui implémente les méthodes de l’interface d’événement générées lorsqu’une coclasse est importée à partir d’une bibliothèque de types COM.

ComEventsHelper

Fournit des méthodes qui permettent aux délégués .NET de gérer les événements à ajouter et à supprimer des objets COM.

COMException

Exception levée lorsqu’un HRESULT non reconnu est retourné à partir d’un appel de méthode COM.

ComImportAttribute

Indique que le type attribué a été précédemment défini dans COM.

ComRegisterFunctionAttribute

Spécifie la méthode à appeler lorsque vous inscrivez un assembly à utiliser à partir de COM ; cela permet l’exécution de code écrit par l’utilisateur pendant le processus d’inscription.

ComSourceInterfacesAttribute

Identifie une liste d’interfaces exposées en tant que sources d’événements COM pour la classe attributée.

ComUnregisterFunctionAttribute

Spécifie la méthode à appeler lorsque vous annulez l’inscription d’un assembly à utiliser à partir de COM ; cela permet l’exécution de code écrit par l’utilisateur pendant le processus de désinscription.

ComVisibleAttribute

Contrôle l’accessibilité d’un type managé ou d’un membre individuel, ou de tous les types au sein d’un assembly, à COM.

ComWrappers

Classe pour la gestion des wrappers de types COM IUnknown.

CriticalHandle

Représente une classe wrapper pour gérer les ressources.

CurrencyWrapper

Encapsule les objets que le marshaleur doit marshaler en tant que VT_CY.

DefaultCharSetAttribute

Spécifie la valeur de l’énumération CharSet. Cette classe ne peut pas être héritée.

DefaultDllImportSearchPathsAttribute

Spécifie les chemins d’accès utilisés pour rechercher des DLL qui fournissent des fonctions pour les appels de plateforme.

DefaultParameterValueAttribute

Définit la valeur par défaut d’un paramètre lorsqu’il est appelé à partir d’un langage qui prend en charge les paramètres par défaut. Cette classe ne peut pas être héritée.

DispatchWrapper

Encapsule les objets que le marshaleur doit marshaler en tant que VT_DISPATCH.

DispIdAttribute

Spécifie l’identificateur de distribution COM (DISPID) d’une méthode, d’un champ ou d’une propriété.

DllImportAttribute

Indique que la méthode attribuée est exposée par une bibliothèque de liens dynamiques non managées (DLL) en tant que point d’entrée statique.

DynamicInterfaceCastableImplementationAttribute

Attribut requis par n’importe quel type retourné par GetInterfaceImplementation(RuntimeTypeHandle).

ErrorWrapper

Encapsule les objets que le marshaleur doit marshaler en tant que VT_ERROR.

ExtensibleClassFactory

Active la personnalisation des objets managés qui s’étendent à partir d’objets non managés lors de la création.

ExternalException

Type d’exception de base pour toutes les exceptions COM Interop et exceptions structurées (SEH).

FieldOffsetAttribute

Indique la position physique des champs dans la représentation non managée d’une classe ou d’une structure.

GuidAttribute

Fournit une Guid explicite lorsqu’un GUID automatique n’est pas souhaitable.

HandleCollector

Effectue le suivi des handles en attente et force un garbage collection lorsque le seuil spécifié est atteint.

IDispatchImplAttribute

Indique quelle IDispatch implémentation du Common Language Runtime utilise lors de l’exposition de doubles interfaces et dispinterfaces à COM.

ImmutableCollectionsMarshal

Classe non sécurisée qui fournit un ensemble de méthodes permettant d’accéder aux représentations de données sous-jacentes des collections immuables.

ImportedFromTypeLibAttribute

Indique que les types définis dans un assembly ont été définis à l’origine dans une bibliothèque de types.

InAttribute

Indique que les données doivent être marshalées de l’appelant vers l’appelé, mais pas de retour à l’appelant.

InterfaceTypeAttribute

Indique si une interface managée est double, distribuée uniquement ou IUnknown -only lorsqu’elle est exposée à COM.

InvalidComObjectException

Exception levée lorsqu’un objet COM non valide est utilisé.

InvalidOleVariantTypeException

Exception levée par le marshaleur lorsqu’il rencontre un argument d’un type variant qui ne peut pas être marshalé en code managé.

JsonMarshal

Fournit un large éventail de membres qui prennent en charge les services COM Interop et Platform Invoke. Si vous ne connaissez pas ces services, consultez interopération avec le code non managé.

LCIDConversionAttribute

Indique que la signature non managée d’une méthode attend un paramètre d’identificateur de paramètres régionaux (LCID).

LibraryImportAttribute

Indique qu’un générateur source doit créer une fonction pour les arguments de marshaling au lieu de compter sur le runtime pour générer une fonction de marshaling équivalente au moment de l’exécution.

ManagedToNativeComInteropStubAttribute

Fournit la prise en charge de la personnalisation des stubs d’interopérabilité des utilisateurs dans les scénarios d’interopérabilité managé-à-COM.

Marshal

Fournit une collection de méthodes pour allouer de la mémoire non managée, copier des blocs de mémoire non managés et convertir des types managés en types non managés, ainsi que d’autres méthodes diverses utilisées lors de l’interaction avec du code non managé.

MarshalAsAttribute

Indique comment marshaler les données entre le code managé et non managé.

MarshalDirectiveException

Exception levée par le marshaleur lorsqu’il rencontre un MarshalAsAttribute il ne prend pas en charge.

MemoryMarshal

Fournit des méthodes pour interagir avec Memory<T>, ReadOnlyMemory<T>, Span<T>et ReadOnlySpan<T>.

NativeLibrary

Fournit des API pour la gestion des bibliothèques natives.

NativeMemory

Cette classe contient des méthodes principalement utilisées pour gérer la mémoire native.

OptionalAttribute

Indique qu’un paramètre est facultatif.

OutAttribute

Indique que les données doivent être marshalées de l’appelé vers l’appelant.

PosixSignalContext

Fournit des données pour un événement PosixSignalRegistration.

PosixSignalRegistration

Gère un PosixSignal.

PreserveSigAttribute

Indique que la transformation de signature HRESULT qui a lieu pendant les appels COM Interop doit être supprimée.

PrimaryInteropAssemblyAttribute

Indique que l’assembly attribué est un assembly d’interopérabilité principal.

ProgIdAttribute

Permet à l’utilisateur de spécifier le ProgID d’une classe.

RegistrationServices

Fournit un ensemble de services permettant d’inscrire et de désinscrire des assemblys managés à utiliser à partir de COM.

RuntimeEnvironment

Fournit une collection de méthodes static qui retournent des informations sur l’environnement Common Language Runtime.

RuntimeInformation

Fournit des informations sur l’installation du runtime .NET.

SafeArrayRankMismatchException

Exception levée lorsque le rang d’une SAFEARRAY entrante ne correspond pas au rang spécifié dans la signature managée.

SafeArrayTypeMismatchException

Exception levée lorsque le type du SAFEARRAY entrant ne correspond pas au type spécifié dans la signature managée.

SafeBuffer

Fournit une mémoire tampon contrôlée qui peut être utilisée pour la lecture et l’écriture. Les tentatives d’accès à la mémoire en dehors de la mémoire tampon contrôlée (dépassements et dépassements) déclenchent des exceptions.

SafeHandle

Représente une classe wrapper pour les handles du système d’exploitation. Cette classe doit être héritée.

SEHException

Représente les erreurs de gestion des exceptions structurées (SEH).

SequenceMarshal

Fournit une collection de méthodes permettant d’interagir avec ReadOnlySequence<T>.

SetWin32ContextInIDispatchAttribute

Cet attribut a été déconseillé.

StandardOleMarshalObject

Remplace le marshaleur à threads libres (CLR) standard par le marshaleur OLE STA standard.

StructLayoutAttribute

Permet de contrôler la disposition physique des champs de données d’une classe ou d’une structure en mémoire.

SuppressGCTransitionAttribute

Indique qu’une transition de garbage collection doit être ignorée lorsqu’un appel de fonction non managé est effectué.

TypeIdentifierAttribute

Fournit la prise en charge de l’équivalence de type.

TypeLibConverter

Fournit un ensemble de services qui convertissent un assembly managé en bibliothèque de types COM et inversement.

TypeLibFuncAttribute

Contient les FUNCFLAGS qui ont été importées à l’origine pour cette méthode à partir de la bibliothèque de types COM.

TypeLibImportClassAttribute

Spécifie les Type utilise exclusivement une interface. Cette classe ne peut pas être héritée.

TypeLibTypeAttribute

Contient les TYPEFLAGS qui ont été importées à l’origine pour ce type à partir de la bibliothèque de types COM.

TypeLibVarAttribute

Contient les VARFLAGS qui ont été importées à l’origine pour ce champ à partir de la bibliothèque de types COM.

TypeLibVersionAttribute

Spécifie le numéro de version d’une bibliothèque de types exportée.

UnknownWrapper

Encapsule les objets que le marshaleur doit marshaler en tant que VT_UNKNOWN.

UnmanagedCallConvAttribute

Spécifie la convention d’appel requise pour appeler les méthodes P/Invoke implémentées dans du code non managé.

UnmanagedCallersOnlyAttribute

Toute méthode marquée avec UnmanagedCallersOnlyAttribute peut être appelée directement à partir du code natif. Le jeton de fonction peut être chargé dans une variable locale à l’aide de l’opérateur adresse de en C# et transmis en tant que rappel à une méthode native.

UnmanagedFunctionPointerAttribute

Contrôle le comportement de marshaling d’une signature de délégué passée en tant que pointeur de fonction non managé vers ou depuis du code non managé. Cette classe ne peut pas être héritée.

VariantWrapper

Marshale les données de type VT_VARIANT | VT_BYREF du code managé au code non managé. Cette classe ne peut pas être héritée.

WasmImportLinkageAttribute

Spécifie que le P/Invoke marqué avec cet attribut doit être lié en tant qu’importation WASM.

Structures

ArrayWithOffset

Encapsule un tableau et un décalage dans le tableau spécifié.

BIND_OPTS

Utilisez BIND_OPTS à la place.

BINDPTR

Utilisez BINDPTR à la place.

CLong

CLong est un type valeur immuable qui représente le type long en C et C++. Il est destiné à être utilisé comme type d’échange au niveau de la limite managée/non managée pour représenter avec précision dans les API non managées de code managé qui utilisent le type long. Ce type a 32 bits de stockage sur toutes les plateformes Windows et les plateformes Unix 32 bits. Il dispose de 64 bits de stockage sur les plateformes Unix 64 bits.

ComWrappers.ComInterfaceDispatch

Interface binaire d’application pour la répartition des fonctions d’une interface COM.

ComWrappers.ComInterfaceEntry

Type d’interface et pointeur vers la table virtuelle ciblée.

CONNECTDATA

Utilisez CONNECTDATA à la place.

CULong

CULong est un type valeur immuable qui représente le type unsigned long en C et C++. Il est destiné à être utilisé comme type d’échange au niveau de la limite managée/non managée pour représenter avec précision dans les API non managées de code managé qui utilisent le type unsigned long. Ce type a 32 bits de stockage sur toutes les plateformes Windows et les plateformes Unix 32 bits. Il dispose de 64 bits de stockage sur les plateformes Unix 64 bits.

DISPPARAMS

Utilisez DISPPARAMS à la place.

ELEMDESC

Utilisez ELEMDESC à la place.

ELEMDESC.DESCUNION

Utilisez ELEMDESC.DESCUNION à la place.

EXCEPINFO

Utilisez EXCEPINFO à la place.

FILETIME

Utilisez FILETIME à la place.

FUNCDESC

Utilisez FUNCDESC à la place.

GCHandle

Fournit un moyen d’accéder à un objet managé à partir de la mémoire non managée.

HandleRef

Encapsule un objet managé contenant un handle à une ressource transmise au code non managé à l’aide d’un appel de plateforme.

IDLDESC

Utilisez IDLDESC à la place.

NFloat

NFloat est un type valeur immuable qui représente un type flottant qui a la même taille que la taille entière native. Il est destiné à être utilisé comme type d’échange à la limite managée/non managée pour représenter avec précision les API non managées qui utilisent un alias de type pour les float C ou C++ sur les plateformes 32 bits ou double sur des plateformes 64 bits, telles que le type CGFloat dans les bibliothèques fournies par Apple.

OSPlatform

Représente une plateforme de système d’exploitation.

PARAMDESC

Utilisez PARAMDESC à la place.

STATSTG

Utilisez STATSTG à la place.

TYPEATTR

Utilisez TYPEATTR à la place.

TYPEDESC

Utilisez TYPEDESC à la place.

TYPELIBATTR

Utilisez TYPELIBATTR à la place.

VARDESC

Utilisez VARDESC à la place.

VARDESC.DESCUNION

Utilisez VARDESC.DESCUNION à la place.

Interfaces

_Activator

Expose la classe Activator au code non managé.

_Assembly

Expose les membres publics de la classe Assembly au code non managé.

_AssemblyBuilder

Expose la classe AssemblyBuilder au code non managé.

_AssemblyName

Expose la classe AssemblyName au code non managé.

_Attribute

Expose la classe Attribute au code non managé.

_ConstructorBuilder

Expose la classe ConstructorBuilder au code non managé.

_ConstructorInfo

Expose les membres publics de la classe ConstructorInfo au code non managé.

_CustomAttributeBuilder

Expose la classe CustomAttributeBuilder au code non managé.

_EnumBuilder

Expose la classe EnumBuilder au code non managé.

_EventBuilder

Expose la classe EventBuilder au code non managé.

_EventInfo

Expose les membres publics de la classe EventInfo au code non managé.

_Exception

Expose les membres publics de la classe Exception au code non managé.

_FieldBuilder

Expose la classe FieldBuilder au code non managé.

_FieldInfo

Expose les membres publics de la classe FieldInfo au code non managé.

_ILGenerator

Expose la classe ILGenerator au code non managé.

_LocalBuilder

Expose la classe LocalBuilder au code non managé.

_MemberInfo

Expose les membres publics de la classe MemberInfo au code non managé.

_MethodBase

Expose les membres publics de la classe MethodBase au code non managé.

_MethodBuilder

Expose la classe MethodBuilder au code non managé.

_MethodInfo

Expose les membres publics de la classe MethodInfo au code non managé.

_MethodRental

Expose la classe MethodRental au code non managé.

_Module

Expose la classe Module au code non managé.

_ModuleBuilder

Expose la classe ModuleBuilder au code non managé.

_ParameterBuilder

Expose la classe ParameterBuilder au code non managé.

_ParameterInfo

Expose la classe ParameterInfo au code non managé.

_PropertyBuilder

Expose la classe PropertyBuilder au code non managé.

_PropertyInfo

Expose les membres publics de la classe PropertyInfo au code non managé.

_SignatureHelper

Expose la classe SignatureHelper au code non managé.

_Thread

Expose la classe Thread au code non managé.

_Type

Expose les membres publics de la classe Type au code non managé.

_TypeBuilder

Expose la classe TypeBuilder au code non managé.

ICustomAdapter

Fournit un moyen pour les clients d’accéder à l’objet réel, plutôt que l’objet adaptateur distribué par un marshaleur personnalisé.

ICustomFactory

Permet aux utilisateurs d’écrire du code d’activation pour les objets managés qui étendent MarshalByRefObject.

ICustomMarshaler

Fournit des wrappers personnalisés pour la gestion des appels de méthode.

ICustomQueryInterface

Permet aux développeurs de fournir une implémentation personnalisée et gérée de la méthode IUnknown ::QueryInterface(REFIID riid, void **ppvObject) méthode.

IDynamicInterfaceCastable

Interface utilisée pour participer à un échec de cast de type.

IRegistrationServices

Fournit un ensemble de services permettant d’inscrire et de désinscrire des assemblys managés à utiliser à partir de COM.

ITypeLibConverter

Fournit un ensemble de services qui convertissent un assembly managé en bibliothèque de types COM et inversement.

ITypeLibExporterNameProvider

Fournit un contrôle sur la casse des noms lorsqu’ils sont exportés vers une bibliothèque de types.

ITypeLibExporterNotifySink

Fournit un mécanisme de rappel pour le convertisseur d’assembly pour informer l’appelant de l’état de la conversion et impliquer l’appelant dans le processus de conversion lui-même.

ITypeLibImporterNotifySink

Fournit un mécanisme de rappel pour le convertisseur de bibliothèque de types pour informer l’appelant de l’état de la conversion et impliquer l’appelant dans le processus de conversion lui-même.

UCOMIBindCtx

Utilisez BIND_OPTS à la place.

UCOMIConnectionPoint

Utilisez IConnectionPoint à la place.

UCOMIConnectionPointContainer

Utilisez IConnectionPointContainer à la place.

UCOMIEnumConnectionPoints

Utilisez IEnumConnectionPoints à la place.

UCOMIEnumConnections

Utilisez IEnumConnections à la place.

UCOMIEnumMoniker

Utilisez IEnumMoniker à la place.

UCOMIEnumString

Utilisez IEnumString à la place.

UCOMIEnumVARIANT

Utilisez IEnumVARIANT à la place.

UCOMIMoniker

Utilisez IMoniker à la place.

UCOMIPersistFile

Utilisez IPersistFile à la place.

UCOMIRunningObjectTable

Utilisez IRunningObjectTable à la place.

UCOMIStream

Utilisez IStream à la place.

UCOMITypeComp

Utilisez ITypeComp à la place.

UCOMITypeInfo

Utilisez ITypeInfo à la place.

UCOMITypeLib

Utilisez ITypeLib à la place.

Énumérations

Architecture

Indique l’architecture du processeur.

AssemblyRegistrationFlags

Définit un ensemble d’indicateurs utilisés lors de l’inscription d’assemblys.

CALLCONV

Utilisez CALLCONV à la place.

CallingConvention

Spécifie la convention d’appel requise pour appeler les méthodes implémentées dans du code non managé.

CharSet

Détermine les chaînes marshalées de jeu de caractères à utiliser.

ClassInterfaceType

Identifie le type d’interface de classe généré pour une classe.

ComInterfaceType

Identifie comment exposer une interface à COM.

ComMemberType

Décrit le type d’un membre COM.

CreateComInterfaceFlags

Spécifie des indicateurs pour la méthode GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags).

CreateObjectFlags

Spécifie des indicateurs pour la méthode GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags).

CustomQueryInterfaceMode

Indique si les appels IUnknown ::QueryInterface de la méthode GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) peuvent utiliser l’interface ICustomQueryInterface.

CustomQueryInterfaceResult

Fournit des valeurs de retour pour la méthode GetInterface(Guid, IntPtr).

DESCKIND

Utilisez DESCKIND à la place.

DllImportSearchPath

Spécifie les chemins d’accès utilisés pour rechercher des DLL qui fournissent des fonctions pour les appels de plateforme.

ExporterEventKind

Décrit les rappels que l’exportateur de bibliothèque de types effectue lors de l’exportation d’une bibliothèque de types.

FUNCFLAGS

Utilisez FUNCFLAGS à la place.

FUNCKIND

Utilisez FUNCKIND à la place.

GCHandleType

Représente les types de handles que le type GCHandle peut allouer.

IDispatchImplType

Indique quelle IDispatch implémentation à utiliser pour une classe particulière.

IDLFLAG

Utilisez IDLFLAG à la place.

IMPLTYPEFLAGS

Utilisez IMPLTYPEFLAGS à la place.

ImporterEventKind

Décrit les rappels que l’importateur de bibliothèque de types effectue lors de l’importation d’une bibliothèque de types.

INVOKEKIND

Utilisez INVOKEKIND à la place.

LayoutKind

Contrôle la disposition d’un objet lorsqu’il est exporté vers du code non managé.

LIBFLAGS

Utilisez LIBFLAGS à la place.

PARAMFLAG

Utilisez PARAMFLAG à la place.

PosixSignal

Spécifie un numéro de signal POSIX.

RegistrationClassContext

Spécifie l’ensemble de contextes d’exécution dans lesquels un objet de classe sera mis à disposition pour les demandes de construction d’instances.

RegistrationConnectionType

Définit les types de connexions à un objet de classe.

StringMarshalling

Spécifie la façon dont les chaînes doivent être marshalées pour les appels p/invoke générés

SYSKIND

Utilisez SYSKIND à la place.

TYPEFLAGS

Utilisez TYPEFLAGS à la place.

TYPEKIND

Utilisez TYPEKIND à la place.

TypeLibExporterFlags

Indique comment une bibliothèque de types doit être générée.

TypeLibFuncFlags

Décrit les paramètres d’origine de l'FUNCFLAGS dans la bibliothèque de types COM à partir de laquelle cette méthode a été importée.

TypeLibImporterFlags

Indique comment un assembly doit être produit.

TypeLibTypeFlags

Décrit les paramètres d’origine de l'TYPEFLAGS dans la bibliothèque de types COM à partir de laquelle le type a été importé.

TypeLibVarFlags

Décrit les paramètres d’origine de l'VARFLAGS dans la bibliothèque de types COM à partir de laquelle la variable a été importée.

UnmanagedType

Identifie comment marshaler des paramètres ou des champs dans du code non managé.

VarEnum

Indique comment marshaler les éléments de tableau lorsqu’un tableau est marshalé du code managé au code non managé en tant que SafeArray.

VARFLAGS

Utilisez VARFLAGS à la place.

Délégués

DllImportResolver

Fournit un délégué utilisé pour résoudre les bibliothèques natives via le rappel.

ObjectCreationDelegate

Crée un objet COM.

Remarques

Les membres de cet espace de noms fournissent plusieurs catégories de fonctionnalités, comme indiqué dans le tableau suivant. Les attributs contrôlent le comportement de marshaling, comme la façon d’organiser des structures ou comment représenter des chaînes. Les attributs les plus importants sont DllImportAttribute, que vous utilisez pour définir des méthodes d’appel de plateforme pour accéder aux API non managées et MarshalAsAttribute, que vous utilisez pour spécifier comment les données sont marshalées entre la mémoire managée et non managée.