/// <summary> /// Register to receive upcoming authentication expiration notifications. /// Notification is approximately 10 minutes prior to expiration. /// Call <see cref="Login" /> again with valid third party credentials to refresh access /// /// @note must call RemoveNotifyAuthExpiration to remove the notification /// </summary> /// <param name="options">structure containing the API version of the callback to use</param> /// <param name="clientData">arbitrary data that is passed back to you in the callback</param> /// <param name="notification">a callback that is fired when the authentication is about to expire</param> /// <returns> /// handle representing the registered callback /// </returns> public ulong AddNotifyAuthExpiration(AddNotifyAuthExpirationOptions options, object clientData, OnAuthExpirationCallback notification) { var optionsInternal = Helper.CopyProperties <AddNotifyAuthExpirationOptionsInternal>(options); var notificationInternal = new OnAuthExpirationCallbackInternal(OnAuthExpiration); var clientDataAddress = IntPtr.Zero; Helper.AddCallback(ref clientDataAddress, clientData, notification, notificationInternal); var funcResult = EOS_Connect_AddNotifyAuthExpiration(InnerHandle, ref optionsInternal, clientDataAddress, notificationInternal); Helper.TryMarshalDispose(ref optionsInternal); Helper.TryAssignNotificationIdToCallback(clientDataAddress, funcResult); var funcResultReturn = Helper.GetDefault <ulong>(); Helper.TryMarshalGet(funcResult, out funcResultReturn); return(funcResultReturn); }
private static extern ulong EOS_Connect_AddNotifyAuthExpiration(IntPtr handle, ref AddNotifyAuthExpirationOptionsInternal options, IntPtr clientData, OnAuthExpirationCallbackInternal notification);