Marshal Classe

Définition

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

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 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
// 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 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
// 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 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
' CloseHandle call failed with an error code of: 6

Remarques

Les static méthodes définies sur la Marshal classe sont essentielles pour utiliser 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 les 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 Interop.

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

Champs

Nom Description
SystemDefaultCharSize

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

SystemMaxDBCSCharSize

Représente la taille maximale d’un jeu de caractères double octet (DBCS), en octets, pour le système d’exploitation actuel. Ce champ est en lecture seule.

Méthodes

Nom Description
AddRef(IntPtr)

Incrémente le nombre de références sur l’interface spécifiée.

AllocCoTaskMem(Int32)

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

AllocHGlobal(Int32)

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

AllocHGlobal(IntPtr)

Alloue de la mémoire non managée du processus en utilisant le pointeur vers le nombre spécifié d’octets.

AreComObjectsAvailableForCleanup()

Indique si des wrappers pouvant être appelé au runtime (RCWs) à partir de n’importe quel contexte 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 COM Callable Wrapper (CCW) d’un objet.

CleanupUnusedObjectsInCurrentContext()

Avertit le runtime de nettoyer tous les wrappers pouvant être appelé au runtime alloués dans le contexte actuel.

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

Copie les données d’un tableau entier non signé unidimensionnel managé 8 bits vers un pointeur de mémoire non managé.

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

Copie les données d’un tableau de caractères managés unidimensionnel vers un pointeur de mémoire non managé.

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

Copie les données d’un tableau de nombres à virgule flottante double précision managée unidimensionnel vers un pointeur de mémoire non managé.

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

Copie les données d’un tableau entier signé 16 bits managé à une dimension vers un pointeur de mémoire non managé.

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

Copie les données d’un tableau entier signé 32 bits managé unidimensionnel vers un pointeur de mémoire non managé.

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

Copie les données d’un tableau entier signé 64 bits managé unidimensionnel vers un pointeur de mémoire non managé.

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

Copie les données d’un pointeur de mémoire non managé vers un tableau entier non signé 8 bits managé.

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

Copie les données d’un pointeur de mémoire non managé vers un tableau de caractères managés.

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

Copie les données d’un pointeur de mémoire non managé vers un tableau de nombres à virgule flottante double précision managée.

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

Copie les données d’un pointeur de mémoire non managé vers un tableau entier signé 16 bits managé.

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

Copie les données d’un pointeur de mémoire non managé vers un tableau entier signé 32 bits managé.

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

Copie les données d’un pointeur de mémoire non managé vers un tableau entier signé 64 bits managé.

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

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

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

Copie les données d’un pointeur de mémoire non managé vers un tableau de nombres à virgule flottante simple précision managée.

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

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

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

Copie les données d’un tableau de nombres à virgule flottante unidimensionnelle managée à virgule flottante à une seule précision vers un pointeur de 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 laquelle pointe le bloc de mémoire non managé spécifié.

DestroyStructure<T>(IntPtr)

Libère toutes les sous-structures d’un type spécifié vers lequel 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 définissant son nombre de références sur 0.

FreeBSTR(IntPtr)

Libère une BSTR 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 à partir de la mémoire non managée du processus.

GenerateGuidForType(Type)

Retourne l’identificateur global unique (GUID) du type spécifié ou génère un GUID à l’aide de l’algorithme utilisé par l’exportateur de bibliothèque de types (Tlbexp.exe).

GenerateProgIdForType(Type)

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

GetActiveObject(String)

Obtient une instance en cours d’exécution de l’objet spécifié à partir de la table d’objets en cours d’exécution (ROT).

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

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée sur 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(Object, Type)
Obsolète.

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

GetComInterfaceForObject<T,TInterface>(T)

Retourne un pointeur vers une interface IUnknown qui représente l’interface spécifiée sur 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 se trouve dans le même contexte que cet objet.

GetComObjectData(Object, Object)

Récupère les 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 un type spécifié MemberInfo lorsque ce type est exposé à COM.

GetDelegateForFunctionPointer(IntPtr, Type)
Obsolète.

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

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

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

GetEndComSlot(Type)

Récupère le dernier emplacement de la table de fonctions virtuelles (v-table ou VTBL) d’un type lorsqu’il est exposé à COM.

GetExceptionCode()
Obsolète.

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

GetExceptionForHR(Int32, Guid, IntPtr)

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

GetExceptionForHR(Int32, IntPtr)

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

GetExceptionForHR(Int32)

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

GetExceptionPointers()

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

GetFunctionPointerForDelegate(Delegate)
Obsolète.

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

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Convertit un délégué d’un type spécifié en pointeur de 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 générée par le code Win32 exécuté à l’aide Marshalde .

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 se trouve dans le même contexte que cet objet.

GetITypeInfoForType(Type)

Retourne une ITypeInfo interface à 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 se trouve dans le même contexte que cet objet.

GetLastPInvokeError()

Obtenez la dernière erreur d’appel de 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 à l’aide de l’appel de plateforme dont l’indicateur SetLastError est défini.

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

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

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

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

GetNativeVariantForObject(Object, IntPtr)
Obsolète.

Convertit un objet en VARIANT COM.

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

Convertit un objet d’un type spécifié en type 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 un VARIANT COM en objet.

GetObjectForNativeVariant<T>(IntPtr)
Obsolète.

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

GetObjectsForNativeVariants(IntPtr, Int32)
Obsolète.

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

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

Convertit un tableau de VARIANT COM en 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 de la table de fonctions virtuelles (v-table ou VTBL) qui contient des méthodes définies par l’utilisateur.

GetThreadFromFiberCookie(Int32)
Obsolète.

Convertit un cookie fibre en l’instance correspondante Thread .

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

GetTypeFromCLSID(Guid)

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

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) affecté à une bibliothèque de types lorsqu’elle a été exportée à 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 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 le runtime qui marshale un appel d’un code managé vers du code managé.

InitHandle(SafeHandle, IntPtr)

Initialise le handle sous-jacent d’un élément 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 pour les clients COM.

NumParamBytes(MethodInfo)

Calcule le nombre d’octets dans la mémoire non managée requise pour contenir les paramètres de la méthode spécifiée.

OffsetOf(Type, String)
Obsolète.

Retourne le décalage de champ de la forme non managée de la classe managée.

OffsetOf<T>(String)

Retourne le décalage de champ de la forme non managée d’une classe managée spécifiée.

Prelink(MethodInfo)

Exécute des tâches de configuration de méthode ponctuelles sans appeler la méthode.

PrelinkAll(Type)

Effectue une vérification de pré-liaison pour toutes les méthodes d’une classe.

PtrToStringAnsi(IntPtr, Int32)

Alloue une chaîne ANSI ou UTF-8 non managée String, copie un nombre spécifié de caractères et étend chaque caractère à UTF-16.

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 une chaîne managée String, et élargit chaque caractère à UTF-16.

PtrToStringAuto(IntPtr, Int32)

Alloue un fichier managé String et copie le nombre spécifié de caractères d’une chaîne stockée dans une mémoire non managée.

PtrToStringAuto(IntPtr)

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

PtrToStringBSTR(IntPtr)

Alloue une chaîne binaire managée (BSTR) stockée dans une mémoire non managée.

PtrToStringUni(IntPtr, Int32)

Alloue un nombre de caractères managé String et copie un nombre spécifié de caractères d’une chaîne Unicode non managée dans celle-ci.

PtrToStringUni(IntPtr)

Alloue un caractère managé String et copie tous les caractères jusqu’au premier caractère Null d’une chaîne Unicode non managée.

PtrToStringUTF8(IntPtr, Int32)

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

PtrToStringUTF8(IntPtr)

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

PtrToStructure(IntPtr, Object)
Obsolète.

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

PtrToStructure(IntPtr, Type)
Obsolète.

Marshale les données d’un bloc de mémoire non managé vers un objet managé nouvellement alloué du type spécifié.

PtrToStructure<T>(IntPtr, T)

Marshale les données d’un bloc de mémoire non managé vers un objet managé du type spécifié.

PtrToStructure<T>(IntPtr)

Marshale les données d’un bloc de mémoire non managé vers un objet managé nouvellement alloué du type spécifié par un paramètre de type générique.

QueryInterface(IntPtr, Guid, IntPtr)

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

ReadByte(IntPtr, Int32)

Lit un octet unique à un décalage donné (ou index) de la mémoire non managée.

ReadByte(IntPtr)

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

ReadByte(Object, Int32)
Obsolète.

Lit un octet unique à un décalage donné (ou index) de la mémoire non managée.

ReadInt16(IntPtr, Int32)

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

ReadInt16(IntPtr)

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

ReadInt16(Object, Int32)
Obsolète.

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

ReadInt32(IntPtr, Int32)

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

ReadInt32(IntPtr)

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

