14 #ifndef _INC_MSCLR_MARSHAL_WINDOWS 
   15 #define _INC_MSCLR_MARSHAL_WINDOWS 
   35         BSTR _bstr = _from_object.
copy(
false);
 
   41         return System::Runtime::InteropServices::Marshal::PtrToStringBSTR(System::IntPtr(_bstr));
 
   47         if (_from_object == 
nullptr)
 
   54         _ret_bstr_t.
Attach(::SysAllocStringLen(_pinned_ptr, _from_object->Length));
 
   57                 throw gcnew System::InsufficientMemoryException();
 
   65         return System::IntPtr(_from_object);
 
   68 template <
class _To_Type>
 
   69 inline _To_Type 
marshal_as(System::IntPtr _from_object);
 
   74         return static_cast<HANDLE>(_from_object.ToPointer());
 
   90                         _ip = System::Runtime::InteropServices::Marshal::StringToBSTR (from);
 
   91                         _to_object = 
static_cast<BSTR
>(_ip.ToPointer());
 
  102                         if(_ip != System::IntPtr::Zero)
 
  103                                 System::Runtime::InteropServices::Marshal::FreeBSTR(_ip);
 
Definition: comutil.h:144
 
void Attach(BSTR s)
Definition: comutil.h:597
 
__const_Char_ptr PtrToStringChars(__const_String_handle s)
Definition: vcclr.h:40
 
BSTR copy(bool fCopy=true) const 
Definition: comutil.h:545
 
Definition: marshal.h:247
 
_To_Type marshal_as(_In_z_ const char _from_object[])
Definition: marshal.h:193
 
System::IntPtr _ip
Definition: marshal_windows.h:86
 
Definition: marshal.h:186
 
context_node(BSTR &_to_object, System::String^from)
Definition: marshal_windows.h:88
 
void * HANDLE
Definition: concrt.h:72
 
~context_node()
Definition: marshal_windows.h:94
 
#define NULL
Definition: corecrt.h:158