Пример #1
0
        private static void accSess_OnStateChange(AccSession session, AccSessionState State, AccResult hr)
        {
            #region State

            switch (State)
            {
            case AccSessionState.AccSessionState_Offline:
                break;

            case AccSessionState.AccSessionState_Online:
                if (SuccessfulLogin != null)
                {
                    SuccessfulLogin.Invoke();
                    LoadBuddyListGroups();
                    LoadBuddyListNames();
                }
                break;

            default:
                break;
            }

            #endregion

            #region Errors

            switch (hr)
            {
            case AccResult.ACC_E_CONNECT_ERROR:
            case AccResult.ACC_E_INVALID_CLIENT_INFO:
                break;

            case AccResult.ACC_E_EXPIRED_KEY:
            case AccResult.ACC_E_RATE_LIMITED_KEY:
            case AccResult.ACC_E_SUSPENDED_KEY:
            case AccResult.ACC_E_INVALID_DATA:
            case AccResult.ACC_E_INVALID_KEY:
            case AccResult.ACC_E_INVALID_FINGERPRINT:
                if (UnknownSignonError != null)
                {
                    UnknownSignonError.Invoke();
                }
                break;

            //invalid SN or suspended SN
            case AccResult.ACC_E_SUSPENDED_IDENTITY:
            case AccResult.ACC_E_INVALID_IDENTITY:
                if (InvalidScreenName != null)
                {
                    InvalidScreenName.Invoke();
                }
                break;

            //invalid Password
            case AccResult.ACC_E_INVALID_PASSWORD:
                if (InvalidPassword != null)
                {
                    InvalidPassword.Invoke();
                }
                break;

            case AccResult.ACC_S:
            case AccResult.ACC_E:
            case AccResult.ACC_S_NO_CHANGE:
            case 0:
                break;

            default:
                System.Windows.Forms.MessageBox.Show(hr.ToString());
                break;
            }

            #endregion
        }