public static void Free(cef_string_userfree* str)
 {
     if (str != null)
     {
         NativeMethods.cef_string_userfree_free(str);
     }
 }
 internal static char GetFirstCharOrDefault(cef_string_userfree* str)
 {
     var str_t = ((cef_string_t*)str);
     if (str_t->length > 0)
     {
         return *(str_t->str);
     }
     return '\x0';
 }
 public static string GetString(cef_string_userfree* str)
 {
     if (str != null)
     {
         return cef_string_t.ToString((cef_string_t*)str);
     }
     else
     {
         return null;
     }
 }
 public static string GetStringAndFree(cef_string_userfree* str)
 {
     if (str != null)
     {
         var result = cef_string_t.ToString((cef_string_t*)str);
         NativeMethods.cef_string_userfree_free(str);
         return result;
     }
     else
     {
         return null;
     }
 }
 public static int GetLength(cef_string_userfree* str)
 {
     return ((cef_string_t*)str)->length;
 }
 public static extern void cef_string_userfree_free(cef_string_userfree* str);