Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
MSDN Library

Marshal::StringToBSTR Method

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

Namespace:  System.Runtime.InteropServices
Assemblies:   System.Runtime.InteropServices (in System.Runtime.InteropServices.dll)
  mscorlib (in mscorlib.dll)

public:
static IntPtr StringToBSTR(
	String^ s
)

Parameters

s
Type: System::String

The managed string to be copied.

Return Value

Type: System::IntPtr
An unmanaged pointer to the BSTR, or 0 if s is null.

ExceptionCondition
OutOfMemoryException

There is insufficient memory available.

ArgumentOutOfRangeException

The length for s is out of range.

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.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

.NET for Windows Phone apps

Supported in: Windows Phone 8.1

Portable Class Library

Supported in: Portable Class Library

  • SecurityCriticalAttribute 

    requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Show:
© 2015 Microsoft