public void SetRichPresencePollingStatus(XboxLiveUser user, bool shouldEnablePolling) { if (user == null) { throw new ArgumentNullException("user"); } // Allocates memory for returned objects IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = SocialManagerSetRichPresencePollingStatus(user.Impl.XboxLiveUserPtr, shouldEnablePolling, cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } // Does local work user.Impl.UpdatePropertiesFromXboxLiveUserPtr(); }
public void DestroySocialUserGroup(XboxSocialUserGroup xboxSocialUserGroup) { if (xboxSocialUserGroup == null) { throw new ArgumentNullException("xboxSocialUserGroup"); } // Allocates memory for returned objects IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = SocialManagerDestroySocialUserGroup(xboxSocialUserGroup.GetPtr(), cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } // Does local work m_groups.Remove(xboxSocialUserGroup); }
public XboxSocialUserGroup CreateSocialUserGroupFromFilters(XboxLiveUser user, PresenceFilter presenceFilter, RelationshipFilter relationshipFilter) { if (user == null) { throw new ArgumentNullException("user"); } // Allocates memory for returned objects IntPtr cGroupPtr = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = SocialManagerCreateSocialUserGroupFromFilters(user.Impl.XboxLiveUserPtr, presenceFilter, relationshipFilter, cGroupPtr, cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } // Handles returned objects XboxSocialUserGroup socialUserGroup = new XboxSocialUserGroup(Marshal.ReadIntPtr(cGroupPtr)); Marshal.FreeHGlobal(cGroupPtr); m_groups.Add(socialUserGroup); return(socialUserGroup); }
public void RemoveLocalUser(XboxLiveUser user) { if (user == null) { throw new ArgumentNullException("user"); } // Allocates memory for returned objects IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = SocialManagerRemoveLocalUser(user.Impl.XboxLiveUserPtr, cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } m_localUsers.Remove(user); }
public XboxSocialUserGroup CreateSocialUserGroupFromList(XboxLiveUser user, IList <string> xboxUserIdList) { if (user == null) { throw new ArgumentNullException("user"); } if (xboxUserIdList == null) { throw new ArgumentNullException("xboxUserIdList"); } // Allocates memory for parameters IntPtr cUserIds = MarshalingHelpers.StringListToHGlobalUtf8StringArray(xboxUserIdList); // Allocates memory for returned objects IntPtr cGroupPtr; IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = SocialManagerCreateSocialUserGroupFromList(user.Impl.XboxLiveUserPtr, cUserIds, (uint)xboxUserIdList.Count, out cGroupPtr, out cErrMessage); MarshalingHelpers.FreeHGlobalUtf8StringArray(cUserIds, xboxUserIdList.Count); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } // Handles returned objects XboxSocialUserGroup socialUserGroup = new XboxSocialUserGroup(cGroupPtr); m_groups.Add(socialUserGroup); return(socialUserGroup); }
public void UpdateSocialUserGroup(XboxSocialUserGroup socialGroup, IList <string> users) { if (socialGroup == null) { throw new ArgumentNullException("socialGroup"); } if (users == null) { throw new ArgumentNullException("users"); } // Allocates memory for parameters IntPtr cUserIds = MarshalingHelpers.StringListToHGlobalUtf8StringArray(users); // Allocates memory for returned objects IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = SocialManagerUpdateSocialUserGroup(socialGroup.GetPtr(), cUserIds, (uint)users.Count, out cErrMessage); MarshalingHelpers.FreeHGlobalUtf8StringArray(cUserIds, users.Count); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } // Does local work socialGroup.Refresh(); }
public LeaderboardQuery GetNextQueryImpl() { // Allocates memory for returned objects IntPtr cErrMessage = Marshal.AllocHGlobal(MarshalingHelpers.SizeOf <IntPtr>()); IntPtr cNextQuery = Marshal.AllocHGlobal(MarshalingHelpers.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = LeaderboardResultGetNextQuery(m_leaderboardResultPtr, cNextQuery, cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } // Does local work LeaderboardQuery nextQuery = new LeaderboardQuery(Marshal.ReadIntPtr(cNextQuery)); Marshal.FreeHGlobal(cNextQuery); return(nextQuery); }
public StatisticValue GetStatistic(XboxLiveUser user, string statName) { if (user == null) { throw new ArgumentNullException("user"); } // Allocates memory for returned objects IntPtr cStatValue; IntPtr cErrMessage; IntPtr cStatName = MarshalingHelpers.StringToHGlobalUtf8(statName); // Invokes the c method XSAPI_RESULT errCode = StatsManagerGetStat(user.Impl.XboxLiveUserPtr, cStatName, out cStatValue, out cErrMessage); Marshal.FreeHGlobal(cStatName); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } // Does local work StatisticValue statValue = new StatisticValue(cStatValue); return(statValue); }
public StatisticValue GetStatistic(XboxLiveUser user, string statName) { if (user == null) { throw new ArgumentNullException("user"); } // Allocates memory for returned objects IntPtr cStatValue = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); IntPtr cStatName = Marshal.StringToHGlobalAnsi(statName); // Invokes the c method XSAPI_RESULT errCode = StatsManagerGetStat(user.Impl.XboxLiveUserPtr, cStatName, cStatValue, cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } // Handles returned objects StatisticValue statValue = new StatisticValue(Marshal.ReadIntPtr(cStatValue)); Marshal.FreeHGlobal(cStatValue); return(statValue); }
public XboxSocialUserGroup CreateSocialUserGroupFromList(XboxLiveUser user, IList <string> xboxUserIdList) { if (user == null) { throw new ArgumentNullException("user"); } if (xboxUserIdList == null) { throw new ArgumentNullException("xboxUserIdList"); } // Allocates memory for parameters List <IntPtr> userIdPtrs = new List <IntPtr>(); for (int i = 0; i < xboxUserIdList.Count; i++) { IntPtr cXuid = Marshal.StringToHGlobalAnsi(xboxUserIdList[i]); userIdPtrs.Add(cXuid); } IntPtr cUserIds = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>() * xboxUserIdList.Count); Marshal.Copy(userIdPtrs.ToArray(), 0, cUserIds, xboxUserIdList.Count); // Allocates memory for returned objects IntPtr cGroupPtr = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = SocialManagerCreateSocialUserGroupFromList(user.Impl.XboxLiveUserPtr, cUserIds, (uint)xboxUserIdList.Count, cGroupPtr, cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } // Cleans up parameters foreach (IntPtr ptr in userIdPtrs) { Marshal.FreeHGlobal(ptr); } Marshal.FreeHGlobal(cUserIds); // Handles returned objects XboxSocialUserGroup socialUserGroup = new XboxSocialUserGroup(Marshal.ReadIntPtr(cGroupPtr)); Marshal.FreeHGlobal(cGroupPtr); m_groups.Add(socialUserGroup); return(socialUserGroup); }
public void SetStatisticStringData(XboxLiveUser user, string statName, string value) { IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = StatsManagerSetStatisticStringData(user.Impl.XboxLiveUserPtr, statName, value, out cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } }
public void UpdateSocialUserGroup(XboxSocialUserGroup socialGroup, IList <string> users) { if (socialGroup == null) { throw new ArgumentNullException("socialGroup"); } if (users == null) { throw new ArgumentNullException("users"); } // Allocates memory for parameters List <IntPtr> userIdPtrs = new List <IntPtr>(); for (int i = 0; i < users.Count; i++) { IntPtr cXuid = Marshal.StringToHGlobalUni(users[i]); userIdPtrs.Add(cXuid); } IntPtr cUserIds = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>() * users.Count); Marshal.Copy(userIdPtrs.ToArray(), 0, cUserIds, users.Count); // Allocates memory for returned objects IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = SocialManagerUpdateSocialUserGroup(socialGroup.GetPtr(), cUserIds, (uint)users.Count, cErrMessage); // Handles error string errMessage = Marshal.PtrToStringUni(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } // Cleans up parameters foreach (IntPtr ptr in userIdPtrs) { Marshal.FreeHGlobal(ptr); } Marshal.FreeHGlobal(cUserIds); // Does local work socialGroup.Refresh(); }
public void DeleteStatistic(XboxLiveUser user, string statName) { if (user == null) { throw new ArgumentNullException("user"); } IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = StatsManagerDeleteStat(user.Impl.XboxLiveUserPtr, statName, out cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } }
public void GetSocialLeaderboard(XboxLiveUser user, string statName, string socialGroup, LeaderboardQuery query) { if (user == null) { throw new ArgumentNullException("user"); } IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = StatsManagerGetSocialLeaderboard(user.Impl.XboxLiveUserPtr, statName, socialGroup, query.GetPtr(), out cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } }
public void RequestFlushToService(XboxLiveUser user, bool isHighPriority = false) { if (user == null) { throw new ArgumentNullException("user"); } IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = StatsManagerRequestFlushToService(user.Impl.XboxLiveUserPtr, isHighPriority, out cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } }
public IList <string> GetStatisticNames(XboxLiveUser user) { if (user == null) { throw new ArgumentNullException("user"); } // Allocates memory for returned objects IntPtr cStatListPtr = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); IntPtr cStatListCount = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = StatsManagerGetStatNames(user.Impl.XboxLiveUserPtr, cStatListPtr, cStatListCount, cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } // Handles returned objects uint statListCount = (uint)Marshal.ReadInt32(cStatListCount); Marshal.FreeHGlobal(cStatListCount); List <string> statList = new List <string>(); if (statListCount > 0) { IntPtr cListPtr = Marshal.ReadIntPtr(cStatListPtr); IntPtr[] cStatList = new IntPtr[statListCount]; Marshal.Copy(cListPtr, cStatList, 0, (int)statListCount); for (uint i = 0; i < statListCount; i++) { statList.Add(Marshal.PtrToStringAnsi(cStatList[i])); } } Marshal.FreeHGlobal(cStatListPtr); return(statList); }
public void SetStatisticStringData(XboxLiveUser user, string statName, string value) { // Allocates memory for returned objects IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = StatsManagerSetStatisticStringData(user.Impl.XboxLiveUserPtr, statName, value, cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } }
public IList <string> GetStatisticNames(XboxLiveUser user) { if (user == null) { throw new ArgumentNullException("user"); } IntPtr cStatListPtr; UInt32 statListCount; IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = StatsManagerGetStatNames(user.Impl.XboxLiveUserPtr, out cStatListPtr, out statListCount, out cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } return(MarshalingHelpers.Utf8StringArrayToStringList(cStatListPtr, statListCount)); }
public void AddLocalUser(XboxLiveUser user) { if (user == null) { throw new ArgumentNullException("user"); } IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = StatsManagerAddLocalUser(user.Impl.XboxLiveUserPtr, out cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } // Does local work m_localUsers[user.Impl.XboxLiveUserPtr] = user; }
public void DestroySocialUserGroup(XboxSocialUserGroup xboxSocialUserGroup) { if (xboxSocialUserGroup == null) { throw new ArgumentNullException("xboxSocialUserGroup"); } IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = SocialManagerDestroySocialUserGroup(xboxSocialUserGroup.GetPtr(), out cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } // Does local work m_groups.Remove(xboxSocialUserGroup); }
public void SetRichPresencePollingStatus(XboxLiveUser user, bool shouldEnablePolling) { if (user == null) { throw new ArgumentNullException("user"); } IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = SocialManagerSetRichPresencePollingStatus(user.Impl.XboxLiveUserPtr, shouldEnablePolling, out cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } // Does local work user.Impl.UpdatePropertiesFromXboxLiveUserPtr(); }
public void AddLocalUser(XboxLiveUser user, SocialManagerExtraDetailLevel extraDetailLevel) { if (user == null) { throw new ArgumentNullException("user"); } IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = SocialManagerAddLocalUser(user.Impl.XboxLiveUserPtr, extraDetailLevel, out cErrMessage); // Handles error if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } m_localUsers[user.Impl.XboxLiveUserPtr] = user; }
public Task <SignInResult> SignInImpl(bool showUI, bool forceRefresh) { var tcs = new TaskCompletionSource <SignInResult>(); Task.Run(() => { int contextKey; var context = XsapiCallbackContext <UserImpl, SignInResult> .CreateContext(this, tcs, out contextKey); XSAPI_RESULT result = XSAPI_RESULT.XSAPI_RESULT_OK; if (showUI) { var coreDispatcherPtr = Marshal.GetIUnknownForObject(Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher); context.PointersToRelease = new List <IntPtr> { coreDispatcherPtr }; result = XboxLiveUserSignInWithCoreDispatcher( XboxLiveUserPtr, coreDispatcherPtr, SignInComplete, (IntPtr)contextKey, XboxLive.DefaultTaskGroupId); } else { result = XboxLiveUserSignInSilently( XboxLiveUserPtr, SignInComplete, (IntPtr)contextKey, XboxLive.DefaultTaskGroupId); } if (result != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(result); } }); return(tcs.Task); }
public void RemoveLocalUser(XboxLiveUser user) { if (user == null) { throw new ArgumentNullException("user"); } IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = SocialManagerRemoveLocalUser(user.Impl.XboxLiveUserPtr, out cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } if (m_localUsers.ContainsKey(user.Impl.XboxLiveUserPtr)) { m_localUsers.Remove(user.Impl.XboxLiveUserPtr); } }
public void RequestFlushToService(XboxLiveUser user, bool isHighPriority = false) { if (user == null) { throw new ArgumentNullException("user"); } // Allocates memory for returned objects IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = StatsManagerRequestFlushToService(user.Impl.XboxLiveUserPtr, isHighPriority, cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } }
public void GetSocialLeaderboard(XboxLiveUser user, string statName, string socialGroup, LeaderboardQuery query) { if (user == null) { throw new ArgumentNullException("user"); } // Allocates memory for returned objects IntPtr cErrMessage = Marshal.AllocHGlobal(Marshal.SizeOf <IntPtr>()); // Invokes the c method XSAPI_RESULT errCode = StatsManagerGetSocialLeaderboard(user.Impl.XboxLiveUserPtr, statName, socialGroup, query.GetPtr(), cErrMessage); // Handles error string errMessage = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(cErrMessage)); Marshal.FreeHGlobal(cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { // todo do something } }
public XboxSocialUserGroup CreateSocialUserGroupFromFilters(XboxLiveUser user, PresenceFilter presenceFilter, RelationshipFilter relationshipFilter) { if (user == null) { throw new ArgumentNullException("user"); } IntPtr cGroupPtr; IntPtr cErrMessage; // Invokes the c method XSAPI_RESULT errCode = SocialManagerCreateSocialUserGroupFromFilters(user.Impl.XboxLiveUserPtr, presenceFilter, relationshipFilter, out cGroupPtr, out cErrMessage); if (errCode != XSAPI_RESULT.XSAPI_RESULT_OK) { throw new XboxException(errCode, cErrMessage); } // Handles returned objects XboxSocialUserGroup socialUserGroup = new XboxSocialUserGroup(cGroupPtr); m_groups.Add(socialUserGroup); return(socialUserGroup); }
internal XboxException(XSAPI_RESULT result, IntPtr errorMessagePtr) : base(string.Format("Xbox Services flat C API return error code {0} with message \"{1}\"", result.ToString("g"), MarshalingHelpers.Utf8ToString(errorMessagePtr))) { }
internal XboxException(XSAPI_RESULT result) : base(string.Format("Xbox Services flat C API returned error code {0}", result.ToString("g"))) { }