System.Runtime.InteropServices Espace de noms
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit un large éventail de membres qui prennent en charge COM Interop et les services d'appel de code non managé. Si vous n’êtes pas familiarisé avec ces services, consultez Interopération avec du code non managé.
Classes
AllowReversePInvokeCallsAttribute |
Permet à une méthode non managée d’appeler une méthode managée. |
AutomationProxyAttribute |
Indique si le type doit être marshalé en utilisant Automation Marshaler ou un proxy et un stub personnalisés. |
BestFitMappingAttribute |
Détermine si les caractères Unicode sont convertis en caractères ANSI équivalents les plus proches. |
BStrWrapper |
Marshale des données de type |
ClassInterfaceAttribute |
Indique le type d'interface de classe à générer pour une classe exposée à COM, si une interface est effectivement générée. |
CoClassAttribute |
Spécifie l'identificateur de classe d'une coclasse importée à partir d'une bibliothèque de types. |
CollectionsMarshal |
Classe non sécurisé qui fournit un ensemble de méthodes pour accéder aux représentations de données sous-jacentes des collections. |
ComAliasNameAttribute |
Indique l’alias COM pour un type de paramètre ou de champ. |
ComAwareEventInfo |
Autorise l’inscription à liaison 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 précédente de l'assembly. |
ComConversionLossAttribute |
Indique 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. |
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 implémentant les méthodes de l'interface d'événement qui est générée quand une coclasse est importée à partir d'une bibliothèque de types COM. |
ComEventsHelper |
Fournit des méthodes qui permettent d'ajouter et de supprimer d’objets COM des délégués .NET qui gèrent des événements. |
COMException |
Exception levée quand un HRESULT non reconnu est retourné d'un appel de méthode COM. |
ComImportAttribute |
Indique que le type avec attributs a déjà été défini dans COM. |
ComRegisterFunctionAttribute |
Spé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. |
ComSourceInterfacesAttribute |
Identifie une liste d'interfaces qui sont exposées en tant que sources d'événements COM pour la classe avec attributs. |
ComUnregisterFunctionAttribute |
Spé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. |
ComVisibleAttribute |
Contrôle l'accessibilité à COM d'un membre ou type managé spécifique, ou de tous les types dans un assembly. |
ComWrappers |
Classe pour la gestion des wrappers de types COM IUnknown. |
CriticalHandle |
Représente une classe wrapper pour les ressources de handle. |
CurrencyWrapper |
Encapsule des objets que le marshaleur doit marshaler comme |
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 les DLL qui fournissent des fonctions pour les appels de plateforme. |
DefaultParameterValueAttribute |
Définit la valeur par défaut d'un paramètre quand 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 des objets que le marshaleur doit marshaler comme |
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 avec attributs est exposée par une bibliothèque de liens dynamiques (DLL) non managée comme point d'entrée statique. |
DynamicInterfaceCastableImplementationAttribute |
Attribut exigé par tout type retourné par GetInterfaceImplementation(RuntimeTypeHandle). |
ErrorWrapper |
Encapsule des objets que le marshaleur doit marshaler comme |
ExtensibleClassFactory |
Permet la personnalisation d'objets managés qui sont des extensions d'objets non managés lors de la création. |
ExternalException |
Type d'exception de base pour toutes les exceptions COM Interop et les exceptions SEH (Structured Exception Handling). |
FieldOffsetAttribute |
Indique la position physique des champs dans la représentation non managée d'une classe ou structure. |
GuidAttribute |
Fournit un Guid explicite quand un GUID automatique n’est pas souhaité. |
HandleCollector |
Effectue le suivi des handles en attente et force un garbage collection quand le seuil spécifié est atteint. |
IDispatchImplAttribute |
Indique l'implémentation |
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 dans une bibliothèque de types à l'origine. |
InAttribute |
Indique que les données doivent être marshalées de l'appelant vers l'appelé, mais pas de nouveau vers l'appelant. |
InterfaceTypeAttribute |
Indique si une interface managée est double, de dispatch uniquement ou |
InvalidComObjectException |
Exception levée lorsqu'un objet COM non valide est utilisé. |
InvalidOleVariantTypeException |
Exception levée par le marshaleur quand il rencontre un argument dont le type de variante ne peut pas être marshalé en code managé. |
LCIDConversionAttribute |
Indique que la signature non managée d'une méthode attend un paramètre LCID (Locale Identifier, identificateur de paramètres régionaux). |
LibraryImportAttribute |
Indique qu’un générateur source doit créer une fonction pour marshaler les arguments au lieu de s’appuyer sur le runtime pour générer une fonction de marshaling équivalente au moment de l’exécution. |
ManagedToNativeComInteropStubAttribute |
Prend en charge la personnalisation par l'utilisateur des stubs d'interopérabilité dans les scénarios COM Interop managés. |
Marshal |
Fournit 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é. |
MarshalAsAttribute |
Indique comment marshaler les données entre du code managé et du code non managé. |
MarshalDirectiveException |
Exception qui est levée par le marshaleur quand il rencontre un MarshalAsAttribute qu'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 depuis l'appelé vers l'appelant. |
PosixSignalContext |
Fournit des données pour un PosixSignalRegistration événement. |
PosixSignalRegistration |
Gère un PosixSignal. |
PreserveSigAttribute |
Indique que la transformation de signature HRESULT qui a lieu pendant les appels d’interopérabilité COM doit être supprimée. |
PrimaryInteropAssemblyAttribute |
Indique que l'assembly avec attributs est un assembly PIA (Primary Interop Assembly). |
ProgIdAttribute |
Permet à l'utilisateur de spécifier le ProgID d'une classe. |
RegistrationServices |
Fournit un ensemble de services pour inscrire et désinscrire des assemblys managés à utiliser dans COM. |
RuntimeEnvironment |
Fournit une collection de méthodes |
RuntimeInformation |
Fournit des informations sur l’installation du runtime .NET. |
SafeArrayRankMismatchException |
Exception levée lorsque le rang d'un |
SafeArrayTypeMismatchException |
Exception levée lorsque le type du |
SafeBuffer |
Fournit une mémoire tampon contrôlée qui peut être utilisée pour la lecture et l'écriture. Toute tentative d'accès à la mémoire en dehors de la mémoire tampon contrôlée (sous-utilisation et dépassement) entraîne la levée d'exceptions. |
SafeHandle |
Représente une classe wrapper pour des handles de système d'exploitation. Cette classe doit être héritée. |
SEHException |
Représente des erreurs SEH (Structured Exception Handling). |
SequenceMarshal |
Fournit une collection de méthodes pour l’interopérabilité avec ReadOnlySequence<T>. |
SetWin32ContextInIDispatchAttribute |
Cet attribut est déprécié. |
StandardOleMarshalObject |
Remplace le marshaleur libre de threads (FTM) standard du Common Language Runtime par le marshaleur STA OLE standard. |
StructLayoutAttribute |
Vous 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ée 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 importés à l'origine pour cette méthode à partir de la bibliothèque de types COM. |
TypeLibImportClassAttribute |
Spécifie le Type qui utilise une interface en mode exclusif. Cette classe ne peut pas être héritée. |
TypeLibTypeAttribute |
Contient les TYPEFLAGS importés à l’origine pour ce type depuis la bibliothèque de types COM. |
TypeLibVarAttribute |
Contient les VARFLAGS importés à 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 des objets que le marshaleur doit marshaler comme |
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 directement appelée à partir du code natif. Le jeton de fonction peut être chargé dans une variable locale à l’aide de l’opérateur C# address-of et passé comme rappel à une méthode native. |
UnmanagedFunctionPointerAttribute |
Contrôle le comportement de marshaling d'une signature de délégué passée comme pointeur de fonction non managée vers ou depuis du code non managé. Cette classe ne peut pas être héritée. |
VariantWrapper |
Marshale des données de type |
WasmImportLinkageAttribute |
Fournit un large éventail de membres qui prennent en charge COM Interop et les services d'appel de code non managé. Si vous n’êtes pas familiarisé avec ces services, consultez Interopération avec du code non managé. |
Structures
ArrayWithOffset |
Encapsule un tableau et un offset dans le tableau spécifié. |
BIND_OPTS |
Utilisez BIND_OPTS à la place. |
BINDPTR |
Utilisez BINDPTR à la place. |
CLong |
CLong est un type de valeur immuable qui représente le |
ComWrappers.ComInterfaceDispatch |
Interface binaire d’application pour la répartition de fonctions d’une interface COM. |
ComWrappers.ComInterfaceEntry |
Type d’interface et pointeur vers le VTable ciblé. |
CONNECTDATA |
Utilisez CONNECTDATA à la place. |
CULong |
CULong est un type de valeur immuable qui représente le |
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 d'une mémoire non managée. |
HandleRef |
Inclut dans un wrapper un objet managé contenant un handle vers une ressource transmise au code non managé à l’aide de l’appel de code non managé. |
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 au niveau de la limite managée/non managée pour représenter avec précision dans le code managé les API non managées qui utilisent un alias de |
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 |
Permet aux clients d’accéder à l’objet réel, plutôt qu’à l’objet adaptateur fourni par un marshaleur personnalisé. |
ICustomFactory |
Permet aux utilisateurs d'écrire un code d'activation pour des objets managés qui étendent MarshalByRefObject. |
ICustomMarshaler |
Fournit des wrappers personnalisés permettant de gérer les appels de méthodes. |
ICustomQueryInterface |
Permet aux développeurs de fournir une implémentation managée et personnalisée de la méthode IUnknown::QueryInterface(REFIID riid, void **ppvObject). |
IDynamicInterfaceCastable |
Interface utilisée pour participer à un échec de conversion de type. |
IRegistrationServices |
Fournit un ensemble de services pour inscrire et désinscrire des assemblys managés à utiliser dans COM. |
ITypeLibConverter |
Fournit un ensemble de services qui convertissent un assembly managé en bibliothèque de types COM, et inversement. |
ITypeLibExporterNameProvider |
Assure un contrôle sur la casse de noms lors de l'exportation dans une bibliothèque de types. |
ITypeLibExporterNotifySink |
Fournit 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. |
ITypeLibImporterNotifySink |
Fournit 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. |
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 de processeur. |
AssemblyRegistrationFlags |
Définit un jeu d'indicateurs utilisés lors de l'inscription d'assemblys. |
CALLCONV |
Utilisez CALLCONV à la place. |
CallingConvention |
Spécifie la convention d’appel nécessaire pour appeler des 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 qui est 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 les indicateurs de la méthode GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags). |
CreateObjectFlags |
Spécifie les indicateurs de 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 les DLL qui fournissent des fonctions pour les appels de plateforme. |
ExporterEventKind |
Décrit les rappels qu’effectue l’exportateur de bibliothèques de types à l’occasion 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 GCHandle type peut allouer. |
IDispatchImplType |
Indique l’implémentation de |
IDLFLAG |
Utilisez IDLFLAG à la place. |
IMPLTYPEFLAGS |
Utilisez IMPLTYPEFLAGS à la place. |
ImporterEventKind |
Dé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. |
INVOKEKIND |
Utilisez INVOKEKIND à la place. |
LayoutKind |
Contrôle la disposition d'un objet 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 le jeu de contextes d'exécution dans lequel un objet de classe sera rendu disponible 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 p/invokes 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 produite. |
TypeLibFuncFlags |
Décrit les paramètres d'origine de |
TypeLibImporterFlags |
Indique comment un assembly doit être produit. |
TypeLibTypeFlags |
Dé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é. |
TypeLibVarFlags |
Décrit les paramètres d’origine de VARFLAGS dans la bibliothèque de types COM d’où cette variable a été importée. |
UnmanagedType |
Indique comment marshaler les paramètres ou les champs en code non managé. |
VarEnum |
Indique comment marshaler les éléments de tableau lorsqu'un tableau est marshalé de code managé en code non managé sous la forme de SafeArray. |
VARFLAGS |
Utilisez VARFLAGS à la place. |
Délégués
DllImportResolver |
Fournit un délégué utilisé pour résoudre des bibliothèques natives via un 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 l’organisation des structures ou la représentation 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 la façon dont les données sont marshalées entre la mémoire managée et la mémoire non managée.
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour