in CSharpSource/Source/Microsoft.Xbox.Services.UWP.CSharp/System/UserImpl.cs [273:323]
private static extern XSAPI_RESULT XboxLiveUserCreateFromSystemUser(
IntPtr systemUser,
out IntPtr xboxLiveUserPtr);
[DllImport(XboxLive.FlatCDllName, CallingConvention = CallingConvention.Cdecl)]
private static extern void XboxLiveUserDelete(IntPtr xboxLiveUserPtr);
[DllImport(XboxLive.FlatCDllName, CallingConvention = CallingConvention.Cdecl)]
private static extern XSAPI_RESULT XboxLiveUserSignInWithCoreDispatcher(
IntPtr xboxLiveUserPtr,
IntPtr coreDispatcher,
XSAPI_SIGN_IN_COMPLETION_ROUTINE completionRoutine,
IntPtr completionRoutineContext,
Int64 taskGroupId);
[DllImport(XboxLive.FlatCDllName, CallingConvention = CallingConvention.Cdecl)]
private static extern XSAPI_RESULT XboxLiveUserSignInSilently(
IntPtr xboxLiveUserPtr,
XSAPI_SIGN_IN_COMPLETION_ROUTINE completionRoutine,
IntPtr completionRoutineContext,
Int64 taskGroupId);
[DllImport(XboxLive.FlatCDllName, CallingConvention = CallingConvention.Cdecl)]
private static extern XSAPI_RESULT XboxLiveUserGetTokenAndSignature(
IntPtr xboxLiveUserPtr,
IntPtr httpMethod,
IntPtr url,
IntPtr headers,
IntPtr requestBodyString,
XSAPI_GET_TOKEN_AND_SIGNATURE_COMPLETION_ROUTINE completionRoutine,
IntPtr completionRoutineContext,
Int64 taskGroupId);
[DllImport(XboxLive.FlatCDllName, CallingConvention = CallingConvention.Cdecl)]
private static extern Int32 AddSignOutCompletedHandler(XSAPI_SIGN_OUT_COMPLETED_HANDLER handler);
[DllImport(XboxLive.FlatCDllName, CallingConvention = CallingConvention.Cdecl)]
private static extern void RemoveSignOutCompletedHandler(Int32 functionContext);
[StructLayout(LayoutKind.Sequential)]
private struct XSAPI_XBOX_LIVE_USER
{
public IntPtr XboxUserId;
public IntPtr Gamertag;
public IntPtr AgeGroup;
public IntPtr Privileges;
[MarshalAsAttribute(UnmanagedType.U1)]
public bool IsSignedIn;
public IntPtr WebAccountId;
public IntPtr WindowsSystemUser;
};