Marshal.StringToBSTR(String) Method

Definition

Allocates a BSTR and copies the contents of a managed String into it.

C#
[System.Security.SecurityCritical]
public static IntPtr StringToBSTR(string s);
C#
public static IntPtr StringToBSTR(string? s);
C#
public static IntPtr StringToBSTR(string s);

Parameters

s
String

The managed string to be copied.

Returns

IntPtr

An unmanaged pointer to the BSTR, or 0 if s is null.

Attributes

Exceptions

There is insufficient memory available.

The length for s is out of range.

Remarks

StringToBSTR is useful for custom marshaling or when mixing managed and unmanaged code. Because this method allocates the unmanaged memory required for a string, always free the BSTR when finished by calling Marshal.FreeBSTR. This method provides the opposite functionality of Marshal.PtrToStringBSTR.

Applies to

Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

See also