summaryrefslogtreecommitdiffstats
path: root/bindings/winrt/HandleRef.cs
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/winrt/HandleRef.cs')
-rw-r--r--bindings/winrt/HandleRef.cs55
1 files changed, 55 insertions, 0 deletions
diff --git a/bindings/winrt/HandleRef.cs b/bindings/winrt/HandleRef.cs
new file mode 100644
index 0000000..649f125
--- /dev/null
+++ b/bindings/winrt/HandleRef.cs
@@ -0,0 +1,55 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+namespace System.Runtime.InteropServices
+{
+
+ using System;
+
+ [System.Runtime.InteropServices.ComVisible(true)]
+ public struct HandleRef
+ {
+
+ // ! Do not add or rearrange fields as the EE depends on this layout.
+ //------------------------------------------------------------------
+ internal Object m_wrapper;
+ internal IntPtr m_handle;
+ //-----------------------------------------------------------------
+
+
+ public HandleRef(Object wrapper, IntPtr handle)
+ {
+ m_wrapper = wrapper;
+ m_handle = handle;
+ }
+
+ public Object Wrapper
+ {
+ get
+ {
+ return m_wrapper;
+ }
+ }
+
+ public IntPtr Handle
+ {
+ get
+ {
+ return m_handle;
+ }
+ }
+
+
+ public static explicit operator IntPtr(HandleRef value)
+ {
+ return value.m_handle;
+ }
+
+ public static IntPtr ToIntPtr(HandleRef value)
+ {
+ return value.m_handle;
+ }
+ }
+} \ No newline at end of file
OpenPOWER on IntegriCloud