Marshal Methods
.NET Framework 4.5
The Marshal type exposes the following members.
| Name | Description | |
|---|---|---|
|
AddRef | Increments the reference count on the specified interface. |
|
AllocCoTaskMem | Allocates a block of memory of specified size from the COM task memory allocator. |
|
AllocHGlobal(Int32) | Allocates memory from the unmanaged memory of the process by using the specified number of bytes. |
|
AllocHGlobal(IntPtr) | Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes. |
|
AreComObjectsAvailableForCleanup | Indicates whether runtime callable wrappers (RCWs) from any context are available for cleanup. |
|
BindToMoniker | Gets an interface pointer identified by the specified moniker. |
|
ChangeWrapperHandleStrength | Changes the strength of an object's COM Callable Wrapper (CCW) handle. |
|
CleanupUnusedObjectsInCurrentContext | Notifies the runtime to clean up all Runtime Callable Wrappers (RCWs) allocated in the current context. |
|
Copy(Byte[], Int32, IntPtr, Int32) | Copies data from a one-dimensional, managed 8-bit unsigned integer array to an unmanaged memory pointer. |
|
Copy(Char[], Int32, IntPtr, Int32) | Copies data from a one-dimensional, managed character array to an unmanaged memory pointer. |
|
Copy(Double[], Int32, IntPtr, Int32) | Copies data from a one-dimensional, managed double-precision floating-point number array to an unmanaged memory pointer. |
|
Copy(Int16[], Int32, IntPtr, Int32) | Copies data from a one-dimensional, managed 16-bit signed integer array to an unmanaged memory pointer. |
|
Copy(Int32[], Int32, IntPtr, Int32) | Copies data from a one-dimensional, managed 32-bit signed integer array to an unmanaged memory pointer. |
|
Copy(Int64[], Int32, IntPtr, Int32) | Copies data from a one-dimensional, managed 64-bit signed integer array to an unmanaged memory pointer. |
|
Copy(IntPtr, Byte[], Int32, Int32) | Copies data from an unmanaged memory pointer to a managed 8-bit unsigned integer array. |
|
Copy(IntPtr, Char[], Int32, Int32) | Copies data from an unmanaged memory pointer to a managed character array. |
|
Copy(IntPtr, Double[], Int32, Int32) | Copies data from an unmanaged memory pointer to a managed double-precision floating-point number array. |
|
Copy(IntPtr, Int16[], Int32, Int32) | Copies data from an unmanaged memory pointer to a managed 16-bit signed integer array. |
|
Copy(IntPtr, Int32[], Int32, Int32) | Copies data from an unmanaged memory pointer to a managed 32-bit signed integer array. |
|
Copy(IntPtr, Int64[], Int32, Int32) | Copies data from an unmanaged memory pointer to a managed 64-bit signed integer array. |
|
Copy(IntPtr, IntPtr[], Int32, Int32) | Copies data from an unmanaged memory pointer to a managed IntPtr array. |
|
Copy(IntPtr, Single[], Int32, Int32) | Copies data from an unmanaged memory pointer to a managed single-precision floating-point number array. |
|
Copy(IntPtr[], Int32, IntPtr, Int32) | Copies data from a one-dimensional, managed IntPtr array to an unmanaged memory pointer. |
|
Copy(Single[], Int32, IntPtr, Int32) | Copies data from a one-dimensional, managed single-precision floating-point number array to an unmanaged memory pointer. |
|
CreateAggregatedObject | Aggregates a managed object with the specified COM object. |
|
CreateWrapperOfType | Wraps the specified COM object in an object of the specified type. |
|
DestroyStructure | Frees all substructures that the specified unmanaged memory block points to. |
|
FinalReleaseComObject | Releases all references to a Runtime Callable Wrapper (RCW) by setting its reference count to 0. |
|
FreeBSTR | Frees a BSTR using the COM SysFreeString function. |
|
FreeCoTaskMem | Frees a block of memory allocated by the unmanaged COM task memory allocator. |
|
FreeHGlobal | Frees memory previously allocated from the unmanaged memory of the process. |
|
GenerateGuidForType | 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 | Returns a programmatic identifier (ProgID) for the specified type. |
|
GetActiveObject | Obtains a running instance of the specified object from the running object table (ROT). |
|
GetComInterfaceForObject(Object, Type) | Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. Custom query interface access is enabled by default. |
|
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) | Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. Custom query interface access is controlled by the specified customization mode. |
|
GetComInterfaceForObjectInContext | Returns an interface pointer that represents the specified interface for an object, if the caller is in the same context as that object. |
|
GetComObjectData | Retrieves data that is referenced by the specified key from the specified COM object. |
|
GetComSlotForMethodInfo | Retrieves the virtual function table (v-table or VTBL) slot for a specified System.Reflection.MemberInfo type when that type is exposed to COM. |
|
GetDelegateForFunctionPointer | Converts an unmanaged function pointer to a delegate. |
|
GetEndComSlot | Retrieves the last slot in the virtual function table (v-table or VTBL) of a type when exposed to COM. |
|
GetExceptionCode | Retrieves a code that identifies the type of the exception that occurred. |
|
GetExceptionForHR(Int32) | Converts the specified HRESULT error code to a corresponding Exception object. |
|
GetExceptionForHR(Int32, IntPtr) | 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 | Retrieves a computer-independent description of an exception, and information about the state that existed for the thread when the exception occurred. |
|
GetFunctionPointerForDelegate | Converts a delegate into a function pointer that is callable from unmanaged code. |
|
GetHINSTANCE | Returns the instance handle (HINSTANCE) for the specified module. |
|
GetHRForException | Converts the specified exception to an HRESULT. |
|
GetHRForLastWin32Error | Returns the HRESULT corresponding to the last error incurred by Win32 code executed using Marshal. |
|
GetIDispatchForObject | Returns an IDispatch interface from a managed object. |
|
GetIDispatchForObjectInContext | Returns an IDispatch interface pointer from a managed object, if the caller is in the same context as that object. |
|
GetITypeInfoForType | Returns a System.Runtime.InteropServices.ComTypes.ITypeInfo interface from a managed type. |
|
GetIUnknownForObject | Returns an IUnknown interface from a managed object. |
|
GetIUnknownForObjectInContext | Returns an IUnknown interface from a managed object, if the caller is in the same context as that object. |
|
GetLastWin32Error | Returns the error code returned by the last unmanaged function that was called using platform invoke that has the DllImportAttribute.SetLastError flag set. |
|
GetManagedThunkForUnmanagedMethodPtr | Obsolete. Gets a pointer to a runtime-generated function that marshals a call from managed to unmanaged code. |
|
GetMethodInfoForComSlot | Retrieves a MemberInfo object for the specified virtual function table (v-table or VTBL) slot. |
|
GetNativeVariantForObject | Converts an object to a COM VARIANT. |
|
GetObjectForIUnknown | Returns an instance of a type that represents a COM object by a pointer to its IUnknown interface. |
|
GetObjectForNativeVariant | Converts a COM VARIANT to an object. |
|
GetObjectsForNativeVariants | Converts an array of COM VARIANTs to an array of objects. |
|
GetStartComSlot | Gets the first slot in the virtual function table (v-table or VTBL) that contains user-defined methods. |
|
GetThreadFromFiberCookie | Obsolete. Converts a fiber cookie into the corresponding System.Threading.Thread instance. |
|
GetTypedObjectForIUnknown | Returns a managed object of a specified type that represents a COM object. |
|
GetTypeForITypeInfo | Converts an unmanaged ITypeInfo object into a managed System.Type object. |
|
GetTypeFromCLSID | Returns the type associated with the specified class identifier (CLSID). |
|
GetTypeInfoName(ITypeInfo) | Retrieves the name of the type represented by an ITypeInfo object. |
|
GetTypeInfoName(UCOMITypeInfo) | Obsolete. Retrieves the name of the type represented by an ITypeInfo object. |
|
GetTypeLibGuid(ITypeLib) | Retrieves the library identifier (LIBID) of a type library. |
|
GetTypeLibGuid(UCOMITypeLib) | Obsolete. Retrieves the library identifier (LIBID) of a type library. |
|
GetTypeLibGuidForAssembly | Retrieves the library identifier (LIBID) that is assigned to a type library when it was exported from the specified assembly. |
|
GetTypeLibLcid(ITypeLib) | Retrieves the LCID of a type library. |
|
GetTypeLibLcid(UCOMITypeLib) | Obsolete. Retrieves the LCID of a type library. |
|
GetTypeLibName(ITypeLib) | Retrieves the name of a type library. |
|
GetTypeLibName(UCOMITypeLib) | Obsolete. Retrieves the name of a type library. |
|
GetTypeLibVersionForAssembly | Retrieves the version number of a type library that will be exported from the specified assembly. |
|
GetUniqueObjectForIUnknown | Creates a unique Runtime Callable Wrapper (RCW) object for a given IUnknown interface. |
|
GetUnmanagedThunkForManagedMethodPtr | Obsolete. Gets a pointer to a runtime-generated function that marshals a call from unmanaged to managed code. |
|
IsComObject | Indicates whether a specified object represents a COM object. |
|
IsTypeVisibleFromCom | Indicates whether a type is visible to COM clients. |
|
NumParamBytes | Calculates the number of bytes in unmanaged memory that are required to hold the parameters for the specified method. |
|
OffsetOf | Returns the field offset of the unmanaged form of the managed class. |
|
Prelink | Executes one-time method setup tasks without calling the method. |
|
PrelinkAll | Performs a pre-link check for all methods on a class. |
|
PtrToStringAnsi(IntPtr) | 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) | 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) | 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) | Allocates a managed String and copies the specified number of characters from a string stored in unmanaged memory into it. |
|
PtrToStringBSTR | Allocates a managed String and copies a BSTR Data Type string stored in unmanaged memory into it. |
|
PtrToStringUni(IntPtr) | Allocates a managed String and copies all characters up to the first null character from an unmanaged Unicode string into it. |
|
PtrToStringUni(IntPtr, Int32) | Allocates a managed String and copies a specified number of characters from an unmanaged Unicode string into it. |
|
PtrToStructure(IntPtr, Object) | Marshals data from an unmanaged block of memory to a managed object. |
|
PtrToStructure(IntPtr, Type) | Marshals data from an unmanaged block of memory to a newly allocated managed object of the specified type. |
|
QueryInterface | Requests a pointer to a specified interface from a COM object. |
|
ReadByte(IntPtr) | Reads a single byte from unmanaged memory. |
|
ReadByte(IntPtr, Int32) | Reads a single byte at a given offset (or index) from unmanaged memory. |
|
ReadByte(Object, Int32) | Reads a single byte at a given offset (or index) from unmanaged memory. |
|
ReadInt16(IntPtr) | Reads a 16-bit signed integer from unmanaged memory. |
|
ReadInt16(IntPtr, Int32) | Reads a 16-bit signed integer at a given offset from unmanaged memory. |
|
ReadInt16(Object, Int32) | Reads a 16-bit signed integer at a given offset from unmanaged memory. |
|
ReadInt32(IntPtr) | Reads a 32-bit signed integer from unmanaged memory. |
|
ReadInt32(IntPtr, Int32) | Reads a 32-bit signed integer at a given offset from unmanaged memory. |
|
ReadInt32(Object, Int32) | Reads a 32-bit signed integer at a given offset from unmanaged memory. |
|
ReadInt64(IntPtr) | Reads a 64-bit signed integer from unmanaged memory. |
|
ReadInt64(IntPtr, Int32) | Reads a 64-bit signed integer at a given offset from unmanaged memory. |
|
ReadInt64(Object, Int32) | Reads a 64-bit signed integer at a given offset from unmanaged memory. |
|
ReadIntPtr(IntPtr) | Reads a processor native-sized integer from unmanaged memory. |
|
ReadIntPtr(IntPtr, Int32) | Reads a processor native sized integer at a given offset from unmanaged memory. |
|
ReadIntPtr(Object, Int32) | Reads a processor native sized integer from unmanaged memory. |
|
ReAllocCoTaskMem | Resizes a block of memory previously allocated with AllocCoTaskMem. |
|
ReAllocHGlobal | Resizes a block of memory previously allocated with AllocHGlobal. |
|
Release | Decrements the reference count on the specified interface. |
|
ReleaseComObject | Decrements the reference count of the specified Runtime Callable Wrapper (RCW) associated with the specified COM object. |
|
ReleaseThreadCache | Obsolete. Releases the thread cache. |
|
SecureStringToBSTR | Allocates a BSTR Data Type and copies the contents of a managed SecureString object into it. |
|
SecureStringToCoTaskMemAnsi | Copies the contents of a managed SecureString object to a block of memory allocated from the unmanaged COM task allocator. |
|
SecureStringToCoTaskMemUnicode | Copies the contents of a managed SecureString object to a block of memory allocated from the unmanaged COM task allocator. |
|
SecureStringToGlobalAllocAnsi | Copies the contents of a managed SecureString into unmanaged memory, converting into ANSI format as it copies. |
|
SecureStringToGlobalAllocUnicode | Copies the contents of a managed SecureString object into unmanaged memory. |
|
SetComObjectData | Sets data referenced by the specified key in the specified COM object. |
|
SizeOf(Object) | Returns the unmanaged size of an object in bytes. |
|
SizeOf(Type) | Returns the size of an unmanaged type in bytes. |
|
StringToBSTR | Allocates a BSTR Data Type and copies the contents of a managed String into it. |
|
StringToCoTaskMemAnsi | Copies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator. |
|
StringToCoTaskMemAuto | Copies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator. |
|
StringToCoTaskMemUni | Copies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator. |
|
StringToHGlobalAnsi | Copies the contents of a managed String into unmanaged memory, converting into ANSI format as it copies. |
|
StringToHGlobalAuto | Copies the contents of a managed String into unmanaged memory, converting into ANSI format if required. |
|
StringToHGlobalUni | Copies the contents of a managed String into unmanaged memory. |
|
StructureToPtr | Marshals data from a managed object to an unmanaged block of memory. |
|
ThrowExceptionForHR(Int32) | Throws an exception with a specific failure HRESULT value. |
|
ThrowExceptionForHR(Int32, IntPtr) | Throws an exception with a specific failure HRESULT, based on the specified IErrorInfo Interface interface. |
|
UnsafeAddrOfPinnedArrayElement | Gets the address of the element at the specified index inside the specified array. |
|
WriteByte(IntPtr, Byte) | Writes a single byte value to unmanaged memory. |
|
WriteByte(IntPtr, Int32, Byte) | Writes a single byte value to unmanaged memory at a specified offset. |
|
WriteByte(Object, Int32, Byte) | Writes a single byte value to unmanaged memory at a specified offset. |
|
WriteInt16(IntPtr, Char) | Writes a character as a 16-bit integer value to unmanaged memory. |
|
WriteInt16(IntPtr, Int16) | Writes a 16-bit integer value to unmanaged memory. |
|
WriteInt16(IntPtr, Int32, Char) | Writes a 16-bit signed integer value to unmanaged memory at a specified offset. |
|
WriteInt16(IntPtr, Int32, Int16) | Writes a 16-bit signed integer value into unmanaged memory at a specified offset. |
|
WriteInt16(Object, Int32, Char) | Writes a 16-bit signed integer value to unmanaged memory at a specified offset. |
|
WriteInt16(Object, Int32, Int16) | Writes a 16-bit signed integer value to unmanaged memory at a specified offset. |
|
WriteInt32(IntPtr, Int32) | Writes a 32-bit signed integer value to unmanaged memory. |
|
WriteInt32(IntPtr, Int32, Int32) | Writes a 32-bit signed integer value into unmanaged memory at a specified offset. |
|
WriteInt32(Object, Int32, Int32) | Writes a 32-bit signed integer value to unmanaged memory at a specified offset. |
|
WriteInt64(IntPtr, Int64) | Writes a 64-bit signed integer value to unmanaged memory. |
|
WriteInt64(IntPtr, Int32, Int64) | Writes a 64-bit signed integer value to unmanaged memory at a specified offset. |
|
WriteInt64(Object, Int32, Int64) | Writes a 64-bit signed integer value to unmanaged memory at a specified offset. |
|
WriteIntPtr(IntPtr, IntPtr) | Writes a processor native sized integer value into unmanaged memory. |
|
WriteIntPtr(IntPtr, Int32, IntPtr) | Writes a processor native-sized integer value to unmanaged memory at a specified offset. |
|
WriteIntPtr(Object, Int32, IntPtr) | Writes a processor native sized integer value to unmanaged memory. |
|
ZeroFreeBSTR | Frees a BSTR Data Type pointer that was allocated using the SecureStringToBSTR method. |
|
ZeroFreeCoTaskMemAnsi | Frees an unmanaged string pointer that was allocated using the SecureStringToCoTaskMemAnsi method. |
|
ZeroFreeCoTaskMemUnicode | Frees an unmanaged string pointer that was allocated using the SecureStringToCoTaskMemUnicode method. |
|
ZeroFreeGlobalAllocAnsi | Frees an unmanaged string pointer that was allocated using the SecureStringToGlobalAllocAnsi method. |
|
ZeroFreeGlobalAllocUnicode | Frees an unmanaged string pointer that was allocated using the SecureStringToGlobalAllocUnicode method. |