Marshal.StringToCoTaskMemAuto(String) Method

Definition

Copies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator.

public:
 static IntPtr StringToCoTaskMemAuto(System::String ^ s);
public static IntPtr StringToCoTaskMemAuto (string? s);
public static IntPtr StringToCoTaskMemAuto (string s);
[System.Security.SecurityCritical]
public static IntPtr StringToCoTaskMemAuto (string s);
static member StringToCoTaskMemAuto : string -> nativeint
[<System.Security.SecurityCritical>]
static member StringToCoTaskMemAuto : string -> nativeint
Public Shared Function StringToCoTaskMemAuto (s As String) As IntPtr

Parameters

s
String

A managed string to be copied.

Returns

IntPtr

nativeint

The allocated memory block, or 0 if s is null.

Attributes

Exceptions

There is insufficient memory available.

The length for s is out of range.

Remarks

StringToCoTaskMemAuto is useful for custom marshaling or for use when mixing managed and unmanaged code. Because this method allocates the unmanaged memory required for a string, always free the memory by calling FreeCoTaskMem. This method provides the opposite functionality of Marshal.PtrToStringAuto.

The characters of the string are copied as Unicode characters.

Applies to

See also