Marshal.StringToBSTR(String) Method

Definition

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

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

Parameters

s
String

The managed string to be copied.

Returns

IntPtr

nativeint

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

See also