Marshal Classe

Définition

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é.

public ref class Marshal abstract sealed
public ref class Marshal sealed
public static class Marshal
public sealed class Marshal
type Marshal = class
Public Class Marshal
Public NotInheritable Class Marshal
Héritage
Marshal

Exemples

L’exemple suivant montre comment utiliser différentes méthodes définies par la Marshal classe .

using namespace System;
using namespace System::Runtime::InteropServices;

public value struct Point
{
public:
    property int X;
    property int Y;
};
extern bool CloseHandle(IntPtr h);

int main()
{
    // Demonstrate the use of public static fields of the Marshal
    // class.
    Console::WriteLine(
        "SystemDefaultCharSize={0},SystemMaxDBCSCharSize={1}",
        Marshal::SystemDefaultCharSize,
        Marshal::SystemMaxDBCSCharSize);

    // Demonstrate the use of the SizeOf method of the Marshal
    // class.
    Console::WriteLine("Number of bytes needed by a Point object: {0}",
        Marshal::SizeOf(Point::typeid));
    Point point;
    Console::WriteLine("Number of bytes needed by a Point object: {0}",
        Marshal::SizeOf(point));

    // Demonstrate how to call GlobalAlloc and 
    // GlobalFree using the Marshal class.
    IntPtr hglobal = Marshal::AllocHGlobal(100);
    Marshal::FreeHGlobal(hglobal);

    // Demonstrate how to use the Marshal class to get the Win32
    // error code when a Win32 method fails.
    bool isCloseHandleSuccess = CloseHandle(IntPtr(-1));
    if (!isCloseHandleSuccess)
    {
        Console::WriteLine(
            "CloseHandle call failed with an error code of: {0}",
            Marshal::GetLastWin32Error());
    }
};

// This is a platform invoke prototype. SetLastError is true,
// which allows the GetLastWin32Error method of the Marshal class
// to work correctly.    
[DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
extern bool CloseHandle(IntPtr h);

// This code produces the following output.
// 
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// Number of bytes needed by a Point object: 8
// Number of bytes needed by a Point object: 8
// CloseHandle call failed with an error code of: 6
using System;
using System.Text;
using System.Runtime.InteropServices;

public struct Point
{
    public Int32 x, y;
}

public sealed class App
{
    static void Main()
    {
        // Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}",
            Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize);

        // Demonstrate the use of the SizeOf method of the Marshal class.
        Console.WriteLine("Number of bytes needed by a Point object: {0}",
            Marshal.SizeOf(typeof(Point)));
        Point p = new Point();
        Console.WriteLine("Number of bytes needed by a Point object: {0}",
            Marshal.SizeOf(p));

        // Demonstrate how to call GlobalAlloc and
        // GlobalFree using the Marshal class.
        IntPtr hglobal = Marshal.AllocHGlobal(100);
        Marshal.FreeHGlobal(hglobal);

        // Demonstrate how to use the Marshal class to get the Win32 error
        // code when a Win32 method fails.
        Boolean f = CloseHandle(new IntPtr(-1));
        if (!f)
        {
            Console.WriteLine("CloseHandle call failed with an error code of: {0}",
                Marshal.GetLastWin32Error());
        }
    }

    // This is a platform invoke prototype. SetLastError is true, which allows
    // the GetLastWin32Error method of the Marshal class to work correctly.
    [DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
    static extern Boolean CloseHandle(IntPtr h);
}

// This code produces the following output.
//
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// Number of bytes needed by a Point object: 8
// Number of bytes needed by a Point object: 8
// CloseHandle call failed with an error code of: 6
Imports System.Text
Imports System.Runtime.InteropServices
Imports System.Security.Permissions



Public Structure Point
    Public x, y As Int32
End Structure



Public NotInheritable Class App

    <SecurityPermission(SecurityAction.LinkDemand, Unrestricted:=True)> _
    Shared Sub Main()
        ' Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}", Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize)
        ' Demonstrate the use of the SizeOf method of the Marshal class.
        Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(GetType(Point)))
        Dim p As New Point()
        Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(p))
        ' Demonstrate how to call GlobalAlloc and 
        ' GlobalFree using the Marshal class.
        Dim hglobal As IntPtr = Marshal.AllocHGlobal(100)
        Marshal.FreeHGlobal(hglobal)
        ' Demonstrate how to use the Marshal class to get the Win32 error 
        ' code when a Win32 method fails.
        Dim f As [Boolean] = CloseHandle(New IntPtr(-1))
        If Not f Then
            Console.WriteLine("CloseHandle call failed with an error code of: {0}", Marshal.GetLastWin32Error())
        End If

    End Sub


    ' This is a platform invoke prototype. SetLastError is true, which allows 
    ' the GetLastWin32Error method of the Marshal class to work correctly.    
    <DllImport("Kernel32", ExactSpelling:=True, SetLastError:=True)> _
    Shared Function CloseHandle(ByVal h As IntPtr) As [Boolean]

    End Function
