Ejemplo n.º 1
0
void CLoginDlg::OnClickButtonLogin()
{
    UpdateData();

    m_LoginStr.TrimLeft();
    m_LoginStr.TrimRight();

    CString LoginStr = m_LoginStr;

    int StartPortPos = -1;
    if((StartPortPos = LoginStr.Find(_T(":")))!=-1)
    {
        CString strPort = LoginStr.Mid(StartPortPos+1);

        LoginStr = LoginStr.Left(StartPortPos);

        int lPort = _ttol(strPort);
    }


    // Check: Login is E-Mail [9/2/2002]
    if(CheckEmailString(LoginStr))
    {
        if(GetDllVersion(_T("comctl32.dll")) >= PACKVERSION(5,8))
        {
            ShowLoginTooltip(FALSE);
        }

        WriteOptionInt(IDS_NETOPTIONS, IDS_USESSL, m_btnSSL.GetPressed());

        if(!m_btnSavePassword.GetPressed())
        {
            WriteOptionString(IDS_LOGIN, IDS_NICKNAME, _T(""));
            //WriteOptionString(IDS_LOGIN,IDS_PASSWORD,"");
            WriteOptionInt(IDS_LOGIN,IDS_REMEMBER,FALSE);
        }
        else
        {
#ifndef RADIUS
#define		CRYPT_PROV_CONTAINER_NAME	_T("Mediachase")
#else
#define		CRYPT_PROV_CONTAINER_NAME	_T("Radius-Soft")
#endif

#define		CRYPT_KEYLENGTH				0x00280000L

#define		ENCRYPT_ALGORITHM			CALG_RC4
#define		ENCRYPT_BLOCK_SIZE			1

            //CString strHashData;

            CCryptProv				m_hCryptProv;
            CCryptDerivedKey		m_hKey;

            HRESULT m_CryptInitErrorCode = m_hCryptProv.Initialize(PROV_RSA_FULL,CRYPT_PROV_CONTAINER_NAME,MS_DEF_PROV,NULL);
            if(m_CryptInitErrorCode==0x80090016)
            {
                m_CryptInitErrorCode = m_hCryptProv.Initialize(PROV_RSA_FULL,CRYPT_PROV_CONTAINER_NAME,MS_DEF_PROV,CRYPT_NEWKEYSET);
            }

            if(m_CryptInitErrorCode==S_OK)
            {
                // Create Key [9/12/2002]
                CCryptMD5Hash hMD5Hash;

                m_CryptInitErrorCode = hMD5Hash.Initialize(m_hCryptProv,CRYPT_PROV_CONTAINER_NAME);
                if(m_CryptInitErrorCode==S_OK)
                {
                    m_CryptInitErrorCode = m_hKey.Initialize(m_hCryptProv,hMD5Hash,ENCRYPT_ALGORITHM,CRYPT_KEYLENGTH);

                    if(m_CryptInitErrorCode==S_OK)
                    {
                        LPTSTR strHashData	=	NULL;
                        if(LoginPassword2HexSTR(m_hKey,m_LoginStr,m_PasswordStr,&strHashData)==S_OK)
                        {
                            WriteOptionString(IDS_LOGIN,IDS_NICKNAME,strHashData);

                            delete [] strHashData;
                            strHashData = NULL;
                        }
                    }
                }
            }

            //WriteOptionString(IDS_LOGIN,IDS_NICKNAME,m_LoginStr);
            //Pack(m_PasswordStr,CString("vTsfO"));
            //WriteOptionString(IDS_LOGIN,IDS_PASSWORD,m_PasswordStr);
            //UnPack(m_PasswordStr,CString("vTsfO"));
            WriteOptionInt(IDS_LOGIN,IDS_REMEMBER,TRUE);
        }


        if(::IsWindow(GetParent()->GetSafeHwnd()))
            GetParent()->PostMessage(WM_INETLOGIN,0,0);
    }
    else
    {
        // Error; Onvalide Login [9/2/2002]

        // Show Ballon Tooltip [9/9/2004]
        if(GetDllVersion(_T("comctl32.dll")) >= PACKVERSION(5,8))
        {
            ShowLoginTooltip(TRUE);
        }
        else
        {
            _SHOW_IBN_ERROR_DLG_OK(IDS_INVALID_LOGIN_OR_PASSWORD);
        }
    }
    //  [9/2/2002]
}
Ejemplo n.º 2
0
LRESULT CInviteChatDlg::OnNetEvent(WPARAM w,LPARAM l)
{
	NLT_Container *pItem = (NLT_Container *)w;
	ASSERT(pItem!=NULL);
	
	UnBlock();
	switch(pItem->EventType)
	{
	case NLT_EDetails:
		{
			IUser    *pUser    = NULL;
			HRESULT hr = AutoUnMarchaling(pItem,(LPUNKNOWN*)&pUser);
			
			if(SUCCEEDED(hr))
			{
				theNet2.LockTranslator();
				theNet2.RemoveFromTranslator(Handle);
				try
				{
					CUser InfoUser(pUser);
					m_User = InfoUser;

					CString strNickText;
					strNickText.Format(GetString(IDS_INVITE_CHAT_NICK_NAME),m_User.GetShowName());
					m_Nick.SetWindowText(strNickText);
					
					UpdateData(FALSE);
				}
				catch(...)
				{
					ASSERT(FALSE);
				}
				theNet2.UnlockTranslator();
				pUser->Release();
			}
		}
		break;
	case NLT_EChatCreate:
		{
			IChat *pChat	=	NULL;
			HRESULT hr = AutoUnMarchaling(pItem,(LPUNKNOWN*)&pChat);
			if(hr==S_OK)
			{
				// Step 1. Add new Chat to ChatsCollections [8/9/2002]
				pMessenger->AddNewChat(pChat,SC_INACTIVE);
				// Step 2. Connect to Chat [9/7/2002]
				CChat Chat(pChat);
				pMessenger->SetChatStatus(Chat.GetId(),SC_ACTIVE,CMainDlg::HCI_OPEN_CHAT_WINDOW);
				// Step 2. Free Interface [8/9/2002]
				pChat->Release();
			}
			// Step 3. Close the Window
			KillWindow();
		}
		break;
	case NLT_ECommandOK:
		theNet2.LockTranslator();
		theNet2.RemoveFromTranslator(Handle);
		theNet2.UnlockTranslator();
		KillWindow();
		break;
	case NLT_ECommandError:
		theNet2.LockTranslator();
		theNet2.RemoveFromTranslator(Handle);
		theNet2.UnlockTranslator();
		if(pItem->Long1==etSERVER)
		{
			switch(pItem->Long2)
			{
			case ERR_UNABLE_CREATE_CONN:
				_SHOW_IBN_ERROR_DLG_OK(IDS_SERVICENOTAVAILABLE);
				break;
			}
		}
		MessageBox(GetString(IDS_INVITECHAT_ERROR),GetString(IDS_ERROR_TITLE),MB_OK|MB_ICONSTOP);
		break;
	}
	
	delete pItem;
    return 0;
}
Ejemplo n.º 3
0
LRESULT CAddUserRequest::OnNetEvent(WPARAM w,LPARAM l)
{
	NLT_Container *pItem = (NLT_Container *)w;
	ASSERT(pItem!=NULL);
	
	
	UnBlock();
	switch(pItem->EventType)
	{
	case NLT_EDetails:
		{
			IUser    *pUser    = NULL;
			HRESULT hr = AutoUnMarchaling(pItem,(LPUNKNOWN*)&pUser);
			
			if(SUCCEEDED(hr))
			{
				theNet2.LockTranslator();
				theNet2.RemoveFromTranslator(Handle);
				try
				{
					CUser InfoUser(pUser);
					m_User = InfoUser;
					m_Nick.SetText(m_User.GetShowName());

					UpdateData(FALSE);
				}
				catch(...)
				{
					ASSERT(FALSE);
				}
				theNet2.UnlockTranslator();
				pUser->Release();
			}
		}
		break;
	case NLT_ECommandOK:
		theNet2.LockTranslator();
		theNet2.RemoveFromTranslator(Handle);
		theNet2.UnlockTranslator();
		if(m_bAddUserCommand&&!pMessenger->CheckUserInContactList(m_User))
		{
			//GetDlgItem(IDOK)->ShowWindow(SW_HIDE);
			//GetDlgItem(ID_DANY)->ShowWindow(SW_HIDE);
			m_Accept.ShowWindow(SW_HIDE);
			m_Deny.ShowWindow(SW_HIDE);
			m_AddToContact.ShowWindow(SW_SHOWNORMAL);
			//GetDlgItem(ID_AUTHORIZATION_REQUEST)->ShowWindow(SW_SHOWNORMAL);
		}
		else
			KillWindow();
		break;
	case NLT_ECommandError:
		theNet2.LockTranslator();
		theNet2.RemoveFromTranslator(Handle);
		theNet2.UnlockTranslator();
		if(pItem->Long1==etSERVER)
		{
			switch(pItem->Long2)
			{
			case ERR_UNABLE_CREATE_CONN:
				_SHOW_IBN_ERROR_DLG_OK(IDS_SERVICENOTAVAILABLE);
				break;
			}
		}
		MessageBox(GetString(IDS_ADD_USER_ERROR),GetString(IDS_ERROR_TITLE),MB_OK|MB_ICONSTOP);
		break;
	}
	
	delete pItem;
    return 0;
}