34 #if !defined (_INC_MSCLR_GCROOT)
35 #define _INC_MSCLR_GCROOT
41 #ifdef __cplusplus_cli
42 #define __GCHANDLE_TO_VOIDPTR(x) ((GCHandle::operator System::IntPtr(x)).ToPointer())
43 #define __VOIDPTR_TO_GCHANDLE(x) (GCHandle::operator GCHandle(System::IntPtr(x)))
44 #define __NULLPTR nullptr
46 #define __GCHANDLE_TO_VOIDPTR(x) ((GCHandle::op_Explicit(x)).ToPointer())
47 #define __VOIDPTR_TO_GCHANDLE(x) (GCHandle::op_Explicit(x))
51 #ifndef __DEFINE_GCROOT_IN_GLOBAL_NAMESPACE
58 typedef System::Runtime::InteropServices::GCHandle
GCHandle;
63 [System::Diagnostics::DebuggerStepThroughAttribute]
64 [System::Security::SecuritySafeCritical]
76 gcroot(
const gcroot& r) {
86 [System::Diagnostics::DebuggerStepThroughAttribute]
87 [System::Security::SecurityCritical]
94 [System::Diagnostics::DebuggerStepThroughAttribute]
95 [System::Security::SecurityCritical]
116 [System::Security::SecuritySafeCritical]
117 operator T ()
const {
124 [System::Security::SecuritySafeCritical]
145 _left.
swap( _right );
148 #ifndef __DEFINE_GCROOT_IN_GLOBAL_NAMESPACE
152 #undef __GCHANDLE_TO_VOIDPTR
153 #undef __VOIDPTR_TO_GCHANDLE
void swap(auto_gcroot< _element_type > &_left, auto_gcroot< _element_type > &_right)
Definition: auto_gcroot.h:240
System::Runtime::InteropServices::GCHandle GCHandle
Definition: gcroot.h:58
void swap(gcroot< T > &_left, gcroot< T > &_right)
Definition: gcroot.h:142
_CONCRTIMP void *__cdecl Alloc(size_t _NumBytes)
Allocates a block of memory of the size specified from the Concurrency Runtime Caching Suballocator...
gcroot & operator=(const gcroot &r)
Definition: gcroot.h:102
gcroot & operator=(T t)
Definition: gcroot.h:96
#define __NULLPTR
Definition: gcroot.h:48
#define __VOIDPTR_TO_GCHANDLE(x)
Definition: gcroot.h:47
void * _handle
Definition: gcroot.h:137
#define __GCHANDLE_TO_VOIDPTR(x)
Definition: gcroot.h:46
void swap(gcroot< T > &_right)
Definition: gcroot.h:109
T operator->() const
Definition: gcroot.h:125
~gcroot()
Definition: gcroot.h:88