Marshal Classe

Definizione

Fornisce una raccolta di metodi per l'allocazione della memoria non gestita, la copia di blocchi di memoria non gestita e la conversione di tipi gestiti in tipi non gestiti, oltre ad altri metodi usati durante l'interazione con codice non gestito.Provides a collection of methods for allocating unmanaged memory, copying unmanaged memory blocks, and converting managed to unmanaged types, as well as other miscellaneous methods used when interacting with unmanaged code.

public ref class Marshal abstract sealed
public static class Marshal
type Marshal = class
Public Class Marshal
Ereditarietà
Marshal

Esempi

Nell'esempio seguente viene illustrato come utilizzare i vari metodi definiti dalla classe Marshal.The following example shows how to use various methods defined by the Marshal class.

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

Commenti

I static metodi definiti nella classe Marshal sono essenziali per l'uso di codice non gestito.The static methods defined on the Marshal class are essential to working with unmanaged code. La maggior parte dei metodi definiti in questa classe vengono in genere utilizzati dagli sviluppatori che desiderano fornire un bridge tra i modelli di programmazione gestiti e non gestiti.Most methods defined in this class are typically used by developers who want to provide a bridge between the managed and unmanaged programming models. Il metodo StringToHGlobalAnsi, ad esempio, copia i caratteri ANSI da una stringa specificata (nell'heap gestito) a un buffer nell'heap non gestito.For example, the StringToHGlobalAnsi method copies ANSI characters from a specified string (in the managed heap) to a buffer in the unmanaged heap. Alloca inoltre l'heap di destinazione delle dimensioni corrette.It also allocates the target heap of the right size.

Il Common Language Runtime fornisce funzionalità di marshalling specifiche.The common language runtime provides specific marshaling capabilities. Per informazioni dettagliate sul comportamento del marshalling, vedere marshalling di interoperabilità.For details on marshaling behavior, see Interop Marshaling.

I metodi Read e Write nella classe Marshal supportano l'accesso sia allineato che non allineato.The Read and Write methods in the Marshal class support both aligned and unaligned access.

Campi

SystemDefaultCharSize

Rappresenta la dimensione predefinita del carattere nel sistema. Il valore predefinito è 2 per i sistemi Unicode e 1 per i sistemi ANSI.Represents the default character size on the system; the default is 2 for Unicode systems and 1 for ANSI systems. Questo campo è di sola lettura.This field is read-only.

SystemMaxDBCSCharSize

Rappresenta la dimensione massima di un set di caratteri a doppio byte (DBCS, double-byte character set), in byte, per il sistema operativo corrente.Represents the maximum size of a double byte character set (DBCS) size, in bytes, for the current operating system. Questo campo è di sola lettura.This field is read-only.

Metodi

AddRef(IntPtr)

Incrementa il numero di riferimenti nell'interfaccia specificata.Increments the reference count on the specified interface.

AllocCoTaskMem(Int32)

Alloca un blocco di memoria delle dimensioni specificate dall'allocatore di memoria delle attività COM.Allocates a block of memory of specified size from the COM task memory allocator.

AllocHGlobal(Int32)

Alloca memoria dalla memoria non gestita del processo tramite il numero specificato di byte.Allocates memory from the unmanaged memory of the process by using the specified number of bytes.

AllocHGlobal(IntPtr)

Alloca memoria dalla memoria non gestita del processo tramite il puntatore al numero specificato di byte.Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes.

AreComObjectsAvailableForCleanup()

Indica se Runtime Callable Wrapper (RCW) provenienti da qualsiasi contesto sono disponibili per la pulizia.Indicates whether runtime callable wrappers (RCWs) from any context are available for cleanup.

BindToMoniker(String)

Ottiene un puntatore a interfaccia identificato dal moniker specificato.Gets an interface pointer identified by the specified moniker.

BufferToBSTR(Array, Int32)
ChangeWrapperHandleStrength(Object, Boolean)

Modifica la forza dell'handle COM Callable Wrapper (CCW) di un oggetto.Changes the strength of an object's COM Callable Wrapper (CCW) handle.

CleanupUnusedObjectsInCurrentContext()

Notifica al runtime di eseguire la pulizia di tutti i Runtime Callable Wrapper (RCW) allocati nel contesto corrente.Notifies the runtime to clean up all Runtime Callable Wrappers (RCWs) allocated in the current context.

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

Copia i dati da una matrice di interi senza segno a 8 bit gestita e unidimensionale a un puntatore di memoria non gestita.Copies data from a one-dimensional, managed 8-bit unsigned integer array to an unmanaged memory pointer.

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

Copia i dati da una matrice di caratteri gestita e unidimensionale a un puntatore di memoria non gestita.Copies data from a one-dimensional, managed character array to an unmanaged memory pointer.

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

