⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regfinishdlg.cpp

📁 局域网ICQ的源代码
💻 CPP
字号:
/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   copyright            : (C) 2002 by Zhang Yong                         *
 *   email                : z-yong163@163.com                              *
 ***************************************************************************/

// RegFinishDlg.cpp : implementation file
//

#include "stdafx.h"
#include "myicq.h"
#include "RegFinishDlg.h"
#include "RegWizard.h"
#include "myicqDlg.h"
#include "serversession.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CRegFinishDlg property page

IMPLEMENT_DYNCREATE(CRegFinishDlg, CPropertyPage)

CRegFinishDlg::CRegFinishDlg() : CPropertyPage(CRegFinishDlg::IDD)
{
	//{{AFX_DATA_INIT(CRegFinishDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

CRegFinishDlg::~CRegFinishDlg()
{
}

void CRegFinishDlg::onSendError(uint32 seq)
{
	onTimeOut();
}

void CRegFinishDlg::onTimeOut()
{
	CString str;
	str.LoadString(IDS_FAILED);
	SetDlgItemText(IDC_STATUS, str);
	str.LoadString(IDS_TIMEOUT);
	SetDlgItemText(IDC_STATUS_DETAIL, str);

	CRegWizard *wiz = (CRegWizard *) GetParent();
	wiz->SetWizardButtons(PSWIZB_BACK | PSWIZB_DISABLEDFINISH);

	m_anim.stop();
}

void CRegFinishDlg::onNewUINReply(uint32 uin)
{
	CRegWizard *wiz = (CRegWizard *) GetParent();
	wiz->uin = uin;

	CString str;

	if (uin) {
		wiz->isFinished = TRUE;

		str.LoadString(IDS_FINISHED);
		SetDlgItemText(IDC_STATUS, str);
		str.Format(IDS_REG_SUCCESS, uin);
		SetDlgItemText(IDC_STATUS_DETAIL, str);

		CRegWizard *wiz = (CRegWizard *) GetParent();
		wiz->SetWizardButtons(PSWIZB_FINISH);
		wiz->GetDlgItem(IDCANCEL)->EnableWindow(FALSE);

	} else {
		str.LoadString(IDS_FAILED);
		SetDlgItemText(IDC_STATUS, str);
		str.LoadString(IDS_REG_FAILED);
		SetDlgItemText(IDC_STATUS_DETAIL, str);
	}
	m_anim.stop();
}

void CRegFinishDlg::onContactListReply()
{
	CRegWizard *wiz = (CRegWizard *) GetParent();
	wiz->isFinished = TRUE;

	CString str;
	str.LoadString(IDS_FINISHED);
	SetDlgItemText(IDC_STATUS, str);
	str.LoadString(IDS_SUCCESS_CONTACTLIST);
	SetDlgItemText(IDC_STATUS_DETAIL, str);

	wiz->SetWizardButtons(PSWIZB_FINISH);
	m_anim.stop();

	serverSession()->logout();
}

void CRegFinishDlg::onLoginReply(uint8 error)
{
	CRegWizard *wiz = (CRegWizard *) GetParent();

	if (error == LOGIN_SUCCESS)
		wiz->seq = serverSession()->getContactList();
	else {
		CString str;
		str.LoadString(IDS_FAILED);
		SetDlgItemText(IDC_STATUS, str);
		if (error == LOGIN_WRONG_PASSWD)
			str.LoadString(IDS_WRONG_PASSWD);
		else
			str.LoadString(IDS_INVALID_UIN);
		SetDlgItemText(IDC_STATUS_DETAIL, str);

		wiz->SetWizardButtons(PSWIZB_BACK | PSWIZB_DISABLEDFINISH);
		m_anim.stop();
	}
}

void CRegFinishDlg::onConnect(bool success)
{
	if (success) {
		CRegWizard *wiz = (CRegWizard *) GetParent();

		if (wiz->modeDlg.m_mode == 0)
			wiz->seq = serverSession()->regNewUIN(wiz->basicDlg.m_passwd);
		else {
			icqLink->myInfo.uin = wiz->modeDlg.m_uin;
			wiz->seq = serverSession()->login(wiz->modeDlg.m_passwd);
		}
	} else
		onTimeOut();
}

void CRegFinishDlg::onHostFound(struct in_addr &addr)
{
	if (addr.s_addr != INADDR_NONE) {
		CRegWizard *wiz = (CRegWizard *) GetParent();
		serverSession()->connect(inet_ntoa(addr), wiz->networkDlg.m_port);
	} else
		onTimeOut();
}

void CRegFinishDlg::resolveHost()
{
	CRegWizard *wiz = (CRegWizard *) GetParent();
	const char *host = wiz->networkDlg.m_host;

	if (wiz->networkDlg.m_useProxy && !wiz->networkDlg.m_proxyResolve)
		serverSession()->connect(host, wiz->networkDlg.m_port);
	else {
		struct in_addr addr;
		addr.s_addr = inet_addr(host);
		if (addr.s_addr != INADDR_NONE)
			onHostFound(addr);
		else
			((CIcqDlg *) AfxGetMainWnd())->getHostByName(host);
	}
}

void CRegFinishDlg::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRegFinishDlg)
	DDX_Control(pDX, IDC_PIC, m_anim);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CRegFinishDlg, CPropertyPage)
	//{{AFX_MSG_MAP(CRegFinishDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRegFinishDlg message handlers

BOOL CRegFinishDlg::OnSetActive() 
{
	CRegWizard *wiz = (CRegWizard *) GetParent();
	wiz->getData(&icqLink->myInfo, &icqLink->options);
	wiz->uin = 0;

	CString str;
	str.LoadString(IDS_PLEASE_WAIT);
	SetDlgItemText(IDC_STATUS, str);
	str.LoadString(IDS_REG_REGISTERING);
	SetDlgItemText(IDC_STATUS_DETAIL, str);
	wiz->SetWizardButtons(PSWIZB_DISABLEDFINISH);

	m_anim.start();

	resolveHost();

	return CPropertyPage::OnSetActive();
}

BOOL CRegFinishDlg::OnKillActive() 
{
	m_anim.stop();
	return CPropertyPage::OnKillActive();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -