1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- namespace Xilium.CefGlue.Interop
- {
- using System;
- using System.Collections.Generic;
- using System.Runtime.InteropServices;
- using System.Security;
- using System.Text;
- [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)]
- internal unsafe partial struct cef_string_t
- {
- internal char* _str;
- internal UIntPtr _length;
- internal IntPtr _dtor;
- [UnmanagedFunctionPointer(libcef.CEF_CALL)]
- #if !DEBUG
- [SuppressUnmanagedCodeSecurity]
- #endif
- public delegate void dtor_delegate(char* str);
- public cef_string_t(char* str, int length)
- {
- _str = str;
- _length = (UIntPtr)length;
- _dtor = IntPtr.Zero;
- }
- public static void Copy(string value, cef_string_t* str)
- {
- fixed (char* value_ptr = value)
- {
- libcef.string_set(value_ptr, value != null ? (UIntPtr)value.Length : UIntPtr.Zero, str, 1); // FIXME: do not ignore result
- }
- }
- public static string ToString(cef_string_t* obj)
- {
- if (obj == null) return null;
- return new string((char*)obj->_str, 0, (int)obj->_length);
- }
- }
- }
|