Copia i dati da una matrice di numeri a virgola mobile a precisione doppia gestita e unidimensionale a un puntatore di memoria non gestita.Copies data from a one-dimensional, managed double-precision floating-point number array to an unmanaged memory pointer.

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

Copia i dati da una matrice di interi con segno a 16 bit gestita e unidimensionale a un puntatore di memoria non gestita.Copies data from a one-dimensional, managed 16-bit signed integer array to an unmanaged memory pointer.

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

Copia i dati da una matrice di interi con segno a 32 bit gestita e unidimensionale a un puntatore di memoria non gestita.Copies data from a one-dimensional, managed 32-bit signed integer array to an unmanaged memory pointer.

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

Copia i dati da una matrice di interi con segno a 64 bit gestita e unidimensionale a un puntatore di memoria non gestita.Copies data from a one-dimensional, managed 64-bit signed integer array to an unmanaged memory pointer.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di interi senza segno a 8 bit gestita.Copies data from an unmanaged memory pointer to a managed 8-bit unsigned integer array.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di caratteri gestita.Copies data from an unmanaged memory pointer to a managed character array.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di numeri a virgola mobile a precisione doppia gestita.Copies data from an unmanaged memory pointer to a managed double-precision floating-point number array.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di interi con segno a 16 bit gestita.Copies data from an unmanaged memory pointer to a managed 16-bit signed integer array.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di interi con segno a 32 bit gestita.Copies data from an unmanaged memory pointer to a managed 32-bit signed integer array.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di interi con segno a 64 bit gestita.Copies data from an unmanaged memory pointer to a managed 64-bit signed integer array.

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

Copia i dati da un puntatore di memoria non gestita a una matrice IntPtr gestita.Copies data from an unmanaged memory pointer to a managed IntPtr array.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di numeri a virgola mobile a precisione singola gestita.Copies data from an unmanaged memory pointer to a managed single-precision floating-point number array.

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

Copia i dati da una matrice IntPtr unidimensionale gestita a un puntatore di memoria non gestita.Copies data from a one-dimensional, managed IntPtr array to an unmanaged memory pointer.

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

Copia i dati da una matrice di numeri a virgola mobile a precisione singola gestita unidimensionale a un puntatore di memoria non gestita.Copies data from a one-dimensional, managed single-precision floating-point number array to an unmanaged memory pointer.

CreateAggregatedObject(IntPtr, Object)

Aggrega un oggetto gestito all'oggetto COM specificato.Aggregates a managed object with the specified COM object.

CreateAggregatedObject<T>(IntPtr, T)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Aggrega un oggetto gestito del tipo specificato con l'oggetto COM specificato.Aggregates a managed object of the specified type with the specified COM object.

CreateWrapperOfType(Object, Type)

Include l'oggetto COM specificato in un oggetto del tipo specificato.Wraps the specified COM object in an object of the specified type.

CreateWrapperOfType<T,TWrapper>(T)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Include l'oggetto COM specificato in un oggetto del tipo specificato.Wraps the specified COM object in an object of the specified type.

DestroyStructure(IntPtr, Type)

Libera tutte le sottostrutture a cui punta il blocco di memoria non gestita specificato.Frees all substructures that the specified unmanaged memory block points to.

DestroyStructure<T>(IntPtr)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Libera tutte le sottostrutture di un tipo specificato a cui punta il blocco di memoria non gestita specificato.Frees all substructures of a specified type that the specified unmanaged memory block points to.

FinalReleaseComObject(Object)

Rilascia tutti i riferimenti a un Runtime Callable Wrapper (RCW) impostando il conteggio dei riferimenti su 0.Releases all references to a Runtime Callable Wrapper (RCW) by setting its reference count to 0.

FreeBSTR(IntPtr)

Libera un BSTR usando la funzione COM SysFreeString.Frees a BSTR using the COM SysFreeString function.

FreeCoTaskMem(IntPtr)

Libera un blocco di memoria assegnato dall'allocatore di memoria non gestita delle attività COM.Frees a block of memory allocated by the unmanaged COM task memory allocator.

FreeHGlobal(IntPtr)

Libera la memoria precedentemente allocata dalla memoria non gestita del processo.Frees memory previously allocated from the unmanaged memory of the process.

GenerateGuidForType(Type)

Restituisce il GUID (Globally Unique Identifier) del tipo specificato o genera un GUID mediante l'algoritmo usato da Type Library Exporter (Tlbexp.exe).Returns the globally unique identifier (GUID) for the specified type, or generates a GUID using the algorithm used by the Type Library Exporter (Tlbexp.exe).

GenerateProgIdForType(Type)

