コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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();
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
            }
        }
コード例 #12
0
        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();
        }
コード例 #13
0
        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);
            }
        }
コード例 #14
0
        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);
            }
        }
コード例 #15
0
        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);
            }
        }
コード例 #16
0
        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);
        }
コード例 #17
0
        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
            }
        }
コード例 #18
0
        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));
        }
コード例 #19
0
        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;
        }
コード例 #20
0
        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);
        }
コード例 #21
0
        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();
        }
コード例 #22
0
        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;
        }
コード例 #23
0
        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);
        }
コード例 #24
0
        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);
            }
        }
コード例 #25
0
        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
            }
        }
コード例 #26
0
        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
            }
        }
コード例 #27
0
        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);
        }
コード例 #28
0
 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)))
 {
 }
コード例 #29
0
 internal XboxException(XSAPI_RESULT result)
     : base(string.Format("Xbox Services flat C API returned error code {0}", result.ToString("g")))
 {
 }