internal static void OnJoinGameAccepted(IntPtr address)
        {
            OnJoinGameAcceptedCallback   callback     = null;
            JoinGameAcceptedCallbackInfo callbackInfo = null;

            if (Helper.TryGetAndRemoveCallback <OnJoinGameAcceptedCallback, JoinGameAcceptedCallbackInfoInternal, JoinGameAcceptedCallbackInfo>(address, out callback, out callbackInfo))
            {
                callback(callbackInfo);
            }
        }
        /// <summary>
        /// Register to receive notifications when a user accepts a join game option via the social overlay.
        /// @note must call RemoveNotifyJoinGameAccepted to remove the notification
        /// </summary>
        /// <param name="options">Structure containing information about the request.</param>
        /// <param name="clientData">Arbitrary data that is passed back to you in the CompletionDelegate.</param>
        /// <param name="notification">A callback that is fired when a a notification is received.</param>
        /// <returns>
        /// handle representing the registered callback
        /// </returns>
        public ulong AddNotifyJoinGameAccepted(AddNotifyJoinGameAcceptedOptions options, object clientData, OnJoinGameAcceptedCallback notificationFn)
        {
            var optionsInternal = Helper.CopyProperties <AddNotifyJoinGameAcceptedOptionsInternal>(options);

            var notificationFnInternal = new OnJoinGameAcceptedCallbackInternal(OnJoinGameAccepted);
            var clientDataAddress      = IntPtr.Zero;

            Helper.AddCallback(ref clientDataAddress, clientData, notificationFn, notificationFnInternal);

            var funcResult = EOS_Presence_AddNotifyJoinGameAccepted(InnerHandle, ref optionsInternal, clientDataAddress, notificationFnInternal);

            Helper.TryMarshalDispose(ref optionsInternal);

            Helper.TryAssignNotificationIdToCallback(clientDataAddress, funcResult);

            var funcResultReturn = Helper.GetDefault <ulong>();

            Helper.TryMarshalGet(funcResult, out funcResultReturn);
            return(funcResultReturn);
        }
        /// <summary>
        /// Register to receive notifications when a user accepts a join game option via the social overlay.
        /// @note must call RemoveNotifyJoinGameAccepted to remove the notification
        /// </summary>
        /// <param name="options">Structure containing information about the request.</param>
        /// <param name="clientData">Arbitrary data that is passed back to you in the CompletionDelegate.</param>
        /// <param name="notificationFn">A callback that is fired when a a notification is received.</param>
        /// <returns>
        /// handle representing the registered callback
        /// </returns>
        public ulong AddNotifyJoinGameAccepted(AddNotifyJoinGameAcceptedOptions options, object clientData, OnJoinGameAcceptedCallback notificationFn)
        {
            System.IntPtr optionsAddress = new System.IntPtr();
            Helper.TryMarshalSet <AddNotifyJoinGameAcceptedOptionsInternal, AddNotifyJoinGameAcceptedOptions>(ref optionsAddress, options);

            var clientDataAddress = System.IntPtr.Zero;

            var notificationFnInternal = new OnJoinGameAcceptedCallbackInternal(OnJoinGameAcceptedCallbackInternalImplementation);

            Helper.AddCallback(ref clientDataAddress, clientData, notificationFn, notificationFnInternal);

            var funcResult = EOS_Presence_AddNotifyJoinGameAccepted(InnerHandle, optionsAddress, clientDataAddress, notificationFnInternal);

            Helper.TryMarshalDispose(ref optionsAddress);

            Helper.TryAssignNotificationIdToCallback(clientDataAddress, funcResult);

            return(funcResult);
        }