Restituisce un ProgID (Programmatic Identifier) per il tipo specificato.Returns a programmatic identifier (ProgID) for the specified type.

GetActiveObject(String)

Ottiene un'istanza in esecuzione dell'oggetto specificato dalla tabella ROT (Running Object Table).Obtains a running instance of the specified object from the running object table (ROT).

GetComInterfaceForObject(Object, Type)

Restituisce un puntatore a un'interfaccia IUnknown che rappresenta l'interfaccia specificata sull'oggetto specificato.Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. L'accesso all'interfaccia di query è abilitato per impostazione predefinita.Custom query interface access is enabled by default.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)

Restituisce un puntatore a un'interfaccia IUnknown che rappresenta l'interfaccia specificata sull'oggetto specificato.Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. L'accesso all'interfaccia di query personalizzato viene controllato dalla modalità della personalizzazione specificata.Custom query interface access is controlled by the specified customization mode.

GetComInterfaceForObject<T,TInterface>(T)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions] Restituisce un puntatore a un'interfaccia IUnknown che rappresenta l'interfaccia specificata sull'oggetto del tipo specificato.Returns a pointer to an IUnknown interface that represents the specified interface on an object of the specified type. L'accesso all'interfaccia di query è abilitato per impostazione predefinita.Custom query interface access is enabled by default.

GetComInterfaceForObjectInContext(Object, Type)

Restituisce un puntatore a interfaccia che rappresenta l'interfaccia specificata per un oggetto, se il chiamante appartiene allo stesso contesto dell'oggetto.Returns an interface pointer that represents the specified interface for an object, if the caller is in the same context as that object.

GetComObjectData(Object, Object)

Recupera i dati ai quali fa riferimento la chiave specificata dall'oggetto COM specificato.Retrieves data that is referenced by the specified key from the specified COM object.

GetComSlotForMethodInfo(MemberInfo)

Recupera lo slot della tabella della funzione virtuale (V-Table o VTBL) per un tipo MemberInfo specificato quando quel tipo è esposto a COM.Retrieves the virtual function table (v-table or VTBL) slot for a specified MemberInfo type when that type is exposed to COM.

GetDelegateForFunctionPointer(IntPtr, Type)

Converte un puntatore a funzione non gestito in un delegato.Converts an unmanaged function pointer to a delegate.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Converte un puntatore a funzione non gestito in un delegato di un tipo specificato.Converts an unmanaged function pointer to a delegate of a specified type.

GetEndComSlot(Type)

Recupera l'ultimo slot della tabella della funzione virtuale (V-Table o VTBL) di un tipo quando è esposto a COM.Retrieves the last slot in the virtual function table (v-table or VTBL) of a type when exposed to COM.

GetExceptionCode()

Recupera un codice che identifica il tipo dell'eccezione che si è verificata.Retrieves a code that identifies the type of the exception that occurred.

GetExceptionForHR(Int32)

Converte il codice errore HRESULT specificato in un oggetto Exception corrispondente.Converts the specified HRESULT error code to a corresponding Exception object.

GetExceptionForHR(Int32, IntPtr)

Converte il codice di errore HRESULT specificato in un oggetto Exception corrispondente, con ulteriori informazioni sull'errore passate in un'interfaccia IErrorInfo per l'oggetto eccezione.Converts the specified HRESULT error code to a corresponding Exception object, with additional error information passed in an IErrorInfo interface for the exception object.

GetExceptionPointers()

Recupera la descrizione di un'eccezione indipendente dal computer e le informazioni sullo stato esistente per il thread nel momento in cui si è verificata l'eccezione.Retrieves a computer-independent description of an exception, and information about the state that existed for the thread when the exception occurred.

GetFunctionPointerForDelegate(Delegate)

Converte un delegato in un puntatore a funzione disponibile per la chiamata dal codice non gestito.Converts a delegate into a function pointer that is callable from unmanaged code.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Converte un delegato di un tipo specificato in un puntatore a funzione disponibile per la chiamata dal codice non gestito.Converts a delegate of a specified type to a function pointer that is callable from unmanaged code.

GetHINSTANCE(Module)

Restituisce l'handle di istanza (HINSTANCE) per il modulo specificato.Returns the instance handle (HINSTANCE) for the specified module.

GetHRForException(Exception)

Converte l'eccezione specificata in valore HRESULT.Converts the specified exception to an HRESULT.

GetHRForLastWin32Error()

Restituisce il valore HRESULT corrispondente all'ultimo errore in cui è incorso il codice Win32 eseguito usando Marshal.Returns the HRESULT corresponding to the last error incurred by Win32 code executed using Marshal.

GetIDispatchForObject(Object)

Restituisce un'interfaccia IDispatch da un oggetto gestito.Returns an IDispatch interface from a managed object.