End Class


' This code produces the following output.
' 
' SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
' Number of bytes needed by a Point object: 8
' Number of bytes needed by a Point object: 8
' CloseHandle call failed with an error code of: 6

Remarques

Les static méthodes définies sur la Marshal classe sont essentielles pour travailler avec du code non managé. La plupart des méthodes définies dans cette classe sont généralement utilisées par les développeurs qui souhaitent fournir un pont entre les modèles de programmation managés et non managés. Par exemple, la StringToHGlobalAnsi méthode copie des caractères ANSI d’une chaîne spécifiée (dans le tas managé) vers une mémoire tampon dans le tas non managé. Il alloue également le tas cible de la taille appropriée.

Le Common Language Runtime fournit des fonctionnalités de marshaling spécifiques. Pour plus d’informations sur le comportement de marshaling, consultez Marshaling d’interopérabilité.

Les Read méthodes et Write de la Marshal classe prennent en charge l’accès aligné et non aligné.

Champs

SystemDefaultCharSize

Représente la taille de caractère par défaut dans le système ; il s'agit de la valeur 2 pour les systèmes Unicode et de la valeur 1 pour les systèmes ANSI. Ce champ est en lecture seule.

SystemMaxDBCSCharSize

Représente la taille maximale, en octets, d'un jeu de caractères à deux octets (DBSC) pour le système d'exploitation actuel. Ce champ est en lecture seule.

Méthodes

AddRef(IntPtr)

Incrémente le décompte de références sur l'interface spécifiée.

AllocCoTaskMem(Int32)

Alloue un bloc de mémoire de la taille spécifiée à partir de l'allocateur de mémoire de tâche COM.

AllocHGlobal(Int32)

Alloue de la mémoire à partir de la mémoire non managée du processus à l'aide du nombre d'octets spécifié.

AllocHGlobal(IntPtr)

Alloue de la mémoire à partir de la mémoire non managée du processus à l'aide du pointeur vers le nombre d'octets spécifié.

AreComObjectsAvailableForCleanup()

Indique si des wrappers RCW (Runtime Callable Wrapper) d'un contexte quelconque sont disponibles pour le nettoyage.

BindToMoniker(String)

Obtient un pointeur d'interface identifié par le moniker spécifié.

ChangeWrapperHandleStrength(Object, Boolean)

Modifie la force du handle CCW (COM Callable Wrapper) d’un objet.

CleanupUnusedObjectsInCurrentContext()

Avertit le runtime de nettoyer tous les wrappers d’appel d’exécution (RCW) alloués dans le contexte actuel.

Copy(Byte[], Int32, IntPtr, Int32)

Copie des données d'un tableau d'entiers 8 bits non signés managé et unidimensionnel vers un pointeur mémoire non managé.

Copy(Char[], Int32, IntPtr, Int32)

Copie des données d'un tableau de caractères managé et unidimensionnel vers un pointeur mémoire non managé.

Copy(Double[], Int32, IntPtr, Int32)

Copie des données d'un tableau de nombres à virgule flottante double précision managé et unidimensionnel vers un pointeur mémoire non managé.

Copy(Int16[], Int32, IntPtr, Int32)

Copie des données à partir d'un tableau d'entiers 16 bits signés managé et unidimensionnel vers un pointeur mémoire non managé.

