LRESULT CMainWindow::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	try
	{
		ModifyStyle(WS_CAPTION,WS_CLIPSIBLINGS | WS_CLIPCHILDREN);
		if(!RegisterSkin(_T("mainwindow.xml"),0,this))
			return 0;

		GetPaintMgr()->AddNotifier(this);
		RECT rcClient;
		::GetClientRect(*this, &rcClient);
		::SetWindowPos(*this, NULL, rcClient.left, rcClient.top, rcClient.right - rcClient.left, \
			rcClient.bottom - rcClient.top, SWP_FRAMECHANGED);

		CLogin* pLogin = new CLogin();
		pLogin->Create(m_hWnd,NULL,UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
		pLogin->CenterWindow();
		pLogin->BringWindowToTop();
		pLogin->ShowModal();
	}
	catch (...)
	{
		throw _T("CMainWindow::OnCreate");
	}
	return 0;
}
Example #2
0
//对涉密词典进行编辑
void CMainFrame::OnWordnetEdit()
{
	// TODO: 在此添加命令处理程序代码
	//弹出登陆界面
	CLogin dlg;
	INT_PTR nResponse = dlg.DoModal();
}
Example #3
0
void CMainMenu::login()
{
    CLogin login;
    if(login.exec() == QDialog::Accepted)
    {
        emit sigLoginSuccess(login._username->text());
    }
}
Example #4
0
void CHLQYDlg::OnBtnZhuce() 
{
	// TODO: Add your control notification handler code here
	CLogin a;
	a.DoModal();
	m_PWD=a.m_Key2;
    m_UID=a.m_Name;
    UpdateData(FALSE);
	

	
}
Example #5
0
void CFtpStream::Automaton(int action)
{
	int ctrl = 0, data = 0, r;
	char msg[1024];
	SOCK *csSock = NULL;
	
	try
	{
		if (! fURL.IsValid())
			THROW(("The data to connect is not complete"));
		
		ctrl = socket(AF_INET, SOCK_STREAM, 0);
		if (ctrl < 0)
			THROW(("Failed to get socket: %s", strerror(errno)));
		data = socket(AF_INET, SOCK_STREAM, 0);
		if (data < 0)
			THROW(("Failed to get socket: %s", strerror(errno)));
		
		csSock = s_open(ctrl, "r+");
		
		struct hostent *host;
		if ((host = gethostbyname(fURL.Server())) == NULL)
			THROW(("Failed to get server address: %s", strerror(errno)));
		
		struct sockaddr_in sa;
		sa.sin_family = AF_INET;
		sa.sin_port = htons(21);
		sa.sin_addr.s_addr = *(unsigned int *)host->h_addr;
		
		FailOSErr(connect(ctrl, (struct sockaddr *)&sa, sizeof(sa)));
		
		mail_pop_account pa;
		string username, password;

		username = strlen(fURL.Username()) ? fURL.Username() : "anonymous";

		if (strlen(fURL.Password()))
			password = fURL.Password();
		else if (get_pop_account(&pa) == B_OK)
			password = pa.reply_to;
		else
			password = "******";
		
		struct sockaddr_in saData;
		memset(&saData, 0, sizeof(saData));
		saData.sin_family = AF_INET;

		int state = 1;
		while (state)
		{
			GetReply(csSock, r, msg);

			switch (state)
			{
				case 1:
					if ((r / 100) != 2)
						THROW(("Connect failed: %s", msg));
					s_printf(csSock, "user %s\r\n", username.c_str());
					state = 2;
					break;
				
				case 2:
					if ((r / 100) == 3)
					{
						s_printf(csSock, "pass %s\r\n", password.c_str());
						state = 3;
						break;
					}
					else if ((r / 100) != 2 && (r / 100) != 5)
						THROW(("Failed to login: %s", msg));

					// fall thru
				
				case 3:
					if ((r / 100) == 5)
					{
						bool ok;
						
						CLogin *l = DialogCreator<CLogin>::CreateDialog(NULL);
						FailNil(l);

						l->Connect(fURL.Server(), username, password, &ok);
						
						if (ok)
						{
							s_printf(csSock, "noop\r\n");
							state = 1;
							continue;
						}
						else
							THROW((0));
					}
					else if (state == 3 && (r / 100) != 2)
						THROW(("Failed to login: %s", msg));
					else if (strlen(fURL.Path()))
					{
						s_printf(csSock, "cwd %s\r\n", fURL.Path());
						state = 4;
						break;
					}
		
					// fall thru
				
				case 4:
				{
					if (state == 4 && (r / 100) != 2)
						THROW(("Failed to change directory: %s", msg));
					
					if (fPassive) {
						// switch to passive mode
						s_printf(csSock, "pasv\r\n");
					} else {
						FailSockErr(bind(data, (struct sockaddr *)&saData, sizeof(saData)));
						FailSockErr(listen(data, 5));
						// [zooey]: calling getsockname() on a socket that has been bound to 
						// IN_ADDR_ANY (the wildcard-address) will *not* return any IP-address,
						// as this will only be setup by the system during connect or accept.
						// 		[refer to W.R. Stevens - Unix Network Programming, Vol 1, p. 92]
						// BeOS R5 however, *does* fill in the IP-address at this stage (that's
						// why this code worked for R5 but didn't work for BONE).
						// In order to fix this problem, we simply use the IP-address of the
						// command-socket for the PORT-command:
						socklen_t size = sizeof(saData);
						// fetch port from data-socket:
						FailSockErr(getsockname(data, (struct sockaddr *)&saData, &size));
						unsigned char *pap = (unsigned char *)&saData.sin_port;
						// fetch ip-address from cmd-socket:
						FailSockErr(getsockname(csSock->sSocket, (struct sockaddr *)&sa, &size));
						unsigned char *sap = (unsigned char *)&sa.sin_addr.s_addr;
						s_printf(csSock, "port %d,%d,%d,%d,%d,%d\r\n", sap[0], sap[1], sap[2], sap[3], pap[0], pap[1]);
					}
					state = 5;
					break;
				}
				case 5:
					if (fPassive) {
						unsigned int sap[4];
						unsigned int pap[2];
						if ((r / 100) != 2)
							THROW(("Pasv command failed: %s", msg));
						char* pos = strchr(msg,'(');
						if (!pos)
							THROW(("Answer to Pasv has unknown format: %s", msg));
						int cnt = sscanf(pos+1, "%u,%u,%u,%u,%u,%u", 
											  &sap[0], &sap[1], &sap[2], &sap[3], 
											  &pap[0], &pap[1]);
						if (cnt != 6)
							THROW(("Could not parse answer to Pasv (%d of 6): %s", 
									 cnt, msg));
						char ipAddr[20];
						sprintf(ipAddr, "%d.%d.%d.%d", sap[0], sap[1], sap[2], sap[3]);
						saData.sin_port = htons(pap[0]*256+pap[1]);
						saData.sin_addr.s_addr = inet_addr(ipAddr);
						FailOSErr(connect(data, (struct sockaddr *)&saData, sizeof(saData)));
					} else {
						if ((r / 100) != 2)
							THROW(("Port command failed: %s", msg));
					}
					if (action == 1)
					{
						s_printf(csSock, "retr %s\r\n", fURL.File());
						state = 6;
					}
					else
					{
						s_printf(csSock, "stor %s\r\n", fURL.File());
						state = 7;
					}
					break;
				
				case 6:
					if ((r / 100) == 1)
					{
						int ds;
						socklen_t size = sizeof(sa);
						if (fPassive)
							ds = data;
						else
							FailSockErr(ds = accept(data, (struct sockaddr *)&sa, &size));
						
						try
						{
							do
							{
								FailSockErr(r = recv(ds, msg, 1024, 0));
								if (r)
									fData.Write(msg, r);
							}
							while (r);

							closesocket(ds);
						}
						catch (HErr& e)
						{
							closesocket(ds);
							throw;
						}
						
						state = 8;
					}
					else
						THROW(("Failed to retrieve file: %s", msg));
					break;
					
				case 7:
					if ((r / 100) == 1)
					{
						int ds;
						socklen_t size = sizeof(sa);
						if (fPassive)
							ds = data;
						else
							FailSockErr(ds = accept(data, (struct sockaddr *)&sa, &size));
						
						try
						{
							FailSockErr(send(ds, fData.Buffer(), fData.BufferLength(), 0));
							closesocket(ds);
						}
						catch (HErr& e)
						{
							closesocket(ds);
							throw;
						}
						
						state = 8;
					}
					else
						THROW(("Failed to store file: %s", msg));
					break;

				case 8:
					if ((r / 100) != 2)
						THROW(("Failed to %s file: %s", action == 1 ? "retrieve" : "store",  msg));
					s_printf(csSock, "quit\r\n");
					state = 0;
					break;

			}
		}
		
		s_close(csSock);
		if (!fPassive)
			closesocket(data);
		closesocket(ctrl);
	}
	catch (HErr& e)
	{
		if (csSock) s_close(csSock);
		if (ctrl) closesocket(ctrl);
		if (data) closesocket(data);

		throw;
	}
} /* CFtpStream::Automaton */
BOOL CRWDSClientApp::InitInstance()
{
	// 如果一个运行在 Windows XP 上的应用程序清单指定要
	// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
	//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
	INITCOMMONCONTROLSEX InitCtrls;
	InitCtrls.dwSize = sizeof(InitCtrls);
	// 将它设置为包括所有要在应用程序中使用的
	// 公共控件类。
	InitCtrls.dwICC = ICC_WIN95_CLASSES;
	InitCommonControlsEx(&InitCtrls);

	CWinAppEx::InitInstance();

	CLogin login;
	if(login.DoModal() == IDCANCEL)
		return FALSE;
    m_LoginAccount = login.GetLoginAccount();
    m_LoginPassword = login.GetLoginPassword();
    m_LoginOrgID = login.GetLoginOrgID();
    m_LoginPermission = login.GetLoginPermission();
    //if(VerifyLogin(m_LoginAccount, m_LoginPassword, &m_LoginOrgID, &m_LoginPermission) != KErrNone)
    //    return FALSE;
    //获取权限
    //m_LoginPermission = 0x01010101;

	// 初始化 OLE 库
	if (!AfxOleInit())
	{
		AfxMessageBox(IDP_OLE_INIT_FAILED);
		return FALSE;
	}

	AfxEnableControlContainer();

	EnableTaskbarInteraction(FALSE);

	// 使用 RichEdit 控件需要  AfxInitRichEdit2()	
	// AfxInitRichEdit2();

	// 标准初始化
	// 如果未使用这些功能并希望减小
	// 最终可执行文件的大小,则应移除下列
	// 不需要的特定初始化例程
	// 更改用于存储设置的注册表项
	// TODO: 应适当修改该字符串,
	// 例如修改为公司或组织名
	SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
	LoadStdProfileSettings(4);  // 加载标准 INI 文件选项(包括 MRU)


	InitContextMenuManager();

	InitKeyboardManager();

	InitTooltipManager();
	CMFCToolTipInfo ttParams;
	ttParams.m_bVislManagerTheme = TRUE;
	theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL,
		RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams);

	// 注册应用程序的文档模板。文档模板
	// 将用作文档、框架窗口和视图之间的连接
	CSingleDocTemplate* pDocTemplate;
	pDocTemplate = new CSingleDocTemplate(
		IDR_MAINFRAME,
		RUNTIME_CLASS(CRWDSClientDoc),
		RUNTIME_CLASS(CMainFrame),       // 主 SDI 框架窗口
		RUNTIME_CLASS(CRWDSClientView));
	if (!pDocTemplate)
		return FALSE;
	AddDocTemplate(pDocTemplate);


	// 分析标准 shell 命令、DDE、打开文件操作的命令行
	CCommandLineInfo cmdInfo;
	ParseCommandLine(cmdInfo);



	// 调度在命令行中指定的命令。如果
	// 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。
	if (!ProcessShellCommand(cmdInfo))
		return FALSE;

	// 唯一的一个窗口已初始化,因此显示它并对其进行更新
	m_pMainWnd->ShowWindow(SW_SHOW);
	m_pMainWnd->UpdateWindow();
	// 仅当具有后缀时才调用 DragAcceptFiles
	//  在 SDI 应用程序中,这应在 ProcessShellCommand 之后发生
	return TRUE;
}