GetIDispatchForObjectInContext(Object)

Restituisce un puntatore a interfaccia IDispatch da un oggetto gestito se il chiamante appartiene allo stesso contesto dell'oggetto.Returns an IDispatch interface pointer from a managed object, if the caller is in the same context as that object.

GetITypeInfoForType(Type)

Restituisce un'interfaccia ITypeInfo da un tipo gestito.Returns a ITypeInfo interface from a managed type.

GetIUnknownForObject(Object)

Restituisce un'interfaccia IUnknown da un oggetto gestito.Returns an IUnknown interface from a managed object.

GetIUnknownForObjectInContext(Object)

Restituisce un'interfaccia IUnknown da un oggetto gestito se il chiamante appartiene allo stesso contesto dell'oggetto.Returns an IUnknown interface from a managed object, if the caller is in the same context as that object.

GetLastWin32Error()

Restituisce il codice errore restituito dall'ultima funzione non gestita chiamata mediante una chiamata platform invoke con il flag SetLastError impostato.Returns the error code returned by the last unmanaged function that was called using platform invoke that has the SetLastError flag set.

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)

Ottiene un puntatore a una funzione generata a runtime che esegue il marshalling di una chiamata da codice gestito a codice non gestito.Gets a pointer to a runtime-generated function that marshals a call from managed to unmanaged code.

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

Recupera un oggetto MemberInfo per lo slot della tabella di funzione virtuale specificata (V-Table o VTBL).Retrieves a MemberInfo object for the specified virtual function table (v-table or VTBL) slot.

GetNativeVariantForObject(Object, IntPtr)

Converte un oggetto nel tipo COM VARIANT.Converts an object to a COM VARIANT.

GetNativeVariantForObject<T>(T, IntPtr)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Esegue la conversione da un oggetto di tipo specificato in un oggetto COM VARIANT.Converts an object of a specified type to a COM VARIANT.

GetObjectForIUnknown(IntPtr)

Restituisce un'istanza di un tipo che rappresenta un oggetto COM tramite un puntatore alla relativa interfaccia IUnknown.Returns an instance of a type that represents a COM object by a pointer to its IUnknown interface.

GetObjectForNativeVariant(IntPtr)

Converte un tipo COM VARIANT in un oggetto.Converts a COM VARIANT to an object.

GetObjectForNativeVariant<T>(IntPtr)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Esegue la conversione da un oggetto di tipo specificato a un oggetto COM VARIANT.Converts a COM VARIANT to an object of a specified type.

GetObjectsForNativeVariants(IntPtr, Int32)

Converte una matrice di tipi COM VARIANT in una matrice di oggetti.Converts an array of COM VARIANTs to an array of objects.

GetObjectsForNativeVariants<T>(IntPtr, Int32)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Converte una matrice di tipi COM VARIANT in una matrice di un tipo specificato.Converts an array of COM VARIANTs to an array of a specified type.

GetStartComSlot(Type)

Ottiene il primo slot nella tabella di funzioni virtual (V-Table o VTBL) che contiene metodi definiti dall'utente.Gets the first slot in the virtual function table (v-table or VTBL) that contains user-defined methods.

GetThreadFromFiberCookie(Int32)

Converte un fiber cookie nella corrispondente istanza di Thread.Converts a fiber cookie into the corresponding Thread instance.

GetTypedObjectForIUnknown(IntPtr, Type)

Restituisce un oggetto gestito di un tipo specificato che rappresenta un oggetto COM.Returns a managed object of a specified type that represents a COM object.

GetTypeForITypeInfo(IntPtr)

Converte un oggetto ITypeInfo non gestito in un oggetto Type gestito.Converts an unmanaged ITypeInfo object into a managed Type object.

GetTypeFromCLSID(Guid)

Restituisce il tipo associato all'identificatore di classe specificato (CLSID).Returns the type associated with the specified class identifier (CLSID).

GetTypeInfoName(ITypeInfo)

Recupera il nome del tipo rappresentato da un oggetto ITypeInfo.Retrieves the name of the type represented by an ITypeInfo object.

GetTypeInfoName(UCOMITypeInfo)

Recupera il nome del tipo rappresentato da un oggetto ITypeInfo.Retrieves the name of the type represented by an ITypeInfo object.

GetTypeLibGuid(ITypeLib)

Recupera il LIBID (Library Identifier) di una libreria dei tipi.Retrieves the library identifier (LIBID) of a type library.

GetTypeLibGuid(UCOMITypeLib)

Recupera il LIBID (Library Identifier) di una libreria dei tipi.Retrieves the library identifier (LIBID) of a type library.

GetTypeLibGuidForAssembly(Assembly)

