// Copyright Epic Games, Inc. All Rights Reserved. // This file is automatically generated. Changes to this file may be overwritten. namespace Epic.OnlineServices.Auth { /// /// Output parameters for the Function. /// public struct LinkAccountCallbackInfo : ICallbackInfo { /// /// The code for the operation. indicates that the operation succeeded; other codes indicate errors. /// public Result ResultCode { get; set; } /// /// Context that was passed into /// public object ClientData { get; set; } /// /// The Epic Account ID of the local user whose account has been linked during login /// public EpicAccountId LocalUserId { get; set; } /// /// Optional data returned when ResultCode is . /// /// Once the user has logged in with their Epic Online Services account, the account will be linked with the external account supplied when was called. /// will be fired again with ResultCode in set to . /// public PinGrantInfo? PinGrantInfo { get; set; } /// /// The Epic Account ID that has been previously selected to be used for the current application. /// Applications should use this ID to authenticate with online backend services that store game-scoped data for users. /// /// Note: This ID may be different from LocalUserId if the user has previously merged Epic accounts into the account /// represented by LocalUserId, and one of the accounts that got merged had game data associated with it for the application. /// public EpicAccountId SelectedAccountId { get; set; } public Result? GetResultCode() { return ResultCode; } internal void Set(ref LinkAccountCallbackInfoInternal other) { ResultCode = other.ResultCode; ClientData = other.ClientData; LocalUserId = other.LocalUserId; PinGrantInfo = other.PinGrantInfo; SelectedAccountId = other.SelectedAccountId; } } [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 8)] internal struct LinkAccountCallbackInfoInternal : ICallbackInfoInternal, IGettable, ISettable, System.IDisposable { private Result m_ResultCode; private System.IntPtr m_ClientData; private System.IntPtr m_LocalUserId; private System.IntPtr m_PinGrantInfo; private System.IntPtr m_SelectedAccountId; public Result ResultCode { get { return m_ResultCode; } set { m_ResultCode = value; } } public object ClientData { get { object value; Helper.Get(m_ClientData, out value); return value; } set { Helper.Set(value, ref m_ClientData); } } public System.IntPtr ClientDataAddress { get { return m_ClientData; } } public EpicAccountId LocalUserId { get { EpicAccountId value; Helper.Get(m_LocalUserId, out value); return value; } set { Helper.Set(value, ref m_LocalUserId); } } public PinGrantInfo? PinGrantInfo { get { PinGrantInfo? value; Helper.Get(m_PinGrantInfo, out value); return value; } set { Helper.Set(ref value, ref m_PinGrantInfo); } } public EpicAccountId SelectedAccountId { get { EpicAccountId value; Helper.Get(m_SelectedAccountId, out value); return value; } set { Helper.Set(value, ref m_SelectedAccountId); } } public void Set(ref LinkAccountCallbackInfo other) { ResultCode = other.ResultCode; ClientData = other.ClientData; LocalUserId = other.LocalUserId; PinGrantInfo = other.PinGrantInfo; SelectedAccountId = other.SelectedAccountId; } public void Set(ref LinkAccountCallbackInfo? other) { if (other.HasValue) { ResultCode = other.Value.ResultCode; ClientData = other.Value.ClientData; LocalUserId = other.Value.LocalUserId; PinGrantInfo = other.Value.PinGrantInfo; SelectedAccountId = other.Value.SelectedAccountId; } } public void Dispose() { Helper.Dispose(ref m_ClientData); Helper.Dispose(ref m_LocalUserId); Helper.Dispose(ref m_PinGrantInfo); Helper.Dispose(ref m_SelectedAccountId); } public void Get(out LinkAccountCallbackInfo output) { output = new LinkAccountCallbackInfo(); output.Set(ref this); } } }