Copy(Int32[], Int32, IntPtr, Int32)

Copie des données à partir d'un tableau d'entiers 32 bits signés managé et unidimensionnel vers un pointeur mémoire non managé.

Copy(Int64[], Int32, IntPtr, Int32)

Copie des données à partir d'un tableau d'entiers 64 bits signés managé et unidimensionnel vers un pointeur mémoire non managé.

Copy(IntPtr, Byte[], Int32, Int32)

Copie des données d'un pointeur mémoire non managé dans un tableau d'entiers 8 bits non signés managé.

Copy(IntPtr, Char[], Int32, Int32)

Copie des données d'un pointeur mémoire non managé dans un tableau de caractères managé.

Copy(IntPtr, Double[], Int32, Int32)

Copie des données d'un pointeur mémoire non managé dans un tableau de nombres à virgule flottante double précision managé.

Copy(IntPtr, Int16[], Int32, Int32)

Copie des données à partir d'un pointeur mémoire non managé vers un tableau d'entiers 16 bits signés managé.

Copy(IntPtr, Int32[], Int32, Int32)

Copie des données à partir d'un pointeur mémoire non managé vers un tableau d'entiers 32 bits signés managé.

Copy(IntPtr, Int64[], Int32, Int32)

Copie des données à partir d'un pointeur mémoire non managé vers un tableau d'entiers 64 bits signés managé.

Copy(IntPtr, IntPtr[], Int32, Int32)

Copie des données d’un pointeur mémoire non managé dans un tableau de IntPtr managé.

Copy(IntPtr, Single[], Int32, Int32)

Copie des données d'un pointeur mémoire non managé dans un tableau de nombres à virgule flottante simple précision managé.

Copy(IntPtr[], Int32, IntPtr, Int32)

Copie des données d’un tableau de IntPtr managé et unidimensionnel vers un pointeur mémoire non managé.

Copy(Single[], Int32, IntPtr, Int32)

Copie des données d'un tableau de nombres à virgule flottante simple précision managé et unidimensionnel vers un pointeur mémoire non managé.

CreateAggregatedObject(IntPtr, Object)
Obsolète.

Agrège un objet managé avec l'objet COM spécifié.

CreateAggregatedObject<T>(IntPtr, T)

Agrège un objet managé du type spécifié avec l'objet COM spécifié.

CreateWrapperOfType(Object, Type)
Obsolète.

Encapsule l'objet COM spécifié dans un objet du type spécifié.

CreateWrapperOfType<T,TWrapper>(T)

Encapsule l'objet COM spécifié dans un objet du type spécifié.

DestroyStructure(IntPtr, Type)
Obsolète.

Libère toutes les sous-structures vers lesquelles pointe le bloc de mémoire non managée spécifié.

DestroyStructure<T>(IntPtr)

Libère toutes les sous-structures d'un type spécifié vers lesquelles pointe le bloc de mémoire non managé spécifié.

FinalReleaseComObject(Object)

Libère toutes les références à un wrapper RCW (Runtime Callable Wrapper) en affectant la valeur 0 à son décompte de références.

FreeBSTR(IntPtr)

Libère un BSTR à l’aide de la fonction COM SysFreeString.

FreeCoTaskMem(IntPtr)

Libère un bloc de mémoire alloué par l'allocateur de mémoire de tâche COM non managé.

FreeHGlobal(IntPtr)

Libère la mémoire précédemment allouée de la mémoire non managée du processus.

GenerateGuidForType(Type)

Retourne le GUID (identificateur global unique) du type spécifié, ou génère un GUID en utilisant l'algorithme employé par l'exportateur de bibliothèques de types (TlbExp.exe).

GenerateProgIdForType(Type)

Retourne un ProgID (identificateur programmatique) pour le type spécifié.

GetActiveObject(String)

Obtient une instance en cours d'exécution de l'objet spécifié à partir de la table ROT (Running Object Table).