Recupera il LIBID assegnato a una libreria dei tipi quando viene esportato dall'assembly specificato.Retrieves the library identifier (LIBID) that is assigned to a type library when it was exported from the specified assembly.

GetTypeLibLcid(ITypeLib)

Recupera l'LCID di una libreria dei tipi.Retrieves the LCID of a type library.

GetTypeLibLcid(UCOMITypeLib)

Recupera l'LCID di una libreria dei tipi.Retrieves the LCID of a type library.

GetTypeLibName(ITypeLib)

Recupera il nome di una libreria di tipi.Retrieves the name of a type library.

GetTypeLibName(UCOMITypeLib)

Recupera il nome di una libreria di tipi.Retrieves the name of a type library.

GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

Recupera il numero di versione di una libreria dei tipi che verrà esportata dall'assembly specificato.Retrieves the version number of a type library that will be exported from the specified assembly.

GetUniqueObjectForIUnknown(IntPtr)

Crea un oggetto Runtime Callable Wrapper (RCW) univoco per un'interfaccia IUnknown specificata.Creates a unique Runtime Callable Wrapper (RCW) object for a given IUnknown interface.

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)

Ottiene un puntatore a una funzione generata a runtime che esegue il marshalling di una chiamata da codice non gestito a codice gestito.Gets a pointer to a runtime-generated function that marshals a call from unmanaged to managed code.

IsComObject(Object)

Indica se un oggetto specificato rappresenta un oggetto COM.Indicates whether a specified object represents a COM object.

IsTypeVisibleFromCom(Type)

Indica se un tipo è visibile ai client COM.Indicates whether a type is visible to COM clients.

NumParamBytes(MethodInfo)

Calcola il numero di byte nella memoria non gestita necessari per contenere i parametri per il metodo specificato.Calculates the number of bytes in unmanaged memory that are required to hold the parameters for the specified method.

OffsetOf(Type, String)

Restituisce l'offset del campo della forma non gestita della classe gestita.Returns the field offset of the unmanaged form of the managed class.

OffsetOf<T>(String)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Restituisce l'offset del campo della forma non gestita della classe gestita specificata.Returns the field offset of the unmanaged form of a specified managed class.

Prelink(MethodInfo)

Esegue in un'unica operazione le attività di configurazione del metodo senza chiamarlo.Executes one-time method setup tasks without calling the method.

PrelinkAll(Type)

Esegue un controllo pre-collegamento per tutti i metodi di una classe.Performs a pre-link check for all methods on a class.

PtrToStringAnsi(IntPtr)

Copia tutti i caratteri fino al primo carattere Null da una stringa ANSI non gestita a un oggetto String gestito e trasforma ogni carattere ANSI in Unicode.Copies all characters up to the first null character from an unmanaged ANSI string to a managed String, and widens each ANSI character to Unicode.

PtrToStringAnsi(IntPtr, Int32)

Alloca un oggetto String gestito, vi copia un numero di caratteri specificato da una stringa ANSI non gestita e trasforma ciascun carattere ANSI nel formato Unicode.Allocates a managed String, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode.

PtrToStringAuto(IntPtr)

Alloca un oggetto String gestito e vi copia tutti i caratteri fino al primo carattere null da una stringa archiviata nella memoria non gestita.Allocates a managed String and copies all characters up to the first null character from a string stored in unmanaged memory into it.

PtrToStringAuto(IntPtr, Int32)

Alloca un oggetto String gestito e vi copia il numero di caratteri specificato da una stringa archiviata nella memoria non gestita.Allocates a managed String and copies the specified number of characters from a string stored in unmanaged memory into it.

PtrToStringBSTR(IntPtr)

Alloca un oggetto String gestito e vi copia una stringa binaria (BSTR) archiviata nella memoria non gestita.Allocates a managed String and copies a binary string (BSTR) stored in unmanaged memory into it.

PtrToStringUni(IntPtr)

Alloca un oggetto String gestito e vi copia tutti i caratteri fino al primo carattere Null da una stringa Unicode non gestita.Allocates a managed String and copies all characters up to the first null character from an unmanaged Unicode string into it.

PtrToStringUni(IntPtr, Int32)

Alloca un oggetto String gestito e vi copia un numero di caratteri specificato da una stringa Unicode non gestita.Allocates a managed String and copies a specified number of characters from an unmanaged Unicode string into it.

PtrToStringUTF8(IntPtr)
PtrToStringUTF8(IntPtr, Int32)
PtrToStructure(IntPtr, Object)

Effettua il marshalling di dati da un blocco di memoria non gestita a un oggetto gestito.Marshals data from an unmanaged block of memory to a managed object.

PtrToStructure(IntPtr, Type)

Effettua il marshalling di dati da un blocco di memoria non gestita a un oggetto gestito appena allocato del tipo specificato.Marshals data from an unmanaged block of memory to a newly allocated managed object of the specified type.

