// ----------------------------------------------------------------------------
// <auto-generated>
// This is autogenerated code by CppSharp.
// Do not edit this file or all your changes will be lost after re-generation.
// </auto-generated>
// ----------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using System.Security;
using __CallingConvention = global::System.Runtime.InteropServices.CallingConvention;
using __IntPtr = global::System.IntPtr;

namespace Pico.Platform
{
    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_PopMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PopMessage();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_FreeMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_FreeMessage(__IntPtr obj);
        }

        public static __IntPtr ppf_PopMessage()
        {
            var __ret = __Internal.ppf_PopMessage();
            return __ret;
        }

        public static void ppf_FreeMessage(__IntPtr obj)
        {
            __Internal.ppf_FreeMessage(obj);
        }
    }

    /// <summary>The type of an achievement.</summary>
    public enum AchievementType
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>Simple achievement.</summary>
        Simple = 1,
        /// <summary>Count achievement.</summary>
        Count = 2,
        /// <summary>Bitfield achievement.</summary>
        Bitfield = 3
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfAchievementType_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfAchievementType_ToString(global::Pico.Platform.AchievementType value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfAchievementType_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.AchievementType ppfAchievementType_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfAchievementType_ToString(global::Pico.Platform.AchievementType value)
        {
            var __ret = __Internal.ppfAchievementType_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.AchievementType ppfAchievementType_FromString(string str)
        {
            var __ret = __Internal.ppfAchievementType_FromString(str);
            return __ret;
        }
    }

    /// <summary>The write policy for the achievement.</summary>
    public enum AchievementWritePolicy
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>Both the client app and server are allowed to update achievement progress.</summary>
        Client = 1,
        /// <summary>Only the server is allowed to update achievement progress.</summary>
        Server = 2
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfAchievementWritePolicy_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfAchievementWritePolicy_ToString(global::Pico.Platform.AchievementWritePolicy value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfAchievementWritePolicy_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.AchievementWritePolicy ppfAchievementWritePolicy_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfAchievementWritePolicy_ToString(global::Pico.Platform.AchievementWritePolicy value)
        {
            var __ret = __Internal.ppfAchievementWritePolicy_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.AchievementWritePolicy ppfAchievementWritePolicy_FromString(string str)
        {
            var __ret = __Internal.ppfAchievementWritePolicy_FromString(str);
            return __ret;
        }
    }

    /// <summary>The type of a key-value pair.</summary>
    public enum KVPairType
    {
        /// <summary>String.</summary>
        String = 0,
        /// <summary>Integer.</summary>
        Int = 1,
        /// <summary>Both string and integer.</summary>
        Double = 2,
        /// <summary>Unknown.</summary>
        Unknown = 3
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfKeyValuePairType_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfKeyValuePairType_ToString(global::Pico.Platform.KVPairType value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfKeyValuePairType_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.KVPairType ppfKeyValuePairType_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfKeyValuePairType_ToString(global::Pico.Platform.KVPairType value)
        {
            var __ret = __Internal.ppfKeyValuePairType_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.KVPairType ppfKeyValuePairType_FromString(string str)
        {
            var __ret = __Internal.ppfKeyValuePairType_FromString(str);
            return __ret;
        }
    }

    /// <summary>The importance level of the expression for calculating the matching degree among users, which is configured on the PICO Developer Platform.</summary>
    public enum MatchmakingCriterionImportance
    {
        /// <summary>Required.</summary>
        Required = 0,
        /// <summary>High.</summary>
        High = 1,
        /// <summary>Medium.</summary>
        Medium = 2,
        /// <summary>Low.</summary>
        Low = 3,
        /// <summary>Unknown.</summary>
        Unknown = 4
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfMatchmakingCriterionImportance_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfMatchmakingCriterionImportance_ToString(global::Pico.Platform.MatchmakingCriterionImportance value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfMatchmakingCriterionImportance_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.MatchmakingCriterionImportance ppfMatchmakingCriterionImportance_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfMatchmakingCriterionImportance_ToString(global::Pico.Platform.MatchmakingCriterionImportance value)
        {
            var __ret = __Internal.ppfMatchmakingCriterionImportance_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.MatchmakingCriterionImportance ppfMatchmakingCriterionImportance_FromString(string str)
        {
            var __ret = __Internal.ppfMatchmakingCriterionImportance_FromString(str);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AchievementDefinition_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementDefinition_GetName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetBitfieldLength", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_AchievementDefinition_GetBitfieldLength(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetTarget", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_AchievementDefinition_GetTarget(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.AchievementType ppf_AchievementDefinition_GetType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetWritePolicy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.AchievementWritePolicy ppf_AchievementDefinition_GetWritePolicy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_IsArchived", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_AchievementDefinition_IsArchived(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_IsSecret", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_AchievementDefinition_IsSecret(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetTitle", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementDefinition_GetTitle(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetDescription", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementDefinition_GetDescription(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetUnlockedDescription", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementDefinition_GetUnlockedDescription(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetLockedImageURL", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementDefinition_GetLockedImageURL(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetUnlockedImageURL", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementDefinition_GetUnlockedImageURL(__IntPtr obj);
        }

        public static ulong ppf_AchievementDefinition_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetID(obj);
            return __ret;
        }

        public static string ppf_AchievementDefinition_GetName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static uint ppf_AchievementDefinition_GetBitfieldLength(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetBitfieldLength(obj);
            return __ret;
        }

        public static long ppf_AchievementDefinition_GetTarget(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetTarget(obj);
            return __ret;
        }

        public static global::Pico.Platform.AchievementType ppf_AchievementDefinition_GetType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetType(obj);
            return __ret;
        }

        public static global::Pico.Platform.AchievementWritePolicy ppf_AchievementDefinition_GetWritePolicy(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetWritePolicy(obj);
            return __ret;
        }

        public static bool ppf_AchievementDefinition_IsArchived(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_IsArchived(obj);
            return __ret;
        }

        public static bool ppf_AchievementDefinition_IsSecret(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_IsSecret(obj);
            return __ret;
        }

        public static string ppf_AchievementDefinition_GetTitle(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetTitle(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AchievementDefinition_GetDescription(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetDescription(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AchievementDefinition_GetUnlockedDescription(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetUnlockedDescription(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AchievementDefinition_GetLockedImageURL(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetLockedImageURL(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AchievementDefinition_GetUnlockedImageURL(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinition_GetUnlockedImageURL(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinitionArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementDefinitionArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinitionArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementDefinitionArray_GetNextUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinitionArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_AchievementDefinitionArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinitionArray_GetTotalSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_AchievementDefinitionArray_GetTotalSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinitionArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_AchievementDefinitionArray_HasNextPage(__IntPtr obj);
        }

        public static __IntPtr ppf_AchievementDefinitionArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_AchievementDefinitionArray_GetElement(obj, index);
            return __ret;
        }

        public static string ppf_AchievementDefinitionArray_GetNextUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinitionArray_GetNextUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_AchievementDefinitionArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinitionArray_GetSize(obj);
            return __ret;
        }

        public static UIntPtr ppf_AchievementDefinitionArray_GetTotalSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinitionArray_GetTotalSize(obj);
            return __ret;
        }

        public static bool ppf_AchievementDefinitionArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementDefinitionArray_HasNextPage(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AchievementProgress_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetBitfield", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementProgress_GetBitfield(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_AchievementProgress_GetCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetIsUnlocked", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_AchievementProgress_GetIsUnlocked(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementProgress_GetName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetUnlockTime", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AchievementProgress_GetUnlockTime(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetExtraData", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementProgress_GetExtraData(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetExtraDataLength", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_AchievementProgress_GetExtraDataLength(__IntPtr obj);
        }

        public static ulong ppf_AchievementProgress_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgress_GetID(obj);
            return __ret;
        }

        public static string ppf_AchievementProgress_GetBitfield(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgress_GetBitfield(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static long ppf_AchievementProgress_GetCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgress_GetCount(obj);
            return __ret;
        }

        public static bool ppf_AchievementProgress_GetIsUnlocked(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgress_GetIsUnlocked(obj);
            return __ret;
        }

        public static string ppf_AchievementProgress_GetName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgress_GetName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static ulong ppf_AchievementProgress_GetUnlockTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgress_GetUnlockTime(obj);
            return __ret;
        }

        public static __IntPtr ppf_AchievementProgress_GetExtraData(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgress_GetExtraData(obj);
            return __ret;
        }

        public static uint ppf_AchievementProgress_GetExtraDataLength(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgress_GetExtraDataLength(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgressArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementProgressArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgressArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementProgressArray_GetNextUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgressArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_AchievementProgressArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgressArray_GetTotalSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_AchievementProgressArray_GetTotalSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgressArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_AchievementProgressArray_HasNextPage(__IntPtr obj);
        }

        public static __IntPtr ppf_AchievementProgressArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_AchievementProgressArray_GetElement(obj, index);
            return __ret;
        }

        public static string ppf_AchievementProgressArray_GetNextUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgressArray_GetNextUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_AchievementProgressArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgressArray_GetSize(obj);
            return __ret;
        }

        public static UIntPtr ppf_AchievementProgressArray_GetTotalSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgressArray_GetTotalSize(obj);
            return __ret;
        }

        public static bool ppf_AchievementProgressArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementProgressArray_HasNextPage(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementUpdate_GetJustUnlocked", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_AchievementUpdate_GetJustUnlocked(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementUpdate_GetName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AchievementUpdate_GetName(__IntPtr obj);
        }

        public static bool ppf_AchievementUpdate_GetJustUnlocked(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementUpdate_GetJustUnlocked(obj);
            return __ret;
        }

        public static string ppf_AchievementUpdate_GetName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AchievementUpdate_GetName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByMessageOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationByMessageOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByMessageOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationByMessageOptions_Destroy(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByMessageOptions_SetMessageData", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationByMessageOptions_SetMessageData(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);
        }

        public static __IntPtr ppf_ApplicationByMessageOptions_Create()
        {
            var __ret = __Internal.ppf_ApplicationByMessageOptions_Create();
            return __ret;
        }

        public static void ppf_ApplicationByMessageOptions_Destroy(__IntPtr handle)
        {
            __Internal.ppf_ApplicationByMessageOptions_Destroy(handle);
        }

        public static void ppf_ApplicationByMessageOptions_SetMessageData(__IntPtr handle, string value)
        {
            __Internal.ppf_ApplicationByMessageOptions_SetMessageData(handle, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationByPresenceOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationByPresenceOptions_Destroy(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationByPresenceOptions_SetDeeplinkMessage(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetDestinationApiName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationByPresenceOptions_SetDestinationApiName(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetLobbySessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationByPresenceOptions_SetLobbySessionId(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetMatchSessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationByPresenceOptions_SetMatchSessionId(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetTrackingId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationByPresenceOptions_SetTrackingId(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetExtra", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationByPresenceOptions_SetExtra(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);
        }

        public static __IntPtr ppf_ApplicationByPresenceOptions_Create()
        {
            var __ret = __Internal.ppf_ApplicationByPresenceOptions_Create();
            return __ret;
        }

        public static void ppf_ApplicationByPresenceOptions_Destroy(__IntPtr handle)
        {
            __Internal.ppf_ApplicationByPresenceOptions_Destroy(handle);
        }

        public static void ppf_ApplicationByPresenceOptions_SetDeeplinkMessage(__IntPtr handle, string value)
        {
            __Internal.ppf_ApplicationByPresenceOptions_SetDeeplinkMessage(handle, value);
        }

        public static void ppf_ApplicationByPresenceOptions_SetDestinationApiName(__IntPtr handle, string value)
        {
            __Internal.ppf_ApplicationByPresenceOptions_SetDestinationApiName(handle, value);
        }

        public static void ppf_ApplicationByPresenceOptions_SetLobbySessionId(__IntPtr handle, string value)
        {
            __Internal.ppf_ApplicationByPresenceOptions_SetLobbySessionId(handle, value);
        }

        public static void ppf_ApplicationByPresenceOptions_SetMatchSessionId(__IntPtr handle, string value)
        {
            __Internal.ppf_ApplicationByPresenceOptions_SetMatchSessionId(handle, value);
        }

        public static void ppf_ApplicationByPresenceOptions_SetTrackingId(__IntPtr handle, string value)
        {
            __Internal.ppf_ApplicationByPresenceOptions_SetTrackingId(handle, value);
        }

        public static void ppf_ApplicationByPresenceOptions_SetExtra(__IntPtr handle, string value)
        {
            __Internal.ppf_ApplicationByPresenceOptions_SetExtra(handle, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Destination_GetApiName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Destination_GetApiName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Destination_GetDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Destination_GetDeeplinkMessage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Destination_GetDisplayName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Destination_GetDisplayName(__IntPtr obj);
        }

        public static string ppf_Destination_GetApiName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Destination_GetApiName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Destination_GetDeeplinkMessage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Destination_GetDeeplinkMessage(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Destination_GetDisplayName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Destination_GetDisplayName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetDisplayName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetDisplayName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetImageUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetImageUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetInviteToken", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetInviteToken(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetSmallImageUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetSmallImageUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.UserPresenceStatus ppf_User_GetPresenceStatus(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetGender", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.Gender ppf_User_GetGender(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresence", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetPresence(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetPresenceDeeplinkMessage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceDestinationApiName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetPresenceDestinationApiName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceLobbySessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetPresenceLobbySessionId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceMatchSessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetPresenceMatchSessionId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresencePackage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetPresencePackage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceExtra", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetPresenceExtra(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceIsJoinable", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_User_GetPresenceIsJoinable(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetStoreRegion", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_User_GetStoreRegion(__IntPtr obj);
        }

        public static string ppf_User_GetDisplayName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetDisplayName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_User_GetImageUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetImageUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_User_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetID(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_User_GetInviteToken(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetInviteToken(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_User_GetSmallImageUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetSmallImageUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.UserPresenceStatus ppf_User_GetPresenceStatus(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetPresenceStatus(obj);
            return __ret;
        }

        public static global::Pico.Platform.Gender ppf_User_GetGender(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetGender(obj);
            return __ret;
        }

        public static string ppf_User_GetPresence(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetPresence(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_User_GetPresenceDeeplinkMessage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetPresenceDeeplinkMessage(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_User_GetPresenceDestinationApiName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetPresenceDestinationApiName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_User_GetPresenceLobbySessionId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetPresenceLobbySessionId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_User_GetPresenceMatchSessionId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetPresenceMatchSessionId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_User_GetPresencePackage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetPresencePackage(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_User_GetPresenceExtra(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetPresenceExtra(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static bool ppf_User_GetPresenceIsJoinable(__IntPtr obj)
        {
#if !UNITY_EDITOR
            var __ret = __Internal.ppf_User_GetPresenceIsJoinable(obj);
            return __ret;
#endif
            return true;
        }

        public static string ppf_User_GetStoreRegion(__IntPtr obj)
        {
            var __ret = __Internal.ppf_User_GetStoreRegion(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetDestination", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationInvite_GetDestination(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetRecipient", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationInvite_GetRecipient(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_ApplicationInvite_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetIsActive", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_ApplicationInvite_GetIsActive(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetLobbySessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationInvite_GetLobbySessionId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetMatchSessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationInvite_GetMatchSessionId(__IntPtr obj);
        }

        public static __IntPtr ppf_ApplicationInvite_GetDestination(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationInvite_GetDestination(obj);
            return __ret;
        }

        public static __IntPtr ppf_ApplicationInvite_GetRecipient(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationInvite_GetRecipient(obj);
            return __ret;
        }

        public static ulong ppf_ApplicationInvite_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationInvite_GetID(obj);
            return __ret;
        }

        public static bool ppf_ApplicationInvite_GetIsActive(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationInvite_GetIsActive(obj);
            return __ret;
        }

        public static string ppf_ApplicationInvite_GetLobbySessionId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationInvite_GetLobbySessionId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_ApplicationInvite_GetMatchSessionId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationInvite_GetMatchSessionId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInviteArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationInviteArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInviteArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationInviteArray_GetNextPageParam(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInviteArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_ApplicationInviteArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInviteArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_ApplicationInviteArray_HasNextPage(__IntPtr obj);
        }

        public static __IntPtr ppf_ApplicationInviteArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_ApplicationInviteArray_GetElement(obj, index);
            return __ret;
        }

        public static string ppf_ApplicationInviteArray_GetNextPageParam(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationInviteArray_GetNextPageParam(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_ApplicationInviteArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationInviteArray_GetSize(obj);
            return __ret;
        }

        public static bool ppf_ApplicationInviteArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationInviteArray_HasNextPage(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationOptions_Destroy(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationOptions_SetDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationOptions_SetDeeplinkMessage(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);
        }

        public static __IntPtr ppf_ApplicationOptions_Create()
        {
            var __ret = __Internal.ppf_ApplicationOptions_Create();
            return __ret;
        }

        public static void ppf_ApplicationOptions_Destroy(__IntPtr handle)
        {
            __Internal.ppf_ApplicationOptions_Destroy(handle);
        }

        public static void ppf_ApplicationOptions_SetDeeplinkMessage(__IntPtr handle, string value)
        {
            __Internal.ppf_ApplicationOptions_SetDeeplinkMessage(handle, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationVersion_GetCurrentCode", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_ApplicationVersion_GetCurrentCode(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationVersion_GetCurrentName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationVersion_GetCurrentName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationVersion_GetLatestCode", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_ApplicationVersion_GetLatestCode(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationVersion_GetLatestName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationVersion_GetLatestName(__IntPtr obj);
        }

        public static long ppf_ApplicationVersion_GetCurrentCode(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationVersion_GetCurrentCode(obj);
            return __ret;
        }

        public static string ppf_ApplicationVersion_GetCurrentName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationVersion_GetCurrentName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static long ppf_ApplicationVersion_GetLatestCode(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationVersion_GetLatestCode(obj);
            return __ret;
        }

        public static string ppf_ApplicationVersion_GetLatestName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ApplicationVersion_GetLatestName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AsrResult_GetText", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AsrResult_GetText(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AsrResult_GetIsFinalResult", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_AsrResult_GetIsFinalResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AsrResult_GetSessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AsrResult_GetSessionId(__IntPtr obj);
        }

        public static string ppf_AsrResult_GetText(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AsrResult_GetText(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static bool ppf_AsrResult_GetIsFinalResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AsrResult_GetIsFinalResult(obj);
            return __ret;
        }

        public static string ppf_AsrResult_GetSessionId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AsrResult_GetSessionId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetAssetId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetDetails_GetAssetId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetAssetType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetAssetType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetDownloadStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetDownloadStatus(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetFilepath", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetFilepath(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetIapStatus(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetMetadata", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetMetadata(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetFilename", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetFilename(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetVersion", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_AssetDetails_GetVersion(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapSku", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetIapSku(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetIapName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapPrice", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetIapPrice(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapCurrency", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetIapCurrency(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapDescription", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetIapDescription(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapIcon", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetails_GetIapIcon(__IntPtr obj);
        }

        public static ulong ppf_AssetDetails_GetAssetId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetAssetId(obj);
            return __ret;
        }

        public static string ppf_AssetDetails_GetAssetType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetAssetType(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetDetails_GetDownloadStatus(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetDownloadStatus(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetDetails_GetFilepath(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetFilepath(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetDetails_GetIapStatus(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetIapStatus(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetDetails_GetMetadata(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetMetadata(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetDetails_GetFilename(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetFilename(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static int ppf_AssetDetails_GetVersion(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetVersion(obj);
            return __ret;
        }

        public static string ppf_AssetDetails_GetIapSku(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetIapSku(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetDetails_GetIapName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetIapName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetDetails_GetIapPrice(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetIapPrice(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetDetails_GetIapCurrency(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetIapCurrency(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetDetails_GetIapDescription(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetIapDescription(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetDetails_GetIapIcon(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetails_GetIapIcon(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetailsArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetailsArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetailsArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_AssetDetailsArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetailsArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_AssetDetailsArray_HasNextPage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetailsArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetDetailsArray_GetNextPageParam(__IntPtr obj);
        }

        public static __IntPtr ppf_AssetDetailsArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_AssetDetailsArray_GetElement(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_AssetDetailsArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetailsArray_GetSize(obj);
            return __ret;
        }

        public static bool ppf_AssetDetailsArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetailsArray_HasNextPage(obj);
            return __ret;
        }

        public static string ppf_AssetDetailsArray_GetNextPageParam(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetDetailsArray_GetNextPageParam(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDeleteForSafety_GetAssetId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFileDeleteForSafety_GetAssetId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDeleteForSafety_GetReason", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetFileDeleteForSafety_GetReason(__IntPtr obj);
        }

        public static ulong ppf_AssetFileDeleteForSafety_GetAssetId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDeleteForSafety_GetAssetId(obj);
            return __ret;
        }

        public static string ppf_AssetFileDeleteForSafety_GetReason(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDeleteForSafety_GetReason(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDeleteResult_GetAssetId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFileDeleteResult_GetAssetId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDeleteResult_GetFilepath", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetFileDeleteResult_GetFilepath(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDeleteResult_GetSuccess", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_AssetFileDeleteResult_GetSuccess(__IntPtr obj);
        }

        public static ulong ppf_AssetFileDeleteResult_GetAssetId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDeleteResult_GetAssetId(obj);
            return __ret;
        }

        public static string ppf_AssetFileDeleteResult_GetFilepath(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDeleteResult_GetFilepath(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static bool ppf_AssetFileDeleteResult_GetSuccess(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDeleteResult_GetSuccess(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadCancelResult_GetAssetId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFileDownloadCancelResult_GetAssetId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadCancelResult_GetFilepath", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetFileDownloadCancelResult_GetFilepath(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadCancelResult_GetSuccess", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_AssetFileDownloadCancelResult_GetSuccess(__IntPtr obj);
        }

        public static ulong ppf_AssetFileDownloadCancelResult_GetAssetId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDownloadCancelResult_GetAssetId(obj);
            return __ret;
        }

        public static string ppf_AssetFileDownloadCancelResult_GetFilepath(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDownloadCancelResult_GetFilepath(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static bool ppf_AssetFileDownloadCancelResult_GetSuccess(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDownloadCancelResult_GetSuccess(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadResult_GetAssetId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFileDownloadResult_GetAssetId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadResult_GetFilepath", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetFileDownloadResult_GetFilepath(__IntPtr obj);
        }

        public static ulong ppf_AssetFileDownloadResult_GetAssetId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDownloadResult_GetAssetId(obj);
            return __ret;
        }

        public static string ppf_AssetFileDownloadResult_GetFilepath(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDownloadResult_GetFilepath(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadUpdate_GetAssetId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFileDownloadUpdate_GetAssetId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadUpdate_GetBytesTotal", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFileDownloadUpdate_GetBytesTotal(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadUpdate_GetBytesTransferred", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_AssetFileDownloadUpdate_GetBytesTransferred(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadUpdate_GetCompleteStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.AssetFileDownloadCompleteStatus ppf_AssetFileDownloadUpdate_GetCompleteStatus(__IntPtr obj);
        }

        public static ulong ppf_AssetFileDownloadUpdate_GetAssetId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDownloadUpdate_GetAssetId(obj);
            return __ret;
        }

        public static ulong ppf_AssetFileDownloadUpdate_GetBytesTotal(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDownloadUpdate_GetBytesTotal(obj);
            return __ret;
        }

        public static long ppf_AssetFileDownloadUpdate_GetBytesTransferred(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDownloadUpdate_GetBytesTransferred(obj);
            return __ret;
        }

        public static global::Pico.Platform.AssetFileDownloadCompleteStatus ppf_AssetFileDownloadUpdate_GetCompleteStatus(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetFileDownloadUpdate_GetCompleteStatus(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetStatus_GetAssetId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetStatus_GetAssetId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetStatus_GetFilename", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetStatus_GetFilename(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetStatus_GetFilepath", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetStatus_GetFilepath(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetStatus_GetDownloadStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_AssetStatus_GetDownloadStatus(__IntPtr obj);
        }

        public static ulong ppf_AssetStatus_GetAssetId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetStatus_GetAssetId(obj);
            return __ret;
        }

        public static string ppf_AssetStatus_GetFilename(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetStatus_GetFilename(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetStatus_GetFilepath(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetStatus_GetFilepath(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_AssetStatus_GetDownloadStatus(__IntPtr obj)
        {
            var __ret = __Internal.ppf_AssetStatus_GetDownloadStatus(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_CaptureInfo_GetImagePath", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_CaptureInfo_GetImagePath(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_CaptureInfo_GetJobId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_CaptureInfo_GetJobId(__IntPtr obj);
        }

        public static string ppf_CaptureInfo_GetImagePath(__IntPtr obj)
        {
            var __ret = __Internal.ppf_CaptureInfo_GetImagePath(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_CaptureInfo_GetJobId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_CaptureInfo_GetJobId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    /// <summary>The creator of the challenge.</summary>
    public enum ChallengeCreationType
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>User.</summary>
        UserCreated = 1,
        /// <summary>Developer.</summary>
        DeveloperCreated = 2
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeCreationType_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfChallengeCreationType_ToString(global::Pico.Platform.ChallengeCreationType value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeCreationType_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.ChallengeCreationType ppfChallengeCreationType_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfChallengeCreationType_ToString(global::Pico.Platform.ChallengeCreationType value)
        {
            var __ret = __Internal.ppfChallengeCreationType_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.ChallengeCreationType ppfChallengeCreationType_FromString(string str)
        {
            var __ret = __Internal.ppfChallengeCreationType_FromString(str);
            return __ret;
        }
    }

    /// <summary>Indicates who can see and join the challenge.</summary>
    public enum ChallengeVisibility
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>Everyone can see the challenge, but only those invited can join it.</summary>
        InviteOnly = 1,
        /// <summary>Everyone can see and join the challenge.</summary>
        Public = 2,
        /// <summary>Only those invited can see and join the challenge.</summary>
        Private = 3
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeVisibility_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfChallengeVisibility_ToString(global::Pico.Platform.ChallengeVisibility value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeVisibility_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.ChallengeVisibility ppfChallengeVisibility_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfChallengeVisibility_ToString(global::Pico.Platform.ChallengeVisibility value)
        {
            var __ret = __Internal.ppfChallengeVisibility_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.ChallengeVisibility ppfChallengeVisibility_FromString(string str)
        {
            var __ret = __Internal.ppfChallengeVisibility_FromString(str);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetDestination", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Leaderboard_GetDestination(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetApiName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Leaderboard_GetApiName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Leaderboard_GetID(__IntPtr obj);
        }

        public static __IntPtr ppf_Leaderboard_GetDestination(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Leaderboard_GetDestination(obj);
            return __ret;
        }

        public static string ppf_Leaderboard_GetApiName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Leaderboard_GetApiName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static ulong ppf_Leaderboard_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Leaderboard_GetID(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_UserArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_UserArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_UserArray_HasNextPage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_UserArray_GetNextPageParam(__IntPtr obj);
        }

        public static __IntPtr ppf_UserArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_UserArray_GetElement(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_UserArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_UserArray_GetSize(obj);
            return __ret;
        }

        public static bool ppf_UserArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_UserArray_HasNextPage(obj);
            return __ret;
        }

        public static string ppf_UserArray_GetNextPageParam(__IntPtr obj)
        {
            var __ret = __Internal.ppf_UserArray_GetNextPageParam(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetCreationType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.ChallengeCreationType ppf_Challenge_GetCreationType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetInvitedUsers", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Challenge_GetInvitedUsers(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetLeaderboard", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Challenge_GetLeaderboard(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetParticipants", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Challenge_GetParticipants(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetTitle", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Challenge_GetTitle(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetVisibility", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.ChallengeVisibility ppf_Challenge_GetVisibility(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetEndDate", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenge_GetEndDate(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenge_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetStartDate", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenge_GetStartDate(__IntPtr obj);
        }

        public static global::Pico.Platform.ChallengeCreationType ppf_Challenge_GetCreationType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Challenge_GetCreationType(obj);
            return __ret;
        }

        public static __IntPtr ppf_Challenge_GetInvitedUsers(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Challenge_GetInvitedUsers(obj);
            return __ret;
        }

        public static __IntPtr ppf_Challenge_GetLeaderboard(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Challenge_GetLeaderboard(obj);
            return __ret;
        }

        public static __IntPtr ppf_Challenge_GetParticipants(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Challenge_GetParticipants(obj);
            return __ret;
        }

        public static string ppf_Challenge_GetTitle(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Challenge_GetTitle(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.ChallengeVisibility ppf_Challenge_GetVisibility(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Challenge_GetVisibility(obj);
            return __ret;
        }

        public static ulong ppf_Challenge_GetEndDate(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Challenge_GetEndDate(obj);
            return __ret;
        }

        public static ulong ppf_Challenge_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Challenge_GetID(obj);
            return __ret;
        }

        public static ulong ppf_Challenge_GetStartDate(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Challenge_GetStartDate(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ChallengeArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ChallengeArray_GetNextUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_GetPreviousUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ChallengeArray_GetPreviousUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_ChallengeArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_ChallengeArray_GetTotalCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_ChallengeArray_HasNextPage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_HasPreviousPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_ChallengeArray_HasPreviousPage(__IntPtr obj);
        }

        public static __IntPtr ppf_ChallengeArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_ChallengeArray_GetElement(obj, index);
            return __ret;
        }

        public static string ppf_ChallengeArray_GetNextUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeArray_GetNextUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_ChallengeArray_GetPreviousUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeArray_GetPreviousUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_ChallengeArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeArray_GetSize(obj);
            return __ret;
        }

        public static ulong ppf_ChallengeArray_GetTotalCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeArray_GetTotalCount(obj);
            return __ret;
        }

        public static bool ppf_ChallengeArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeArray_HasNextPage(obj);
            return __ret;
        }

        public static bool ppf_ChallengeArray_HasPreviousPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeArray_HasPreviousPage(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetDisplayScore", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ChallengeEntry_GetDisplayScore(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetExtraData", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ChallengeEntry_GetExtraData(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetExtraDataLength", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_ChallengeEntry_GetExtraDataLength(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_ChallengeEntry_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetRank", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_ChallengeEntry_GetRank(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetScore", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_ChallengeEntry_GetScore(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetTimestamp", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_ChallengeEntry_GetTimestamp(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetUser", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ChallengeEntry_GetUser(__IntPtr obj);
        }

        public static string ppf_ChallengeEntry_GetDisplayScore(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntry_GetDisplayScore(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static __IntPtr ppf_ChallengeEntry_GetExtraData(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntry_GetExtraData(obj);
            return __ret;
        }

        public static uint ppf_ChallengeEntry_GetExtraDataLength(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntry_GetExtraDataLength(obj);
            return __ret;
        }

        public static ulong ppf_ChallengeEntry_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntry_GetID(obj);
            return __ret;
        }

        public static int ppf_ChallengeEntry_GetRank(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntry_GetRank(obj);
            return __ret;
        }

        public static long ppf_ChallengeEntry_GetScore(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntry_GetScore(obj);
            return __ret;
        }

        public static ulong ppf_ChallengeEntry_GetTimestamp(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntry_GetTimestamp(obj);
            return __ret;
        }

        public static __IntPtr ppf_ChallengeEntry_GetUser(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntry_GetUser(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ChallengeEntryArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ChallengeEntryArray_GetNextUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_GetPreviousUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ChallengeEntryArray_GetPreviousUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_ChallengeEntryArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_ChallengeEntryArray_GetTotalCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_ChallengeEntryArray_HasNextPage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_HasPreviousPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_ChallengeEntryArray_HasPreviousPage(__IntPtr obj);
        }

        public static __IntPtr ppf_ChallengeEntryArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_ChallengeEntryArray_GetElement(obj, index);
            return __ret;
        }

        public static string ppf_ChallengeEntryArray_GetNextUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntryArray_GetNextUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_ChallengeEntryArray_GetPreviousUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntryArray_GetPreviousUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_ChallengeEntryArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntryArray_GetSize(obj);
            return __ret;
        }

        public static ulong ppf_ChallengeEntryArray_GetTotalCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntryArray_GetTotalCount(obj);
            return __ret;
        }

        public static bool ppf_ChallengeEntryArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntryArray_HasNextPage(obj);
            return __ret;
        }

        public static bool ppf_ChallengeEntryArray_HasPreviousPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ChallengeEntryArray_HasPreviousPage(obj);
            return __ret;
        }
    }

    /// <summary>The filter for querying specified challenges.</summary>
    public enum ChallengeViewerFilter
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>To return the challenges visible to everyone.</summary>
        AllVisible = 1,
        /// <summary>To return the challenges only visible to the participants.</summary>
        Participating = 2,
        /// <summary>To return the challenges only visible to those invited.</summary>
        Invited = 3,
        /// <summary>To returns the challenges visible to both the participants and those invited.</summary>
        ParticipatingOrInvited = 4
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeViewerFilter_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfChallengeViewerFilter_ToString(global::Pico.Platform.ChallengeViewerFilter value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeViewerFilter_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.ChallengeViewerFilter ppfChallengeViewerFilter_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfChallengeViewerFilter_ToString(global::Pico.Platform.ChallengeViewerFilter value)
        {
            var __ret = __Internal.ppfChallengeViewerFilter_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.ChallengeViewerFilter ppfChallengeViewerFilter_FromString(string str)
        {
            var __ret = __Internal.ppfChallengeViewerFilter_FromString(str);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ChallengeOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ChallengeOptions_Destroy(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetEndDate", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ChallengeOptions_SetEndDate(__IntPtr handle, ulong value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetIncludeActiveChallenges", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ChallengeOptions_SetIncludeActiveChallenges(__IntPtr handle, bool value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetIncludeFutureChallenges", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ChallengeOptions_SetIncludeFutureChallenges(__IntPtr handle, bool value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetIncludePastChallenges", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ChallengeOptions_SetIncludePastChallenges(__IntPtr handle, bool value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetLeaderboardName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ChallengeOptions_SetLeaderboardName(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetStartDate", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ChallengeOptions_SetStartDate(__IntPtr handle, ulong value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetTitle", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ChallengeOptions_SetTitle(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetViewerFilter", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ChallengeOptions_SetViewerFilter(__IntPtr handle, global::Pico.Platform.ChallengeViewerFilter value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetVisibility", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ChallengeOptions_SetVisibility(__IntPtr handle, global::Pico.Platform.ChallengeVisibility value);
        }

        public static __IntPtr ppf_ChallengeOptions_Create()
        {
            var __ret = __Internal.ppf_ChallengeOptions_Create();
            return __ret;
        }

        public static void ppf_ChallengeOptions_Destroy(__IntPtr handle)
        {
            __Internal.ppf_ChallengeOptions_Destroy(handle);
        }

        public static void ppf_ChallengeOptions_SetEndDate(__IntPtr handle, ulong value)
        {
            __Internal.ppf_ChallengeOptions_SetEndDate(handle, value);
        }

        public static void ppf_ChallengeOptions_SetIncludeActiveChallenges(__IntPtr handle, bool value)
        {
            __Internal.ppf_ChallengeOptions_SetIncludeActiveChallenges(handle, value);
        }

        public static void ppf_ChallengeOptions_SetIncludeFutureChallenges(__IntPtr handle, bool value)
        {
            __Internal.ppf_ChallengeOptions_SetIncludeFutureChallenges(handle, value);
        }

        public static void ppf_ChallengeOptions_SetIncludePastChallenges(__IntPtr handle, bool value)
        {
            __Internal.ppf_ChallengeOptions_SetIncludePastChallenges(handle, value);
        }

        public static void ppf_ChallengeOptions_SetLeaderboardName(__IntPtr handle, string value)
        {
            __Internal.ppf_ChallengeOptions_SetLeaderboardName(handle, value);
        }

        public static void ppf_ChallengeOptions_SetStartDate(__IntPtr handle, ulong value)
        {
            __Internal.ppf_ChallengeOptions_SetStartDate(handle, value);
        }

        public static void ppf_ChallengeOptions_SetTitle(__IntPtr handle, string value)
        {
            __Internal.ppf_ChallengeOptions_SetTitle(handle, value);
        }

        public static void ppf_ChallengeOptions_SetViewerFilter(__IntPtr handle, global::Pico.Platform.ChallengeViewerFilter value)
        {
            __Internal.ppf_ChallengeOptions_SetViewerFilter(handle, value);
        }

        public static void ppf_ChallengeOptions_SetVisibility(__IntPtr handle, global::Pico.Platform.ChallengeVisibility value)
        {
            __Internal.ppf_ChallengeOptions_SetVisibility(handle, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_DataStore_Contains", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_DataStore_Contains(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_DataStore_GetKey", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_DataStore_GetKey(__IntPtr obj, int index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_DataStore_GetNumKeys", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_DataStore_GetNumKeys(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_DataStore_GetValue", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_DataStore_GetValue(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key);
        }

        public static uint ppf_DataStore_Contains(__IntPtr obj, string key)
        {
            var __ret = __Internal.ppf_DataStore_Contains(obj, key);
            return __ret;
        }

        public static string ppf_DataStore_GetKey(__IntPtr obj, int index)
        {
            var __ret = __Internal.ppf_DataStore_GetKey(obj, index);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_DataStore_GetNumKeys(__IntPtr obj)
        {
            var __ret = __Internal.ppf_DataStore_GetNumKeys(obj);
            return __ret;
        }

        public static string ppf_DataStore_GetValue(__IntPtr obj, string key)
        {
            var __ret = __Internal.ppf_DataStore_GetValue(obj, key);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_DestinationArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_DestinationArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_DestinationArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_DestinationArray_GetNextPageParam(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_DestinationArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_DestinationArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_DestinationArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_DestinationArray_HasNextPage(__IntPtr obj);
        }

        public static __IntPtr ppf_DestinationArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_DestinationArray_GetElement(obj, index);
            return __ret;
        }

        public static string ppf_DestinationArray_GetNextPageParam(__IntPtr obj)
        {
            var __ret = __Internal.ppf_DestinationArray_GetNextPageParam(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_DestinationArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_DestinationArray_GetSize(obj);
            return __ret;
        }

        public static bool ppf_DestinationArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_DestinationArray_HasNextPage(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_DetectSensitiveResult_GetFilteredText", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_DetectSensitiveResult_GetFilteredText(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_DetectSensitiveResult_GetProposal", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.SensitiveProposal ppf_DetectSensitiveResult_GetProposal(__IntPtr obj);
        }

        public static string ppf_DetectSensitiveResult_GetFilteredText(__IntPtr obj)
        {
            var __ret = __Internal.ppf_DetectSensitiveResult_GetFilteredText(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.SensitiveProposal ppf_DetectSensitiveResult_GetProposal(__IntPtr obj)
        {
            var __ret = __Internal.ppf_DetectSensitiveResult_GetProposal(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_EntitlementCheckResult_GetHasEntitlement", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_EntitlementCheckResult_GetHasEntitlement(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_EntitlementCheckResult_GetStatusCode", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_EntitlementCheckResult_GetStatusCode(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_EntitlementCheckResult_GetStatusMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_EntitlementCheckResult_GetStatusMessage(__IntPtr obj);
        }

        public static bool ppf_EntitlementCheckResult_GetHasEntitlement(__IntPtr obj)
        {
            var __ret = __Internal.ppf_EntitlementCheckResult_GetHasEntitlement(obj);
            return __ret;
        }

        public static int ppf_EntitlementCheckResult_GetStatusCode(__IntPtr obj)
        {
            var __ret = __Internal.ppf_EntitlementCheckResult_GetStatusCode(obj);
            return __ret;
        }

        public static string ppf_EntitlementCheckResult_GetStatusMessage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_EntitlementCheckResult_GetStatusMessage(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Error_GetMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Error_GetMessage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Error_GetCode", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_Error_GetCode(__IntPtr obj);
        }

        public static string ppf_Error_GetMessage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Error_GetMessage(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static int ppf_Error_GetCode(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Error_GetCode(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LaunchDetails_GetDeeplinkMessage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetDestinationApiName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LaunchDetails_GetDestinationApiName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetLobbySessionID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LaunchDetails_GetLobbySessionID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetMatchSessionID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LaunchDetails_GetMatchSessionID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetExtra", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LaunchDetails_GetExtra(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetRoomID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_LaunchDetails_GetRoomID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetChallengeID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_LaunchDetails_GetChallengeID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetTrackingID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LaunchDetails_GetTrackingID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetLaunchType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.LaunchType ppf_LaunchDetails_GetLaunchType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetClientAction", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LaunchDetails_GetClientAction(__IntPtr obj);
        }

        public static string ppf_LaunchDetails_GetDeeplinkMessage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchDetails_GetDeeplinkMessage(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_LaunchDetails_GetDestinationApiName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchDetails_GetDestinationApiName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_LaunchDetails_GetLobbySessionID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchDetails_GetLobbySessionID(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_LaunchDetails_GetMatchSessionID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchDetails_GetMatchSessionID(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_LaunchDetails_GetExtra(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchDetails_GetExtra(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static ulong ppf_LaunchDetails_GetRoomID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchDetails_GetRoomID(obj);
            return __ret;
        }

        public static ulong ppf_LaunchDetails_GetChallengeID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchDetails_GetChallengeID(obj);
            return __ret;
        }

        public static string ppf_LaunchDetails_GetTrackingID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchDetails_GetTrackingID(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.LaunchType ppf_LaunchDetails_GetLaunchType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchDetails_GetLaunchType(obj);
            return __ret;
        }

        public static string ppf_LaunchDetails_GetClientAction(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchDetails_GetClientAction(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetROMVersion", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SystemInfo_GetROMVersion(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetLocale", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SystemInfo_GetLocale(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetProductName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SystemInfo_GetProductName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetIsCnDevice", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_SystemInfo_GetIsCnDevice(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetMatrixVersionName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SystemInfo_GetMatrixVersionName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetMatrixVersionCode", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_SystemInfo_GetMatrixVersionCode(__IntPtr obj);
        }

        public static string ppf_SystemInfo_GetROMVersion(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SystemInfo_GetROMVersion(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_SystemInfo_GetLocale(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SystemInfo_GetLocale(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_SystemInfo_GetProductName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SystemInfo_GetProductName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static bool ppf_SystemInfo_GetIsCnDevice(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SystemInfo_GetIsCnDevice(obj);
            return __ret;
        }

        public static string ppf_SystemInfo_GetMatrixVersionName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SystemInfo_GetMatrixVersionName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static long ppf_SystemInfo_GetMatrixVersionCode(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SystemInfo_GetMatrixVersionCode(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationLifecycle_GetLaunchDetails", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ApplicationLifecycle_GetLaunchDetails();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationLifecycle_LogDeeplinkResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ApplicationLifecycle_LogDeeplinkResult([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string trackingID, global::Pico.Platform.LaunchResult result);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_GetSystemInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Application_GetSystemInfo();
        }

        public static __IntPtr ppf_ApplicationLifecycle_GetLaunchDetails()
        {
            var __ret = __Internal.ppf_ApplicationLifecycle_GetLaunchDetails();
            return __ret;
        }

        public static void ppf_ApplicationLifecycle_LogDeeplinkResult(string trackingID, global::Pico.Platform.LaunchResult result)
        {
            __Internal.ppf_ApplicationLifecycle_LogDeeplinkResult(trackingID, result);
        }

        public static __IntPtr ppf_Application_GetSystemInfo()
        {
            var __ret = __Internal.ppf_Application_GetSystemInfo();
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Packet_Free", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Packet_Free(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Packet_GetBytes", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Packet_GetBytes(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Packet_GetSenderID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Packet_GetSenderID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Packet_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_Packet_GetSize(__IntPtr obj);
        }

        public static void ppf_Packet_Free(__IntPtr obj)
        {
            __Internal.ppf_Packet_Free(obj);
        }

        public static __IntPtr ppf_Packet_GetBytes(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Packet_GetBytes(obj);
            return __ret;
        }

        public static string ppf_Packet_GetSenderID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Packet_GetSenderID(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_Packet_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Packet_GetSize(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Net_ReadPacket", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Net_ReadPacket();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Net_SendPacket", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_Net_SendPacket([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID, UIntPtr length, __IntPtr bytes);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Net_SendPacket2", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_Net_SendPacket2([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID, UIntPtr length, __IntPtr bytes, bool reliable);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Net_SendPacketToCurrentRoom", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_Net_SendPacketToCurrentRoom(UIntPtr length, __IntPtr bytes);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Net_SendPacketToCurrentRoom2", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_Net_SendPacketToCurrentRoom2(UIntPtr length, __IntPtr bytes, bool reliable);
        }

        public static __IntPtr ppf_Net_ReadPacket()
        {
            var __ret = __Internal.ppf_Net_ReadPacket();
            return __ret;
        }

        public static bool ppf_Net_SendPacket(string userID, UIntPtr length, __IntPtr bytes)
        {
            var __ret = __Internal.ppf_Net_SendPacket(userID, length, bytes);
            return __ret;
        }

        public static bool ppf_Net_SendPacket2(string userID, UIntPtr length, __IntPtr bytes, bool reliable)
        {
            var __ret = __Internal.ppf_Net_SendPacket2(userID, length, bytes, reliable);
            return __ret;
        }

        public static bool ppf_Net_SendPacketToCurrentRoom(UIntPtr length, __IntPtr bytes)
        {
            var __ret = __Internal.ppf_Net_SendPacketToCurrentRoom(length, bytes);
            return __ret;
        }

        public static bool ppf_Net_SendPacketToCurrentRoom2(UIntPtr length, __IntPtr bytes, bool reliable)
        {
            var __ret = __Internal.ppf_Net_SendPacketToCurrentRoom2(length, bytes, reliable);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioPropertyOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcAudioPropertyOptions_Destroy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioPropertyOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcAudioPropertyOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioPropertyOptions_SetInterval", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcAudioPropertyOptions_SetInterval(__IntPtr obj, int value);
        }

        public static void ppf_RtcAudioPropertyOptions_Destroy(__IntPtr obj)
        {
            __Internal.ppf_RtcAudioPropertyOptions_Destroy(obj);
        }

        public static __IntPtr ppf_RtcAudioPropertyOptions_Create()
        {
            var __ret = __Internal.ppf_RtcAudioPropertyOptions_Create();
            return __ret;
        }

        public static void ppf_RtcAudioPropertyOptions_SetInterval(__IntPtr obj, int value)
        {
            __Internal.ppf_RtcAudioPropertyOptions_SetInterval(obj, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfoOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcStreamSyncInfoOptions_Destroy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfoOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcStreamSyncInfoOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfoOptions_SetStreamIndex", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcStreamSyncInfoOptions_SetStreamIndex(__IntPtr obj, global::Pico.Platform.RtcStreamIndex value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfoOptions_SetRepeatCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcStreamSyncInfoOptions_SetRepeatCount(__IntPtr obj, int value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfoOptions_SetStreamType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcStreamSyncInfoOptions_SetStreamType(__IntPtr obj, global::Pico.Platform.RtcSyncInfoStreamType value);
        }

        public static void ppf_RtcStreamSyncInfoOptions_Destroy(__IntPtr obj)
        {
            __Internal.ppf_RtcStreamSyncInfoOptions_Destroy(obj);
        }

        public static __IntPtr ppf_RtcStreamSyncInfoOptions_Create()
        {
            var __ret = __Internal.ppf_RtcStreamSyncInfoOptions_Create();
            return __ret;
        }

        public static void ppf_RtcStreamSyncInfoOptions_SetStreamIndex(__IntPtr obj, global::Pico.Platform.RtcStreamIndex value)
        {
            __Internal.ppf_RtcStreamSyncInfoOptions_SetStreamIndex(obj, value);
        }

        public static void ppf_RtcStreamSyncInfoOptions_SetRepeatCount(__IntPtr obj, int value)
        {
            __Internal.ppf_RtcStreamSyncInfoOptions_SetRepeatCount(obj, value);
        }

        public static void ppf_RtcStreamSyncInfoOptions_SetStreamType(__IntPtr obj, global::Pico.Platform.RtcSyncInfoStreamType value)
        {
            __Internal.ppf_RtcStreamSyncInfoOptions_SetStreamType(obj, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcRoomOptions_Destroy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRoomOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetRoomProfileType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcRoomOptions_SetRoomProfileType(__IntPtr obj, global::Pico.Platform.RtcRoomProfileType value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetIsAutoSubscribeAudio", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcRoomOptions_SetIsAutoSubscribeAudio(__IntPtr obj, bool value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcRoomOptions_SetRoomId(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcRoomOptions_SetUserId(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetUserExtra", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcRoomOptions_SetUserExtra(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetToken", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcRoomOptions_SetToken(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);
        }

        public static void ppf_RtcRoomOptions_Destroy(__IntPtr obj)
        {
            __Internal.ppf_RtcRoomOptions_Destroy(obj);
        }

        public static __IntPtr ppf_RtcRoomOptions_Create()
        {
            var __ret = __Internal.ppf_RtcRoomOptions_Create();
            return __ret;
        }

        public static void ppf_RtcRoomOptions_SetRoomProfileType(__IntPtr obj, global::Pico.Platform.RtcRoomProfileType value)
        {
            __Internal.ppf_RtcRoomOptions_SetRoomProfileType(obj, value);
        }

        public static void ppf_RtcRoomOptions_SetIsAutoSubscribeAudio(__IntPtr obj, bool value)
        {
            __Internal.ppf_RtcRoomOptions_SetIsAutoSubscribeAudio(obj, value);
        }

        public static void ppf_RtcRoomOptions_SetRoomId(__IntPtr obj, string value)
        {
            __Internal.ppf_RtcRoomOptions_SetRoomId(obj, value);
        }

        public static void ppf_RtcRoomOptions_SetUserId(__IntPtr obj, string value)
        {
            __Internal.ppf_RtcRoomOptions_SetUserId(obj, value);
        }

        public static void ppf_RtcRoomOptions_SetUserExtra(__IntPtr obj, string value)
        {
            __Internal.ppf_RtcRoomOptions_SetUserExtra(obj, value);
        }

        public static void ppf_RtcRoomOptions_SetToken(__IntPtr obj, string value)
        {
            __Internal.ppf_RtcRoomOptions_SetToken(obj, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcAudioFrameOptions_Destroy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcAudioFrameOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetSampleRate", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcAudioFrameOptions_SetSampleRate(__IntPtr obj, global::Pico.Platform.RtcAudioSampleRate value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetChannel", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcAudioFrameOptions_SetChannel(__IntPtr obj, global::Pico.Platform.RtcAudioChannel value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetTimeStampInUs", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcAudioFrameOptions_SetTimeStampInUs(__IntPtr obj, long value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetData", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcAudioFrameOptions_SetData(__IntPtr obj, __IntPtr value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetDataSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcAudioFrameOptions_SetDataSize(__IntPtr obj, long value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetDeepCopy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcAudioFrameOptions_SetDeepCopy(__IntPtr obj, bool value);
        }

        public static void ppf_RtcAudioFrameOptions_Destroy(__IntPtr obj)
        {
            __Internal.ppf_RtcAudioFrameOptions_Destroy(obj);
        }

        public static __IntPtr ppf_RtcAudioFrameOptions_Create()
        {
            var __ret = __Internal.ppf_RtcAudioFrameOptions_Create();
            return __ret;
        }

        public static void ppf_RtcAudioFrameOptions_SetSampleRate(__IntPtr obj, global::Pico.Platform.RtcAudioSampleRate value)
        {
            __Internal.ppf_RtcAudioFrameOptions_SetSampleRate(obj, value);
        }

        public static void ppf_RtcAudioFrameOptions_SetChannel(__IntPtr obj, global::Pico.Platform.RtcAudioChannel value)
        {
            __Internal.ppf_RtcAudioFrameOptions_SetChannel(obj, value);
        }

        public static void ppf_RtcAudioFrameOptions_SetTimeStampInUs(__IntPtr obj, long value)
        {
            __Internal.ppf_RtcAudioFrameOptions_SetTimeStampInUs(obj, value);
        }

        public static void ppf_RtcAudioFrameOptions_SetData(__IntPtr obj, __IntPtr value)
        {
            __Internal.ppf_RtcAudioFrameOptions_SetData(obj, value);
        }

        public static void ppf_RtcAudioFrameOptions_SetDataSize(__IntPtr obj, long value)
        {
            __Internal.ppf_RtcAudioFrameOptions_SetDataSize(obj, value);
        }

        public static void ppf_RtcAudioFrameOptions_SetDeepCopy(__IntPtr obj, bool value)
        {
            __Internal.ppf_RtcAudioFrameOptions_SetDeepCopy(obj, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_InitRtcEngine", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcEngineInitResult ppf_Rtc_InitRtcEngine();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_UnInitRtcEngine", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_UnInitRtcEngine();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_JoinRoom", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_Rtc_JoinRoom(__IntPtr roomOptions);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_LeaveRoom", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_Rtc_LeaveRoom([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_DestroyRoom", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_DestroyRoom([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_PublishRoom", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_PublishRoom([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_UnPublishRoom", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_UnPublishRoom([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_UpdateToken", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_UpdateToken([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string token);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_EnableAudioPropertiesReport", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_EnableAudioPropertiesReport(__IntPtr config);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_MuteLocalAudio", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_MuteLocalAudio(global::Pico.Platform.RtcMuteState muteState);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomPauseAllSubscribedStream", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_RoomPauseAllSubscribedStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, global::Pico.Platform.RtcPauseResumeMediaType mediaType);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomResumeAllSubscribedStream", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_RoomResumeAllSubscribedStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, global::Pico.Platform.RtcPauseResumeMediaType mediaType);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetAudioPlaybackDevice", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_SetAudioPlaybackDevice(global::Pico.Platform.RtcAudioPlaybackDevice device);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetAudioScenario", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_SetAudioScenario(global::Pico.Platform.RtcAudioScenarioType scenario);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetCaptureVolume", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_SetCaptureVolume(global::Pico.Platform.RtcStreamIndex index, int volume);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetEarMonitorMode", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_SetEarMonitorMode(global::Pico.Platform.RtcEarMonitorMode earMonitorMode);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetEarMonitorVolume", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_SetEarMonitorVolume(int volume);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetPlaybackVolume", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_SetPlaybackVolume(int volume);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_StartAudioCapture", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_StartAudioCapture();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_StopAudioCapture", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_StopAudioCapture();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomPublishStream", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_RoomPublishStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, global::Pico.Platform.RtcMediaStreamType streamType);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomSetRemoteAudioPlaybackVolume", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_RoomSetRemoteAudioPlaybackVolume([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userId, int volume);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomSubscribeStream", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_RoomSubscribeStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userId, global::Pico.Platform.RtcMediaStreamType mediaType);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomUnPublishStream", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_RoomUnPublishStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, global::Pico.Platform.RtcMediaStreamType streamType);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomUnsubscribeStream", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_RoomUnsubscribeStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userId, global::Pico.Platform.RtcMediaStreamType mediaType);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SendRoomBinaryMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_Rtc_SendRoomBinaryMessage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, __IntPtr message, int length);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SendRoomMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_Rtc_SendRoomMessage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string message);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SendStreamSyncInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_Rtc_SendStreamSyncInfo(__IntPtr data, int length, __IntPtr config);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SendUserBinaryMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_Rtc_SendUserBinaryMessage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userId, __IntPtr message, int length);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SendUserMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_Rtc_SendUserMessage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string message);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetAudioSourceType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_Rtc_SetAudioSourceType(global::Pico.Platform.RtcAudioSourceType type);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetScreenAudioSourceType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Rtc_SetScreenAudioSourceType(global::Pico.Platform.RtcAudioSourceType sourceType);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_PushExternalAudioFrame", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_Rtc_PushExternalAudioFrame(__IntPtr audioFrame);
        }

        public static global::Pico.Platform.RtcEngineInitResult ppf_Rtc_InitRtcEngine()
        {
            var __ret = __Internal.ppf_Rtc_InitRtcEngine();
            return __ret;
        }

        public static void ppf_Rtc_UnInitRtcEngine()
        {
            __Internal.ppf_Rtc_UnInitRtcEngine();
        }

        public static int ppf_Rtc_JoinRoom(__IntPtr roomOptions)
        {
            var __ret = __Internal.ppf_Rtc_JoinRoom(roomOptions);
            return __ret;
        }

        public static int ppf_Rtc_LeaveRoom(string roomId)
        {
            var __ret = __Internal.ppf_Rtc_LeaveRoom(roomId);
            return __ret;
        }

        public static void ppf_Rtc_DestroyRoom(string roomId)
        {
            __Internal.ppf_Rtc_DestroyRoom(roomId);
        }

        public static void ppf_Rtc_PublishRoom(string roomId)
        {
            __Internal.ppf_Rtc_PublishRoom(roomId);
        }

        public static void ppf_Rtc_UnPublishRoom(string roomId)
        {
            __Internal.ppf_Rtc_UnPublishRoom(roomId);
        }

        public static void ppf_Rtc_UpdateToken(string roomId, string token)
        {
            __Internal.ppf_Rtc_UpdateToken(roomId, token);
        }

        public static void ppf_Rtc_EnableAudioPropertiesReport(__IntPtr config)
        {
            __Internal.ppf_Rtc_EnableAudioPropertiesReport(config);
        }

        public static void ppf_Rtc_MuteLocalAudio(global::Pico.Platform.RtcMuteState muteState)
        {
            __Internal.ppf_Rtc_MuteLocalAudio(muteState);
        }

        public static void ppf_Rtc_RoomPauseAllSubscribedStream(string roomId, global::Pico.Platform.RtcPauseResumeMediaType mediaType)
        {
            __Internal.ppf_Rtc_RoomPauseAllSubscribedStream(roomId, mediaType);
        }

        public static void ppf_Rtc_RoomResumeAllSubscribedStream(string roomId, global::Pico.Platform.RtcPauseResumeMediaType mediaType)
        {
            __Internal.ppf_Rtc_RoomResumeAllSubscribedStream(roomId, mediaType);
        }

        public static void ppf_Rtc_SetAudioPlaybackDevice(global::Pico.Platform.RtcAudioPlaybackDevice device)
        {
            __Internal.ppf_Rtc_SetAudioPlaybackDevice(device);
        }

        public static void ppf_Rtc_SetAudioScenario(global::Pico.Platform.RtcAudioScenarioType scenario)
        {
            __Internal.ppf_Rtc_SetAudioScenario(scenario);
        }

        public static void ppf_Rtc_SetCaptureVolume(global::Pico.Platform.RtcStreamIndex index, int volume)
        {
            __Internal.ppf_Rtc_SetCaptureVolume(index, volume);
        }

        public static void ppf_Rtc_SetEarMonitorMode(global::Pico.Platform.RtcEarMonitorMode earMonitorMode)
        {
            __Internal.ppf_Rtc_SetEarMonitorMode(earMonitorMode);
        }

        public static void ppf_Rtc_SetEarMonitorVolume(int volume)
        {
            __Internal.ppf_Rtc_SetEarMonitorVolume(volume);
        }

        public static void ppf_Rtc_SetPlaybackVolume(int volume)
        {
            __Internal.ppf_Rtc_SetPlaybackVolume(volume);
        }

        public static void ppf_Rtc_StartAudioCapture()
        {
            __Internal.ppf_Rtc_StartAudioCapture();
        }

        public static void ppf_Rtc_StopAudioCapture()
        {
            __Internal.ppf_Rtc_StopAudioCapture();
        }

        public static void ppf_Rtc_RoomPublishStream(string roomId, global::Pico.Platform.RtcMediaStreamType streamType)
        {
            __Internal.ppf_Rtc_RoomPublishStream(roomId, streamType);
        }

        public static void ppf_Rtc_RoomSetRemoteAudioPlaybackVolume(string roomId, string userId, int volume)
        {
            __Internal.ppf_Rtc_RoomSetRemoteAudioPlaybackVolume(roomId, userId, volume);
        }

        public static void ppf_Rtc_RoomSubscribeStream(string roomId, string userId, global::Pico.Platform.RtcMediaStreamType mediaType)
        {
            __Internal.ppf_Rtc_RoomSubscribeStream(roomId, userId, mediaType);
        }

        public static void ppf_Rtc_RoomUnPublishStream(string roomId, global::Pico.Platform.RtcMediaStreamType streamType)
        {
            __Internal.ppf_Rtc_RoomUnPublishStream(roomId, streamType);
        }

        public static void ppf_Rtc_RoomUnsubscribeStream(string roomId, string userId, global::Pico.Platform.RtcMediaStreamType mediaType)
        {
            __Internal.ppf_Rtc_RoomUnsubscribeStream(roomId, userId, mediaType);
        }

        public static long ppf_Rtc_SendRoomBinaryMessage(string roomId, __IntPtr message, int length)
        {
            var __ret = __Internal.ppf_Rtc_SendRoomBinaryMessage(roomId, message, length);
            return __ret;
        }

        public static long ppf_Rtc_SendRoomMessage(string roomId, string message)
        {
            var __ret = __Internal.ppf_Rtc_SendRoomMessage(roomId, message);
            return __ret;
        }

        public static int ppf_Rtc_SendStreamSyncInfo(__IntPtr data, int length, __IntPtr config)
        {
            var __ret = __Internal.ppf_Rtc_SendStreamSyncInfo(data, length, config);
            return __ret;
        }

        public static long ppf_Rtc_SendUserBinaryMessage(string roomId, string userId, __IntPtr message, int length)
        {
            var __ret = __Internal.ppf_Rtc_SendUserBinaryMessage(roomId, userId, message, length);
            return __ret;
        }

        public static long ppf_Rtc_SendUserMessage(string roomId, string userId, string message)
        {
            var __ret = __Internal.ppf_Rtc_SendUserMessage(roomId, userId, message);
            return __ret;
        }

        public static int ppf_Rtc_SetAudioSourceType(global::Pico.Platform.RtcAudioSourceType type)
        {
            var __ret = __Internal.ppf_Rtc_SetAudioSourceType(type);
            return __ret;
        }

        public static void ppf_Rtc_SetScreenAudioSourceType(global::Pico.Platform.RtcAudioSourceType sourceType)
        {
            __Internal.ppf_Rtc_SetScreenAudioSourceType(sourceType);
        }

        public static int ppf_Rtc_PushExternalAudioFrame(__IntPtr audioFrame)
        {
            var __ret = __Internal.ppf_Rtc_PushExternalAudioFrame(audioFrame);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_StartAsrOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_StartAsrOptions_Destroy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_StartAsrOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_StartAsrOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_StartAsrOptions_SetAutoStop", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_StartAsrOptions_SetAutoStop(__IntPtr obj, bool value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_StartAsrOptions_SetVadMaxDurationInSeconds", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_StartAsrOptions_SetVadMaxDurationInSeconds(__IntPtr obj, int value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_StartAsrOptions_SetShowPunctual", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_StartAsrOptions_SetShowPunctual(__IntPtr obj, bool value);
        }

        public static void ppf_StartAsrOptions_Destroy(__IntPtr obj)
        {
            __Internal.ppf_StartAsrOptions_Destroy(obj);
        }

        public static __IntPtr ppf_StartAsrOptions_Create()
        {
            var __ret = __Internal.ppf_StartAsrOptions_Create();
            return __ret;
        }

        public static void ppf_StartAsrOptions_SetAutoStop(__IntPtr obj, bool value)
        {
            __Internal.ppf_StartAsrOptions_SetAutoStop(obj, value);
        }

        public static void ppf_StartAsrOptions_SetVadMaxDurationInSeconds(__IntPtr obj, int value)
        {
            __Internal.ppf_StartAsrOptions_SetVadMaxDurationInSeconds(obj, value);
        }

        public static void ppf_StartAsrOptions_SetShowPunctual(__IntPtr obj, bool value)
        {
            __Internal.ppf_StartAsrOptions_SetShowPunctual(obj, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Speech_InitAsrEngine", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.AsrEngineInitResult ppf_Speech_InitAsrEngine();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Speech_StartAsr", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_Speech_StartAsr(__IntPtr option);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Speech_StopAsr", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_Speech_StopAsr();
        }

        public static global::Pico.Platform.AsrEngineInitResult ppf_Speech_InitAsrEngine()
        {
            var __ret = __Internal.ppf_Speech_InitAsrEngine();
            return __ret;
        }

        public static int ppf_Speech_StartAsr(__IntPtr option)
        {
            var __ret = __Internal.ppf_Speech_StartAsr(option);
            return __ret;
        }

        public static void ppf_Speech_StopAsr()
        {
            __Internal.ppf_Speech_StopAsr();
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Game_InitializeWithToken", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Game_InitializeWithToken([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string accessToken);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Game_InitializeWithTokenAccountTypeOne", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Game_InitializeWithTokenAccountTypeOne([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string accessToken);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Game_InitializeAuto", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Game_InitializeAuto();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Game_UnInitialize", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_Game_UnInitialize();
        }

        public static ulong ppf_Game_InitializeWithToken(string accessToken)
        {
            var __ret = __Internal.ppf_Game_InitializeWithToken(accessToken);
            return __ret;
        }

        public static ulong ppf_Game_InitializeWithTokenAccountTypeOne(string accessToken)
        {
            var __ret = __Internal.ppf_Game_InitializeWithTokenAccountTypeOne(accessToken);
            return __ret;
        }

        public static ulong ppf_Game_InitializeAuto()
        {
            var __ret = __Internal.ppf_Game_InitializeAuto();
            return __ret;
        }

        public static bool ppf_Game_UnInitialize()
        {
            var __ret = __Internal.ppf_Game_UnInitialize();
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_InviteOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_InviteOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_InviteOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_InviteOptions_Destroy(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_InviteOptions_AddSuggestedUser", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_InviteOptions_AddSuggestedUser(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_InviteOptions_ClearSuggestedUsers", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_InviteOptions_ClearSuggestedUsers(__IntPtr handle);
        }

        public static __IntPtr ppf_InviteOptions_Create()
        {
            var __ret = __Internal.ppf_InviteOptions_Create();
            return __ret;
        }

        public static void ppf_InviteOptions_Destroy(__IntPtr handle)
        {
            __Internal.ppf_InviteOptions_Destroy(handle);
        }

        public static void ppf_InviteOptions_AddSuggestedUser(__IntPtr handle, string value)
        {
            __Internal.ppf_InviteOptions_AddSuggestedUser(handle, value);
        }

        public static void ppf_InviteOptions_ClearSuggestedUsers(__IntPtr handle)
        {
            __Internal.ppf_InviteOptions_ClearSuggestedUsers(handle);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_KeyValuePair_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_KeyValuePair_Destroy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_GetKey", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_KeyValuePair_GetKey(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_SetKey", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_KeyValuePair_SetKey(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_GetValueType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.KVPairType ppf_KeyValuePair_GetValueType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_GetIntValue", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_KeyValuePair_GetIntValue(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_SetIntValue", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_KeyValuePair_SetIntValue(__IntPtr obj, int value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_GetDoubleValue", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern double ppf_KeyValuePair_GetDoubleValue(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_SetDoubleValue", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_KeyValuePair_SetDoubleValue(__IntPtr obj, double value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_GetStringValue", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_KeyValuePair_GetStringValue(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_SetStringValue", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_KeyValuePair_SetStringValue(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);
        }

        public static __IntPtr ppf_KeyValuePair_Create()
        {
            var __ret = __Internal.ppf_KeyValuePair_Create();
            return __ret;
        }

        public static void ppf_KeyValuePair_Destroy(__IntPtr obj)
        {
            __Internal.ppf_KeyValuePair_Destroy(obj);
        }

        public static string ppf_KeyValuePair_GetKey(__IntPtr obj)
        {
            var __ret = __Internal.ppf_KeyValuePair_GetKey(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static void ppf_KeyValuePair_SetKey(__IntPtr obj, string key)
        {
            __Internal.ppf_KeyValuePair_SetKey(obj, key);
        }

        public static global::Pico.Platform.KVPairType ppf_KeyValuePair_GetValueType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_KeyValuePair_GetValueType(obj);
            return __ret;
        }

        public static int ppf_KeyValuePair_GetIntValue(__IntPtr obj)
        {
            var __ret = __Internal.ppf_KeyValuePair_GetIntValue(obj);
            return __ret;
        }

        public static void ppf_KeyValuePair_SetIntValue(__IntPtr obj, int value)
        {
            __Internal.ppf_KeyValuePair_SetIntValue(obj, value);
        }

        public static double ppf_KeyValuePair_GetDoubleValue(__IntPtr obj)
        {
            var __ret = __Internal.ppf_KeyValuePair_GetDoubleValue(obj);
            return __ret;
        }

        public static void ppf_KeyValuePair_SetDoubleValue(__IntPtr obj, double value)
        {
            __Internal.ppf_KeyValuePair_SetDoubleValue(obj, value);
        }

        public static string ppf_KeyValuePair_GetStringValue(__IntPtr obj)
        {
            var __ret = __Internal.ppf_KeyValuePair_GetStringValue(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static void ppf_KeyValuePair_SetStringValue(__IntPtr obj, string value)
        {
            __Internal.ppf_KeyValuePair_SetStringValue(obj, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePairArray_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_KeyValuePairArray_Create(UIntPtr size);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePairArray_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_KeyValuePairArray_Destroy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePairArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_KeyValuePairArray_GetElement(__IntPtr obj, UIntPtr index);
        }

        public static __IntPtr ppf_KeyValuePairArray_Create(UIntPtr size)
        {
            var __ret = __Internal.ppf_KeyValuePairArray_Create(size);
            return __ret;
        }

        public static void ppf_KeyValuePairArray_Destroy(__IntPtr obj)
        {
            __Internal.ppf_KeyValuePairArray_Destroy(obj);
        }

        public static __IntPtr ppf_KeyValuePairArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_KeyValuePairArray_GetElement(obj, index);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchFriendRequestFlowResult_GetDidCancel", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_LaunchFriendRequestFlowResult_GetDidCancel(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchFriendRequestFlowResult_GetDidSendRequest", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_LaunchFriendRequestFlowResult_GetDidSendRequest(__IntPtr obj);
        }

        public static bool ppf_LaunchFriendRequestFlowResult_GetDidCancel(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchFriendRequestFlowResult_GetDidCancel(obj);
            return __ret;
        }

        public static bool ppf_LaunchFriendRequestFlowResult_GetDidSendRequest(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LaunchFriendRequestFlowResult_GetDidSendRequest(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LeaderboardArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LeaderboardArray_GetNextUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_LeaderboardArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_LeaderboardArray_GetTotalCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_LeaderboardArray_HasNextPage(__IntPtr obj);
        }

        public static __IntPtr ppf_LeaderboardArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_LeaderboardArray_GetElement(obj, index);
            return __ret;
        }

        public static string ppf_LeaderboardArray_GetNextUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardArray_GetNextUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_LeaderboardArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardArray_GetSize(obj);
            return __ret;
        }

        public static ulong ppf_LeaderboardArray_GetTotalCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardArray_GetTotalCount(obj);
            return __ret;
        }

        public static bool ppf_LeaderboardArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardArray_HasNextPage(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_SupplementaryMetric_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_SupplementaryMetric_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SupplementaryMetric_GetMetric", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_SupplementaryMetric_GetMetric(__IntPtr obj);
        }

        public static ulong ppf_SupplementaryMetric_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SupplementaryMetric_GetID(obj);
            return __ret;
        }

        public static long ppf_SupplementaryMetric_GetMetric(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SupplementaryMetric_GetMetric(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetSupplementaryMetric", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LeaderboardEntry_GetSupplementaryMetric(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetDisplayScore", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LeaderboardEntry_GetDisplayScore(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetExtraData", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LeaderboardEntry_GetExtraData(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetExtraDataLength", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_LeaderboardEntry_GetExtraDataLength(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_LeaderboardEntry_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetRank", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_LeaderboardEntry_GetRank(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetScore", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_LeaderboardEntry_GetScore(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetTimestamp", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_LeaderboardEntry_GetTimestamp(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetUser", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LeaderboardEntry_GetUser(__IntPtr obj);
        }

        public static __IntPtr ppf_LeaderboardEntry_GetSupplementaryMetric(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntry_GetSupplementaryMetric(obj);
            return __ret;
        }

        public static string ppf_LeaderboardEntry_GetDisplayScore(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntry_GetDisplayScore(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static __IntPtr ppf_LeaderboardEntry_GetExtraData(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntry_GetExtraData(obj);
            return __ret;
        }

        public static uint ppf_LeaderboardEntry_GetExtraDataLength(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntry_GetExtraDataLength(obj);
            return __ret;
        }

        public static ulong ppf_LeaderboardEntry_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntry_GetID(obj);
            return __ret;
        }

        public static int ppf_LeaderboardEntry_GetRank(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntry_GetRank(obj);
            return __ret;
        }

        public static long ppf_LeaderboardEntry_GetScore(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntry_GetScore(obj);
            return __ret;
        }

        public static ulong ppf_LeaderboardEntry_GetTimestamp(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntry_GetTimestamp(obj);
            return __ret;
        }

        public static __IntPtr ppf_LeaderboardEntry_GetUser(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntry_GetUser(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LeaderboardEntryArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LeaderboardEntryArray_GetNextUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_GetPreviousUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_LeaderboardEntryArray_GetPreviousUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_LeaderboardEntryArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_LeaderboardEntryArray_GetTotalCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_LeaderboardEntryArray_HasNextPage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_HasPreviousPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_LeaderboardEntryArray_HasPreviousPage(__IntPtr obj);
        }

        public static __IntPtr ppf_LeaderboardEntryArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_LeaderboardEntryArray_GetElement(obj, index);
            return __ret;
        }

        public static string ppf_LeaderboardEntryArray_GetNextUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntryArray_GetNextUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_LeaderboardEntryArray_GetPreviousUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntryArray_GetPreviousUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_LeaderboardEntryArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntryArray_GetSize(obj);
            return __ret;
        }

        public static ulong ppf_LeaderboardEntryArray_GetTotalCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntryArray_GetTotalCount(obj);
            return __ret;
        }

        public static bool ppf_LeaderboardEntryArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntryArray_HasNextPage(obj);
            return __ret;
        }

        public static bool ppf_LeaderboardEntryArray_HasPreviousPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardEntryArray_HasPreviousPage(obj);
            return __ret;
        }
    }

    /// <summary>The type of filter to use when retrieving leaderboard entries.</summary>
    public enum LeaderboardFilterType
    {
        /// <summary>Do not filter.</summary>
        None = 0,
        /// <summary>Only display the entries of the user's friends.</summary>
        Friends = 1,
        /// <summary>Do not filter.</summary>
        Unknown = 2,
        /// <summary>Display the entries of specific users by specifying user IDs.</summary>
        UserIds = 3
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfLeaderboardFilterType_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfLeaderboardFilterType_ToString(global::Pico.Platform.LeaderboardFilterType value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfLeaderboardFilterType_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.LeaderboardFilterType ppfLeaderboardFilterType_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfLeaderboardFilterType_ToString(global::Pico.Platform.LeaderboardFilterType value)
        {
            var __ret = __Internal.ppfLeaderboardFilterType_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.LeaderboardFilterType ppfLeaderboardFilterType_FromString(string str)
        {
            var __ret = __Internal.ppfLeaderboardFilterType_FromString(str);
            return __ret;
        }
    }

    /// <summary>From where to start returning leaderboard entries.</summary>
    public enum LeaderboardStartAt
    {
        /// <summary>To return entries from top 1.</summary>
        Top = 0,
        /// <summary>To place the current logged-in user's entry in the middle of the list on the first page. For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, the ranks displayed on the first page will be top 3, 4, 5, 6, and 7. Top 1 and 2 will not be displayed, and top 8, 9, and 10 will be displayed on the second page.</summary>
        CenteredOnViewer = 1,
        /// <summary>To place the current logged-in user's entry on the top of the list on the first page. For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, the ranks displayed on the first page will be top 5, 6, 7, 8, and 9. Top 1, 2, 3, and 4 will not be displayed, and top 10 will be displayed on the second page.</summary>
        CenteredOnViewerOrTop = 2,
        /// <summary>To returns an empty list.</summary>
        Unknown = 3
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfLeaderboardStartAt_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfLeaderboardStartAt_ToString(global::Pico.Platform.LeaderboardStartAt value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfLeaderboardStartAt_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.LeaderboardStartAt ppfLeaderboardStartAt_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfLeaderboardStartAt_ToString(global::Pico.Platform.LeaderboardStartAt value)
        {
            var __ret = __Internal.ppfLeaderboardStartAt_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.LeaderboardStartAt ppfLeaderboardStartAt_FromString(string str)
        {
            var __ret = __Internal.ppfLeaderboardStartAt_FromString(str);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardUpdateStatus_GetDidUpdate", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_LeaderboardUpdateStatus_GetDidUpdate(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardUpdateStatus_GetUpdatedChallengeId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_LeaderboardUpdateStatus_GetUpdatedChallengeId(__IntPtr obj, uint index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardUpdateStatus_GetUpdatedChallengeIdsSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_LeaderboardUpdateStatus_GetUpdatedChallengeIdsSize(__IntPtr obj);
        }

        public static bool ppf_LeaderboardUpdateStatus_GetDidUpdate(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardUpdateStatus_GetDidUpdate(obj);
            return __ret;
        }

        public static ulong ppf_LeaderboardUpdateStatus_GetUpdatedChallengeId(__IntPtr obj, uint index)
        {
            var __ret = __Internal.ppf_LeaderboardUpdateStatus_GetUpdatedChallengeId(obj, index);
            return __ret;
        }

        public static uint ppf_LeaderboardUpdateStatus_GetUpdatedChallengeIdsSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_LeaderboardUpdateStatus_GetUpdatedChallengeIdsSize(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidate_GetCanMatch", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_MatchmakingAdminSnapshotCandidate_GetCanMatch(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidate_GetMyTotalScore", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern double ppf_MatchmakingAdminSnapshotCandidate_GetMyTotalScore(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidate_GetTheirCurrentThreshold", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern double ppf_MatchmakingAdminSnapshotCandidate_GetTheirCurrentThreshold(__IntPtr obj);
        }

        public static bool ppf_MatchmakingAdminSnapshotCandidate_GetCanMatch(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidate_GetCanMatch(obj);
            return __ret;
        }

        public static double ppf_MatchmakingAdminSnapshotCandidate_GetMyTotalScore(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidate_GetMyTotalScore(obj);
            return __ret;
        }

        public static double ppf_MatchmakingAdminSnapshotCandidate_GetTheirCurrentThreshold(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidate_GetTheirCurrentThreshold(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidateArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidateArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidateArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetTotalCount(__IntPtr obj);
        }

        public static __IntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidateArray_GetElement(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidateArray_GetSize(obj);
            return __ret;
        }

        public static UIntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetTotalCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidateArray_GetTotalCount(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshot_GetCandidates", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingAdminSnapshot_GetCandidates(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshot_GetMyCurrentThreshold", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern double ppf_MatchmakingAdminSnapshot_GetMyCurrentThreshold(__IntPtr obj);
        }

        public static __IntPtr ppf_MatchmakingAdminSnapshot_GetCandidates(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingAdminSnapshot_GetCandidates(obj);
            return __ret;
        }

        public static double ppf_MatchmakingAdminSnapshot_GetMyCurrentThreshold(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingAdminSnapshot_GetMyCurrentThreshold(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetAdminSnapshot", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingEnqueueResult_GetAdminSnapshot(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetAverageWait", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_MatchmakingEnqueueResult_GetAverageWait(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetMatchesInLastHourCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_MatchmakingEnqueueResult_GetMatchesInLastHourCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetMaxExpectedWait", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_MatchmakingEnqueueResult_GetMaxExpectedWait(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetRecentMatchPercentage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_MatchmakingEnqueueResult_GetRecentMatchPercentage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetPool", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingEnqueueResult_GetPool(__IntPtr obj);
        }

        public static __IntPtr ppf_MatchmakingEnqueueResult_GetAdminSnapshot(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetAdminSnapshot(obj);
            return __ret;
        }

        public static uint ppf_MatchmakingEnqueueResult_GetAverageWait(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetAverageWait(obj);
            return __ret;
        }

        public static uint ppf_MatchmakingEnqueueResult_GetMatchesInLastHourCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetMatchesInLastHourCount(obj);
            return __ret;
        }

        public static uint ppf_MatchmakingEnqueueResult_GetMaxExpectedWait(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetMaxExpectedWait(obj);
            return __ret;
        }

        public static uint ppf_MatchmakingEnqueueResult_GetRecentMatchPercentage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetRecentMatchPercentage(obj);
            return __ret;
        }

        public static string ppf_MatchmakingEnqueueResult_GetPool(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetPool(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    /// <summary>The room's joinability.</summary>
    public enum RoomJoinability
    {
        /// <summary>Unknown</summary>
        Unknown = 0,
        /// <summary>The user is already in the room.</summary>
        AreIn = 1,
        /// <summary>The user is kicked out of the room.</summary>
        AreKicked = 2,
        /// <summary>Others can join the room.</summary>
        CanJoin = 3,
        /// <summary>The room is full.</summary>
        IsFull = 4,
        /// <summary>(Not available, do not use it)</summary>
        NoViewer = 5,
        /// <summary>The room is not allowed to be joined.</summary>
        PolicyPrevents = 6
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfRoomJoinability_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfRoomJoinability_ToString(global::Pico.Platform.RoomJoinability value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfRoomJoinability_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RoomJoinability ppfRoomJoinability_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfRoomJoinability_ToString(global::Pico.Platform.RoomJoinability value)
        {
            var __ret = __Internal.ppfRoomJoinability_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.RoomJoinability ppfRoomJoinability_FromString(string str)
        {
            var __ret = __Internal.ppfRoomJoinability_FromString(str);
            return __ret;
        }
    }

    /// <summary>The room's join policy, which determines who are allowed to join the room.</summary>
    public enum RoomJoinPolicy
    {
        /// <summary>No join policy.</summary>
        None = 0,
        /// <summary>Anyone is allowed to join the room.</summary>
        Everyone = 1,
        /// <summary>Only the friends of the users who are already in the room are allowed to join.</summary>
        FriendsOfMembers = 2,
        /// <summary>Only the friends of the room owner are allowed to join the room.</summary>
        FriendsOfOwner = 3,
        /// <summary>Only those who have been invited are allowed to join the room.</summary>
        InvitedUsers = 4,
        /// <summary>No join policy.</summary>
        Unknown = 5
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfRoomJoinPolicy_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfRoomJoinPolicy_ToString(global::Pico.Platform.RoomJoinPolicy value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfRoomJoinPolicy_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RoomJoinPolicy ppfRoomJoinPolicy_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfRoomJoinPolicy_ToString(global::Pico.Platform.RoomJoinPolicy value)
        {
            var __ret = __Internal.ppfRoomJoinPolicy_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.RoomJoinPolicy ppfRoomJoinPolicy_FromString(string str)
        {
            var __ret = __Internal.ppfRoomJoinPolicy_FromString(str);
            return __ret;
        }
    }

    /// <summary>The type of the room.</summary>
    public enum RoomType
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>Matchmaking room.</summary>
        Matchmaking = 1,
        /// <summary>Moderated room.</summary>
        Moderated = 2,
        /// <summary>Private room.</summary>
        Private = 3,
        /// <summary>Named room.</summary>
        Named = 4
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfRoomType_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfRoomType_ToString(global::Pico.Platform.RoomType value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfRoomType_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RoomType ppfRoomType_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfRoomType_ToString(global::Pico.Platform.RoomType value)
        {
            var __ret = __Internal.ppfRoomType_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.RoomType ppfRoomType_FromString(string str)
        {
            var __ret = __Internal.ppfRoomType_FromString(str);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetDataStore", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Room_GetDataStore(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetOwner", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Room_GetOwner(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Room_GetName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetUsers", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Room_GetUsers(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetDescription", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Room_GetDescription(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetIsMembershipLocked", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_Room_GetIsMembershipLocked(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetJoinPolicy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RoomJoinPolicy ppf_Room_GetJoinPolicy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetJoinability", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RoomJoinability ppf_Room_GetJoinability(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetMaxUsers", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_Room_GetMaxUsers(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RoomType ppf_Room_GetType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetPlayerNumber", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_Room_GetPlayerNumber(__IntPtr obj);
        }

        public static __IntPtr ppf_Room_GetDataStore(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetDataStore(obj);
            return __ret;
        }

        public static __IntPtr ppf_Room_GetOwner(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetOwner(obj);
            return __ret;
        }

        public static string ppf_Room_GetName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static __IntPtr ppf_Room_GetUsers(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetUsers(obj);
            return __ret;
        }

        public static string ppf_Room_GetDescription(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetDescription(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static ulong ppf_Room_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetID(obj);
            return __ret;
        }

        public static bool ppf_Room_GetIsMembershipLocked(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetIsMembershipLocked(obj);
            return __ret;
        }

        public static global::Pico.Platform.RoomJoinPolicy ppf_Room_GetJoinPolicy(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetJoinPolicy(obj);
            return __ret;
        }

        public static global::Pico.Platform.RoomJoinability ppf_Room_GetJoinability(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetJoinability(obj);
            return __ret;
        }

        public static uint ppf_Room_GetMaxUsers(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetMaxUsers(obj);
            return __ret;
        }

        public static global::Pico.Platform.RoomType ppf_Room_GetType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetType(obj);
            return __ret;
        }

        public static uint ppf_Room_GetPlayerNumber(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Room_GetPlayerNumber(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoom_GetPingTime", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_MatchmakingRoom_GetPingTime(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoom_GetRoom", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingRoom_GetRoom(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoom_HasPingTime", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_MatchmakingRoom_HasPingTime(__IntPtr obj);
        }

        public static uint ppf_MatchmakingRoom_GetPingTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingRoom_GetPingTime(obj);
            return __ret;
        }

        public static __IntPtr ppf_MatchmakingRoom_GetRoom(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingRoom_GetRoom(obj);
            return __ret;
        }

        public static bool ppf_MatchmakingRoom_HasPingTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingRoom_HasPingTime(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoomArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingRoomArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoomArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_MatchmakingRoomArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoomArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_MatchmakingRoomArray_GetTotalCount(__IntPtr obj);
        }

        public static __IntPtr ppf_MatchmakingRoomArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_MatchmakingRoomArray_GetElement(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_MatchmakingRoomArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingRoomArray_GetSize(obj);
            return __ret;
        }

        public static int ppf_MatchmakingRoomArray_GetTotalCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingRoomArray_GetTotalCount(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingBrowseResult_GetEnqueueResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingBrowseResult_GetEnqueueResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingBrowseResult_GetRooms", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingBrowseResult_GetRooms(__IntPtr obj);
        }

        public static __IntPtr ppf_MatchmakingBrowseResult_GetEnqueueResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingBrowseResult_GetEnqueueResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_MatchmakingBrowseResult_GetRooms(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingBrowseResult_GetRooms(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResultAndRoom_GetMatchmakingEnqueueResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingEnqueueResultAndRoom_GetMatchmakingEnqueueResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResultAndRoom_GetRoom", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingEnqueueResultAndRoom_GetRoom(__IntPtr obj);
        }

        public static __IntPtr ppf_MatchmakingEnqueueResultAndRoom_GetMatchmakingEnqueueResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingEnqueueResultAndRoom_GetMatchmakingEnqueueResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_MatchmakingEnqueueResultAndRoom_GetRoom(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingEnqueueResultAndRoom_GetRoom(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_MatchmakingOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_Destroy(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetCreateRoomDataStoreString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_SetCreateRoomDataStoreString(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_ClearCreateRoomDataStore", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_ClearCreateRoomDataStore(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetCreateRoomJoinPolicy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_SetCreateRoomJoinPolicy(__IntPtr handle, global::Pico.Platform.RoomJoinPolicy value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetCreateRoomMaxUsers", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_SetCreateRoomMaxUsers(__IntPtr handle, uint value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_ClearEnqueueAdditionalUsers", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_ClearEnqueueAdditionalUsers(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetEnqueueDataSettingsInt", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_SetEnqueueDataSettingsInt(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key, int value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetEnqueueDataSettingsDouble", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_SetEnqueueDataSettingsDouble(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key, double value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetEnqueueDataSettingsString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_SetEnqueueDataSettingsString(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_ClearEnqueueDataSettings", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_ClearEnqueueDataSettings(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetEnqueueIsDebug", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_SetEnqueueIsDebug(__IntPtr handle, bool value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetEnqueueQueryKey", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_MatchmakingOptions_SetEnqueueQueryKey(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);
        }

        public static __IntPtr ppf_MatchmakingOptions_Create()
        {
            var __ret = __Internal.ppf_MatchmakingOptions_Create();
            return __ret;
        }

        public static void ppf_MatchmakingOptions_Destroy(__IntPtr handle)
        {
            __Internal.ppf_MatchmakingOptions_Destroy(handle);
        }

        public static void ppf_MatchmakingOptions_SetCreateRoomDataStoreString(__IntPtr handle, string key, string value)
        {
            __Internal.ppf_MatchmakingOptions_SetCreateRoomDataStoreString(handle, key, value);
        }

        public static void ppf_MatchmakingOptions_ClearCreateRoomDataStore(__IntPtr handle)
        {
            __Internal.ppf_MatchmakingOptions_ClearCreateRoomDataStore(handle);
        }

        public static void ppf_MatchmakingOptions_SetCreateRoomJoinPolicy(__IntPtr handle, global::Pico.Platform.RoomJoinPolicy value)
        {
            __Internal.ppf_MatchmakingOptions_SetCreateRoomJoinPolicy(handle, value);
        }

        public static void ppf_MatchmakingOptions_SetCreateRoomMaxUsers(__IntPtr handle, uint value)
        {
            __Internal.ppf_MatchmakingOptions_SetCreateRoomMaxUsers(handle, value);
        }

        public static void ppf_MatchmakingOptions_ClearEnqueueAdditionalUsers(__IntPtr handle)
        {
            __Internal.ppf_MatchmakingOptions_ClearEnqueueAdditionalUsers(handle);
        }

        public static void ppf_MatchmakingOptions_SetEnqueueDataSettingsInt(__IntPtr handle, string key, int value)
        {
            __Internal.ppf_MatchmakingOptions_SetEnqueueDataSettingsInt(handle, key, value);
        }

        public static void ppf_MatchmakingOptions_SetEnqueueDataSettingsDouble(__IntPtr handle, string key, double value)
        {
            __Internal.ppf_MatchmakingOptions_SetEnqueueDataSettingsDouble(handle, key, value);
        }

        public static void ppf_MatchmakingOptions_SetEnqueueDataSettingsString(__IntPtr handle, string key, string value)
        {
            __Internal.ppf_MatchmakingOptions_SetEnqueueDataSettingsString(handle, key, value);
        }

        public static void ppf_MatchmakingOptions_ClearEnqueueDataSettings(__IntPtr handle)
        {
            __Internal.ppf_MatchmakingOptions_ClearEnqueueDataSettings(handle);
        }

        public static void ppf_MatchmakingOptions_SetEnqueueIsDebug(__IntPtr handle, bool value)
        {
            __Internal.ppf_MatchmakingOptions_SetEnqueueIsDebug(handle, value);
        }

        public static void ppf_MatchmakingOptions_SetEnqueueQueryKey(__IntPtr handle, string value)
        {
            __Internal.ppf_MatchmakingOptions_SetEnqueueQueryKey(handle, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetDrawCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_MatchmakingStats_GetDrawCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetLossCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_MatchmakingStats_GetLossCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetSkillLevel", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_MatchmakingStats_GetSkillLevel(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetSkillMean", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern double ppf_MatchmakingStats_GetSkillMean(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetSkillStandardDeviation", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern double ppf_MatchmakingStats_GetSkillStandardDeviation(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetWinCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern uint ppf_MatchmakingStats_GetWinCount(__IntPtr obj);
        }

        public static uint ppf_MatchmakingStats_GetDrawCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingStats_GetDrawCount(obj);
            return __ret;
        }

        public static uint ppf_MatchmakingStats_GetLossCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingStats_GetLossCount(obj);
            return __ret;
        }

        public static uint ppf_MatchmakingStats_GetSkillLevel(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingStats_GetSkillLevel(obj);
            return __ret;
        }

        public static double ppf_MatchmakingStats_GetSkillMean(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingStats_GetSkillMean(obj);
            return __ret;
        }

        public static double ppf_MatchmakingStats_GetSkillStandardDeviation(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingStats_GetSkillStandardDeviation(obj);
            return __ret;
        }

        public static uint ppf_MatchmakingStats_GetWinCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_MatchmakingStats_GetWinCount(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoom_GetUser", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_UserAndRoom_GetUser(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoom_GetRoom", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_UserAndRoom_GetRoom(__IntPtr obj);
        }

        public static __IntPtr ppf_UserAndRoom_GetUser(__IntPtr obj)
        {
            var __ret = __Internal.ppf_UserAndRoom_GetUser(obj);
            return __ret;
        }

        public static __IntPtr ppf_UserAndRoom_GetRoom(__IntPtr obj)
        {
            var __ret = __Internal.ppf_UserAndRoom_GetRoom(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoomArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_UserAndRoomArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoomArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_UserAndRoomArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoomArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_UserAndRoomArray_HasNextPage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoomArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_UserAndRoomArray_GetNextPageParam(__IntPtr obj);
        }

        public static __IntPtr ppf_UserAndRoomArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_UserAndRoomArray_GetElement(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_UserAndRoomArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_UserAndRoomArray_GetSize(obj);
            return __ret;
        }

        public static bool ppf_UserAndRoomArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_UserAndRoomArray_HasNextPage(obj);
            return __ret;
        }

        public static string ppf_UserAndRoomArray_GetNextPageParam(__IntPtr obj)
        {
            var __ret = __Internal.ppf_UserAndRoomArray_GetNextPageParam(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcJoinRoomResult_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcJoinRoomResult_GetRoomId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcJoinRoomResult_GetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcJoinRoomResult_GetUserId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcJoinRoomResult_GetErrorCode", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcJoinRoomResult_GetErrorCode(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcJoinRoomResult_GetElapsed", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcJoinRoomResult_GetElapsed(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcJoinRoomResult_GetJoinType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcJoinRoomType ppf_RtcJoinRoomResult_GetJoinType(__IntPtr obj);
        }

        public static string ppf_RtcJoinRoomResult_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcJoinRoomResult_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_RtcJoinRoomResult_GetUserId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcJoinRoomResult_GetUserId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static int ppf_RtcJoinRoomResult_GetErrorCode(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcJoinRoomResult_GetErrorCode(obj);
            return __ret;
        }

        public static int ppf_RtcJoinRoomResult_GetElapsed(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcJoinRoomResult_GetElapsed(obj);
            return __ret;
        }

        public static global::Pico.Platform.RtcJoinRoomType ppf_RtcJoinRoomResult_GetJoinType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcJoinRoomResult_GetJoinType(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLeaveRoomResult_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcLeaveRoomResult_GetRoomId(__IntPtr obj);
        }

        public static string ppf_RtcLeaveRoomResult_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcLeaveRoomResult_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomStats_GetTotalDuration", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcRoomStats_GetTotalDuration(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomStats_GetUserCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcRoomStats_GetUserCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomStats_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRoomStats_GetRoomId(__IntPtr obj);
        }

        public static int ppf_RtcRoomStats_GetTotalDuration(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRoomStats_GetTotalDuration(obj);
            return __ret;
        }

        public static int ppf_RtcRoomStats_GetUserCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRoomStats_GetUserCount(obj);
            return __ret;
        }

        public static string ppf_RtcRoomStats_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRoomStats_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserJoinInfo_GetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserJoinInfo_GetUserId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserJoinInfo_GetUserExtra", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserJoinInfo_GetUserExtra(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserJoinInfo_GetElapsed", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcUserJoinInfo_GetElapsed(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserJoinInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserJoinInfo_GetRoomId(__IntPtr obj);
        }

        public static string ppf_RtcUserJoinInfo_GetUserId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserJoinInfo_GetUserId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_RtcUserJoinInfo_GetUserExtra(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserJoinInfo_GetUserExtra(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static int ppf_RtcUserJoinInfo_GetElapsed(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserJoinInfo_GetElapsed(obj);
            return __ret;
        }

        public static string ppf_RtcUserJoinInfo_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserJoinInfo_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserLeaveInfo_GetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserLeaveInfo_GetUserId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserLeaveInfo_GetOfflineReason", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcUserLeaveReasonType ppf_RtcUserLeaveInfo_GetOfflineReason(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserLeaveInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserLeaveInfo_GetRoomId(__IntPtr obj);
        }

        public static string ppf_RtcUserLeaveInfo_GetUserId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserLeaveInfo_GetUserId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.RtcUserLeaveReasonType ppf_RtcUserLeaveInfo_GetOfflineReason(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserLeaveInfo_GetOfflineReason(obj);
            return __ret;
        }

        public static string ppf_RtcUserLeaveInfo_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserLeaveInfo_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomWarn_GetCode", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcRoomWarn_GetCode(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomWarn_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRoomWarn_GetRoomId(__IntPtr obj);
        }

        public static int ppf_RtcRoomWarn_GetCode(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRoomWarn_GetCode(obj);
            return __ret;
        }

        public static string ppf_RtcRoomWarn_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRoomWarn_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomError_GetCode", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcRoomError_GetCode(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomError_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRoomError_GetRoomId(__IntPtr obj);
        }

        public static int ppf_RtcRoomError_GetCode(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRoomError_GetCode(obj);
            return __ret;
        }

        public static string ppf_RtcRoomError_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRoomError_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMuteInfo_GetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcMuteInfo_GetUserId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMuteInfo_GetMuteState", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcMuteState ppf_RtcMuteInfo_GetMuteState(__IntPtr obj);
        }

        public static string ppf_RtcMuteInfo_GetUserId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcMuteInfo_GetUserId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.RtcMuteState ppf_RtcMuteInfo_GetMuteState(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcMuteInfo_GetMuteState(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMediaDeviceChangeInfo_GetDeviceId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcMediaDeviceChangeInfo_GetDeviceId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMediaDeviceChangeInfo_GetDeviceType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcMediaDeviceType ppf_RtcMediaDeviceChangeInfo_GetDeviceType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMediaDeviceChangeInfo_GetDeviceState", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcMediaDeviceState ppf_RtcMediaDeviceChangeInfo_GetDeviceState(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMediaDeviceChangeInfo_GetDeviceError", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcMediaDeviceError ppf_RtcMediaDeviceChangeInfo_GetDeviceError(__IntPtr obj);
        }

        public static string ppf_RtcMediaDeviceChangeInfo_GetDeviceId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcMediaDeviceChangeInfo_GetDeviceId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.RtcMediaDeviceType ppf_RtcMediaDeviceChangeInfo_GetDeviceType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcMediaDeviceChangeInfo_GetDeviceType(obj);
            return __ret;
        }

        public static global::Pico.Platform.RtcMediaDeviceState ppf_RtcMediaDeviceChangeInfo_GetDeviceState(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcMediaDeviceChangeInfo_GetDeviceState(obj);
            return __ret;
        }

        public static global::Pico.Platform.RtcMediaDeviceError ppf_RtcMediaDeviceChangeInfo_GetDeviceError(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcMediaDeviceChangeInfo_GetDeviceError(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioPropertyInfo_GetVolume", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcAudioPropertyInfo_GetVolume(__IntPtr obj);
        }

        public static int ppf_RtcAudioPropertyInfo_GetVolume(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcAudioPropertyInfo_GetVolume(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalAudioPropertiesInfo_GetStreamIndex", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcStreamIndex ppf_RtcLocalAudioPropertiesInfo_GetStreamIndex(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalAudioPropertiesInfo_GetAudioPropertyInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcLocalAudioPropertiesInfo_GetAudioPropertyInfo(__IntPtr obj);
        }

        public static global::Pico.Platform.RtcStreamIndex ppf_RtcLocalAudioPropertiesInfo_GetStreamIndex(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcLocalAudioPropertiesInfo_GetStreamIndex(obj);
            return __ret;
        }

        public static __IntPtr ppf_RtcLocalAudioPropertiesInfo_GetAudioPropertyInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcLocalAudioPropertiesInfo_GetAudioPropertyInfo(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfos", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfos(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfosSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfosSize(__IntPtr obj);
        }

        public static __IntPtr ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfos(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfos(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfosSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfosSize(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteStreamKey_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRemoteStreamKey_GetRoomId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteStreamKey_GetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRemoteStreamKey_GetUserId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteStreamKey_GetStreamIndex", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcStreamIndex ppf_RtcRemoteStreamKey_GetStreamIndex(__IntPtr obj);
        }

        public static string ppf_RtcRemoteStreamKey_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRemoteStreamKey_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_RtcRemoteStreamKey_GetUserId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRemoteStreamKey_GetUserId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.RtcStreamIndex ppf_RtcRemoteStreamKey_GetStreamIndex(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRemoteStreamKey_GetStreamIndex(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteAudioPropertiesInfo_GetStreamKey", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRemoteAudioPropertiesInfo_GetStreamKey(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteAudioPropertiesInfo_GetAudioPropertiesInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRemoteAudioPropertiesInfo_GetAudioPropertiesInfo(__IntPtr obj);
        }

        public static __IntPtr ppf_RtcRemoteAudioPropertiesInfo_GetStreamKey(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRemoteAudioPropertiesInfo_GetStreamKey(obj);
            return __ret;
        }

        public static __IntPtr ppf_RtcRemoteAudioPropertiesInfo_GetAudioPropertiesInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRemoteAudioPropertiesInfo_GetAudioPropertiesInfo(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfos", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfos(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfosSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfosSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteAudioPropertiesReport_GetTotalRemoteVolume", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcRemoteAudioPropertiesReport_GetTotalRemoteVolume(__IntPtr obj);
        }

        public static __IntPtr ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfos(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfos(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfosSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfosSize(obj);
            return __ret;
        }

        public static int ppf_RtcRemoteAudioPropertiesReport_GetTotalRemoteVolume(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRemoteAudioPropertiesReport_GetTotalRemoteVolume(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomMessageReceived_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRoomMessageReceived_GetRoomId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomMessageReceived_GetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRoomMessageReceived_GetUserId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomMessageReceived_GetMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcRoomMessageReceived_GetMessage(__IntPtr obj);
        }

        public static string ppf_RtcRoomMessageReceived_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRoomMessageReceived_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_RtcRoomMessageReceived_GetUserId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRoomMessageReceived_GetUserId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_RtcRoomMessageReceived_GetMessage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcRoomMessageReceived_GetMessage(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcBinaryMessageReceived_GetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcBinaryMessageReceived_GetUserId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcBinaryMessageReceived_GetData", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcBinaryMessageReceived_GetData(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcBinaryMessageReceived_GetLength", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcBinaryMessageReceived_GetLength(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcBinaryMessageReceived_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcBinaryMessageReceived_GetRoomId(__IntPtr obj);
        }

        public static string ppf_RtcBinaryMessageReceived_GetUserId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcBinaryMessageReceived_GetUserId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static __IntPtr ppf_RtcBinaryMessageReceived_GetData(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcBinaryMessageReceived_GetData(obj);
            return __ret;
        }

        public static int ppf_RtcBinaryMessageReceived_GetLength(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcBinaryMessageReceived_GetLength(obj);
            return __ret;
        }

        public static string ppf_RtcBinaryMessageReceived_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcBinaryMessageReceived_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfo_GetStreamKey", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcStreamSyncInfo_GetStreamKey(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfo_GetStreamType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcSyncInfoStreamType ppf_RtcStreamSyncInfo_GetStreamType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfo_GetData", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcStreamSyncInfo_GetData(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfo_GetLength", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcStreamSyncInfo_GetLength(__IntPtr obj);
        }

        public static __IntPtr ppf_RtcStreamSyncInfo_GetStreamKey(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcStreamSyncInfo_GetStreamKey(obj);
            return __ret;
        }

        public static global::Pico.Platform.RtcSyncInfoStreamType ppf_RtcStreamSyncInfo_GetStreamType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcStreamSyncInfo_GetStreamType(obj);
            return __ret;
        }

        public static __IntPtr ppf_RtcStreamSyncInfo_GetData(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcStreamSyncInfo_GetData(obj);
            return __ret;
        }

        public static int ppf_RtcStreamSyncInfo_GetLength(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcStreamSyncInfo_GetLength(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcFirstLocalVideoFrameCapturedInfo_GetStreamIndex", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcStreamIndex ppf_RtcFirstLocalVideoFrameCapturedInfo_GetStreamIndex(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcFirstLocalVideoFrameCapturedInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcFirstLocalVideoFrameCapturedInfo_GetRoomId(__IntPtr obj);
        }

        public static global::Pico.Platform.RtcStreamIndex ppf_RtcFirstLocalVideoFrameCapturedInfo_GetStreamIndex(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcFirstLocalVideoFrameCapturedInfo_GetStreamIndex(obj);
            return __ret;
        }

        public static string ppf_RtcFirstLocalVideoFrameCapturedInfo_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcFirstLocalVideoFrameCapturedInfo_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalVideoSizeChangeInfo_GetStreamIndex", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcStreamIndex ppf_RtcLocalVideoSizeChangeInfo_GetStreamIndex(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalVideoSizeChangeInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcLocalVideoSizeChangeInfo_GetRoomId(__IntPtr obj);
        }

        public static global::Pico.Platform.RtcStreamIndex ppf_RtcLocalVideoSizeChangeInfo_GetStreamIndex(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcLocalVideoSizeChangeInfo_GetStreamIndex(obj);
            return __ret;
        }

        public static string ppf_RtcLocalVideoSizeChangeInfo_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcLocalVideoSizeChangeInfo_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserPublishInfo_GetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserPublishInfo_GetUserId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserPublishInfo_GetMediaStreamType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcMediaStreamType ppf_RtcUserPublishInfo_GetMediaStreamType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserPublishInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserPublishInfo_GetRoomId(__IntPtr obj);
        }

        public static string ppf_RtcUserPublishInfo_GetUserId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserPublishInfo_GetUserId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.RtcMediaStreamType ppf_RtcUserPublishInfo_GetMediaStreamType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserPublishInfo_GetMediaStreamType(obj);
            return __ret;
        }

        public static string ppf_RtcUserPublishInfo_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserPublishInfo_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserUnPublishInfo_GetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserUnPublishInfo_GetUserId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserUnPublishInfo_GetMediaStreamType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcMediaStreamType ppf_RtcUserUnPublishInfo_GetMediaStreamType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserUnPublishInfo_GetReason", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcStreamRemoveReason ppf_RtcUserUnPublishInfo_GetReason(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserUnPublishInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserUnPublishInfo_GetRoomId(__IntPtr obj);
        }

        public static string ppf_RtcUserUnPublishInfo_GetUserId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserUnPublishInfo_GetUserId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.RtcMediaStreamType ppf_RtcUserUnPublishInfo_GetMediaStreamType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserUnPublishInfo_GetMediaStreamType(obj);
            return __ret;
        }

        public static global::Pico.Platform.RtcStreamRemoveReason ppf_RtcUserUnPublishInfo_GetReason(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserUnPublishInfo_GetReason(obj);
            return __ret;
        }

        public static string ppf_RtcUserUnPublishInfo_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserUnPublishInfo_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RoomArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_RoomArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RoomArray_GetTotalCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_RoomArray_HasNextPage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_GetPageSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RoomArray_GetPageSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_GetPageIndex", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RoomArray_GetPageIndex(__IntPtr obj);
        }

        public static __IntPtr ppf_RoomArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_RoomArray_GetElement(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_RoomArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomArray_GetSize(obj);
            return __ret;
        }

        public static int ppf_RoomArray_GetTotalCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomArray_GetTotalCount(obj);
            return __ret;
        }

        public static bool ppf_RoomArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomArray_HasNextPage(obj);
            return __ret;
        }

        public static int ppf_RoomArray_GetPageSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomArray_GetPageSize(obj);
            return __ret;
        }

        public static int ppf_RoomArray_GetPageIndex(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomArray_GetPageIndex(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserMessageReceived_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserMessageReceived_GetRoomId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserMessageReceived_GetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserMessageReceived_GetUserId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserMessageReceived_GetMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcUserMessageReceived_GetMessage(__IntPtr obj);
        }

        public static string ppf_RtcUserMessageReceived_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserMessageReceived_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_RtcUserMessageReceived_GetUserId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserMessageReceived_GetUserId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_RtcUserMessageReceived_GetMessage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcUserMessageReceived_GetMessage(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMessageSendResult_GetMessageId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_RtcMessageSendResult_GetMessageId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMessageSendResult_GetError", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RtcMessageSendResult_GetError(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMessageSendResult_GetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcMessageSendResult_GetRoomId(__IntPtr obj);
        }

        public static long ppf_RtcMessageSendResult_GetMessageId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcMessageSendResult_GetMessageId(obj);
            return __ret;
        }

        public static int ppf_RtcMessageSendResult_GetError(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcMessageSendResult_GetError(obj);
            return __ret;
        }

        public static string ppf_RtcMessageSendResult_GetRoomId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcMessageSendResult_GetRoomId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_CloudStorage_StartNewBackup", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_CloudStorage_StartNewBackup();
        }

        public static ulong ppf_CloudStorage_StartNewBackup()
        {
            var __ret = __Internal.ppf_CloudStorage_StartNewBackup();
            return __ret;
        }
    }

    /// <summary>The initialization result of the game service.</summary>
    public enum GameInitializeResult
    {
        /// <summary>Successfully initialized.</summary>
        Success = 0,
        /// <summary>Not initialized.</summary>
        Uninitialized = 1,
        /// <summary>Network error.</summary>
        NetworkError = 2,
        /// <summary>Invalid credentials.</summary>
        InvalidCredentials = 3,
        /// <summary>Game service is not available.</summary>
        ServiceNotAvaliable = 4,
        /// <summary>Unknown.</summary>
        Unknown = 5,
        /// <summary>Invalid server address.</summary>
        InvalidServerAddr = 6,
        /// <summary>Duplicate initialization.</summary>
        DupInitialize = 7
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfPlatformGameInitializeResult_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfPlatformGameInitializeResult_ToString(global::Pico.Platform.GameInitializeResult value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfPlatformGameInitializeResult_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.GameInitializeResult ppfPlatformGameInitializeResult_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfPlatformGameInitializeResult_ToString(global::Pico.Platform.GameInitializeResult value)
        {
            var __ret = __Internal.ppfPlatformGameInitializeResult_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.GameInitializeResult ppfPlatformGameInitializeResult_FromString(string str)
        {
            var __ret = __Internal.ppfPlatformGameInitializeResult_FromString(str);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_PlatformGameInitialize_GetResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.GameInitializeResult ppf_PlatformGameInitialize_GetResult(__IntPtr obj);
        }

        public static global::Pico.Platform.GameInitializeResult ppf_PlatformGameInitialize_GetResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PlatformGameInitialize_GetResult(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_SendInvitesResult_GetInvites", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SendInvitesResult_GetInvites(__IntPtr obj);
        }

        public static __IntPtr ppf_SendInvitesResult_GetInvites(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SendInvitesResult_GetInvites(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceJoinIntent_GetDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PresenceJoinIntent_GetDeeplinkMessage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceJoinIntent_GetDestinationApiName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PresenceJoinIntent_GetDestinationApiName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceJoinIntent_GetLobbySessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PresenceJoinIntent_GetLobbySessionId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceJoinIntent_GetMatchSessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PresenceJoinIntent_GetMatchSessionId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceJoinIntent_GetExtra", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PresenceJoinIntent_GetExtra(__IntPtr obj);
        }

        public static string ppf_PresenceJoinIntent_GetDeeplinkMessage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PresenceJoinIntent_GetDeeplinkMessage(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_PresenceJoinIntent_GetDestinationApiName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PresenceJoinIntent_GetDestinationApiName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_PresenceJoinIntent_GetLobbySessionId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PresenceJoinIntent_GetLobbySessionId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_PresenceJoinIntent_GetMatchSessionId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PresenceJoinIntent_GetMatchSessionId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_PresenceJoinIntent_GetExtra(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PresenceJoinIntent_GetExtra(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotification_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_RoomInviteNotification_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotification_GetRoomID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_RoomInviteNotification_GetRoomID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotification_GetSenderID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RoomInviteNotification_GetSenderID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotification_GetSentTime", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_RoomInviteNotification_GetSentTime(__IntPtr obj);
        }

        public static ulong ppf_RoomInviteNotification_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomInviteNotification_GetID(obj);
            return __ret;
        }

        public static ulong ppf_RoomInviteNotification_GetRoomID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomInviteNotification_GetRoomID(obj);
            return __ret;
        }

        public static string ppf_RoomInviteNotification_GetSenderID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomInviteNotification_GetSenderID(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static ulong ppf_RoomInviteNotification_GetSentTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomInviteNotification_GetSentTime(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotificationArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RoomInviteNotificationArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotificationArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RoomInviteNotificationArray_GetNextUrl(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotificationArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_RoomInviteNotificationArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotificationArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RoomInviteNotificationArray_GetTotalCount(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotificationArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_RoomInviteNotificationArray_HasNextPage(__IntPtr obj);
        }

        public static __IntPtr ppf_RoomInviteNotificationArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_RoomInviteNotificationArray_GetElement(obj, index);
            return __ret;
        }

        public static string ppf_RoomInviteNotificationArray_GetNextUrl(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomInviteNotificationArray_GetNextUrl(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_RoomInviteNotificationArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomInviteNotificationArray_GetSize(obj);
            return __ret;
        }

        public static int ppf_RoomInviteNotificationArray_GetTotalCount(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomInviteNotificationArray_GetTotalCount(obj);
            return __ret;
        }

        public static bool ppf_RoomInviteNotificationArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RoomInviteNotificationArray_HasNextPage(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetGender", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.Gender ppf_SportUserInfo_GetGender(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetBirthday", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_SportUserInfo_GetBirthday(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetStature", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_SportUserInfo_GetStature(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetWeight", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_SportUserInfo_GetWeight(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetSportLevel", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_SportUserInfo_GetSportLevel(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetDailyDurationInMinutes", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_SportUserInfo_GetDailyDurationInMinutes(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetDaysPerWeek", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_SportUserInfo_GetDaysPerWeek(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetSportTarget", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.SportTarget ppf_SportUserInfo_GetSportTarget(__IntPtr obj);
        }

        public static global::Pico.Platform.Gender ppf_SportUserInfo_GetGender(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportUserInfo_GetGender(obj);
            return __ret;
        }

        public static long ppf_SportUserInfo_GetBirthday(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportUserInfo_GetBirthday(obj);
            return __ret;
        }

        public static int ppf_SportUserInfo_GetStature(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportUserInfo_GetStature(obj);
            return __ret;
        }

        public static int ppf_SportUserInfo_GetWeight(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportUserInfo_GetWeight(obj);
            return __ret;
        }

        public static int ppf_SportUserInfo_GetSportLevel(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportUserInfo_GetSportLevel(obj);
            return __ret;
        }

        public static int ppf_SportUserInfo_GetDailyDurationInMinutes(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportUserInfo_GetDailyDurationInMinutes(obj);
            return __ret;
        }

        public static int ppf_SportUserInfo_GetDaysPerWeek(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportUserInfo_GetDaysPerWeek(obj);
            return __ret;
        }

        public static global::Pico.Platform.SportTarget ppf_SportUserInfo_GetSportTarget(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportUserInfo_GetSportTarget(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_SportDailySummary_GetId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetDate", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_SportDailySummary_GetDate(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetDurationInSeconds", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_SportDailySummary_GetDurationInSeconds(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetPlanDurationInMinutes", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_SportDailySummary_GetPlanDurationInMinutes(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetCalorie", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern double ppf_SportDailySummary_GetCalorie(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetPlanCalorie", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern double ppf_SportDailySummary_GetPlanCalorie(__IntPtr obj);
        }

        public static long ppf_SportDailySummary_GetId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportDailySummary_GetId(obj);
            return __ret;
        }

        public static long ppf_SportDailySummary_GetDate(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportDailySummary_GetDate(obj);
            return __ret;
        }

        public static int ppf_SportDailySummary_GetDurationInSeconds(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportDailySummary_GetDurationInSeconds(obj);
            return __ret;
        }

        public static int ppf_SportDailySummary_GetPlanDurationInMinutes(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportDailySummary_GetPlanDurationInMinutes(obj);
            return __ret;
        }

        public static double ppf_SportDailySummary_GetCalorie(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportDailySummary_GetCalorie(obj);
            return __ret;
        }

        public static double ppf_SportDailySummary_GetPlanCalorie(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportDailySummary_GetPlanCalorie(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummaryArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SportDailySummaryArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummaryArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_SportDailySummaryArray_GetSize(__IntPtr obj);
        }

        public static __IntPtr ppf_SportDailySummaryArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_SportDailySummaryArray_GetElement(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_SportDailySummaryArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportDailySummaryArray_GetSize(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportSummary_GetDurationInSeconds", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_SportSummary_GetDurationInSeconds(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportSummary_GetCalorie", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern double ppf_SportSummary_GetCalorie(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportSummary_GetStartTime", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_SportSummary_GetStartTime(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SportSummary_GetEndTime", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_SportSummary_GetEndTime(__IntPtr obj);
        }

        public static long ppf_SportSummary_GetDurationInSeconds(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportSummary_GetDurationInSeconds(obj);
            return __ret;
        }

        public static double ppf_SportSummary_GetCalorie(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportSummary_GetCalorie(obj);
            return __ret;
        }

        public static long ppf_SportSummary_GetStartTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportSummary_GetStartTime(obj);
            return __ret;
        }

        public static long ppf_SportSummary_GetEndTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SportSummary_GetEndTime(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetExpirationTime", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_Purchase_GetExpirationTime(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetGrantTime", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_Purchase_GetGrantTime(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Purchase_GetID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetSKU", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Purchase_GetSKU(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetIcon", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Purchase_GetIcon(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetAddonsType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.AddonsType ppf_Purchase_GetAddonsType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetOuterId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Purchase_GetOuterId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetCurrentPeriodType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.PeriodType ppf_Purchase_GetCurrentPeriodType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetNextPeriodType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.PeriodType ppf_Purchase_GetNextPeriodType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetNextPayTime", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_Purchase_GetNextPayTime(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetDiscountType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.DiscountType ppf_Purchase_GetDiscountType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetOrderComment", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Purchase_GetOrderComment(__IntPtr obj);
        }

        public static long ppf_Purchase_GetExpirationTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetExpirationTime(obj);
            return __ret;
        }

        public static long ppf_Purchase_GetGrantTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetGrantTime(obj);
            return __ret;
        }

        public static string ppf_Purchase_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetID(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Purchase_GetSKU(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetSKU(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Purchase_GetIcon(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetIcon(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.AddonsType ppf_Purchase_GetAddonsType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetAddonsType(obj);
            return __ret;
        }

        public static string ppf_Purchase_GetOuterId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetOuterId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.PeriodType ppf_Purchase_GetCurrentPeriodType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetCurrentPeriodType(obj);
            return __ret;
        }

        public static global::Pico.Platform.PeriodType ppf_Purchase_GetNextPeriodType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetNextPeriodType(obj);
            return __ret;
        }

        public static long ppf_Purchase_GetNextPayTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetNextPayTime(obj);
            return __ret;
        }

        public static global::Pico.Platform.DiscountType ppf_Purchase_GetDiscountType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetDiscountType(obj);
            return __ret;
        }

        public static string ppf_Purchase_GetOrderComment(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Purchase_GetOrderComment(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_PurchaseArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PurchaseArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PurchaseArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_PurchaseArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PurchaseArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_PurchaseArray_HasNextPage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PurchaseArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PurchaseArray_GetNextPageParam(__IntPtr obj);
        }

        public static __IntPtr ppf_PurchaseArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_PurchaseArray_GetElement(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_PurchaseArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PurchaseArray_GetSize(obj);
            return __ret;
        }

        public static bool ppf_PurchaseArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PurchaseArray_HasNextPage(obj);
            return __ret;
        }

        public static string ppf_PurchaseArray_GetNextPageParam(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PurchaseArray_GetNextPageParam(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetDescription", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Product_GetDescription(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetDetailDescription", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Product_GetDetailDescription(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetPrice", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Product_GetPrice(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetCurrency", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Product_GetCurrency(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Product_GetName(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetSKU", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Product_GetSKU(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetIcon", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Product_GetIcon(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetAddonsType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.AddonsType ppf_Product_GetAddonsType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetPeriodType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.PeriodType ppf_Product_GetPeriodType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetTrialPeriodUnit", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.PeriodType ppf_Product_GetTrialPeriodUnit(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetTrialPeriodValue", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_Product_GetTrialPeriodValue(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetOuterId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Product_GetOuterId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetOriginalPrice", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Product_GetOriginalPrice(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetGroupId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Product_GetGroupId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetLevel", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_Product_GetLevel(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_IsContinuous", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_Product_IsContinuous(__IntPtr obj);
        }

        public static string ppf_Product_GetDescription(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetDescription(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Product_GetDetailDescription(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetDetailDescription(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Product_GetPrice(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetPrice(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Product_GetCurrency(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetCurrency(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Product_GetName(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetName(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Product_GetSKU(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetSKU(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Product_GetIcon(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetIcon(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.AddonsType ppf_Product_GetAddonsType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetAddonsType(obj);
            return __ret;
        }

        public static global::Pico.Platform.PeriodType ppf_Product_GetPeriodType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetPeriodType(obj);
            return __ret;
        }

        public static global::Pico.Platform.PeriodType ppf_Product_GetTrialPeriodUnit(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetTrialPeriodUnit(obj);
            return __ret;
        }

        public static int ppf_Product_GetTrialPeriodValue(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetTrialPeriodValue(obj);
            return __ret;
        }

        public static string ppf_Product_GetOuterId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetOuterId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Product_GetOriginalPrice(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetOriginalPrice(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_Product_GetGroupId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetGroupId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static int ppf_Product_GetLevel(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_GetLevel(obj);
            return __ret;
        }

        public static bool ppf_Product_IsContinuous(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Product_IsContinuous(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ProductArray_GetElement", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ProductArray_GetElement(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ProductArray_GetSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_ProductArray_GetSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ProductArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_ProductArray_HasNextPage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ProductArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ProductArray_GetNextPageParam(__IntPtr obj);
        }

        public static __IntPtr ppf_ProductArray_GetElement(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_ProductArray_GetElement(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_ProductArray_GetSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ProductArray_GetSize(obj);
            return __ret;
        }

        public static bool ppf_ProductArray_HasNextPage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ProductArray_HasNextPage(obj);
            return __ret;
        }

        public static string ppf_ProductArray_GetNextPageParam(__IntPtr obj)
        {
            var __ret = __Internal.ppf_ProductArray_GetNextPageParam(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_PermissionResult_GetAuthorizedPermissions", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PermissionResult_GetAuthorizedPermissions(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PermissionResult_GetAuthorizedPermissionsSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_PermissionResult_GetAuthorizedPermissionsSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PermissionResult_GetAccessToken", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PermissionResult_GetAccessToken(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PermissionResult_GetUserID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PermissionResult_GetUserID(__IntPtr obj);
        }

        public static string ppf_PermissionResult_GetAuthorizedPermissions(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_PermissionResult_GetAuthorizedPermissions(obj, index);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static UIntPtr ppf_PermissionResult_GetAuthorizedPermissionsSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PermissionResult_GetAuthorizedPermissionsSize(obj);
            return __ret;
        }

        public static string ppf_PermissionResult_GetAccessToken(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PermissionResult_GetAccessToken(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_PermissionResult_GetUserID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_PermissionResult_GetUserID(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetSKU", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SubscriptionStatus_GetSKU(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetOuterId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SubscriptionStatus_GetOuterId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetStartTime", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_SubscriptionStatus_GetStartTime(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetEndTime", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_SubscriptionStatus_GetEndTime(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetPeriodType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.PeriodType ppf_SubscriptionStatus_GetPeriodType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetEntitlementStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.EntitlementStatus ppf_SubscriptionStatus_GetEntitlementStatus(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetCancelReason", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.CancelReason ppf_SubscriptionStatus_GetCancelReason(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetIsFreeTrial", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_SubscriptionStatus_GetIsFreeTrial(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetNextPeriod", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_SubscriptionStatus_GetNextPeriod(__IntPtr obj);
        }

        public static string ppf_SubscriptionStatus_GetSKU(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SubscriptionStatus_GetSKU(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_SubscriptionStatus_GetOuterId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SubscriptionStatus_GetOuterId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static long ppf_SubscriptionStatus_GetStartTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SubscriptionStatus_GetStartTime(obj);
            return __ret;
        }

        public static long ppf_SubscriptionStatus_GetEndTime(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SubscriptionStatus_GetEndTime(obj);
            return __ret;
        }

        public static global::Pico.Platform.PeriodType ppf_SubscriptionStatus_GetPeriodType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SubscriptionStatus_GetPeriodType(obj);
            return __ret;
        }

        public static global::Pico.Platform.EntitlementStatus ppf_SubscriptionStatus_GetEntitlementStatus(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SubscriptionStatus_GetEntitlementStatus(obj);
            return __ret;
        }

        public static global::Pico.Platform.CancelReason ppf_SubscriptionStatus_GetCancelReason(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SubscriptionStatus_GetCancelReason(obj);
            return __ret;
        }

        public static bool ppf_SubscriptionStatus_GetIsFreeTrial(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SubscriptionStatus_GetIsFreeTrial(obj);
            return __ret;
        }

        public static int ppf_SubscriptionStatus_GetNextPeriod(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SubscriptionStatus_GetNextPeriod(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserRelationResult_GetRelationsKey", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_UserRelationResult_GetRelationsKey(__IntPtr obj, int index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserRelationResult_GetRelationsValue", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.UserRelationType ppf_UserRelationResult_GetRelationsValue(__IntPtr obj, int index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_UserRelationResult_GetRelationsSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_UserRelationResult_GetRelationsSize(__IntPtr obj);
        }

        public static string ppf_UserRelationResult_GetRelationsKey(__IntPtr obj, int index)
        {
            var __ret = __Internal.ppf_UserRelationResult_GetRelationsKey(obj, index);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.UserRelationType ppf_UserRelationResult_GetRelationsValue(__IntPtr obj, int index)
        {
            var __ret = __Internal.ppf_UserRelationResult_GetRelationsValue(obj, index);
            return __ret;
        }

        public static int ppf_UserRelationResult_GetRelationsSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_UserRelationResult_GetRelationsSize(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_SpeechError_GetMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SpeechError_GetMessage(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SpeechError_GetSessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SpeechError_GetSessionId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SpeechError_GetCode", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_SpeechError_GetCode(__IntPtr obj);
        }

        public static string ppf_SpeechError_GetMessage(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SpeechError_GetMessage(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_SpeechError_GetSessionId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SpeechError_GetSessionId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static int ppf_SpeechError_GetCode(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SpeechError_GetCode(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_OrgScopedID_GetID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_OrgScopedID_GetID(__IntPtr obj);
        }

        public static string ppf_OrgScopedID_GetID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_OrgScopedID_GetID(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RecordInfo_GetVideoPath", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RecordInfo_GetVideoPath(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RecordInfo_GetJobId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RecordInfo_GetJobId(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RecordInfo_GetDurationInMilliSeconds", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RecordInfo_GetDurationInMilliSeconds(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RecordInfo_GetWidth", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RecordInfo_GetWidth(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RecordInfo_GetHeight", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_RecordInfo_GetHeight(__IntPtr obj);
        }

        public static string ppf_RecordInfo_GetVideoPath(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RecordInfo_GetVideoPath(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static string ppf_RecordInfo_GetJobId(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RecordInfo_GetJobId(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static int ppf_RecordInfo_GetDurationInMilliSeconds(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RecordInfo_GetDurationInMilliSeconds(obj);
            return __ret;
        }

        public static int ppf_RecordInfo_GetWidth(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RecordInfo_GetWidth(obj);
            return __ret;
        }

        public static int ppf_RecordInfo_GetHeight(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RecordInfo_GetHeight(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_SessionMedia_GetImages", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SessionMedia_GetImages(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SessionMedia_GetImagesSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_SessionMedia_GetImagesSize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SessionMedia_GetVideos", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_SessionMedia_GetVideos(__IntPtr obj, UIntPtr index);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_SessionMedia_GetVideosSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern UIntPtr ppf_SessionMedia_GetVideosSize(__IntPtr obj);
        }

        public static __IntPtr ppf_SessionMedia_GetImages(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_SessionMedia_GetImages(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_SessionMedia_GetImagesSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SessionMedia_GetImagesSize(obj);
            return __ret;
        }

        public static __IntPtr ppf_SessionMedia_GetVideos(__IntPtr obj, UIntPtr index)
        {
            var __ret = __Internal.ppf_SessionMedia_GetVideos(obj, index);
            return __ret;
        }

        public static UIntPtr ppf_SessionMedia_GetVideosSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_SessionMedia_GetVideosSize(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetUser", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetUser(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetString(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetInt32", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_Message_GetInt32(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.MessageType ppf_Message_GetType(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetError", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetError(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_IsError", CallingConvention = __CallingConvention.Cdecl)]
            [return: MarshalAs(UnmanagedType.I1)]
            internal static extern bool ppf_Message_IsError(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRequestID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Message_GetRequestID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetUserArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetUserArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetLaunchFriendRequestFlowResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetLaunchFriendRequestFlowResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetUserAndRoomArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetUserAndRoomArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetPermissionResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetPermissionResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetApplicationVersion", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetApplicationVersion(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetUserRelationResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetUserRelationResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSubscriptionStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetSubscriptionStatus(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetEntitlementCheckResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetEntitlementCheckResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcJoinRoomResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcJoinRoomResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcLeaveRoomResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcLeaveRoomResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcRoomStats", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcRoomStats(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcUserJoinInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcUserJoinInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcUserLeaveInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcUserLeaveInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcRoomWarn", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcRoomWarn(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcRoomError", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcRoomError(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcMuteInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcMuteInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcAudioPlaybackDevice", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcAudioPlaybackDevice ppf_Message_GetRtcAudioPlaybackDevice(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcMediaDeviceChangeInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcMediaDeviceChangeInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcLocalAudioPropertiesReport", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcLocalAudioPropertiesReport(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcRemoteAudioPropertiesReport", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcRemoteAudioPropertiesReport(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcRoomMessageReceived", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcRoomMessageReceived(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcUserMessageReceived", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcUserMessageReceived(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcBinaryMessageReceived", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcBinaryMessageReceived(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcStreamSyncInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcStreamSyncInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcFirstLocalVideoFrameCapturedInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcFirstLocalVideoFrameCapturedInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcLocalVideoSizeChangeInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcLocalVideoSizeChangeInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcMessageSendResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcMessageSendResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcUserPublishInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcUserPublishInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcUserUnPublishInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRtcUserUnPublishInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingAdminSnapshot", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetMatchmakingAdminSnapshot(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingBrowseResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetMatchmakingBrowseResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingBrowseCustomPageResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetMatchmakingBrowseCustomPageResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingEnqueueResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetMatchmakingEnqueueResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingEnqueueResultAndRoom", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetMatchmakingEnqueueResultAndRoom(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingStats", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetMatchmakingStats(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRoom", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRoom(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRoomArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRoomArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetPlatformGameInitialize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetPlatformGameInitialize(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetGameConnectionEvent", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.GameConnectionEvent ppf_Message_GetGameConnectionEvent(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetGameRequestFailedReason", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.GameRequestFailedReason ppf_Message_GetGameRequestFailedReason(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetApplicationInviteArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetApplicationInviteArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSendInvitesResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetSendInvitesResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetDestinationArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetDestinationArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetPresenceJoinIntent", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetPresenceJoinIntent(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRoomInviteNotificationArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRoomInviteNotificationArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetLeaderboardArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetLeaderboardArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetLeaderboardUpdateStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetLeaderboardUpdateStatus(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetLeaderboardEntryArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetLeaderboardEntryArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAchievementDefinitionArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAchievementDefinitionArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAchievementProgressArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAchievementProgressArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAchievementUpdate", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAchievementUpdate(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetChallenge", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetChallenge(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetChallengeArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetChallengeArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetChallengeEntryArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetChallengeEntryArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetPurchaseArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetPurchaseArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetProductArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetProductArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetPurchase", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetPurchase(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSportUserInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetSportUserInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSportDailySummaryArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetSportDailySummaryArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSportSummary", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetSportSummary(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetDetails", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAssetDetails(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetDetailsArray", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAssetDetailsArray(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetFileDeleteResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAssetFileDeleteResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetFileDownloadCancelResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAssetFileDownloadCancelResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetFileDownloadResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAssetFileDownloadResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetFileDownloadUpdate", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAssetFileDownloadUpdate(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAssetStatus(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetFileDeleteForSafety", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAssetFileDeleteForSafety(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAsrResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetAsrResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSpeechError", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetSpeechError(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetDetectSensitiveResult", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetDetectSensitiveResult(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetOrgScopedID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetOrgScopedID(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetCaptureInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetCaptureInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRecordInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetRecordInfo(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSessionMedia", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_Message_GetSessionMedia(__IntPtr obj);
        }

        public static __IntPtr ppf_Message_GetUser(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetUser(obj);
            return __ret;
        }

        public static string ppf_Message_GetString(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetString(obj);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static int ppf_Message_GetInt32(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetInt32(obj);
            return __ret;
        }

        public static global::Pico.Platform.MessageType ppf_Message_GetType(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetType(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetError(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetError(obj);
            return __ret;
        }

        public static bool ppf_Message_IsError(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_IsError(obj);
            return __ret;
        }

        public static ulong ppf_Message_GetRequestID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRequestID(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetUserArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetUserArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetLaunchFriendRequestFlowResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetLaunchFriendRequestFlowResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetUserAndRoomArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetUserAndRoomArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetPermissionResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetPermissionResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetApplicationVersion(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetApplicationVersion(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetUserRelationResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetUserRelationResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetSubscriptionStatus(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetSubscriptionStatus(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetEntitlementCheckResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetEntitlementCheckResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcJoinRoomResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcJoinRoomResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcLeaveRoomResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcLeaveRoomResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcRoomStats(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcRoomStats(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcUserJoinInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcUserJoinInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcUserLeaveInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcUserLeaveInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcRoomWarn(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcRoomWarn(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcRoomError(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcRoomError(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcMuteInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcMuteInfo(obj);
            return __ret;
        }

        public static global::Pico.Platform.RtcAudioPlaybackDevice ppf_Message_GetRtcAudioPlaybackDevice(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcAudioPlaybackDevice(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcMediaDeviceChangeInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcMediaDeviceChangeInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcLocalAudioPropertiesReport(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcLocalAudioPropertiesReport(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcRemoteAudioPropertiesReport(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcRemoteAudioPropertiesReport(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcRoomMessageReceived(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcRoomMessageReceived(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcUserMessageReceived(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcUserMessageReceived(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcBinaryMessageReceived(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcBinaryMessageReceived(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcStreamSyncInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcStreamSyncInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcFirstLocalVideoFrameCapturedInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcFirstLocalVideoFrameCapturedInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcLocalVideoSizeChangeInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcLocalVideoSizeChangeInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcMessageSendResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcMessageSendResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcUserPublishInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcUserPublishInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRtcUserUnPublishInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRtcUserUnPublishInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetMatchmakingAdminSnapshot(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetMatchmakingAdminSnapshot(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetMatchmakingBrowseResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetMatchmakingBrowseResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetMatchmakingBrowseCustomPageResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetMatchmakingBrowseCustomPageResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetMatchmakingEnqueueResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetMatchmakingEnqueueResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetMatchmakingEnqueueResultAndRoom(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetMatchmakingEnqueueResultAndRoom(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetMatchmakingStats(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetMatchmakingStats(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRoom(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRoom(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRoomArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRoomArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetPlatformGameInitialize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetPlatformGameInitialize(obj);
            return __ret;
        }

        public static global::Pico.Platform.GameConnectionEvent ppf_Message_GetGameConnectionEvent(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetGameConnectionEvent(obj);
            return __ret;
        }

        public static global::Pico.Platform.GameRequestFailedReason ppf_Message_GetGameRequestFailedReason(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetGameRequestFailedReason(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetApplicationInviteArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetApplicationInviteArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetSendInvitesResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetSendInvitesResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetDestinationArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetDestinationArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetPresenceJoinIntent(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetPresenceJoinIntent(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRoomInviteNotificationArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRoomInviteNotificationArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetLeaderboardArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetLeaderboardArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetLeaderboardUpdateStatus(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetLeaderboardUpdateStatus(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetLeaderboardEntryArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetLeaderboardEntryArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAchievementDefinitionArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAchievementDefinitionArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAchievementProgressArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAchievementProgressArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAchievementUpdate(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAchievementUpdate(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetChallenge(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetChallenge(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetChallengeArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetChallengeArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetChallengeEntryArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetChallengeEntryArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetPurchaseArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetPurchaseArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetProductArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetProductArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetPurchase(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetPurchase(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetSportUserInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetSportUserInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetSportDailySummaryArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetSportDailySummaryArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetSportSummary(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetSportSummary(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAssetDetails(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAssetDetails(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAssetDetailsArray(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAssetDetailsArray(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAssetFileDeleteResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAssetFileDeleteResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAssetFileDownloadCancelResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAssetFileDownloadCancelResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAssetFileDownloadResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAssetFileDownloadResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAssetFileDownloadUpdate(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAssetFileDownloadUpdate(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAssetStatus(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAssetStatus(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAssetFileDeleteForSafety(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAssetFileDeleteForSafety(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetAsrResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetAsrResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetSpeechError(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetSpeechError(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetDetectSensitiveResult(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetDetectSensitiveResult(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetOrgScopedID(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetOrgScopedID(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetCaptureInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetCaptureInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetRecordInfo(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetRecordInfo(obj);
            return __ret;
        }

        public static __IntPtr ppf_Message_GetSessionMedia(__IntPtr obj)
        {
            var __ret = __Internal.ppf_Message_GetSessionMedia(obj);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_PcInitWrapper", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.PlatformInitializeResult ppf_PcInitWrapper([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string appId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string configPath, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string logPath);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PcInitAsynchronousWrapper", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_PcInitAsynchronousWrapper([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string appId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string configJson, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string logPath);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PcUnInitialize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_PcUnInitialize();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RegisterFunctions", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RegisterFunctions();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_GetLoaderVersion", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern int ppf_GetLoaderVersion();
        }

        public static global::Pico.Platform.PlatformInitializeResult ppf_PcInitWrapper(string appId, string configPath, string logPath)
        {
            var __ret = __Internal.ppf_PcInitWrapper(appId, configPath, logPath);
            return __ret;
        }

        public static ulong ppf_PcInitAsynchronousWrapper(string appId, string configJson, string logPath)
        {
            var __ret = __Internal.ppf_PcInitAsynchronousWrapper(appId, configJson, logPath);
            return __ret;
        }

        public static int ppf_PcUnInitialize()
        {
            var __ret = __Internal.ppf_PcUnInitialize();
            return __ret;
        }

        public static void ppf_RegisterFunctions()
        {
            __Internal.ppf_RegisterFunctions();
        }

        public static int ppf_GetLoaderVersion()
        {
            var __ret = __Internal.ppf_GetLoaderVersion();
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_PresenceOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_PresenceOptions_Destroy(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_SetDestinationApiName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_PresenceOptions_SetDestinationApiName(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_SetIsJoinable", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_PresenceOptions_SetIsJoinable(__IntPtr handle, bool value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_SetLobbySessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_PresenceOptions_SetLobbySessionId(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_SetMatchSessionId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_PresenceOptions_SetMatchSessionId(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_SetExtra", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_PresenceOptions_SetExtra(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);
        }

        public static __IntPtr ppf_PresenceOptions_Create()
        {
            var __ret = __Internal.ppf_PresenceOptions_Create();
            return __ret;
        }

        public static void ppf_PresenceOptions_Destroy(__IntPtr handle)
        {
            __Internal.ppf_PresenceOptions_Destroy(handle);
        }

        public static void ppf_PresenceOptions_SetDestinationApiName(__IntPtr handle, string value)
        {
            __Internal.ppf_PresenceOptions_SetDestinationApiName(handle, value);
        }

        public static void ppf_PresenceOptions_SetIsJoinable(__IntPtr handle, bool value)
        {
            __Internal.ppf_PresenceOptions_SetIsJoinable(handle, value);
        }

        public static void ppf_PresenceOptions_SetLobbySessionId(__IntPtr handle, string value)
        {
            __Internal.ppf_PresenceOptions_SetLobbySessionId(handle, value);
        }

        public static void ppf_PresenceOptions_SetMatchSessionId(__IntPtr handle, string value)
        {
            __Internal.ppf_PresenceOptions_SetMatchSessionId(handle, value);
        }

        public static void ppf_PresenceOptions_SetExtra(__IntPtr handle, string value)
        {
            __Internal.ppf_PresenceOptions_SetExtra(handle, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_AddCount", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Achievements_AddCount([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string name, long count, __IntPtr extra_data, uint extra_data_length);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_AddFields", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Achievements_AddFields([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string fields, __IntPtr extra_data, uint extra_data_length);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_GetAllDefinitions", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Achievements_GetAllDefinitions(int pageIdx, int pageSize);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_GetAllProgress", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Achievements_GetAllProgress(int pageIdx, int pageSize);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_GetDefinitionsByName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Achievements_GetDefinitionsByName(__IntPtr[]names, int count);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_GetProgressByName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Achievements_GetProgressByName(__IntPtr[]names, int count);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_Unlock", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Achievements_Unlock([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string name, __IntPtr extra_data, uint extra_data_length);
        }

        public static ulong ppf_Achievements_AddCount(string name, long count, __IntPtr extra_data, uint extra_data_length)
        {
            var __ret = __Internal.ppf_Achievements_AddCount(name, count, extra_data, extra_data_length);
            return __ret;
        }

        public static ulong ppf_Achievements_AddFields(string name, string fields, __IntPtr extra_data, uint extra_data_length)
        {
            var __ret = __Internal.ppf_Achievements_AddFields(name, fields, extra_data, extra_data_length);
            return __ret;
        }

        public static ulong ppf_Achievements_GetAllDefinitions(int pageIdx, int pageSize)
        {
            var __ret = __Internal.ppf_Achievements_GetAllDefinitions(pageIdx, pageSize);
            return __ret;
        }

        public static ulong ppf_Achievements_GetAllProgress(int pageIdx, int pageSize)
        {
            var __ret = __Internal.ppf_Achievements_GetAllProgress(pageIdx, pageSize);
            return __ret;
        }

        public static ulong ppf_Achievements_GetDefinitionsByName(__IntPtr[]names, int count)
        {
            var __ret = __Internal.ppf_Achievements_GetDefinitionsByName(names, count);
            return __ret;
        }

        public static ulong ppf_Achievements_GetProgressByName(__IntPtr[]names, int count)
        {
            var __ret = __Internal.ppf_Achievements_GetProgressByName(names, count);
            return __ret;
        }

        public static ulong ppf_Achievements_Unlock(string name, __IntPtr extra_data, uint extra_data_length)
        {
            var __ret = __Internal.ppf_Achievements_Unlock(name, extra_data, extra_data_length);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_LaunchOtherApp", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Application_LaunchOtherApp([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string packageName, __IntPtr deeplink_options);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_LaunchOtherAppByAppID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Application_LaunchOtherAppByAppID([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string appID, __IntPtr deeplink_options);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_LaunchOtherAppByPresence", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Application_LaunchOtherAppByPresence([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string appID, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string packageName, __IntPtr options);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_LaunchOtherAppByMessage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Application_LaunchOtherAppByMessage(__IntPtr options);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_GetVersion", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Application_GetVersion();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_LaunchStore", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Application_LaunchStore();
        }

        public static ulong ppf_Application_LaunchOtherApp(string packageName, __IntPtr deeplink_options)
        {
            var __ret = __Internal.ppf_Application_LaunchOtherApp(packageName, deeplink_options);
            return __ret;
        }

        public static ulong ppf_Application_LaunchOtherAppByAppID(string appID, __IntPtr deeplink_options)
        {
            var __ret = __Internal.ppf_Application_LaunchOtherAppByAppID(appID, deeplink_options);
            return __ret;
        }

        public static ulong ppf_Application_LaunchOtherAppByPresence(string appID, string packageName, __IntPtr options)
        {
            var __ret = __Internal.ppf_Application_LaunchOtherAppByPresence(appID, packageName, options);
            return __ret;
        }

        public static ulong ppf_Application_LaunchOtherAppByMessage(__IntPtr options)
        {
            var __ret = __Internal.ppf_Application_LaunchOtherAppByMessage(options);
            return __ret;
        }

        public static ulong ppf_Application_GetVersion()
        {
            var __ret = __Internal.ppf_Application_GetVersion();
            return __ret;
        }

        public static ulong ppf_Application_LaunchStore()
        {
            var __ret = __Internal.ppf_Application_LaunchStore();
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DeleteById", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFile_DeleteById(ulong assetFileID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DeleteByName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFile_DeleteByName([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string assetFileName);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DownloadById", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFile_DownloadById(ulong assetFileID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DownloadByName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFile_DownloadByName([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string assetFileName);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DownloadCancelById", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFile_DownloadCancelById(ulong assetFileID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DownloadCancelByName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFile_DownloadCancelByName([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string assetFileName);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_GetList", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFile_GetList();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_GetNextAssetDetailsArrayPage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFile_GetNextAssetDetailsArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string @params);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_StatusById", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFile_StatusById(ulong assetFileID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_StatusByName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_AssetFile_StatusByName([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string assetFileName);
        }

        public static ulong ppf_AssetFile_DeleteById(ulong assetFileID)
        {
            var __ret = __Internal.ppf_AssetFile_DeleteById(assetFileID);
            return __ret;
        }

        public static ulong ppf_AssetFile_DeleteByName(string assetFileName)
        {
            var __ret = __Internal.ppf_AssetFile_DeleteByName(assetFileName);
            return __ret;
        }

        public static ulong ppf_AssetFile_DownloadById(ulong assetFileID)
        {
            var __ret = __Internal.ppf_AssetFile_DownloadById(assetFileID);
            return __ret;
        }

        public static ulong ppf_AssetFile_DownloadByName(string assetFileName)
        {
            var __ret = __Internal.ppf_AssetFile_DownloadByName(assetFileName);
            return __ret;
        }

        public static ulong ppf_AssetFile_DownloadCancelById(ulong assetFileID)
        {
            var __ret = __Internal.ppf_AssetFile_DownloadCancelById(assetFileID);
            return __ret;
        }

        public static ulong ppf_AssetFile_DownloadCancelByName(string assetFileName)
        {
            var __ret = __Internal.ppf_AssetFile_DownloadCancelByName(assetFileName);
            return __ret;
        }

        public static ulong ppf_AssetFile_GetList()
        {
            var __ret = __Internal.ppf_AssetFile_GetList();
            return __ret;
        }

        public static ulong ppf_AssetFile_GetNextAssetDetailsArrayPage(string @params)
        {
            var __ret = __Internal.ppf_AssetFile_GetNextAssetDetailsArrayPage(@params);
            return __ret;
        }

        public static ulong ppf_AssetFile_StatusById(ulong assetFileID)
        {
            var __ret = __Internal.ppf_AssetFile_StatusById(assetFileID);
            return __ret;
        }

        public static ulong ppf_AssetFile_StatusByName(string assetFileName)
        {
            var __ret = __Internal.ppf_AssetFile_StatusByName(assetFileName);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_Invites", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenges_Invites(ulong challengeID, __IntPtr[]userIDs, uint userIDLength);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_Get", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenges_Get(ulong challengeID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_GetEntries", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenges_GetEntries(ulong challengeID, global::Pico.Platform.LeaderboardFilterType filter, global::Pico.Platform.LeaderboardStartAt startAt, int pageIdx, int pageSize);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_GetEntriesAfterRank", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenges_GetEntriesAfterRank(ulong challengeID, ulong afterRank, int pageIdx, int pageSize);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_GetEntriesByIds", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenges_GetEntriesByIds(ulong challengeID, global::Pico.Platform.LeaderboardStartAt startAt, __IntPtr[]userIDs, uint userIDLength, int pageIdx, int pageSize);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_GetList", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenges_GetList(__IntPtr challengeOptions, int pageIdx, int pageSize);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_Join", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenges_Join(ulong challengeID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_Leave", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenges_Leave(ulong challengeID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_LaunchInvitableUserFlow", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Challenges_LaunchInvitableUserFlow(ulong challengeID);
        }

        public static ulong ppf_Challenges_Invites(ulong challengeID, __IntPtr[]userIDs, uint userIDLength)
        {
            var __ret = __Internal.ppf_Challenges_Invites(challengeID, userIDs, userIDLength);
            return __ret;
        }

        public static ulong ppf_Challenges_Get(ulong challengeID)
        {
            var __ret = __Internal.ppf_Challenges_Get(challengeID);
            return __ret;
        }

        public static ulong ppf_Challenges_GetEntries(ulong challengeID, global::Pico.Platform.LeaderboardFilterType filter, global::Pico.Platform.LeaderboardStartAt startAt, int pageIdx, int pageSize)
        {
            var __ret = __Internal.ppf_Challenges_GetEntries(challengeID, filter, startAt, pageIdx, pageSize);
            return __ret;
        }

        public static ulong ppf_Challenges_GetEntriesAfterRank(ulong challengeID, ulong afterRank, int pageIdx, int pageSize)
        {
            var __ret = __Internal.ppf_Challenges_GetEntriesAfterRank(challengeID, afterRank, pageIdx, pageSize);
            return __ret;
        }

        public static ulong ppf_Challenges_GetEntriesByIds(ulong challengeID, global::Pico.Platform.LeaderboardStartAt startAt, __IntPtr[]userIDs, uint userIDLength, int pageIdx, int pageSize)
        {
            var __ret = __Internal.ppf_Challenges_GetEntriesByIds(challengeID, startAt, userIDs, userIDLength, pageIdx, pageSize);
            return __ret;
        }

        public static ulong ppf_Challenges_GetList(__IntPtr challengeOptions, int pageIdx, int pageSize)
        {
            var __ret = __Internal.ppf_Challenges_GetList(challengeOptions, pageIdx, pageSize);
            return __ret;
        }

        public static ulong ppf_Challenges_Join(ulong challengeID)
        {
            var __ret = __Internal.ppf_Challenges_Join(challengeID);
            return __ret;
        }

        public static ulong ppf_Challenges_Leave(ulong challengeID)
        {
            var __ret = __Internal.ppf_Challenges_Leave(challengeID);
            return __ret;
        }

        public static ulong ppf_Challenges_LaunchInvitableUserFlow(ulong challengeID)
        {
            var __ret = __Internal.ppf_Challenges_LaunchInvitableUserFlow(challengeID);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Compliance_DetectSensitive", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Compliance_DetectSensitive(global::Pico.Platform.DetectSensitiveScene scene, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string content);
        }

        public static ulong ppf_Compliance_DetectSensitive(global::Pico.Platform.DetectSensitiveScene scene, string content)
        {
            var __ret = __Internal.ppf_Compliance_DetectSensitive(scene, content);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_CaptureScreen", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Highlight_CaptureScreen();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_ListMedia", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Highlight_ListMedia([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sessionId);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_SaveMedia", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Highlight_SaveMedia([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string jobId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sessionId);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_ShareMedia", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Highlight_ShareMedia([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string jobId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sessionId);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_StartRecord", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Highlight_StartRecord();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_StartSession", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Highlight_StartSession();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_StopRecord", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Highlight_StopRecord();
        }

        public static ulong ppf_Highlight_CaptureScreen()
        {
            var __ret = __Internal.ppf_Highlight_CaptureScreen();
            return __ret;
        }

        public static ulong ppf_Highlight_ListMedia(string sessionId)
        {
            var __ret = __Internal.ppf_Highlight_ListMedia(sessionId);
            return __ret;
        }

        public static ulong ppf_Highlight_SaveMedia(string jobId, string sessionId)
        {
            var __ret = __Internal.ppf_Highlight_SaveMedia(jobId, sessionId);
            return __ret;
        }

        public static ulong ppf_Highlight_ShareMedia(string jobId, string sessionId)
        {
            var __ret = __Internal.ppf_Highlight_ShareMedia(jobId, sessionId);
            return __ret;
        }

        public static ulong ppf_Highlight_StartRecord()
        {
            var __ret = __Internal.ppf_Highlight_StartRecord();
            return __ret;
        }

        public static ulong ppf_Highlight_StartSession()
        {
            var __ret = __Internal.ppf_Highlight_StartSession();
            return __ret;
        }

        public static ulong ppf_Highlight_StopRecord()
        {
            var __ret = __Internal.ppf_Highlight_StopRecord();
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_ConsumePurchase", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_IAP_ConsumePurchase([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sku);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_GetNextProductArrayPage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_IAP_GetNextProductArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string nextPageParam);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_GetNextPurchaseArrayPage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_IAP_GetNextPurchaseArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string nextPageParam);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_GetProductsBySKU", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_IAP_GetProductsBySKU(__IntPtr[]skus, int size);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_GetViewerPurchases", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_IAP_GetViewerPurchases();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_LaunchCheckoutFlow", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_IAP_LaunchCheckoutFlow([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sku, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string price, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string currency);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_LaunchCheckoutFlowV2", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_IAP_LaunchCheckoutFlowV2([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sku, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string price, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string currency, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string outerId);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_LaunchCheckoutFlowV3", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_IAP_LaunchCheckoutFlowV3([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sku, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string price, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string currency, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string outerId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string orderComment);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_GetSubscriptionStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_IAP_GetSubscriptionStatus([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sku);
        }

        public static ulong ppf_IAP_ConsumePurchase(string sku)
        {
            var __ret = __Internal.ppf_IAP_ConsumePurchase(sku);
            return __ret;
        }

        public static ulong ppf_IAP_GetNextProductArrayPage(string nextPageParam)
        {
            var __ret = __Internal.ppf_IAP_GetNextProductArrayPage(nextPageParam);
            return __ret;
        }

        public static ulong ppf_IAP_GetNextPurchaseArrayPage(string nextPageParam)
        {
            var __ret = __Internal.ppf_IAP_GetNextPurchaseArrayPage(nextPageParam);
            return __ret;
        }

        public static ulong ppf_IAP_GetProductsBySKU(__IntPtr[]skus, int size)
        {
            var __ret = __Internal.ppf_IAP_GetProductsBySKU(skus, size);
            return __ret;
        }

        public static ulong ppf_IAP_GetViewerPurchases()
        {
            var __ret = __Internal.ppf_IAP_GetViewerPurchases();
            return __ret;
        }

        public static ulong ppf_IAP_LaunchCheckoutFlow(string sku, string price, string currency)
        {
            var __ret = __Internal.ppf_IAP_LaunchCheckoutFlow(sku, price, currency);
            return __ret;
        }

        public static ulong ppf_IAP_LaunchCheckoutFlowV2(string sku, string price, string currency, string outerId)
        {
            var __ret = __Internal.ppf_IAP_LaunchCheckoutFlowV2(sku, price, currency, outerId);
            return __ret;
        }

        public static ulong ppf_IAP_LaunchCheckoutFlowV3(string sku, string price, string currency, string outerId, string orderComment)
        {
            var __ret = __Internal.ppf_IAP_LaunchCheckoutFlowV3(sku, price, currency, outerId, orderComment);
            return __ret;
        }

        public static ulong ppf_IAP_GetSubscriptionStatus(string sku)
        {
            var __ret = __Internal.ppf_IAP_GetSubscriptionStatus(sku);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_Get", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Leaderboard_Get([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetEntries", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Leaderboard_GetEntries([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName, int pageSize, int pageIdx, global::Pico.Platform.LeaderboardFilterType filter, global::Pico.Platform.LeaderboardStartAt startAt);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetEntriesAfterRank", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Leaderboard_GetEntriesAfterRank([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName, int pageSize, int pageIdx, ulong afterRank);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetEntriesByIds", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Leaderboard_GetEntriesByIds([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName, int pageSize, int pageIdx, global::Pico.Platform.LeaderboardStartAt startAt, __IntPtr[]userIDs, uint userIDLength);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetNextEntries", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Leaderboard_GetNextEntries(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetNextLeaderboardArrayPage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Leaderboard_GetNextLeaderboardArrayPage(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetPreviousEntries", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Leaderboard_GetPreviousEntries(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_WriteEntry", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Leaderboard_WriteEntry([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName, long score, __IntPtr extraData, uint extraDataLength, bool forceUpdate);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_WriteEntryWithSupplementaryMetric", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Leaderboard_WriteEntryWithSupplementaryMetric([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName, long score, long supplementaryMetric, __IntPtr extraData, uint extraDataLength, bool forceUpdate);
        }

        public static ulong ppf_Leaderboard_Get(string leaderboardName)
        {
            var __ret = __Internal.ppf_Leaderboard_Get(leaderboardName);
            return __ret;
        }

        public static ulong ppf_Leaderboard_GetEntries(string leaderboardName, int pageSize, int pageIdx, global::Pico.Platform.LeaderboardFilterType filter, global::Pico.Platform.LeaderboardStartAt startAt)
        {
            var __ret = __Internal.ppf_Leaderboard_GetEntries(leaderboardName, pageSize, pageIdx, filter, startAt);
            return __ret;
        }

        public static ulong ppf_Leaderboard_GetEntriesAfterRank(string leaderboardName, int pageSize, int pageIdx, ulong afterRank)
        {
            var __ret = __Internal.ppf_Leaderboard_GetEntriesAfterRank(leaderboardName, pageSize, pageIdx, afterRank);
            return __ret;
        }

        public static ulong ppf_Leaderboard_GetEntriesByIds(string leaderboardName, int pageSize, int pageIdx, global::Pico.Platform.LeaderboardStartAt startAt, __IntPtr[]userIDs, uint userIDLength)
        {
            var __ret = __Internal.ppf_Leaderboard_GetEntriesByIds(leaderboardName, pageSize, pageIdx, startAt, userIDs, userIDLength);
            return __ret;
        }

        public static ulong ppf_Leaderboard_GetNextEntries(__IntPtr handle)
        {
            var __ret = __Internal.ppf_Leaderboard_GetNextEntries(handle);
            return __ret;
        }

        public static ulong ppf_Leaderboard_GetNextLeaderboardArrayPage(__IntPtr handle)
        {
            var __ret = __Internal.ppf_Leaderboard_GetNextLeaderboardArrayPage(handle);
            return __ret;
        }

        public static ulong ppf_Leaderboard_GetPreviousEntries(__IntPtr handle)
        {
            var __ret = __Internal.ppf_Leaderboard_GetPreviousEntries(handle);
            return __ret;
        }

        public static ulong ppf_Leaderboard_WriteEntry(string leaderboardName, long score, __IntPtr extraData, uint extraDataLength, bool forceUpdate)
        {
            var __ret = __Internal.ppf_Leaderboard_WriteEntry(leaderboardName, score, extraData, extraDataLength, forceUpdate);
            return __ret;
        }

        public static ulong ppf_Leaderboard_WriteEntryWithSupplementaryMetric(string leaderboardName, long score, long supplementaryMetric, __IntPtr extraData, uint extraDataLength, bool forceUpdate)
        {
            var __ret = __Internal.ppf_Leaderboard_WriteEntryWithSupplementaryMetric(leaderboardName, score, supplementaryMetric, extraData, extraDataLength, forceUpdate);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_Browse2", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Matchmaking_Browse2([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string pool, __IntPtr matchmakingOptions);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_Browse2CustomPage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Matchmaking_Browse2CustomPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string pool, __IntPtr matchmakingOptions, int pageIndex, int pageSize);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_Cancel2", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Matchmaking_Cancel2();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_CreateAndEnqueueRoom2", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Matchmaking_CreateAndEnqueueRoom2([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string pool, __IntPtr matchmakingOptions);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_Enqueue2", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Matchmaking_Enqueue2([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string pool, __IntPtr matchmakingOptions);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_GetAdminSnapshot", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Matchmaking_GetAdminSnapshot();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_GetStats", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Matchmaking_GetStats([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string pool, uint maxLevel, global::Pico.Platform.MatchmakingStatApproach approach);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_ReportResultInsecure", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Matchmaking_ReportResultInsecure(ulong roomID, __IntPtr data, uint numItems);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_StartMatch", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Matchmaking_StartMatch(ulong roomID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_CrashTest", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Matchmaking_CrashTest();
        }

        public static ulong ppf_Matchmaking_Browse2(string pool, __IntPtr matchmakingOptions)
        {
            var __ret = __Internal.ppf_Matchmaking_Browse2(pool, matchmakingOptions);
            return __ret;
        }

        public static ulong ppf_Matchmaking_Browse2CustomPage(string pool, __IntPtr matchmakingOptions, int pageIndex, int pageSize)
        {
            var __ret = __Internal.ppf_Matchmaking_Browse2CustomPage(pool, matchmakingOptions, pageIndex, pageSize);
            return __ret;
        }

        public static ulong ppf_Matchmaking_Cancel2()
        {
            var __ret = __Internal.ppf_Matchmaking_Cancel2();
            return __ret;
        }

        public static ulong ppf_Matchmaking_CreateAndEnqueueRoom2(string pool, __IntPtr matchmakingOptions)
        {
            var __ret = __Internal.ppf_Matchmaking_CreateAndEnqueueRoom2(pool, matchmakingOptions);
            return __ret;
        }

        public static ulong ppf_Matchmaking_Enqueue2(string pool, __IntPtr matchmakingOptions)
        {
            var __ret = __Internal.ppf_Matchmaking_Enqueue2(pool, matchmakingOptions);
            return __ret;
        }

        public static ulong ppf_Matchmaking_GetAdminSnapshot()
        {
            var __ret = __Internal.ppf_Matchmaking_GetAdminSnapshot();
            return __ret;
        }

        public static ulong ppf_Matchmaking_GetStats(string pool, uint maxLevel, global::Pico.Platform.MatchmakingStatApproach approach)
        {
            var __ret = __Internal.ppf_Matchmaking_GetStats(pool, maxLevel, approach);
            return __ret;
        }

        public static ulong ppf_Matchmaking_ReportResultInsecure(ulong roomID, __IntPtr data, uint numItems)
        {
            var __ret = __Internal.ppf_Matchmaking_ReportResultInsecure(roomID, data, numItems);
            return __ret;
        }

        public static ulong ppf_Matchmaking_StartMatch(ulong roomID)
        {
            var __ret = __Internal.ppf_Matchmaking_StartMatch(roomID);
            return __ret;
        }

        public static ulong ppf_Matchmaking_CrashTest()
        {
            var __ret = __Internal.ppf_Matchmaking_CrashTest();
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Notification_GetNextRoomInviteNotificationArrayPage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Notification_GetNextRoomInviteNotificationArrayPage(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Notification_GetRoomInvites", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Notification_GetRoomInvites(int pageIdx, int pageSize);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Notification_MarkAsRead", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Notification_MarkAsRead(ulong notificationID);
        }

        public static ulong ppf_Notification_GetNextRoomInviteNotificationArrayPage(__IntPtr handle)
        {
            var __ret = __Internal.ppf_Notification_GetNextRoomInviteNotificationArrayPage(handle);
            return __ret;
        }

        public static ulong ppf_Notification_GetRoomInvites(int pageIdx, int pageSize)
        {
            var __ret = __Internal.ppf_Notification_GetRoomInvites(pageIdx, pageSize);
            return __ret;
        }

        public static ulong ppf_Notification_MarkAsRead(ulong notificationID)
        {
            var __ret = __Internal.ppf_Notification_MarkAsRead(notificationID);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ShareMediaOptions_Destroy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_ShareMediaOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_SetShareMediaType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ShareMediaOptions_SetShareMediaType(__IntPtr obj, global::Pico.Platform.ShareMediaType value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_SetVideoPath", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ShareMediaOptions_SetVideoPath(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_SetVideoThumbPath", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ShareMediaOptions_SetVideoThumbPath(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_AddImagePath", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ShareMediaOptions_AddImagePath(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_ClearImagePaths", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ShareMediaOptions_ClearImagePaths(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_SetShareAppType", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_ShareMediaOptions_SetShareAppType(__IntPtr obj, global::Pico.Platform.ShareAppType value);
        }

        public static void ppf_ShareMediaOptions_Destroy(__IntPtr obj)
        {
            __Internal.ppf_ShareMediaOptions_Destroy(obj);
        }

        public static __IntPtr ppf_ShareMediaOptions_Create()
        {
            var __ret = __Internal.ppf_ShareMediaOptions_Create();
            return __ret;
        }

        public static void ppf_ShareMediaOptions_SetShareMediaType(__IntPtr obj, global::Pico.Platform.ShareMediaType value)
        {
            __Internal.ppf_ShareMediaOptions_SetShareMediaType(obj, value);
        }

        public static void ppf_ShareMediaOptions_SetVideoPath(__IntPtr obj, string value)
        {
            __Internal.ppf_ShareMediaOptions_SetVideoPath(obj, value);
        }

        public static void ppf_ShareMediaOptions_SetVideoThumbPath(__IntPtr obj, string value)
        {
            __Internal.ppf_ShareMediaOptions_SetVideoThumbPath(obj, value);
        }

        public static void ppf_ShareMediaOptions_AddImagePath(__IntPtr obj, string value)
        {
            __Internal.ppf_ShareMediaOptions_AddImagePath(obj, value);
        }

        public static void ppf_ShareMediaOptions_ClearImagePaths(__IntPtr obj)
        {
            __Internal.ppf_ShareMediaOptions_ClearImagePaths(obj);
        }

        public static void ppf_ShareMediaOptions_SetShareAppType(__IntPtr obj, global::Pico.Platform.ShareAppType value)
        {
            __Internal.ppf_ShareMediaOptions_SetShareAppType(obj, value);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_Clear", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_Clear();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_GetInvitableUsers", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_GetInvitableUsers(__IntPtr options);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_GetNextApplicationInviteArrayPage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_GetNextApplicationInviteArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string @params);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_GetSentInvites", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_GetSentInvites();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SendInvites", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_SendInvites(__IntPtr[]userIDs, uint userIDLength);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SendCustomInvites", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_SendCustomInvites([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string msg, __IntPtr[]userIDs, uint userIDLength);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_Set", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_Set(__IntPtr presenceOptions);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SetDestination", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_SetDestination([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string api_name);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SetIsJoinable", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_SetIsJoinable(bool is_joinable);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SetLobbySession", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_SetLobbySession([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string id);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SetMatchSession", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_SetMatchSession([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string id);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SetExtra", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_SetExtra([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string extra);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_GetDestinations", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_GetDestinations();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_GetNextDestinationArrayPage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_GetNextDestinationArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string @params);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_ShareMedia", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_ShareMedia(__IntPtr shareMediaOptions);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_LaunchInvitePanel", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Presence_LaunchInvitePanel();
        }

        public static ulong ppf_Presence_Clear()
        {
            var __ret = __Internal.ppf_Presence_Clear();
            return __ret;
        }

        public static ulong ppf_Presence_GetInvitableUsers(__IntPtr options)
        {
            var __ret = __Internal.ppf_Presence_GetInvitableUsers(options);
            return __ret;
        }

        public static ulong ppf_Presence_GetNextApplicationInviteArrayPage(string @params)
        {
            var __ret = __Internal.ppf_Presence_GetNextApplicationInviteArrayPage(@params);
            return __ret;
        }

        public static ulong ppf_Presence_GetSentInvites()
        {
            var __ret = __Internal.ppf_Presence_GetSentInvites();
            return __ret;
        }

        public static ulong ppf_Presence_SendInvites(__IntPtr[]userIDs, uint userIDLength)
        {
            var __ret = __Internal.ppf_Presence_SendInvites(userIDs, userIDLength);
            return __ret;
        }

        public static ulong ppf_Presence_SendCustomInvites(string msg, __IntPtr[]userIDs, uint userIDLength)
        {
            var __ret = __Internal.ppf_Presence_SendCustomInvites(msg, userIDs, userIDLength);
            return __ret;
        }

        public static ulong ppf_Presence_Set(__IntPtr presenceOptions)
        {
            var __ret = __Internal.ppf_Presence_Set(presenceOptions);
            return __ret;
        }

        public static ulong ppf_Presence_SetDestination(string api_name)
        {
            var __ret = __Internal.ppf_Presence_SetDestination(api_name);
            return __ret;
        }

        public static ulong ppf_Presence_SetIsJoinable(bool is_joinable)
        {
            var __ret = __Internal.ppf_Presence_SetIsJoinable(is_joinable);
            return __ret;
        }

        public static ulong ppf_Presence_SetLobbySession(string id)
        {
            var __ret = __Internal.ppf_Presence_SetLobbySession(id);
            return __ret;
        }

        public static ulong ppf_Presence_SetMatchSession(string id)
        {
            var __ret = __Internal.ppf_Presence_SetMatchSession(id);
            return __ret;
        }

        public static ulong ppf_Presence_SetExtra(string extra)
        {
            var __ret = __Internal.ppf_Presence_SetExtra(extra);
            return __ret;
        }

        public static ulong ppf_Presence_GetDestinations()
        {
            var __ret = __Internal.ppf_Presence_GetDestinations();
            return __ret;
        }

        public static ulong ppf_Presence_GetNextDestinationArrayPage(string @params)
        {
            var __ret = __Internal.ppf_Presence_GetNextDestinationArrayPage(@params);
            return __ret;
        }

        public static ulong ppf_Presence_ShareMedia(__IntPtr shareMediaOptions)
        {
            var __ret = __Internal.ppf_Presence_ShareMedia(shareMediaOptions);
            return __ret;
        }

        public static ulong ppf_Presence_LaunchInvitePanel()
        {
            var __ret = __Internal.ppf_Presence_LaunchInvitePanel();
            return __ret;
        }
    }

    /// <summary>Locks/unlocks the membership for a room to allow/disallow new members from being able to join the room. The caller should be the room owner.</summary>
    public enum RoomMembershipLockStatus
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>Lock the membership for the room.</summary>
        Lock = 1,
        /// <summary>Unlock the membership for the room.</summary>
        Unlock = 2
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppfRoomMembershipLockStatus_ToString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppfRoomMembershipLockStatus_ToString(global::Pico.Platform.RoomMembershipLockStatus value);

            [DllImport("pxrplatformloader", EntryPoint = "ppfRoomMembershipLockStatus_FromString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RoomMembershipLockStatus ppfRoomMembershipLockStatus_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str);
        }

        public static string ppfRoomMembershipLockStatus_ToString(global::Pico.Platform.RoomMembershipLockStatus value)
        {
            var __ret = __Internal.ppfRoomMembershipLockStatus_ToString(value);
            return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
        }

        public static global::Pico.Platform.RoomMembershipLockStatus ppfRoomMembershipLockStatus_FromString(string str)
        {
            var __ret = __Internal.ppfRoomMembershipLockStatus_FromString(str);
            return __ret;
        }
    }

    /// <summary>(Not used)</summary>
    public enum UserOrdering
    {
        /// <summary>/</summary>
        None = 0,
        /// <summary>/</summary>
        PresenceAlphabetical = 1
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RoomOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_Destroy(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetDataStoreString", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_SetDataStoreString(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_ClearDataStore", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_ClearDataStore(__IntPtr handle);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetExcludeRecentlyMet", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_SetExcludeRecentlyMet(__IntPtr handle, bool value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetMaxUserResults", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_SetMaxUserResults(__IntPtr handle, uint value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetOrdering", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_SetOrdering(__IntPtr handle, global::Pico.Platform.UserOrdering value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetRecentlyMetTimeWindow", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_SetRecentlyMetTimeWindow(__IntPtr handle, long value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_SetRoomId(__IntPtr handle, ulong value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetTurnOffUpdates", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_SetTurnOffUpdates(__IntPtr handle, bool value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetName", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_SetName(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string name);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetPassword", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RoomOptions_SetPassword(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string password);
        }

        public static __IntPtr ppf_RoomOptions_Create()
        {
            var __ret = __Internal.ppf_RoomOptions_Create();
            return __ret;
        }

        public static void ppf_RoomOptions_Destroy(__IntPtr handle)
        {
            __Internal.ppf_RoomOptions_Destroy(handle);
        }

        public static void ppf_RoomOptions_SetDataStoreString(__IntPtr handle, string key, string value)
        {
            __Internal.ppf_RoomOptions_SetDataStoreString(handle, key, value);
        }

        public static void ppf_RoomOptions_ClearDataStore(__IntPtr handle)
        {
            __Internal.ppf_RoomOptions_ClearDataStore(handle);
        }

        public static void ppf_RoomOptions_SetExcludeRecentlyMet(__IntPtr handle, bool value)
        {
            __Internal.ppf_RoomOptions_SetExcludeRecentlyMet(handle, value);
        }

        public static void ppf_RoomOptions_SetMaxUserResults(__IntPtr handle, uint value)
        {
            __Internal.ppf_RoomOptions_SetMaxUserResults(handle, value);
        }

        public static void ppf_RoomOptions_SetOrdering(__IntPtr handle, global::Pico.Platform.UserOrdering value)
        {
            __Internal.ppf_RoomOptions_SetOrdering(handle, value);
        }

        public static void ppf_RoomOptions_SetRecentlyMetTimeWindow(__IntPtr handle, long value)
        {
            __Internal.ppf_RoomOptions_SetRecentlyMetTimeWindow(handle, value);
        }

        public static void ppf_RoomOptions_SetRoomId(__IntPtr handle, ulong value)
        {
            __Internal.ppf_RoomOptions_SetRoomId(handle, value);
        }

        public static void ppf_RoomOptions_SetTurnOffUpdates(__IntPtr handle, bool value)
        {
            __Internal.ppf_RoomOptions_SetTurnOffUpdates(handle, value);
        }

        public static void ppf_RoomOptions_SetName(__IntPtr handle, string name)
        {
            __Internal.ppf_RoomOptions_SetName(handle, name);
        }

        public static void ppf_RoomOptions_SetPassword(__IntPtr handle, string password)
        {
            __Internal.ppf_RoomOptions_SetPassword(handle, password);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_CreateAndJoinPrivate2", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_CreateAndJoinPrivate2(global::Pico.Platform.RoomJoinPolicy joinPolicy, uint maxUsers, __IntPtr roomOptions);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_Get", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_Get(ulong roomID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetCurrent", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_GetCurrent();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetCurrentForUser", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_GetCurrentForUser([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetInvitableUsers2", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_GetInvitableUsers2(__IntPtr roomOptions);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetModeratedRooms", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_GetModeratedRooms(int page_idx, int page_size);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_JoinNamed", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_JoinNamed(global::Pico.Platform.RoomJoinPolicy joinPolicy, bool createIfNotExist, uint maxUsers, __IntPtr roomOptions);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetNamedRooms", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_GetNamedRooms(int page_idx, int page_size);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_InviteUser", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_InviteUser(ulong roomID, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string inviteToken);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_Join2", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_Join2(ulong roomID, __IntPtr roomOptions);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_KickUser", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_KickUser(ulong roomID, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID, int kickDurationSeconds);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_LaunchInvitableUserFlow", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_LaunchInvitableUserFlow(ulong roomID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_Leave", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_Leave(ulong roomID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_SetDescription", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_SetDescription(ulong roomID, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string description);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_UpdateDataStore", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_UpdateDataStore(ulong roomID, __IntPtr data, uint numItems);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_UpdateMembershipLockStatus", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_UpdateMembershipLockStatus(ulong roomID, global::Pico.Platform.RoomMembershipLockStatus membershipLockStatus);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_UpdateOwner", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_UpdateOwner(ulong roomID, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_UpdatePrivateRoomJoinPolicy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Room_UpdatePrivateRoomJoinPolicy(ulong roomID, global::Pico.Platform.RoomJoinPolicy newJoinPolicy);
        }

        public static ulong ppf_Room_CreateAndJoinPrivate2(global::Pico.Platform.RoomJoinPolicy joinPolicy, uint maxUsers, __IntPtr roomOptions)
        {
            var __ret = __Internal.ppf_Room_CreateAndJoinPrivate2(joinPolicy, maxUsers, roomOptions);
            return __ret;
        }

        public static ulong ppf_Room_Get(ulong roomID)
        {
            var __ret = __Internal.ppf_Room_Get(roomID);
            return __ret;
        }

        public static ulong ppf_Room_GetCurrent()
        {
            var __ret = __Internal.ppf_Room_GetCurrent();
            return __ret;
        }

        public static ulong ppf_Room_GetCurrentForUser(string userID)
        {
            var __ret = __Internal.ppf_Room_GetCurrentForUser(userID);
            return __ret;
        }

        public static ulong ppf_Room_GetInvitableUsers2(__IntPtr roomOptions)
        {
            var __ret = __Internal.ppf_Room_GetInvitableUsers2(roomOptions);
            return __ret;
        }

        public static ulong ppf_Room_GetModeratedRooms(int page_idx, int page_size)
        {
            var __ret = __Internal.ppf_Room_GetModeratedRooms(page_idx, page_size);
            return __ret;
        }

        public static ulong ppf_Room_JoinNamed(global::Pico.Platform.RoomJoinPolicy joinPolicy, bool createIfNotExist, uint maxUsers, __IntPtr roomOptions)
        {
            var __ret = __Internal.ppf_Room_JoinNamed(joinPolicy, createIfNotExist, maxUsers, roomOptions);
            return __ret;
        }

        public static ulong ppf_Room_GetNamedRooms(int page_idx, int page_size)
        {
            var __ret = __Internal.ppf_Room_GetNamedRooms(page_idx, page_size);
            return __ret;
        }

        public static ulong ppf_Room_InviteUser(ulong roomID, string inviteToken)
        {
            var __ret = __Internal.ppf_Room_InviteUser(roomID, inviteToken);
            return __ret;
        }

        public static ulong ppf_Room_Join2(ulong roomID, __IntPtr roomOptions)
        {
            var __ret = __Internal.ppf_Room_Join2(roomID, roomOptions);
            return __ret;
        }

        public static ulong ppf_Room_KickUser(ulong roomID, string userID, int kickDurationSeconds)
        {
            var __ret = __Internal.ppf_Room_KickUser(roomID, userID, kickDurationSeconds);
            return __ret;
        }

        public static ulong ppf_Room_LaunchInvitableUserFlow(ulong roomID)
        {
            var __ret = __Internal.ppf_Room_LaunchInvitableUserFlow(roomID);
            return __ret;
        }

        public static ulong ppf_Room_Leave(ulong roomID)
        {
            var __ret = __Internal.ppf_Room_Leave(roomID);
            return __ret;
        }

        public static ulong ppf_Room_SetDescription(ulong roomID, string description)
        {
            var __ret = __Internal.ppf_Room_SetDescription(roomID, description);
            return __ret;
        }

        public static ulong ppf_Room_UpdateDataStore(ulong roomID, __IntPtr data, uint numItems)
        {
            var __ret = __Internal.ppf_Room_UpdateDataStore(roomID, data, numItems);
            return __ret;
        }

        public static ulong ppf_Room_UpdateMembershipLockStatus(ulong roomID, global::Pico.Platform.RoomMembershipLockStatus membershipLockStatus)
        {
            var __ret = __Internal.ppf_Room_UpdateMembershipLockStatus(roomID, membershipLockStatus);
            return __ret;
        }

        public static ulong ppf_Room_UpdateOwner(ulong roomID, string userID)
        {
            var __ret = __Internal.ppf_Room_UpdateOwner(roomID, userID);
            return __ret;
        }

        public static ulong ppf_Room_UpdatePrivateRoomJoinPolicy(ulong roomID, global::Pico.Platform.RoomJoinPolicy newJoinPolicy)
        {
            var __ret = __Internal.ppf_Room_UpdatePrivateRoomJoinPolicy(roomID, newJoinPolicy);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcGetTokenOptions_Destroy(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_Create", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcGetTokenOptions_Create();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_SetUserId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcGetTokenOptions_SetUserId(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_SetRoomId", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcGetTokenOptions_SetRoomId(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_SetTtl", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcGetTokenOptions_SetTtl(__IntPtr obj, int value);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_ClearPrivileges", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcGetTokenOptions_ClearPrivileges(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_SetPrivileges", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern void ppf_RtcGetTokenOptions_SetPrivileges(__IntPtr obj, global::Pico.Platform.RtcPrivilege k, int v);
        }

        public static void ppf_RtcGetTokenOptions_Destroy(__IntPtr obj)
        {
            __Internal.ppf_RtcGetTokenOptions_Destroy(obj);
        }

        public static __IntPtr ppf_RtcGetTokenOptions_Create()
        {
            var __ret = __Internal.ppf_RtcGetTokenOptions_Create();
            return __ret;
        }

        public static void ppf_RtcGetTokenOptions_SetUserId(__IntPtr obj, string value)
        {
            __Internal.ppf_RtcGetTokenOptions_SetUserId(obj, value);
        }

        public static void ppf_RtcGetTokenOptions_SetRoomId(__IntPtr obj, string value)
        {
            __Internal.ppf_RtcGetTokenOptions_SetRoomId(obj, value);
        }

        public static void ppf_RtcGetTokenOptions_SetTtl(__IntPtr obj, int value)
        {
            __Internal.ppf_RtcGetTokenOptions_SetTtl(obj, value);
        }

        public static void ppf_RtcGetTokenOptions_ClearPrivileges(__IntPtr obj)
        {
            __Internal.ppf_RtcGetTokenOptions_ClearPrivileges(obj);
        }

        public static void ppf_RtcGetTokenOptions_SetPrivileges(__IntPtr obj, global::Pico.Platform.RtcPrivilege k, int v)
        {
            __Internal.ppf_RtcGetTokenOptions_SetPrivileges(obj, k, v);
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_GetToken", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Rtc_GetToken(__IntPtr options);
        }

        public static ulong ppf_Rtc_GetToken(__IntPtr options)
        {
            var __ret = __Internal.ppf_Rtc_GetToken(options);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_Sport_GetDailySummary", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Sport_GetDailySummary(long beginTime, long endTime);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Sport_GetSummary", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Sport_GetSummary(long beginTime, long endTime);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_Sport_GetUserInfo", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_Sport_GetUserInfo();
        }

        public static ulong ppf_Sport_GetDailySummary(long beginTime, long endTime)
        {
            var __ret = __Internal.ppf_Sport_GetDailySummary(beginTime, endTime);
            return __ret;
        }

        public static ulong ppf_Sport_GetSummary(long beginTime, long endTime)
        {
            var __ret = __Internal.ppf_Sport_GetSummary(beginTime, endTime);
            return __ret;
        }

        public static ulong ppf_Sport_GetUserInfo()
        {
            var __ret = __Internal.ppf_Sport_GetUserInfo();
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_Get", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_Get([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetAccessToken", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_GetAccessToken();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetIdToken", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_GetIdToken();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetLoggedInUser", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_GetLoggedInUser();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetLoggedInUserFriends", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_GetLoggedInUserFriends();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetNextUserArrayPage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_GetNextUserArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string param);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_LaunchFriendRequestFlow", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_LaunchFriendRequestFlow([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetLoggedInUserFriendsAndRooms", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_GetLoggedInUserFriendsAndRooms();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetNextUserAndRoomArrayPage", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_GetNextUserAndRoomArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string param);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetAuthorizedPermissions", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_GetAuthorizedPermissions();

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_RequestUserPermissions", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_RequestUserPermissions(__IntPtr[]permissions, int size);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetRelations", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_GetRelations(__IntPtr[]userIds, int size);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_EntitlementCheck", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_EntitlementCheck(bool killApp);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetOrgScopedID", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern ulong ppf_User_GetOrgScopedID([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID);
        }

        public static ulong ppf_User_Get(string userID)
        {
            var __ret = __Internal.ppf_User_Get(userID);
            return __ret;
        }

        public static ulong ppf_User_GetAccessToken()
        {
            var __ret = __Internal.ppf_User_GetAccessToken();
            return __ret;
        }

        public static ulong ppf_User_GetIdToken()
        {
            var __ret = __Internal.ppf_User_GetIdToken();
            return __ret;
        }

        public static ulong ppf_User_GetLoggedInUser()
        {
            var __ret = __Internal.ppf_User_GetLoggedInUser();
            return __ret;
        }

        public static ulong ppf_User_GetLoggedInUserFriends()
        {
            var __ret = __Internal.ppf_User_GetLoggedInUserFriends();
            return __ret;
        }

        public static ulong ppf_User_GetNextUserArrayPage(string param)
        {
            var __ret = __Internal.ppf_User_GetNextUserArrayPage(param);
            return __ret;
        }

        public static ulong ppf_User_LaunchFriendRequestFlow(string userID)
        {
            var __ret = __Internal.ppf_User_LaunchFriendRequestFlow(userID);
            return __ret;
        }

        public static ulong ppf_User_GetLoggedInUserFriendsAndRooms()
        {
            var __ret = __Internal.ppf_User_GetLoggedInUserFriendsAndRooms();
            return __ret;
        }

        public static ulong ppf_User_GetNextUserAndRoomArrayPage(string param)
        {
            var __ret = __Internal.ppf_User_GetNextUserAndRoomArrayPage(param);
            return __ret;
        }

        public static ulong ppf_User_GetAuthorizedPermissions()
        {
            var __ret = __Internal.ppf_User_GetAuthorizedPermissions();
            return __ret;
        }

        public static ulong ppf_User_RequestUserPermissions(__IntPtr[]permissions, int size)
        {
            var __ret = __Internal.ppf_User_RequestUserPermissions(permissions, size);
            return __ret;
        }

        public static ulong ppf_User_GetRelations(__IntPtr[]userIds, int size)
        {
            var __ret = __Internal.ppf_User_GetRelations(userIds, size);
            return __ret;
        }

        public static ulong ppf_User_EntitlementCheck(bool killApp)
        {
            var __ret = __Internal.ppf_User_EntitlementCheck(killApp);
            return __ret;
        }

        public static ulong ppf_User_GetOrgScopedID(string userID)
        {
            var __ret = __Internal.ppf_User_GetOrgScopedID(userID);
            return __ret;
        }
    }

    public partial class CLIB
    {
        public partial struct __Internal
        {
            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrame_GetSampleRate", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcAudioSampleRate ppf_RtcAudioFrame_GetSampleRate(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrame_GetChannel", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern global::Pico.Platform.RtcAudioChannel ppf_RtcAudioFrame_GetChannel(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrame_GetTimeStampInUs", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_RtcAudioFrame_GetTimeStampInUs(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrame_GetData", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern __IntPtr ppf_RtcAudioFrame_GetData(__IntPtr obj);

            [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrame_GetDataSize", CallingConvention = __CallingConvention.Cdecl)]
            internal static extern long ppf_RtcAudioFrame_GetDataSize(__IntPtr obj);
        }

        public static global::Pico.Platform.RtcAudioSampleRate ppf_RtcAudioFrame_GetSampleRate(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcAudioFrame_GetSampleRate(obj);
            return __ret;
        }

        public static global::Pico.Platform.RtcAudioChannel ppf_RtcAudioFrame_GetChannel(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcAudioFrame_GetChannel(obj);
            return __ret;
        }

        public static long ppf_RtcAudioFrame_GetTimeStampInUs(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcAudioFrame_GetTimeStampInUs(obj);
            return __ret;
        }

        public static __IntPtr ppf_RtcAudioFrame_GetData(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcAudioFrame_GetData(obj);
            return __ret;
        }

        public static long ppf_RtcAudioFrame_GetDataSize(__IntPtr obj)
        {
            var __ret = __Internal.ppf_RtcAudioFrame_GetDataSize(obj);
            return __ret;
        }
    }

    /// <summary>The type of an add-on.</summary>
    public enum AddonsType
    {
        /// <summary>Invalid.</summary>
        Invalid = -1,
        /// <summary>A durable. The add-on is always available once a user buys it.</summary>
        Durable = 0,
        /// <summary>A consumable. The add-on can be consumed by a user and the user can purchase it again after the current add-on is consumed.</summary>
        Consumable = 1,
        /// <summary>Subscription add-on. Users need to regularly pay subscription fees.</summary>
        Subscription = 2
    }

    /// <summary>The user's presence status.</summary>
    public enum UserPresenceStatus
    {
        /// <summary>Unknown status.</summary>
        Unknown = 0,
        /// <summary>The user is online.</summary>
        OnLine = 1,
        /// <summary>The user is offline.</summary>
        OffLine = 2
    }

    /// <summary>User's gender.</summary>
    public enum Gender
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>Male.</summary>
        Male = 1,
        /// <summary>Female.</summary>
        Female = 2
    }

    public enum AsrEngineInitResult
    {
        Unknown = -999,
        Arch32BitNotSupported = -3,
        InvalidConfig = -2,
        AlreadyInitialized = -1,
        Success = 0
    }

    /// <summary>The download progress of the DLC file.</summary>
    public enum AssetFileDownloadCompleteStatus
    {
        /// <summary>The DLC file is being downloaded.</summary>
        Downloading = 0,
        /// <summary>The DLC file has been downloaded.</summary>
        Succeed = 1,
        /// <summary>Failed to download the DLC file.</summary>
        Failed = 2
    }

    /// <summary>The reason why the subscription is canceled. \ref Pico.Platform.IAPService.GetSubscriptionStatus will return a subscription status structure. The `CancelReason` field describes why the subscription is canceled.</summary>
    public enum CancelReason
    {
        /// <summary>None.</summary>
        None = 0,
        /// <summary>The user canceled automatic renewal.</summary>
        UserCancelsExpiration = 1,
        /// <summary>Deduction for automatic renewal failed.</summary>
        DeductionFailedExpired = 2,
        /// <summary>The user have not purchased the app.</summary>
        NoMainApplicationInterest = 3
    }

    /// <summary>The strategy proposed to handle the text containing sensitive words and the user that creates the text. It's the result of \ref Pico.Platform.ComplianceService.DetectSensitive.</summary>
    public enum SensitiveProposal
    {
        /// <summary>Let the text be sent normally as the text does not contain sensitive words.</summary>
        Pass = 0,
        /// <summary>Only the user that creates the text can see it.</summary>
        OnlySelfVisible = 1,
        /// <summary>Forbid the user from publishing any text for several days.</summary>
        UserMute = 2,
        /// <summary>Prevent the user from submitting the text.</summary>
        RejectSubmit = 3
    }

    /// <summary>Indicates the location within the app where text containing sensitive words can be found. Used for \ref Pico.Platform.ComplianceService.DetectSensitive.</summary>
    public enum DetectSensitiveScene
    {
        /// <summary>Username.</summary>
        UserName = 1,
        /// <summary>Room name.</summary>
        RoomName = 2,
        /// <summary>In-room-chat message.</summary>
        RoomChat = 3
    }

    /// <summary>The type of the discount</summary>
    public enum DiscountType
    {
        /// <summary>Invalid.</summary>
        Invalid = -1,
        /// <summary>No discount.</summary>
        Null = 0,
        /// <summary>Free trial.</summary>
        FreeTrial = 1,
        /// <summary>Discount.</summary>
        Discount = 2
    }

    /// <summary>The entitlement status of a subscription add-on. Used by \ref Pico.Platform.IAPService.GetSubscriptionStatus.</summary>
    public enum EntitlementStatus
    {
        /// <summary>None.</summary>
        None = 0,
        /// <summary>The user is entitled to use the subscription add-on.</summary>
        Valid = 1,
        /// <summary>The user is not entitled to use the subscription add-on.</summary>
        Invalid = 2,
        /// <summary>The subscription is in the grace period.</summary>
        GracePeriod = 3,
        /// <summary>The subscription is paused.</summary>
        Pause = 4,
        /// <summary>The subscription has expired.</summary>
        Expired = 5,
        /// <summary>The user has canceled the subscription. But the current subscription period is still valid.</summary>
        Cancel = 6
    }

    /// <summary>Indicates how an app is launched. You can use it to determine how to parse \ref Pico.Platform.Models.LaunchDetails. See also: \ref Pico.Platform.ApplicationService.GetLaunchDetails.</summary>
    public enum LaunchType
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>The user clicks on the app's icon to launch it.</summary>
        Normal = 1,
        /// <summary>The user clicks on the room invitation message card to launch the app.</summary>
        RoomInvite = 2,
        /// <summary>The user clicks on the presence invitation message card to launch the app.</summary>
        Deeplink = 4,
        /// <summary>The user clicks on the challenge invitation message card to launch the app.</summary>
        ChallengeInvite = 5
    }

    /// <summary>The app's 'launch result.</summary>
    public enum LaunchResult
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>The app is successfully launched.</summary>
        Success = 1,
        /// <summary>Fail to launch the app because the room is full.</summary>
        FailedRoomFull = 2,
        /// <summary>Fail to launch the app because the game already starts.</summary>
        FailedGameAlreadyStarted = 3,
        /// <summary>Fail to launch the app because the room is not found.</summary>
        FailedRoomNotFound = 4,
        /// <summary>Fail to launch the app because the user declines the request.</summary>
        FailedUserDeclined = 5,
        /// <summary>Fail to launch the app because of other reasons.</summary>
        FailedOtherReason = 6
    }

    /// <summary>The state of the user's local audio.</summary>
    public enum RtcMuteState
    {
        /// <summary>Muted.</summary>
        Off = 0,
        /// <summary>On.</summary>
        On = 1
    }

    /// <summary>The type of media to pause or resume.</summary>
    public enum RtcPauseResumeMediaType
    {
        /// <summary>Audio.</summary>
        Audio = 0,
        /// <summary>Video.</summary>
        Video = 1,
        /// <summary>Audio and video.</summary>
        AudioAndVideo = 2
    }

    /// <summary>The type of media stream.</summary>
    public enum RtcMediaStreamType
    {
        /// <summary>Audio stream.</summary>
        Audio = 1,
        /// <summary>Video stream.</summary>
        Video = 2,
        /// <summary>Audio and video stream.</summary>
        Both = 3
    }

    /// <summary>RTC engine initialization result.</summary>
    public enum RtcEngineInitResult
    {
        /// <summary>Unknown</summary>
        Unknown = -999,
        /// <summary>Already initialized.</summary>
        AlreadyInitialized = -1,
        /// <summary>Initialization failed due to invalid configuration.</summary>
        InvalidConfig = -2,
        /// <summary>Initialization failed because the platform SDK has not been initialized.</summary>
        SdkNotInitialized = -3,
        /// <summary>Successfully initialized.</summary>
        Success = 0
    }

    /// <summary>The status of in-ear monitoring mode.</summary>
    public enum RtcEarMonitorMode
    {
        /// <summary>Off.</summary>
        Off = 0,
        /// <summary>On.</summary>
        On = 1
    }

    /// <summary>Stream type.</summary>
    public enum RtcStreamIndex
    {
        /// <summary>Main stream, which means the video and audio screen captured by the camera and microphone respectively.</summary>
        Main = 0,
        /// <summary>Screen stream, which means the video stream from the screen and the audio stream from the sound card.</summary>
        Screen = 1
    }

    /// <summary>The type of stream sync info. The stream sync info will be uploaded to the server with the audio data.</summary>
    public enum RtcSyncInfoStreamType
    {
        /// <summary>Audio stream info.</summary>
        Audio = 0
    }

    /// <summary>The type of screen stream to capture.</summary>
    public enum RtcScreenMediaType
    {
        /// <summary>Only capture video streams.</summary>
        VideoOnly = 0,
        /// <summary>Only capture audio streams.</summary>
        AudioOnly = 1,
        /// <summary>Capture both video and audio streams.</summary>
        VideoAndAudio = 2
    }

    /// <summary>Types of audio scenario. See [here](https://developer-global.pico-interactive.com/document/unity/rtc/#Audio%20management) for more information.</summary>
    public enum RtcAudioScenarioType
    {
        /// <summary>Music scenario.</summary>
        Music = 0,
        /// <summary>High-quality calling scenario.</summary>
        HighQualityCommunication = 1,
        /// <summary>Pure call-volume scenario.</summary>
        Communication = 2,
        /// <summary>Pure media-volume scenario.</summary>
        Media = 3,
        /// <summary>Game streaming scenario.</summary>
        GameStreaming = 4
    }

    /// <summary>The audio playback device.</summary>
    public enum RtcAudioPlaybackDevice
    {
        /// <summary>Headset.</summary>
        Headset = 1,
        /// <summary>Earpiece.</summary>
        EarPiece = 2,
        /// <summary>Phone's speaker.</summary>
        SpeakerPhone = 3,
        /// <summary>Bluetooth headset.</summary>
        HeadsetBlueTooth = 4,
        /// <summary>USB headset.</summary>
        HeadsetUsb = 5
    }

    /// <summary>The type of the room.</summary>
    public enum RtcRoomProfileType
    {
        /// <summary>Communication room.</summary>
        Communication = 0,
        /// <summary>Live broadcasting room.</summary>
        LiveBroadcasting = 1,
        /// <summary>Gaming room.</summary>
        Game = 2,
        /// <summary>Cloud gaming room.</summary>
        CloudGame = 3,
        /// <summary>Low-latency room.</summary>
        LowLatency = 4
    }

    /// <summary>Types of audio source.</summary>
    public enum RtcAudioSourceType
    {
        /// <summary>Custom audio source (not available yet).</summary>
        External = 0,
        /// <summary>The SDK's internal audio source.'</summary>
        Internal = 1
    }

    /// <summary>Audio sample rate.</summary>
    public enum RtcAudioSampleRate
    {
        /// <summary>Auto.</summary>
        Auto = -1,
        /// <summary>8000 Hz.</summary>
        F8000 = 8000,
        /// <summary>16000 Hz.</summary>
        F16000 = 16000,
        /// <summary>32000 Hz.</summary>
        F32000 = 32000,
        /// <summary>44100 Hz.</summary>
        F44100 = 44100,
        /// <summary>48000 Hz.</summary>
        F48000 = 48000
    }

    /// <summary>The type of the audio channel.</summary>
    public enum RtcAudioChannel
    {
        /// <summary>Auto (default).</summary>
        Auto = -1,
        /// <summary>Mono channel.</summary>
        Mono = 1,
        /// <summary>Stereo channel.</summary>
        Stereo = 2
    }

    /// <summary>The color space of video frame.</summary>
    public enum RtcColorSpace
    {
        /// <summary>Unknown.</summary>
        Unknown = 0,
        /// <summary>BT.601 digital encoding standard with a color space of [16-235].</summary>
        YCbCrBT601LimitedRange = 1,
        /// <summary>BT.601 digital encoding standard with a color space of [0-255].</summary>
        YCbCrBT601FullRange = 2,
        /// <summary>BT.7091 digital encoding standard with a color space of [16-235].</summary>
        YCbCrBT709LimitedRange = 3,
        /// <summary>BT.7091 digital encoding standard with a color space of [0-255].</summary>
        YCbCrBT709FullRange = 4
    }

    /// <summary>(beta feature, don't use it)</summary>
    public enum MatchmakingStatApproach
    {
        /// <summary>/</summary>
        Unknown = 0,
        /// <summary>/</summary>
        Trailing = 1,
        /// <summary>/</summary>
        Swingy = 2
    }

    public enum MessageType
    {
        Unknown = -1,
        PlatformInitializeAndroidAsynchronous = 1,
        User_GetLoggedInUser = 10000,
        User_GetAccessToken = 10001,
        User_Get = 10002,
        User_LaunchFriendRequestFlow = 10003,
        User_GetLoggedInUserFriends = 10004,
        User_GetNextUserArrayPage = 10005,
        User_GetLoggedInUserFriendsAndRooms = 10006,
        User_GetAuthorizedPermissions = 10007,
        User_RequestUserPermissions = 10008,
        User_GetRelations = 10009,
        User_GetIdToken = 10010,
        User_EntitlementCheck = 10011,
        User_GetOrgScopedID = 10012,
        Notification_Rtc_OnRoomStats = 10200,
        Notification_Rtc_OnJoinRoom = 10201,
        Notification_Rtc_OnLeaveRoom = 10202,
        Notification_Rtc_OnUserLeaveRoom = 10203,
        Notification_Rtc_OnUserJoinRoom = 10204,
        Notification_Rtc_OnConnectionStateChange = 10205,
        Notification_Rtc_OnWarn = 10206,
        Notification_Rtc_OnRoomWarn = 10207,
        Notification_Rtc_OnRoomError = 10208,
        Notification_Rtc_OnError = 10209,
        Notification_Rtc_OnUserStartAudioCapture = 10210,
        Notification_Rtc_OnAudioPlaybackDeviceChanged = 10211,
        Notification_Rtc_OnRemoteAudioPropertiesReport = 10212,
        Notification_Rtc_OnLocalAudioPropertiesReport = 10213,
        Notification_Rtc_OnUserStopAudioCapture = 10214,
        Notification_Rtc_OnUserMuteAudio = 10215,
        Notification_Rtc_OnMediaDeviceStateChanged = 10216,
        Notification_Rtc_OnRoomMessageReceived = 10217,
        Notification_Rtc_OnUserMessageReceived = 10218,
        Notification_Rtc_OnTokenWillExpire = 10219,
        Notification_Rtc_OnStreamSyncInfoReceived = 10220,
        Notification_Rtc_OnVideoDeviceStateChanged = 10221,
        Notification_Rtc_OnFirstLocalVideoFrameCaptured = 10222,
        Notification_Rtc_OnRoomBinaryMessageReceived = 10223,
        Notification_Rtc_OnLocalVideoSizeChanged = 10224,
        Notification_Rtc_OnScreenVideoFrameSendStateChanged = 10225,
        Notification_Rtc_OnUserBinaryMessageReceived = 10226,
        Notification_Rtc_OnLocalVideoStateChanged = 10227,
        Notification_Rtc_OnUserMessageSendResult = 10228,
        Notification_Rtc_OnUserUnPublishScreen = 10229,
        Notification_Rtc_OnRoomMessageSendResult = 10230,
        Notification_Rtc_OnUserPublishStream = 10231,
        Notification_Rtc_OnUserUnPublishStream = 10232,
        Notification_Rtc_OnUserPublishScreen = 10233,
        Rtc_GetToken = 10300,
        Matchmaking_Browse2 = 10400,
        Matchmaking_Browse2CustomPage = 10401,
        Matchmaking_Cancel2 = 10402,
        Matchmaking_CreateAndEnqueueRoom2 = 10404,
        Matchmaking_Enqueue2 = 10408,
        Matchmaking_EnqueueRoom2 = 10410,
        Matchmaking_GetAdminSnapshot = 10411,
        Matchmaking_GetStats = 10412,
        Matchmaking_ReportResultInsecure = 10414,
        Matchmaking_StartMatch = 10415,
        Room_CreateAndJoinPrivate = 10500,
        Room_CreateAndJoinPrivate2 = 10501,
        Room_Get = 10502,
        Room_GetCurrent = 10503,
        Room_GetCurrentForUser = 10504,
        Room_GetInvitableUsers = 10505,
        Room_GetInvitableUsers2 = 10506,
        Room_GetModeratedRooms = 10507,
        Room_GetNextRoomArrayPage = 10508,
        Room_InviteUser = 10509,
        Room_Join = 10510,
        Room_Join2 = 10511,
        Room_KickUser = 10512,
        Room_LaunchInvitableUserFlow = 10513,
        Room_Leave = 10514,
        Room_SetDescription = 10515,
        Room_UpdateDataStore = 10516,
        Room_UpdateMembershipLockStatus = 10517,
        Room_UpdateOwner = 10518,
        Room_UpdatePrivateRoomJoinPolicy = 10519,
        Room_JoinNamed = 10520,
        Room_GetNamedRooms = 10521,
        Notification_Matchmaking_MatchFound = 10600,
        Notification_Room_InviteAccepted = 10601,
        Notification_Room_RoomUpdate = 10603,
        Notification_Game_ConnectionEvent = 10604,
        Notification_Game_RequestFailed = 10605,
        Notification_Game_StateReset = 10606,
        Notification_GetNextRoomInviteNotificationArrayPage = 10607,
        Notification_GetRoomInvites = 10608,
        Notification_MarkAsRead = 10609,
        Notification_Challenge_LaunchByInvite = 10610,
        PlatformGameInitializeAsynchronous = 10700,
        Leaderboard_Get = 10800,
        Leaderboard_GetNextLeaderboardArrayPage = 10801,
        Leaderboard_GetEntries = 10802,
        Leaderboard_GetEntriesAfterRank = 10803,
        Leaderboard_GetEntriesByIds = 10804,
        Leaderboard_GetNextEntries = 10805,
        Leaderboard_GetPreviousEntries = 10806,
        Leaderboard_WriteEntry = 10807,
        Leaderboard_WriteEntryWithSupplementaryMetric = 10808,
        Achievements_AddCount = 10820,
        Achievements_AddFields = 10821,
        Achievements_GetAllDefinitions = 10822,
        Achievements_GetAllProgress = 10823,
        Achievements_GetDefinitionsByName = 10824,
        Achievements_GetNextAchievementDefinitionArrayPage = 10825,
        Achievements_GetNextAchievementProgressArrayPage = 10826,
        Achievements_GetProgressByName = 10827,
        Achievements_Unlock = 10828,
        Challenges_Invite = 10850,
        Challenges_Get = 10851,
        Challenges_GetList = 10852,
        Challenges_GetEntries = 10853,
        Challenges_GetEntriesAfterRank = 10854,
        Challenges_GetEntriesByIds = 10855,
        Challenges_Join = 10856,
        Challenges_Leave = 10857,
        Challenges_LaunchInvitableUserFlow = 10858,
        Application_LaunchOtherApp = 11001,
        Presence_GetSentInvites = 11002,
        Presence_GetInvitableUsers = 11003,
        Presence_SendInvites = 11004,
        Presence_GetDestinations = 11005,
        Presence_Clear = 11006,
        Presence_Set = 11007,
        Notification_ApplicationLifecycle_LaunchIntentChanged = 11008,
        Notification_Presence_JoinIntentReceived = 11009,
        Application_LaunchOtherAppByPresence = 11011,
        Application_LaunchOtherAppByMessage = 11013,
        Presence_ShareMedia = 11014,
        Presence_LaunchInvitePanel = 11015,
        Presence_SendCustomInvites = 11016,
        Application_LaunchStore = 11017,
        Application_GetVersion = 11018,
        IAP_GetProductsBySKU = 12001,
        IAP_GetViewerPurchases = 12002,
        IAP_LaunchCheckoutFlow = 12003,
        IAP_ConsumePurchase = 12004,
        IAP_GetSubscriptionStatus = 12005,
        Sport_GetUserInfo = 12500,
        Sport_GetDailySummary = 12501,
        Sport_GetSummary = 12502,
        AssetFile_DeleteById = 13001,
        AssetFile_DeleteByName = 13002,
        AssetFile_DownloadById = 13003,
        AssetFile_DownloadByName = 13004,
        AssetFile_DownloadCancelById = 13005,
        AssetFile_DownloadCancelByName = 13006,
        AssetFile_GetList = 13007,
        AssetFile_StatusById = 13008,
        AssetFile_StatusByName = 13009,
        AssetFile_GetNextAssetDetailsArrayPage = 13010,
        Notification_AssetFile_DownloadUpdate = 13101,
        Notification_AssetFile_DeleteForSafety = 13102,
        Notification_Speech_OnAsrResult = 14001,
        Notification_Speech_OnSpeechError = 14002,
        Compliance_DetectSensitive = 15015,
        Highlight_StartSession = 15110,
        Highlight_CaptureScreen = 15111,
        Highlight_StartRecord = 15112,
        Highlight_StopRecord = 15113,
        Highlight_ListMedia = 15114,
        Highlight_SaveMedia = 15115,
        Highlight_ShareMedia = 15116,
        Notification_Highlight_OnRecordStop = 15150,
        CloudStorage_StartNewBackup = 16001,
    }

    /// <summary>Whether it is the first time that the user has joined the room or if the user is reconnected to the room.</summary>
    public enum RtcJoinRoomType
    {
        /// <summary>It is the first time that the user has joined the room.</summary>
        First = 0,
        /// <summary>The user is reconnected to the room.</summary>
        Reconnected = 1
    }

    /// <summary>The reason why the user leaves the room.</summary>
    public enum RtcUserLeaveReasonType
    {
        /// <summary>The user quits the room.</summary>
        Quit = 0,
        /// <summary>The user drops out of the room.</summary>
        Dropped = 1
    }

    /// <summary>The type of the media device.</summary>
    public enum RtcMediaDeviceType
    {
        /// <summary>Unknown audio device.</summary>
        AudioUnknown = -1,
        /// <summary>Audio renderer.</summary>
        AudioRenderDevice = 0,
        /// <summary>Audio capture device.</summary>
        AudioCaptureDevice = 1
    }

    /// <summary>The state of the media device.</summary>
    public enum RtcMediaDeviceState
    {
        /// <summary>The device starts working.</summary>
        Started = 1,
        /// <summary>The device stops working.</summary>
        Stopped = 2,
        /// <summary>Runtime error.</summary>
        RuntimeError = 3,
        /// <summary>The device is added.</summary>
        Added = 4,
        /// <summary>The device is removed.</summary>
        Removed = 5
    }

    /// <summary>Types of media device errors.</summary>
    public enum RtcMediaDeviceError
    {
        /// <summary>No error.</summary>
        Ok = 0,
        /// <summary>No permission to record audio or video.</summary>
        NoPermission = 1,
        /// <summary>The device is being used.</summary>
        DeviceBusy = 2,
        /// <summary>Device failure.</summary>
        DeviceFailure = 3,
        /// <summary>The device is not found.</summary>
        DeviceNotFound = 4,
        /// <summary>The device is disconnected.</summary>
        DeviceDisconnected = 5,
        /// <summary>The device does not send data to the RTC engine.</summary>
        DeviceNoCallback = 6,
        /// <summary>The sampling format is not supported.</summary>
        UnSupporttedFormat = 7
    }

    /// <summary>The reason why the remote stream is removed.</summary>
    public enum RtcStreamRemoveReason
    {
        /// <summary>The remote user stops publishing streams.</summary>
        Unpublish = 0,
        /// <summary>The remote user fails to publish streams.</summary>
        PublishFailed = 1,
        /// <summary>Fail to maintain the active state of the stream.</summary>
        KeepLiveFailed = 2,
        /// <summary>The remote user is disconnected.</summary>
        ClientDisconnected = 3,
        /// <summary>The remote user republishes streams.</summary>
        Republish = 4,
        /// <summary>Other reasons.</summary>
        Other = 5
    }

    /// <summary>The events that may take place in networking.</summary>
    public enum GameConnectionEvent
    {
        /// <summary>Connected.</summary>
        Connected = 0,
        /// <summary>Closed.</summary>
        Closed = 1,
        /// <summary>Reconnecting.</summary>
        Lost = 2,
        /// <summary>Reconnected.</summary>
        Resumed = 3,
        /// <summary>Kicked for re-login.</summary>
        KickedByRelogin = 4,
        /// <summary>Kicked by the server.</summary>
        KickedByGameServer = 5,
        /// <summary>Game logic error.</summary>
        GameLogicError = 6,
        /// <summary>Unknown.</summary>
        Unknown = 7
    }

    /// <summary>The reasons for failed requests to the game service.</summary>
    public enum GameRequestFailedReason
    {
        /// <summary>None.</summary>
        None = 0,
        /// <summary>Platform services are not initialized.</summary>
        NotInitialized = 1,
        /// <summary>Platform services has been uninitialized.</summary>
        Uninitialized = 2,
        /// <summary>The game service is currently unavailable.</summary>
        CurrentlyUnavailable = 3,
        /// <summary>Unknown reason.</summary>
        CurrentlyUnknown = 4
    }

    /// <summary>The purpose of sports.</summary>
    public enum SportTarget
    {
        /// <summary>To lose weight.</summary>
        LoseFat = 0,
        /// <summary>To keep fit.</summary>
        KeepFit = 1
    }

    /// <summary>The period type of the subscription.</summary>
    public enum PeriodType
    {
        /// <summary>Invalid value.</summary>
        Invalid = -1,
        /// <summary>None. A default value for non-subscription add-on.</summary>
        None = 0,
        /// <summary>Hourly subscription.</summary>
        Hour = 1,
        /// <summary>Daily subscription.</summary>
        Day = 2,
        /// <summary>Weekly subscription.</summary>
        Week = 3,
        /// <summary>Monthly subscription.</summary>
        Month = 4,
        /// <summary>Quarterly subscription.</summary>
        Quarter = 5,
        /// <summary>Annual subscription.</summary>
        Year = 6
    }

    /// <summary>The relationship between two users. You can call \ref UserService.GetUserRelations to query user relation.</summary>
    public enum UserRelationType
    {
        /// <summary>Unknown relationship.</summary>
        Unknown = 0,
        /// <summary>The queried user is the current user's friend.</summary>
        IsFriend = 1,
        /// <summary>The queried user is not the current user's friend and the current user can send a friend request to the queried user.</summary>
        NotFriend = 2,
        /// <summary>The queried user is blocked by the current user.</summary>
        Blocked = 3,
        /// <summary>The current user is blocked by the queried user, so the current user cannot send a friend request to the queried user.</summary>
        BlockedBy = 4,
        /// <summary>The current user has sent a friend request to the queried user.</summary>
        ApplyingFriend = 5
    }

    /// <summary>The initialization result of platform services.</summary>
    public enum PlatformInitializeResult
    {
        /// <summary>Unknown.</summary>
        Unknown = -999,
        /// <summary>Initialization needs to fetch the app's configuration. If the network request fails, this error will occur.</summary>
        NetError = -6,
        /// <summary>SDK depends on some system functions. This error means failed to find implementation.</summary>
        MissingImpl = -5,
        /// <summary>Load implementation so failed.</summary>
        LoadImplFailed = -4,
        /// <summary>Initialization fails because of unclear reason.</summary>
        InternalError = -3,
        /// <summary>The `appid` param is invalid. Please check the it.</summary>
        InvalidParams = -2,
        /// <summary>The platform SDK has already been initialized.</summary>
        AlreadyInitialized = -1,
        /// <summary>The platform SDK is successfully initialized.</summary>
        Success = 0
    }

    /// <summary>The type of media to share.</summary>
    public enum ShareMediaType
    {
        /// <summary>Videos attached with thumbnails.</summary>
        Video = 0,
        /// <summary>Screenshots.</summary>
        Image = 1
    }

    /// <summary>The app which the videos or screenshots are shared to.</summary>
    public enum ShareAppType
    {
        /// <summary>The [Douyin](https://www.douyin.com/) app.</summary>
        Douyin = 0
    }

    /// <summary>The user needs to pass a token when joining the room. When requesting a token, a map (key-value pair) should be passed. The key is the permission name and the value is the permission's validity time.</summary>
    public enum RtcPrivilege
    {
        /// <summary>The permission to publish audio and video streams.</summary>
        PublishStream = 0,
        /// <summary>The permission to publish audio streams.</summary>
        PublishAudioStream = 1,
        /// <summary>The permission to publish video streams.</summary>
        PublishVideoStream = 2,
        /// <summary>The permission to subscribe to the streams from others.</summary>
        SubscribeStream = 3
    }

    /// <summary>Indicates whether the local device is connected to the RTC server.</summary>
    public enum RtcConnectionState
    {
        /// <summary>Disconnected for 12 seconds, and the SDK will try to reconnect.</summary>
        Disconnected = 1,
        /// <summary>Connecting.</summary>
        Connecting = 2,
        /// <summary>Connected.</summary>
        Connected = 3,
        /// <summary>Reconnecting.</summary>
        Reconnecting = 4,
        /// <summary>Reconnected.</summary>
        Reconnected = 5,
        /// <summary>Remains in the `Disconnected` status for more than 10 seconds and reconnection attempts during this period are unsuccessful, the SDK will continue trying to reconnect.</summary>
        Lost = 6
    }
}