GetComInterfaceForObject(Object, Type)
Obsolète.

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée de l’objet spécifié. L'accès à l'interface de requête personnalisée est activé par défaut.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Obsolète.

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée de l’objet spécifié. L'accès à l'interface de requête personnalisée est contrôlé par le mode de personnalisation spécifié.

GetComInterfaceForObject<T,TInterface>(T)

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée d’un objet du type spécifié. L'accès à l'interface de requête personnalisée est activé par défaut.

GetComInterfaceForObjectInContext(Object, Type)

Retourne un pointeur d'interface qui représente l'interface spécifiée pour un objet, si l'appelant est dans le même contexte que cet objet.

GetComObjectData(Object, Object)

Récupère des données référencées par la clé spécifiée à partir de l'objet COM spécifié.

GetComSlotForMethodInfo(MemberInfo)

Récupère l'emplacement de la table de fonctions virtuelles (v-table ou VTBL) pour le type MemberInfo spécifié lorsque ce type est exposé à COM.

GetDelegateForFunctionPointer(IntPtr, Type)
Obsolète.

Convertit un pointeur fonction non managé en un délégué.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Convertit un pointeur fonction non managé en un délégué d'un type spécifié.

GetEndComSlot(Type)

Récupère le dernier emplacement dans la table de fonctions virtuelles (v-table ou VTBL) d'un type en cas d'exposition à COM.

GetExceptionCode()
Obsolète.

Récupère un code qui identifie le type de l'exception qui s'est produite.

GetExceptionForHR(Int32)

Convertit le code d’erreur HRESULT spécifié en objet Exception correspondant.

GetExceptionForHR(Int32, IntPtr)

Convertit le code d’erreur HRESULT spécifié en objet Exception correspondant, avec des informations supplémentaires sur l’erreur passées dans une interface IErrorInfo pour l’objet exception.

GetExceptionPointers()

Récupère une description indépendante de l'ordinateur d'une exception, ainsi que des informations sur l'état de l'ordinateur qui existait pour le thread lorsque l'exception s'est produite.

GetFunctionPointerForDelegate(Delegate)
Obsolète.

Convertit un délégué en pointeur fonction pouvant être appelé à partir du code non managé.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Convertit un délégué d'un type spécifié en pointeur fonction pouvant être appelé à partir du code non managé.

GetHINSTANCE(Module)

Retourne le handle d'instance (HINSTANCE) pour le module spécifié.

GetHRForException(Exception)

Convertit l'exception spécifiée en HRESULT.

GetHRForLastWin32Error()

Retourne le HRESULT correspondant à la dernière erreur provoquée par du code Win32 exécuté en utilisant Marshal.

GetIDispatchForObject(Object)

Retourne une interface IDispatch à partir d’un objet managé.

GetIDispatchForObjectInContext(Object)

Retourne un pointeur d’interface IDispatch à partir d’un objet managé, si l’appelant est dans le même contexte que cet objet.

GetITypeInfoForType(Type)

Retourne une interface ITypeInfo à partir d'un type managé.

GetIUnknownForObject(Object)

Retourne une interface IUnknown à partir d’un objet managé.

GetIUnknownForObjectInContext(Object)

Retourne une interface IUnknown à partir d’un objet managé, si l’appelant est dans le même contexte que cet objet.

GetLastPInvokeError()

Obtenez l’erreur d’appel de la dernière plateforme sur le thread actuel.

GetLastPInvokeErrorMessage()

Obtient le message d’erreur système pour le dernier code d’erreur PInvoke.

GetLastSystemError()

Obtient la dernière erreur système sur le thread actuel.

GetLastWin32Error()

Retourne le code d'erreur retourné par la dernière fonction non managée appelée en utilisant l'appel de code non managé dont l'indicateur SetLastError est activé.

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)
Obsolète.

Obtient un pointeur vers une fonction générée par runtime qui marshale un appel du code managé à du code non managé.

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

Récupère un objet MemberInfo pour l'emplacement de table de fonctions virtuelles (v-table ou VTBL) spécifié.

GetNativeVariantForObject(Object, IntPtr)
Obsolète.

Convertit un objet en COM VARIANT.

GetNativeVariantForObject<T>(T, IntPtr)
Obsolète.