PtrToStructure<T>(IntPtr)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Effettua il marshalling di dati da un blocco di memoria non gestita a un oggetto gestito appena allocato del tipo specificato per un parametro del tipo generico.Marshals data from an unmanaged block of memory to a newly allocated managed object of the type specified by a generic type parameter.

PtrToStructure<T>(IntPtr, T)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Effettua il marshalling di dati da un blocco di memoria non gestita a un oggetto gestito di un tipo specificato.Marshals data from an unmanaged block of memory to a managed object of the specified type.

QueryInterface(IntPtr, Guid, IntPtr)

Richiede un puntatore a un'interfaccia specificata da un oggetto COM.Requests a pointer to a specified interface from a COM object.

ReadByte(IntPtr)

Legge un singolo byte da memoria non gestita.Reads a single byte from unmanaged memory.

ReadByte(IntPtr, Int32)

Legge un singolo byte in base a un determinato offset (o indice) dalla memoria non gestita.Reads a single byte at a given offset (or index) from unmanaged memory.

ReadByte(Object, Int32)

Legge un singolo byte in base a un determinato offset (o indice) dalla memoria non gestita.Reads a single byte at a given offset (or index) from unmanaged memory.

ReadInt16(IntPtr)

Legge un valore intero con segno a 16 bit dalla memoria non gestita.Reads a 16-bit signed integer from unmanaged memory.

ReadInt16(IntPtr, Int32)

Legge un intero con segno a 16 bit a un offset specificato dalla memoria non gestita.Reads a 16-bit signed integer at a given offset from unmanaged memory.

ReadInt16(Object, Int32)

Legge un intero con segno a 16 bit a un offset specificato dalla memoria non gestita.Reads a 16-bit signed integer at a given offset from unmanaged memory.

ReadInt32(IntPtr)

Legge un valore intero con segno a 32 bit dalla memoria non gestita.Reads a 32-bit signed integer from unmanaged memory.

ReadInt32(IntPtr, Int32)

Legge un Intero con segno a 32 bit a un offset specificato dalla memoria non gestita.Reads a 32-bit signed integer at a given offset from unmanaged memory.

ReadInt32(Object, Int32)

Legge un Intero con segno a 32 bit a un offset specificato dalla memoria non gestita.Reads a 32-bit signed integer at a given offset from unmanaged memory.

ReadInt64(IntPtr)

Legge un valore intero con segno a 64 bit dalla memoria non gestita.Reads a 64-bit signed integer from unmanaged memory.

ReadInt64(IntPtr, Int32)

Legge un Intero con segno a 64 bit a un offset specificato dalla memoria non gestita.Reads a 64-bit signed integer at a given offset from unmanaged memory.

ReadInt64(Object, Int32)

Legge un Intero con segno a 64 bit a un offset specificato dalla memoria non gestita.Reads a 64-bit signed integer at a given offset from unmanaged memory.

ReadIntPtr(IntPtr)

Legge un intero di dimensioni native del processore dalla memoria non gestita.Reads a processor native-sized integer from unmanaged memory.

ReadIntPtr(IntPtr, Int32)

Legge un intero di dimensioni native del processore a un offset specificato dalla memoria non gestita.Reads a processor native sized integer at a given offset from unmanaged memory.

ReadIntPtr(Object, Int32)

Legge un valore intero della dimensione nativa del processore dalla memoria non gestita.Reads a processor native sized integer from unmanaged memory.

ReAllocCoTaskMem(IntPtr, Int32)

Ridimensiona un blocco di memoria allocato in precedenza con AllocCoTaskMem(Int32).Resizes a block of memory previously allocated with AllocCoTaskMem(Int32).

ReAllocHGlobal(IntPtr, IntPtr)

Ridimensiona un blocco di memoria allocato in precedenza con AllocHGlobal(IntPtr).Resizes a block of memory previously allocated with AllocHGlobal(IntPtr).

Release(IntPtr)

Riduce il numero di riferimenti nell'interfaccia specificata.Decrements the reference count on the specified interface.

ReleaseComObject(Object)

Decrementa il conteggio dei riferimenti del Runtime Callable Wrapper (RCW) associato all'oggetto COM specificato.Decrements the reference count of the Runtime Callable Wrapper (RCW) associated with the specified COM object.

ReleaseThreadCache()

Rilascia la cache del thread.Releases the thread cache.

SecureStringToBSTR(SecureString)

Alloca una stringa binaria (BSTR) non gestita e vi copia il contenuto di un oggetto SecureString gestito.Allocates an unmanaged binary string (BSTR) and copies the contents of a managed SecureString object into it.

SecureStringToCoTaskMemAnsi(SecureString)