ReadInt32(Object, Int32)
Obsolète.

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

ReadInt64(IntPtr, Int32)

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

ReadInt64(IntPtr)

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

ReadInt64(Object, Int32)
Obsolète.

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

ReadIntPtr(IntPtr, Int32)

Lit un entier de taille native du processeur à un décalage donné de la mémoire non managée.

ReadIntPtr(IntPtr)

Lit un entier de taille native du processeur à partir de la mémoire non managée.

ReadIntPtr(Object, Int32)
Obsolète.

Lit un entier de taille native du 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 nombre de références sur l’interface spécifiée.

ReleaseComObject(Object)

Décrémente le nombre de références du wrapper pouvant être appelé au runtime (RCW) associé à l’objet COM spécifié.

ReleaseThreadCache()
Obsolète.

Libère le cache de threads.

SecureStringToBSTR(SecureString)

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

SecureStringToCoTaskMemAnsi(SecureString)

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

SecureStringToCoTaskMemUnicode(SecureString)

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

SecureStringToGlobalAllocAnsi(SecureString)

Copie le contenu d’une mémoire managée en mémoire non managée SecureString , en convertissant au format ANSI lors de sa copie.

SecureStringToGlobalAllocUnicode(SecureString)

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

SetComObjectData(Object, Object, Object)

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

SetLastPInvokeError(Int32)

Définit la dernière erreur d’appel de 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 d’un objet d’un type spécifié en octets.

StringToBSTR(String)

Alloue un BSTR et copie le contenu d’un objet géré String .

StringToCoTaskMemAnsi(String)

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

StringToCoTaskMemAuto(String)

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

StringToCoTaskMemUni(String)

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

StringToCoTaskMemUTF8(String)

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

StringToHGlobalAnsi(String)

Copie le contenu d’une mémoire managée en mémoire non managée String , en convertissant au format ANSI lors de sa copie.

StringToHGlobalAuto(String)

Copie le contenu d’une mémoire managée en mémoire non managée String , en convertissant au format ANSI si nécessaire.

StringToHGlobalUni(String)

Copie le contenu d’une mémoire managée en mémoire non managée String .

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

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

StructureToPtr<T>(T, IntPtr, Boolean)

Marshale les données d’un objet managé d’un type spécifié vers un bloc de mémoire non managé.

ThrowExceptionForHR(Int32, Guid, IntPtr)

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

ThrowExceptionForHR(Int32, IntPtr)

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

ThrowExceptionForHR(Int32)

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

UnsafeAddrOfPinnedArrayElement(Array, Int32)
Obsolète.

Obtient l’adresse de l’élément à l’index spécifié à l’intérieur du tableau spécifié.

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

Obtient l’adresse de l’élément à l’index spécifié dans un tableau d’un type spécifié.

WriteByte(IntPtr, Byte)

Écrit une valeur d’octet unique en mémoire non managée.

WriteByte(IntPtr, Int32, Byte)

Écrit une valeur d’octet unique en mémoire non managée à un décalage spécifié.

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

Écrit une valeur d’octet unique en mémoire non managée à un décalage spécifié.

WriteInt16(IntPtr, Char)

Écrit un caractère sous la forme d’une 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 décalage spécifié.

WriteInt16(IntPtr, Int32, Int16)

Écrit une valeur entière signée 16 bits dans une mémoire non managée à un décalage 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 décalage 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 décalage spécifié.

WriteInt32(IntPtr, Int32, Int32)

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

WriteInt32(IntPtr, Int32)

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

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

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

WriteInt64(IntPtr, Int32, Int64)

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

WriteInt64(IntPtr, Int64)

Écrit une valeur entière signée 64 bits 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 décalage spécifié.

WriteIntPtr(IntPtr, Int32, IntPtr)

Écrit une valeur entière de taille native du processeur dans une mémoire non managée à un décalage spécifié.

WriteIntPtr(IntPtr, IntPtr)

Écrit une valeur entière de taille native du processeur dans la mémoire non managée.

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

Écrit une valeur entière de taille native du processeur dans la mémoire non managée.

ZeroFreeBSTR(IntPtr)

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

ZeroFreeCoTaskMemAnsi(IntPtr)

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

ZeroFreeCoTaskMemUnicode(IntPtr)

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

ZeroFreeCoTaskMemUTF8(IntPtr)

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

ZeroFreeGlobalAllocAnsi(IntPtr)

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

ZeroFreeGlobalAllocUnicode(IntPtr)

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

S’applique à