Convertit un objet d’un type spécifié en COM VARIANT.

GetObjectForIUnknown(IntPtr)

Retourne une instance d’un type qui représente un objet COM par un pointeur vers son interface IUnknown.

GetObjectForNativeVariant(IntPtr)
Obsolète.

Convertit COM VARIANT en un objet.

GetObjectForNativeVariant<T>(IntPtr)
Obsolète.

Convertit COM VARIANT en un objet de type spécifié.

GetObjectsForNativeVariants(IntPtr, Int32)
Obsolète.

Convertit un tableau de VARIANT COM en un tableau d’objets.

GetObjectsForNativeVariants<T>(IntPtr, Int32)
Obsolète.

Convertit un tableau de COM VARIANT en un tableau d'un type spécifié.

GetPInvokeErrorMessage(Int32)

Obtient le message d’erreur système pour le code d’erreur fourni.

GetStartComSlot(Type)

Obtient le premier emplacement dans la table de fonctions virtuelles (v-table ou VTBL) contenant des méthodes définies par l'utilisateur.

GetThreadFromFiberCookie(Int32)
Obsolète.

Convertit un cookie fiber en l'instance de Thread correspondante.

GetTypedObjectForIUnknown(IntPtr, Type)

Retourne un objet managé d'un type spécifié qui représente un objet COM.

GetTypeForITypeInfo(IntPtr)

Convertit un objet ITypeInfo non managé en objet Type managé.

GetTypeFromCLSID(Guid)

Retourne le type associé à l'identificateur de classe (CLSID) spécifié.

GetTypeInfoName(ITypeInfo)

Récupère le nom du type représenté par un objet ITypeInfo.

GetTypeInfoName(UCOMITypeInfo)
Obsolète.

Récupère le nom du type représenté par un objet ITypeInfo.

GetTypeLibGuid(ITypeLib)

Récupère l'identificateur de bibliothèque (LIBID) d'une bibliothèque de types.

GetTypeLibGuid(UCOMITypeLib)
Obsolète.

Récupère l'identificateur de bibliothèque (LIBID) d'une bibliothèque de types.

GetTypeLibGuidForAssembly(Assembly)

Récupère l'identificateur de bibliothèque (LIBID) qui est assigné à une bibliothèque de types lors de son exportation à partir de l'assembly spécifié.

GetTypeLibLcid(ITypeLib)

Récupère le LCID d'une bibliothèque de types.

GetTypeLibLcid(UCOMITypeLib)
Obsolète.

Récupère le LCID d'une bibliothèque de types.

GetTypeLibName(ITypeLib)

Récupère le nom d'une bibliothèque de types.

GetTypeLibName(UCOMITypeLib)
Obsolète.

Récupère le nom d'une bibliothèque de types.

GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

Récupère le numéro de version d'une bibliothèque de types qui sera exportée à partir de l'assembly spécifié.

GetUniqueObjectForIUnknown(IntPtr)

Crée un objet de wrapper RCW (Runtime Callable Wrapper) unique pour une interface IUnknown donnée.

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)
Obsolète.

Obtient un pointeur vers une fonction générée par runtime qui marshale un appel du code non managé à du code managé.

InitHandle(SafeHandle, IntPtr)

Initialise le handle sous-jacent d’un nouvellement créé SafeHandle à la valeur fournie.

IsComObject(Object)

Indique si un objet spécifié représente un objet COM.

IsTypeVisibleFromCom(Type)

Indique si un type est visible par les clients COM.

NumParamBytes(MethodInfo)

Calcule le nombre d'octets en mémoire non managée qui sont nécessaires pour recevoir les paramètres de la méthode spécifiée.

OffsetOf(Type, String)
Obsolète.

Retourne l'offset de champ de la forme non managée de la classe managée.

OffsetOf<T>(String)

Retourne l'offset de champ de la forme non managée d'une classe managée spécifiée.

Prelink(MethodInfo)

Exécute les tâches de configuration de méthode effectuées une seule fois sans appeler la méthode.

PrelinkAll(Type)

Exécute un contrôle avant l'édition des liens pour toutes les méthodes sur une classe.