Copia il contenuto di un oggetto SecureString gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.Copies the contents of a managed SecureString object to a block of memory allocated from the unmanaged COM task allocator.

SecureStringToCoTaskMemUnicode(SecureString)

Copia il contenuto di un oggetto SecureString gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.Copies the contents of a managed SecureString object to a block of memory allocated from the unmanaged COM task allocator.

SecureStringToGlobalAllocAnsi(SecureString)

Copia il contenuto di un oggetto SecureString gestito nella memoria non gestita, effettuando contemporaneamente la conversione nel formato ANSI.Copies the contents of a managed SecureString into unmanaged memory, converting into ANSI format as it copies.

SecureStringToGlobalAllocUnicode(SecureString)

Copia il contenuto di un oggetto SecureString gestito nella memoria non gestita.Copies the contents of a managed SecureString object into unmanaged memory.

SetComObjectData(Object, Object, Object)

Imposta i dati ai quali fa riferimento la chiave specificata nell'oggetto COM specificato.Sets data referenced by the specified key in the specified COM object.

SizeOf(Object)

Restituisce la dimensione non gestita di un oggetto, espressa in byte.Returns the unmanaged size of an object in bytes.

SizeOf(Type)

Restituisce la dimensione di un tipo non gestito espressa in byte.Returns the size of an unmanaged type in bytes.

SizeOf<T>()

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Restituisce la dimensione di un tipo non gestito espressa in byte.Returns the size of an unmanaged type in bytes.

SizeOf<T>(T)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Restituisce la dimensione non gestita di un oggetto di un tipo specifico in byte.Returns the unmanaged size of an object of a specified type in bytes.

StringToBSTR(String)

Alloca un elemento BSTR e vi copia il contenuto di un oggetto String gestito.Allocates a BSTR and copies the contents of a managed String into it.

StringToCoTaskMemAnsi(String)

Copia il contenuto di un oggetto String gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.Copies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator.

StringToCoTaskMemAuto(String)

Copia il contenuto di un oggetto String gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.Copies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator.

StringToCoTaskMemUni(String)

Copia il contenuto di un oggetto String gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.Copies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator.

StringToCoTaskMemUTF8(String)
StringToHGlobalAnsi(String)

Copia il contenuto di un oggetto String gestito nella memoria non gestita, effettuando contemporaneamente la conversione nel formato ANSI.Copies the contents of a managed String into unmanaged memory, converting into ANSI format as it copies.

StringToHGlobalAuto(String)

Copia il contenuto di un oggetto String gestito nella memoria non gestita, effettuando, se necessario, la conversione nel formato ANSI.Copies the contents of a managed String into unmanaged memory, converting into ANSI format if required.

StringToHGlobalUni(String)

Copia il contenuto di un oggetto String gestito nella memoria non gestita.Copies the contents of a managed String into unmanaged memory.

StructureToPtr(Object, IntPtr, Boolean)

Effettua il marshalling di dati da un oggetto gestito a un blocco di memoria non gestito.Marshals data from a managed object to an unmanaged block of memory.

StructureToPtr<T>(T, IntPtr, Boolean)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Effettua il marshalling di dati da un oggetto gestito di un tipo specificato a un blocco di memoria non gestita.Marshals data from a managed object of a specified type to an unmanaged block of memory.

ThrowExceptionForHR(Int32)

Genera un'eccezione con un valore HRESULT di un errore specifico.Throws an exception with a specific failure HRESULT value.

ThrowExceptionForHR(Int32, IntPtr)

Genera un'eccezione con un valore HRESULT di errore specifico, basato sull'interfaccia IErrorInfo specificata.Throws an exception with a specific failure HRESULT, based on the specified IErrorInfo interface.

UnsafeAddrOfPinnedArrayElement(Array, Int32)

Ottiene l'indirizzo dell'elemento in corrispondenza dell'indice specificato all'interno della matrice specificata.Gets the address of the element at the specified index inside the specified array.

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

[Supportato in .NET Framework 4.5.1 e versioni successive][Supported in the .NET Framework 4.5.1 and later versions]

Ottiene l'indirizzo dell'elemento in corrispondenza dell'indice specificato in una matrice del tipo specificato.Gets the address of the element at the specified index in an array of a specified type.

WriteByte(IntPtr, Byte)

Scrive un valore a singolo byte nella memoria non gestita.Writes a single byte value to unmanaged memory.

WriteByte(IntPtr, Int32, Byte)

Scrive un valore a singolo byte nella memoria non gestita a un offset specifico.Writes a single byte value to unmanaged memory at a specified offset.

WriteByte(Object, Int32, Byte)

Scrive un valore a singolo byte nella memoria non gestita a un offset specifico.Writes a single byte value to unmanaged memory at a specified offset.

