sync with tizen branch to finalize API
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / internal / dotnetcore / HandleRef.cs
1 // ==++==\r
2 // \r
3 //   Copyright (c) Microsoft Corporation.  All rights reserved.\r
4 // \r
5 // ==--==\r
6 namespace System.Runtime.InteropServices\r
7 {\r
8 \r
9     using System;\r
10 \r
11     [System.Runtime.InteropServices.ComVisible(true)]\r
12     public struct HandleRef\r
13     {\r
14 \r
15         // ! Do not add or rearrange fields as the EE depends on this layout.\r
16         //------------------------------------------------------------------\r
17         internal Object m_wrapper;\r
18         internal IntPtr m_handle;\r
19         //------------------------------------------------------------------\r
20 \r
21 \r
22         public HandleRef(Object wrapper, IntPtr handle)\r
23         {\r
24             m_wrapper = wrapper;\r
25             m_handle = handle;\r
26         }\r
27 \r
28         public Object Wrapper\r
29         {\r
30             get\r
31             {\r
32                 return m_wrapper;\r
33             }\r
34         }\r
35 \r
36         public IntPtr Handle\r
37         {\r
38             get\r
39             {\r
40                 return m_handle;\r
41             }\r
42         }\r
43 \r
44 \r
45         public static explicit operator IntPtr(HandleRef value)\r
46         {\r
47             return value.m_handle;\r
48         }\r
49 \r
50         public static IntPtr ToIntPtr(HandleRef value)\r
51         {\r
52             return value.m_handle;\r
53         }\r
54     }\r
55 }\r