PtrToStringAnsi(IntPtr)

Copie tous les caractères jusqu’au premier caractère NULL d’une chaîne ANSI ou UTF-8 non managée dans un objet String managé et élargit chaque caractère au format UTF-16.

PtrToStringAnsi(IntPtr, Int32)

Alloue un objet String managé, y copie un nombre spécifié de caractères d'une chaîne ANSI ou UTF-8 non managée et élargit chaque caractère au format UTF-16.

PtrToStringAuto(IntPtr)

Alloue un objet String managé et copie tous les caractères - jusqu'au premier caractère null - d'une chaîne stockée dans de la mémoire non managée dans cet objet.

PtrToStringAuto(IntPtr, Int32)

Alloue un String managé afin d'y copier le nombre spécifié de caractères d'une chaîne stockée dans la mémoire non managée.

PtrToStringBSTR(IntPtr)

Alloue un String managé pour y copier une chaîne binaire (BSTR) dans la mémoire non managée.

PtrToStringUni(IntPtr)

Alloue un objet String managé et copie tous les caractères - jusqu'au premier caractère null - d'une chaîne Unicode non managée dans cet objet.

PtrToStringUni(IntPtr, Int32)

Alloue un objet String managé et copie un nombre spécifié de caractères d'une chaîne Unicode non managée dans cet objet.

PtrToStringUTF8(IntPtr)

Alloue un objet String managé et copie tous les caractères - jusqu'au premier caractère null d’une chaîne UTF-8 non managée dans cet objet.

PtrToStringUTF8(IntPtr, Int32)

Alloue un objet String managé et y copie un nombre spécifié d’octets d’une chaîne UTF8 non managée.

PtrToStructure(IntPtr, Object)
Obsolète.

Marshale les données d'un bloc de mémoire non managée dans un objet managé.

PtrToStructure(IntPtr, Type)
Obsolète.

Marshale, dans un nouvel objet managé alloué du type spécifié, les données d'un bloc de mémoire non managée.

PtrToStructure<T>(IntPtr)

Marshale, dans un nouvel objet managé alloué du type spécifié par un paramètre de type générique, les données d'un bloc de mémoire non managée.

PtrToStructure<T>(IntPtr, T)

Marshale les données d'un bloc de mémoire non managée dans un objet managé d'un type spécifié.

QueryInterface(IntPtr, Guid, IntPtr)

Demande un pointeur vers une interface spécifiée à partir d'un objet COM.

ReadByte(IntPtr)

Lit un octet unique à partir de la mémoire non managée.

ReadByte(IntPtr, Int32)

Lit un seul octet à un offset (ou index) donné dans la mémoire managée.

ReadByte(Object, Int32)
Obsolète.

Lit un seul octet à un offset (ou index) donné dans la mémoire managée.

ReadInt16(IntPtr)

Lit un entier 16 bits signé à partir de la mémoire non managée.

ReadInt16(IntPtr, Int32)

Lit un entier signé 16 bits à un offset donné dans la mémoire non managée.

ReadInt16(Object, Int32)
Obsolète.

Lit un entier signé 16 bits à un offset donné dans la mémoire non managée.

ReadInt32(IntPtr)

Lit un entier 32 bits signé à partir de la mémoire non managée.

ReadInt32(IntPtr, Int32)

Lit un entier signé 32 bits à un offset donné dans la mémoire non managée.

ReadInt32(Object, Int32)
Obsolète.

Lit un entier signé 32 bits à un offset donné dans la mémoire non managée.

ReadInt64(IntPtr)

Lit un entier 64 bits signé à partir de la mémoire non managée.

ReadInt64(IntPtr, Int32)

Lit un entier signé 64 bits à un offset donné dans la mémoire non managée.

ReadInt64(Object, Int32)
Obsolète.

Lit un entier signé 64 bits à un offset donné dans la mémoire non managée.

ReadIntPtr(IntPtr)

Lit un entier natif dimensionné par processeur dans la mémoire non managée.

ReadIntPtr(IntPtr, Int32)