WriteInt16(IntPtr, Char)

Scrive un carattere sotto forma di intero a 16 bit nella memoria non gestita.Writes a character as a 16-bit integer value to unmanaged memory.

WriteInt16(IntPtr, Int16)

Scrive un valore intero a 16 bit nella memoria non gestita.Writes a 16-bit integer value to unmanaged memory.

WriteInt16(IntPtr, Int32, Char)

Scrive un intero con segno a 16 bit nella memoria non gestita in corrispondenza di un offset specificato.Writes a 16-bit signed integer value to unmanaged memory at a specified offset.

WriteInt16(IntPtr, Int32, Int16)

Scrive un intero con segno a 16 bit nella memoria non gestita in corrispondenza di un offset specificato.Writes a 16-bit signed integer value into unmanaged memory at a specified offset.

WriteInt16(Object, Int32, Char)

Scrive un intero con segno a 16 bit nella memoria non gestita in corrispondenza di un offset specificato.Writes a 16-bit signed integer value to unmanaged memory at a specified offset.

WriteInt16(Object, Int32, Int16)

Scrive un intero con segno a 16 bit nella memoria non gestita in corrispondenza di un offset specificato.Writes a 16-bit signed integer value to unmanaged memory at a specified offset.

WriteInt32(IntPtr, Int32)

Scrive un valore intero con segno a 32 bit nella memoria non gestita.Writes a 32-bit signed integer value to unmanaged memory.

WriteInt32(IntPtr, Int32, Int32)

Scrive un Intero con segno a 32 bit nella memoria non gestita in corrispondenza di un offset specificato.Writes a 32-bit signed integer value into unmanaged memory at a specified offset.

WriteInt32(Object, Int32, Int32)

Scrive un Intero con segno a 32 bit nella memoria non gestita in corrispondenza di un offset specificato.Writes a 32-bit signed integer value to unmanaged memory at a specified offset.

WriteInt64(IntPtr, Int32, Int64)

Scrive un Intero con segno a 64 bit nella memoria non gestita in corrispondenza di un offset specificato.Writes a 64-bit signed integer value to unmanaged memory at a specified offset.

WriteInt64(IntPtr, Int64)

Scrive un valore intero con segno a 64 bit nella memoria non gestita.Writes a 64-bit signed integer value to unmanaged memory.

WriteInt64(Object, Int32, Int64)

Scrive un Intero con segno a 64 bit nella memoria non gestita in corrispondenza di un offset specificato.Writes a 64-bit signed integer value to unmanaged memory at a specified offset.

WriteIntPtr(IntPtr, Int32, IntPtr)

Scrive un intero di dimensioni native del processore nella memoria non gestita in corrispondenza di un offset specificato.Writes a processor native-sized integer value to unmanaged memory at a specified offset.

WriteIntPtr(IntPtr, IntPtr)

Scrive un valore intero della dimensione nativa del processore nella memoria non gestita.Writes a processor native sized integer value into unmanaged memory.

WriteIntPtr(Object, Int32, IntPtr)

Scrive un valore intero della dimensione nativa del processore nella memoria non gestita.Writes a processor native sized integer value to unmanaged memory.

ZeroFreeBSTR(IntPtr)

Libera un puntatore BSTR allocato usando il metodo SecureStringToBSTR(SecureString).Frees a BSTR pointer that was allocated using the SecureStringToBSTR(SecureString) method.

ZeroFreeCoTaskMemAnsi(IntPtr)

Libera un puntatore a una stringa non gestita allocato tramite il metodo SecureStringToCoTaskMemAnsi(SecureString).Frees an unmanaged string pointer that was allocated using the SecureStringToCoTaskMemAnsi(SecureString) method.

ZeroFreeCoTaskMemUnicode(IntPtr)

Libera un puntatore a una stringa non gestita allocato tramite il metodo SecureStringToCoTaskMemUnicode(SecureString).Frees an unmanaged string pointer that was allocated using the SecureStringToCoTaskMemUnicode(SecureString) method.

ZeroFreeCoTaskMemUTF8(IntPtr)
ZeroFreeGlobalAllocAnsi(IntPtr)

Libera un puntatore a una stringa non gestita allocato tramite il metodo SecureStringToGlobalAllocAnsi(SecureString).Frees an unmanaged string pointer that was allocated using the SecureStringToGlobalAllocAnsi(SecureString) method.

ZeroFreeGlobalAllocUnicode(IntPtr)

Libera un puntatore a una stringa non gestita allocato tramite il metodo SecureStringToGlobalAllocUnicode(SecureString).Frees an unmanaged string pointer that was allocated using the SecureStringToGlobalAllocUnicode(SecureString) method.

Si applica a