Lit un entier natif dimensionné par processeur à un offset donné dans la mémoire non managée.

ReadIntPtr(Object, Int32)
Obsolète.

Lit un entier natif dimensionné par processeur à partir de la mémoire non managée.

ReAllocCoTaskMem(IntPtr, Int32)

Redimensionne un bloc de mémoire précédemment alloué avec AllocCoTaskMem(Int32).

ReAllocHGlobal(IntPtr, IntPtr)

Redimensionne un bloc de mémoire précédemment alloué avec AllocHGlobal(IntPtr).

Release(IntPtr)

Décrémente le décompte de références sur l'interface spécifiée.

ReleaseComObject(Object)

Décrémente le décompte de références du wrapper RCW (Runtime Callable Wrapper) associé à l’objet COM indiqué.

ReleaseThreadCache()
Obsolète.

Libère le cache de thread.

SecureStringToBSTR(SecureString)

Alloue une chaîne binaire (BSTR) non managée et y copie le contenu d’un objet SecureString managé.

SecureStringToCoTaskMemAnsi(SecureString)

Copie le contenu d’un objet SecureString managé dans un bloc de mémoire alloué à partir de l’allocateur de tâche COM non managé.

SecureStringToCoTaskMemUnicode(SecureString)

Copie le contenu d’un objet SecureString managé dans un bloc de mémoire alloué à partir de l’allocateur de tâche COM non managé.

SecureStringToGlobalAllocAnsi(SecureString)

Copie le contenu d’un objet SecureString managé dans la mémoire non managée, avec conversion au format ANSI pendant la copie.

SecureStringToGlobalAllocUnicode(SecureString)

Copie le contenu d’un objet SecureString managé dans la mémoire non managée.

SetComObjectData(Object, Object, Object)

Définit des données référencées par la clé spécifiée dans l'objet COM spécifié.

SetLastPInvokeError(Int32)

Définit l’erreur d’appel de la dernière plateforme sur le thread actuel.

SetLastSystemError(Int32)

Définit la dernière erreur système sur le thread actuel.

SizeOf(Object)
Obsolète.

Retourne la taille non managée d'un objet en octets.

SizeOf(Type)
Obsolète.

Retourne la taille d'un type non managé en octets.

SizeOf<T>()

Retourne la taille d'un type non managé en octets.

SizeOf<T>(T)

Retourne la taille non managée en octets d'un objet d'un type spécifié.

StringToBSTR(String)

Alloue une chaîne BSTR pour y copier le contenu d’un String managé.

StringToCoTaskMemAnsi(String)

Copie le contenu d'un String managé dans un bloc de mémoire alloué à partir de l'allocateur de tâche COM non managé.

StringToCoTaskMemAuto(String)

Copie le contenu d'un String managé dans un bloc de mémoire alloué à partir de l'allocateur de tâche COM non managé.

StringToCoTaskMemUni(String)

Copie le contenu d'un String managé dans un bloc de mémoire alloué à partir de l'allocateur de tâche COM non managé.

StringToCoTaskMemUTF8(String)

Copie le contenu d'un String managé dans un bloc de mémoire alloué à partir de l'allocateur de tâche COM non managé.

StringToHGlobalAnsi(String)

Copie le contenu d’un objet String managé dans la mémoire non managée, avec conversion au format ANSI pendant la copie.

StringToHGlobalAuto(String)

Copie le contenu d'un objet String managé dans la mémoire non managée, avec conversion au format ANSI le cas échéant.

StringToHGlobalUni(String)

Copie le contenu d'un objet String managé dans la mémoire non managée.

StructureToPtr(Object, IntPtr, Boolean)
Obsolète.

Marshale les données d’un objet managé dans un bloc de mémoire non managée.

StructureToPtr<T>(T, IntPtr, Boolean)

Marshale les données d'un objet managé d'un type spécifié dans un bloc de mémoire non managée.

ThrowExceptionForHR(Int32)

Lève une exception avec une valeur HRESULT d'échec spécifique.

ThrowExceptionForHR(Int32, IntPtr)

Lève une exception avec un HRESULT d’échec spécifique, en fonction de l’interface IErrorInfo spécifiée.

UnsafeAddrOfPinnedArrayElement(Array, Int32)
Obsolète.

Obtient l'adresse de l'élément à l'index spécifié dans le tableau spécifié.

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

Obtient l'adresse de l'élément à l'index spécifié dans un tableau du type spécifié.

WriteByte(IntPtr, Byte)

Écrit une valeur d'octet unique dans la mémoire non managée.

WriteByte(IntPtr, Int32, Byte)

Écrit une valeur d'octet unique dans la mémoire non managée à l'offset spécifié.

WriteByte(Object, Int32, Byte)
Obsolète.

Écrit une valeur d'octet unique dans la mémoire non managée à l'offset spécifié.

WriteInt16(IntPtr, Char)

Écrit un caractère en tant que valeur entière 16 bits dans la mémoire non managée.

WriteInt16(IntPtr, Int16)

Écrit une valeur entière 16 bits dans la mémoire non managée.

WriteInt16(IntPtr, Int32, Char)

Écrit une valeur entière signée 16 bits dans la mémoire non managée à un offset spécifié.

WriteInt16(IntPtr, Int32, Int16)

Écrit une valeur entière signée 16 bits dans la mémoire non managée à l'offset spécifié.

WriteInt16(Object, Int32, Char)
Obsolète.

Écrit une valeur entière signée 16 bits dans la mémoire non managée à un offset spécifié.

WriteInt16(Object, Int32, Int16)
Obsolète.

Écrit une valeur entière signée 16 bits dans la mémoire non managée à un offset spécifié.

WriteInt32(IntPtr, Int32)

Écrit une valeur d'entier 32 bits signé dans la mémoire non managée.

WriteInt32(IntPtr, Int32, Int32)

Écrit une valeur entière signée 32 bits dans la mémoire non managée à l'offset spécifié.

WriteInt32(Object, Int32, Int32)
Obsolète.

Écrit une valeur entière signée 32 bits dans la mémoire non managée à un offset spécifié.

WriteInt64(IntPtr, Int32, Int64)

Écrit une valeur entière signée 64 bits dans la mémoire non managée à un offset spécifié.

WriteInt64(IntPtr, Int64)

Écrit une valeur d'entier 64 bits signé dans la mémoire non managée.

WriteInt64(Object, Int32, Int64)
Obsolète.

Écrit une valeur entière signée 64 bits dans la mémoire non managée à un offset spécifié.

WriteIntPtr(IntPtr, Int32, IntPtr)

Écrit une valeur entière native dimensionnée par processeur dans la mémoire non managée à l'offset spécifié.

WriteIntPtr(IntPtr, IntPtr)

Écrit une valeur entière native dimensionnée par processeur dans la mémoire non managée.

WriteIntPtr(Object, Int32, IntPtr)
Obsolète.

Écrit une valeur entière native dimensionnée par processeur dans la mémoire non managée.

ZeroFreeBSTR(IntPtr)

Libère un pointeur BSTR qui a été alloué à l’aide de la méthode SecureStringToBSTR(SecureString).

ZeroFreeCoTaskMemAnsi(IntPtr)

Libère un pointeur de chaîne non managé qui a été alloué à l'aide de la méthode SecureStringToCoTaskMemAnsi(SecureString).

ZeroFreeCoTaskMemUnicode(IntPtr)

Libère un pointeur de chaîne non managé qui a été alloué à l'aide de la méthode SecureStringToCoTaskMemUnicode(SecureString).

ZeroFreeCoTaskMemUTF8(IntPtr)

Libère un pointeur de chaîne non managé qui a été alloué à l'aide de la méthode StringToCoTaskMemUTF8(String).

ZeroFreeGlobalAllocAnsi(IntPtr)

Libère un pointeur de chaîne non managé qui a été alloué à l'aide de la méthode SecureStringToGlobalAllocAnsi(SecureString).

ZeroFreeGlobalAllocUnicode(IntPtr)

Libère un pointeur de chaîne non managé qui a été alloué à l'aide de la méthode SecureStringToGlobalAllocUnicode(SecureString).

S’applique à