示例#1
0
void CBattleground::Close()
{
	/* remove all players from the battleground */
	m_mainLock.Acquire();
	m_ended = true;
	for(uint32 i = 0; i < 2; ++i)
	{
		set<Player*>::iterator itr;
		set<uint32>::iterator it2;
		uint32 guid;
		Player* plr;
		for(itr = m_players[i].begin(); itr != m_players[i].end();)
		{
			plr = *itr;
			++itr;
			RemovePlayer(plr, false);
		}

		for(it2 = m_pendPlayers[i].begin(); it2 != m_pendPlayers[i].end();)
		{
			guid = *it2;
			++it2;
			plr = objmgr.GetPlayer(guid);

			if(plr)
				RemovePendingPlayer(plr);
			else
				m_pendPlayers[i].erase(guid);
		}
	}

	/* call the virtual on close for cleanup etc */
	OnClose();

	/* shut down the map thread. this will delete the battleground from the current context. */
	m_mapMgr->SetThreadState(THREADSTATE_TERMINATE);

	m_mainLock.Release();
}
示例#2
0
LRESULT CSettingDialog::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	LRESULT lRes = 0;
	BOOL bHandled = TRUE;
	switch( uMsg ) {
	case WM_CREATE:        lRes = OnCreate(uMsg, wParam, lParam, bHandled); break;
	case WM_CLOSE:         lRes = OnClose(uMsg, wParam, lParam, bHandled); break;
	case WM_DESTROY:       lRes = OnDestroy(uMsg, wParam, lParam, bHandled); break;
	case WM_NCACTIVATE:    lRes = OnNcActivate(uMsg, wParam, lParam, bHandled); break;
	case WM_NCCALCSIZE:    lRes = OnNcCalcSize(uMsg, wParam, lParam, bHandled); break;
	case WM_NCPAINT:       lRes = OnNcPaint(uMsg, wParam, lParam, bHandled); break;
	case WM_NCHITTEST:     lRes = OnNcHitTest(uMsg, wParam, lParam, bHandled); break;
	case WM_SIZE:          lRes = OnSize(uMsg, wParam, lParam, bHandled); break;
	case WM_GETMINMAXINFO: lRes = OnGetMinMaxInfo(uMsg, wParam, lParam, bHandled); break;
	case WM_SYSCOMMAND:    lRes = OnSysCommand(uMsg, wParam, lParam, bHandled); break;
	default:
	bHandled = FALSE;
	}
	if( bHandled ) return lRes;
	if( m_pm.MessageHandler(uMsg, wParam, lParam, lRes) ) return lRes;
	return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
}
示例#3
0
LRESULT CDuilib3dFrame::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	LRESULT lRes = 0;
	BOOL bHandled = TRUE;

	switch( uMsg ) 
	{
	case WM_CREATE:        lRes = OnCreate(uMsg, wParam, lParam, bHandled); break;
	case WM_CLOSE:         lRes = OnClose(uMsg, wParam, lParam, bHandled); break;
	case WM_DESTROY:       lRes = OnDestroy(uMsg, wParam, lParam, bHandled); break;
	case WM_NCACTIVATE:    lRes = OnNcActivate(uMsg, wParam, lParam, bHandled); break;
	case WM_NCCALCSIZE:    lRes = OnNcCalcSize(uMsg, wParam, lParam, bHandled); break;
	case WM_NCPAINT:       lRes = OnNcPaint(uMsg, wParam, lParam, bHandled); break;
	case WM_NCHITTEST:     lRes = OnNcHitTest(uMsg, wParam, lParam, bHandled); break;
	case WM_SIZE:          lRes = OnSize(uMsg, wParam, lParam, bHandled); break;
	case WM_GETMINMAXINFO: lRes = OnGetMinMaxInfo(uMsg, wParam, lParam, bHandled); break;
	case WM_SYSCOMMAND:    lRes = OnSysCommand(uMsg, wParam, lParam, bHandled); break;
	case WM_USER+1:
		{
			CControlUI* pControl = (CControlUI*)lParam;
			pControl->SetVisible(true);
		}break;
	default:
		bHandled = FALSE;
	}

	if( bHandled )
	{
		return lRes;
	}

	if( m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes) ) 
	{
		return lRes;
	}

	return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
}
示例#4
0
LRESULT WindowImplBase::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	LRESULT lRes = 0;
	BOOL bHandled = TRUE;
	switch (uMsg)
	{
	case WM_CREATE:			lRes = OnCreate(uMsg, wParam, lParam, bHandled); break;
	case WM_CLOSE:			lRes = OnClose(uMsg, wParam, lParam, bHandled); break;
	case WM_DESTROY:		lRes = OnDestroy(uMsg, wParam, lParam, bHandled); break;
#if defined(WIN32) && !defined(UNDER_CE)
	case WM_NCACTIVATE:		lRes = OnNcActivate(uMsg, wParam, lParam, bHandled); break;
	case WM_NCCALCSIZE:		lRes = OnNcCalcSize(uMsg, wParam, lParam, bHandled); break;
	case WM_NCPAINT:		lRes = OnNcPaint(uMsg, wParam, lParam, bHandled); break;
	case WM_NCHITTEST:		lRes = OnNcHitTest(uMsg, wParam, lParam, bHandled); break;
	case WM_GETMINMAXINFO:	lRes = OnGetMinMaxInfo(uMsg, wParam, lParam, bHandled); break;
	case WM_MOUSEWHEEL:		lRes = OnMouseWheel(uMsg, wParam, lParam, bHandled); break;
#endif
	case WM_SIZE:			lRes = OnSize(uMsg, wParam, lParam, bHandled); break;
	case WM_CHAR:		lRes = OnChar(uMsg, wParam, lParam, bHandled); break;
	case WM_SYSCOMMAND:		lRes = OnSysCommand(uMsg, wParam, lParam, bHandled); break;
	case WM_KEYDOWN:		lRes = OnKeyDown(uMsg, wParam, lParam, bHandled); break;
	case WM_KILLFOCUS:		lRes = OnKillFocus(uMsg, wParam, lParam, bHandled); break;
	case WM_SETFOCUS:		lRes = OnSetFocus(uMsg, wParam, lParam, bHandled); break;
	case WM_LBUTTONUP:		lRes = OnLButtonUp(uMsg, wParam, lParam, bHandled); break;
	case WM_LBUTTONDOWN:	lRes = OnLButtonDown(uMsg, wParam, lParam, bHandled); break;
	case WM_MOUSEMOVE:		lRes = OnMouseMove(uMsg, wParam, lParam, bHandled); break;
	case WM_MOUSEHOVER:	lRes = OnMouseHover(uMsg, wParam, lParam, bHandled); break;
	default:				bHandled = FALSE; break;
	}
	if (bHandled) return lRes;

	lRes = HandleCustomMessage(uMsg, wParam, lParam, bHandled);
	if (bHandled) return lRes;

	if (m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes))
		return lRes;
	return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
}
void dhla::net::TCPSocket::PollEventsSync()
{
    while(connected) {
        // creating a set of sockets, in order to poll its events
        fd_set readset;
        FD_ZERO(&readset);
        FD_SET(m_fd, &readset);  // only one socket for this time

        // critical section
        MutexLock();
        int result = select(0, &readset, NULL, NULL, NULL );
        MutexUnlock();
        // ends critical section

        if(result == 0 || result == SOCKET_ERROR) {
            if(OnError) {
                OnError(this, "Error waiting for socket's events", WSAGetLastError());
                break;
            }
            else {
                throw "Error waiting for socket's events";
            }
        }
        else {
            int len = recv(m_fd, m_input_buffer, MAX_BUFFER_SIZE, 0);
            if(len < 1) {
                if(OnClose && connected) {
                    connected = false;
                    OnClose(this);
                }
                break;
            }
            if(OnData != NULL) {
                OnData(this, m_input_buffer, len);
            }
        }
    }
}
示例#6
0
	LRESULT CALLBACK SystemWindow::LocalWndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
		
		switch(msg)
		{
		case WM_SIZE:
			OnResize(static_cast<u32>(LOWORD(lparam)), static_cast<u32>(HIWORD(lparam)), static_cast<window::WINDOW_RESIZE_STATE>(wparam));
			break;
		case WM_MOVE:
			OnMove(static_cast<u32>(LOWORD(lparam)), static_cast<u32>(HIWORD(lparam)));
			break;
		case WM_CLOSE:
			OnClose();
			break;
		case WM_DESTROY:
			OnDestroy();
			break;

		default:
			//We don't handle the message so let the Default Window Proc handle it
			return DefWindowProcW(hwnd, msg, wparam, lparam);
		}
		return 0;
	}
示例#7
0
// Deal with the window messages.
int KUiTaskNote::WndProc(unsigned int uMsg, unsigned int uParam, int nParam)
{
	int nResult = false;
	if (uMsg == WND_N_BUTTON_CLICK)
	{
		if (uParam == (unsigned int)(KWndWindow*)&m_BtnClose)
		{
			OnClose();
			nResult = true;
		}
		else
		{
			if (uParam == (unsigned int)(KWndWindow*)&m_BtnPersonal)
				m_PersonalPad.Show();
			nResult = KWndPageSet::WndProc(uMsg, uParam, nParam);
		}
	}
	else
	{
		nResult = KWndPageSet::WndProc(uMsg, uParam, nParam);
	}
	return nResult;
}
示例#8
0
void CIOCPFileAccessor::Close()
{
	if(m_FileHandle!=INVALID_HANDLE_VALUE)
	{	
		CloseHandle(m_FileHandle);
		m_FileHandle=INVALID_HANDLE_VALUE;
	}

	InterlockedExchange((LPLONG)&(m_WantClose),FALSE);

	COverLappedObject * pOverLappedObject;
	while(m_DataQueue.PopFront(pOverLappedObject))
	{	
		GetServer()->DeleteOverLappedObject(pOverLappedObject);		
	}
	while(m_RequestQueue.PopFront(pOverLappedObject))
	{	
		GetServer()->DeleteOverLappedObject(pOverLappedObject);		
	}	


	OnClose();	
}
示例#9
0
LRESULT CMenuWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	LRESULT lRes = 0;
	BOOL bHandled = TRUE;

	switch( uMsg ) 
	{
	case WM_CREATE:        lRes = OnCreate(uMsg, wParam, lParam, bHandled); break;
	case WM_CLOSE:         lRes = OnClose(uMsg, wParam, lParam, bHandled); break;
	case WM_KILLFOCUS:     lRes = OnKillFocus(uMsg, wParam, lParam, bHandled); break; 
	case WM_KEYDOWN:       lRes = OnKeyDown(uMsg, wParam, lParam, bHandled); break;
	case WM_MOUSEWHEEL:    break;
	case WM_SIZE:          lRes = OnSize(uMsg, wParam, lParam, bHandled); break;
	case WM_MOVE:          lRes = OnMove(uMsg, wParam, lParam, bHandled); break;
	default:
		bHandled = FALSE;
	}

	if( bHandled ) return lRes;
	if( m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes) ) return lRes;

	return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
}
示例#10
0
void CTransferSocket::TriggerPostponedEvents()
{
	wxASSERT(m_bActive);

	if (m_postponedReceive)
	{
		m_pControlSocket->LogMessage(::Debug_Verbose, _T("Executing postponed receive"));
		m_postponedReceive = false;
		OnReceive();
		if (m_transferEndReason != none)
			return;
	}
	if (m_postponedSend)
	{
		m_pControlSocket->LogMessage(::Debug_Verbose, _T("Executing postponed send"));
		m_postponedSend = false;
		OnSend();
		if (m_transferEndReason != none)
			return;
	}
	if (m_onCloseCalled)
		OnClose(0);
}
示例#11
0
int main(int _NbrParams, char* _tabstrParams[]) {
	// Initialisation...
	Init(1024, 768);
	dlgNom = new CMSFVTextBox(pSDLRenderer);
	dlgTexte = new CMSFVMemo(pSDLRenderer);
	mnuContextuel = new CMenu();

	// Exécution...
	OnShow();
	while (Execution());
	OnClose();

	// Conclusion...
	delete mnuContextuel;
	delete dlgTexte;
	delete dlgNom;

	delete pArbreIndSelect;
	//	delete pRacine;
	//	delete pCurrent;

	return 0;
}
示例#12
0
INT_PTR Dialog::DlgWndProc(UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
	case WM_INITDIALOG:
		return OnInitDlg(wParam, lParam);
	case WM_COMMAND:
		return OnCommand(wParam, lParam);
	case WM_NOTIFY:
		return OnNotify(wParam, lParam);
	case WM_TIMER:
		return OnTimer(wParam, lParam);
	case WM_CLOSE:
		return OnClose(wParam, lParam);
	case WM_DESTROY:
		return OnDestroy(wParam, lParam);
	case WM_SIZE:
		return OnSize(wParam, lParam);
	case WM_GETMINMAXINFO:
		return OnGetMinMaxInfo(wParam, lParam);
	}
	return (INT_PTR)FALSE;
}
示例#13
0
bool CTaskProgressWnd::OnAbortClick()
{
	// При нажатии на кнопке "прервать"
	if (m_pTask->GetState() == TASK_STATE_WORKING)
	{
		// если задача выполняется - спросим прерывать ли задачу
		if (MessageBox(m_hWindow, FormatC(TEXT("Прервать выполнение задачи \'%s\'?"), m_pTask->GetPTaskInfo()->sName.C()), 
			MessageCaption, MB_ICONQUESTION | MB_YESNOCANCEL) == IDYES)
		{
			// если ответили прерывать - прерываем
			m_pTask->Abort();
		}
	}
	else if (m_pTask->GetState() == TASK_STATE_NONE)
	{
		// а если задача не выполняется просто закроем окно
		OnClose();
		EndDialog(m_hWindow, 0);
		m_hWindow = NULL;
	}

	return true;
}
示例#14
0
void AFMServer::RunAsDaemon()
{
    bool r = Create(0, SOCK_STREAM, "EngineerModeServer"); //org "127.0.0.1" 37121
    if(!r)
    {
        EMSVRLOG("create server socket failure\n");
        return;
    }

    int rc = listen(m_hSocket, 5);
    if(rc)
    {
        EMSVRLOG("listen() fail; errno:%d, err_msg:%s\n", errno, strerror(errno));
        return;
    }

    m_bRunning = true;
    int failCount = 0;
    while (true)
    {
        if (!m_bRunning) {
            EMSVRLOG("EM SERVER exit Daemon\n");
            OnClose(failCount);
            break;
        }
        r = AcceptConnection();
        if (!r)
        {
            failCount++;
            EMSVRLOG("EM SERVER fail to listen connection\n");
        }
        if (failCount >= 5) {
            m_bRunning = false;
            EMSVRLOG("the fail count to listen connection is overflow the max count\n");
        }
    }
}
示例#15
0
文件: Server.cpp 项目: aliakseis/IOCP
void Server::PostRecv(Client* client)
{
    assert(client);

    WSABUF recvBufferDescriptor;
    recvBufferDescriptor.buf = reinterpret_cast<char*>(client->GetRecvBuff());
    recvBufferDescriptor.len = Client::MAX_RECV_BUFFER;

    DWORD numberOfBytes = 0;
    DWORD recvFlags = 0;

    IOEvent* event = IOEvent::Create(IOEvent::RECV, client);
    assert(event);

    StartThreadpoolIo(client->GetTPIO());

    if (WSARecv(client->GetSocket(), &recvBufferDescriptor, 1, &numberOfBytes, &recvFlags,
                &event->GetOverlapped(), NULL) == SOCKET_ERROR)
    {
        int error = WSAGetLastError();

        if (error != ERROR_IO_PENDING)
        {
            CancelThreadpoolIo(client->GetTPIO());

            ERROR_CODE(error, "WSARecv() failed.");

            OnClose(event);
            IOEvent::Destroy(event);
        }
    }
    else
    {
        // In this case, the completion callback will have already been scheduled to be called.
    }
}
示例#16
0
void CExternalIPResolver::OnSocketEvent(CSocketEvent& event)
{
	if (!m_pSocket)
		return;

	switch (event.GetType())
	{
	case CSocketEvent::read:
		OnReceive();
		break;
	case CSocketEvent::connection:
		OnConnect(event.GetError());
		break;
	case CSocketEvent::close:
		OnClose();
		break;
	case CSocketEvent::write:
		OnSend();
		break;
	default:
		break;
	}

}
示例#17
0
LRESULT GDBWaitingDlg::OnSocketAccept(WPARAM wParam, LPARAM lParam)
{
  if(LOWORD(lParam) == FD_ACCEPT) {
    WSAAsyncSelect(listenSocket, (HWND)*this, 0, 0);
    
    int flag = 0;    
    ioctlsocket(listenSocket, FIONBIO, (unsigned long *)&flag);
    
    SOCKET s = accept(listenSocket, NULL, NULL);
    if(s != INVALID_SOCKET) {
      char dummy;
      recv(s, &dummy, 1, 0);
      if(dummy != '+') {
        systemMessage(IDS_ACK_NOT_RECEIVED, "ACK not received from GDB.");
        OnClose(); // calls EndDialog
      } else {
        sock = s;
        EndDialog(TRUE);
      }
    }
  }

  return TRUE;
}
示例#18
0
bool BaseWindow::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* pres)
{
	UNREFERENCED_PARAMETER(wParam);
	UNREFERENCED_PARAMETER(lParam);
	UNREFERENCED_PARAMETER(pres);
	switch (uMsg)
	{
	case WM_DESTROY:
		OnClose();
		break;
	case WM_NCDESTROY:
		if (_hwnd)
		{

			RemoveProp(_hwnd, (LPTSTR)s_atomThisProperty);
			_hwnd = NULL;
			delete this;
		}
		break;
	}

	return false;

}
示例#19
0
LRESULT CSDKLoginUIMgr::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	LRESULT lRes = 0;
	BOOL bHandled = TRUE;

	if( uMsg == WM_CREATE ) 
	{
		m_PaintManager.Init(m_hWnd);

		CDialogBuilder builder;
		STRINGorID xml(GetSkinRes());
		CControlUI* pRoot = builder.Create(xml, _T("xml"), 0, &m_PaintManager);
		ASSERT(pRoot && "Failed to parse XML");

		m_PaintManager.AttachDialog(pRoot);
		m_PaintManager.AddNotifier(this);
		InitWindow(); 

		return lRes;
	}
	else if (uMsg == WM_CLOSE)
	{
		OnClose(uMsg, wParam, lParam, bHandled);		
	}
	else if (uMsg == WM_DESTROY)
	{
		OnDestroy(uMsg, wParam, lParam, bHandled);		
	}

	if( m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes) ) 
	{
		return lRes;
	}

	return __super::HandleMessage(uMsg, wParam, lParam);
}
示例#20
0
//接收数据
size_t Connection::RecvData()
{
    int ret=0;
    //用inputbuffer接收,循环接受直接接受完成
    while((m_inputbuffer->AvailableSize() > 0) && ((ret = recv(m_sockfd, m_inputbuffer->Tail(),m_inputbuffer->RecvSize(),0)) > 0))
    {
        //接受到对面发送的数据
        log::log(Info,"recv data lenth = ",ret);
        //接受完成后buffer的size_不能自动更新,所以,这里使用函数更新size_
        m_inputbuffer->UpdateSize(ret);
    }
    //接受完成之后对buffer中的数据进行解析直到解析完成
    while(m_inputbuffer->Size() > HEADER_LEN)
    {
        //获取数据的长度
        uint32_t len =  m_inputbuffer->ReadUint32Only();
        log::log(Info,"Msg len:",len);
        if(m_inputbuffer->Size() < len )
        {
            //还没有接受到一个完整的请求
            //break;
        }
        //读取消息的类型,消息的类型不能放在protobuf中,因为字节不固定
        uint32_t type = m_inputbuffer->ReadUint32Only(MSGTYPE_LEN);
        log::log(Info,"Msg type:",type);
        m_inputbuffer->SkipData(HEADER_LEN);
        HandleReq((ReqType)type,len);

    }
    log::log(Info,"ret:",ret);
    if(ret == 0)
    {
        OnClose();
    }
    return ret;
}
void CTransferSocket::TriggerPostponedEvents()
{
	assert(m_bActive);

	if (m_postponedReceive) {
		controlSocket_.LogMessage(MessageType::Debug_Verbose, _T("Executing postponed receive"));
		m_postponedReceive = false;
		OnReceive();
		if (m_transferEndReason != TransferEndReason::none) {
			return;
		}
	}
	if (m_postponedSend) {
		controlSocket_.LogMessage(MessageType::Debug_Verbose, _T("Executing postponed send"));
		m_postponedSend = false;
		OnSend();
		if (m_transferEndReason != TransferEndReason::none) {
			return;
		}
	}
	if (m_onCloseCalled) {
		OnClose(0);
	}
}
示例#22
0
LRESULT CMediaPlayerDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    // Field notifications from the DirectShow filter graph manager
    // and those posted by the application

    switch (message)
    {
    case WM_GRAPHNOTIFY:
        HandleGraphEvent();
        break;

    case WM_HSCROLL:
        HandleTrackbar(LOWORD(wParam));
        break;

    case WM_VSCROLL:
        HandleVolumeSlider(LOWORD(wParam));
        break;

    case WM_PLAYFILE:
        PlaySelectedFile();
        break;

    case WM_KEYDOWN:
        switch(LOWORD(wParam))
        {

        case 'P':
            OnPlay();
            break;

        case 'S':
            OnStop();
            break;

        case 'U':
            OnPause();
            break;

        case 'L':
            OnCheckLoop();
            break;

        case 'M':
            OnCheckMute();
            break;

        case VK_ESCAPE:
            if (g_bFullScreen_MP)
                OnCheckFullScreen();
            else
                OnClose();
            break;

        }
        break;

    case WM_CLOSE:
        FreeDirectShow();
        break;
    }

    // Pass along this message to the video window, which exists as a child
    // of the m_MPScreen window.  This method should be used by windows that
    // make a renderer window a child window. It forwards significant messages
    // to the child window that the child window would not otherwise receive.
    if (pVW_MP)
    {
        pVW_MP->NotifyOwnerMessage((LONG_PTR) m_hWnd, message, wParam, lParam);
    }

    return COXSizeDialogBar::WindowProc(message, wParam, lParam);




}
示例#23
0
LRESULT CPdnWnd::OnEndSession(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	if(wParam)
        OnClose(WM_CLOSE, 0, 0);
	return 0;
}
示例#24
0
LRESULT CPdnWnd::WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	if(uMsg == WM_FORWARDMSG)
	{
		return OnForwardMessage(hWnd, uMsg, wParam, lParam);
	}
	else if(uMsg == WM_CREATE)
	{
		m_hWnd = hWnd;
		return OnCreate(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_CLOSE)
	{
		return OnClose(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_DESTROY)
	{
		return OnDestroy(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_JSINVOKE)
	{
		return OnJSInvoke(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_GETMINMAXINFO)
	{
		return OnGetMinMaxInfo(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_ACTIVATE)
	{
		return OnActivate(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_SIZE)
	{
		return OnSize(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_COMMAND)
	{
		return OnCommand(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_ENDSESSION)
	{
		return OnEndSession(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_NCDESTROY)
	{
		OnFinalMessage(m_hWnd, uMsg, wParam, lParam);
		return ::DefWindowProc(m_hWnd, uMsg, wParam, lParam);
	}
	else if(uMsg == m_TaskbarRestartMessage)
	{
		return OnTaskbarRestart(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_COPYDATA)
	{
		return OnCopyData(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_NOTIFYICON)
	{
		return OnNotifyIcon(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_PARENTNOTIFY && wParam == WM_DESTROY)
	{
		return ::DestroyWindow(m_hWnd);
	}
	else if(uMsg == WM_SYSCOMMAND)
	{
		return OnSysCommand(uMsg, wParam, lParam);
	}
	else if(uMsg == 0x02B1 /*WM_WTSSESSION_CHANGE*/)
	{
		return OnWTSSessionChange(uMsg, wParam, lParam);
	}
	else if(uMsg == WM_ENTERMENULOOP)
	{
		m_hasModalDialog = true;
		return ::DefWindowProc(m_hWnd, uMsg, wParam, lParam);
	}
	else if(uMsg == WM_EXITMENULOOP)
	{
		m_hasModalDialog = false;
		return ::DefWindowProc(m_hWnd, uMsg, wParam, lParam);
	}
	else
	{
		return ::DefWindowProc(m_hWnd, uMsg, wParam, lParam);
	}
}
示例#25
0
void AddDlg::OnBnClickedCancel()
{
	OnClose();
}
示例#26
0
Chusky::Chusky(CWnd* pParent /*=NULL*/)
	: CDialogEx(Chusky::IDD, pParent)
	, m_directRadioGroup(0)
	, m_makeRadioGroup(0)
	, m_num_of_topic_edit(0)
	, m_price_of_topic_edit(0)
	, pThread(NULL)
{
	m_pChart = NULL;
	m_pCandleChart = NULL;
	FILE *userSelectFile;
	while(!(userSelectFile = fopen("userName.txt", "r")));
	int user;
	fscanf(userSelectFile, "%d", &user);
	fscanf(userSelectFile, "%d", &needLine);
	fclose(userSelectFile);
	strcpy(BrokerID, "1004");
	if (user == 0){
		strcpy(UserID, "0193755301");
		strcpy(Password, "b82c5d504683007ac12478e703b19531");
	}
	if (user == 1){
		strcpy(UserID, "0193755302");
		strcpy(Password, "bad4d60aef1a060441dbbe47977d0dd1");
	}
	if (user == 2){
		strcpy(UserID, "0193755303");
		strcpy(Password, "f99a47bd147441718d35939f1c38a766");
	}

	pUserApi = CUstpFtdcMduserApi::CreateFtdcMduserApi();
	CLoginHandler tempLoginHandler(pUserApi);
	loginHandler = tempLoginHandler;
	loginHandler.getIns(numOfIns, contracts);
	loginHandler.getData(InsData);
	pUserApi -> RegisterSpi(&loginHandler);
	if (needLine)
		pUserApi -> SubscribeMarketDataTopic(100, USTP_TERT_RESTART);
	else
		pUserApi -> SubscribeMarketDataTopic(100, USTP_TERT_QUICK);
	pUserApi -> RegisterFront("tcp://117.185.125.4:17199");
	pUserApi -> Init();

	pTraderApi = CUstpFtdcTraderApi::CreateFtdcTraderApi();
	CTraderHandler tempTraderHandler(pTraderApi);
	traderHandler = tempTraderHandler;
	pTraderApi -> RegisterSpi(&traderHandler);
	pTraderApi -> SubscribePrivateTopic(USTP_TERT_RESTART);
	pTraderApi -> SubscribePublicTopic(USTP_TERT_RESTART);
	pTraderApi -> RegisterFront("tcp://117.185.125.4:17198");
	pTraderApi -> Init();

	CUstpFtdcQryInvestorAccountField qryInvestorAccount;	
	strcpy(qryInvestorAccount.BrokerID, BrokerID);
	strcpy(qryInvestorAccount.InvestorID, UserID);
	strcpy(qryInvestorAccount.UserID, Password);
	++g_UserOrderLocalID;
	int loopTime = 0;
	while (!traderHandler.getStatus()){
		++loopTime;
		if (loopTime > 50000000) break;
	}
	if (loopTime > 50000000){
		MessageBox(CString("登陆系统失败,请检查网络是否通畅及是否在系统开放时间"), CString("登陆失败"), MB_OK);
		OnClose();
	}
	setMoney();
	g_UserOrderLocalID = traderHandler.getUserOrderLocalID();
}
示例#27
0
oex::oexBOOL CSqSSLPortFactory::CSqSSLPort::OnAttach()
{_STT();

	oexAutoLock ll( m_lock ); 
	if ( !ll.IsLocked() ) 
		return oex::oexFALSE;

	if ( !m_ctx )
		return oex::oexFALSE;

	// Create ssl object for this connection
	m_ssl = SSL_new( m_ctx );
	if ( !m_ssl )
	{	m_sLastError = ERR_error_string( ERR_get_error(), 0 );
//		oexSHOW( m_sLastError.c_str() );
		return oex::oexFALSE;
	} // end if

	// Set socket handle
	if ( !SSL_set_fd( m_ssl, oexPtrToInt( GetSocketHandle() ) ) )
	{	m_sLastError = ERR_error_string( ERR_get_error(), 0 );
		OnClose();
//		oexSHOW( m_sLastError.c_str() );
		return oex::oexFALSE;
	} // end if

	int err = 0;
	oex::os::CTimeout to; to.SetMs( oexDEFAULT_WAIT_TIMEOUT );
	do
	{
		// Wait for data?
		if ( err )
		{	ll.Unlock();
			oexSleep( 15 );
			if ( !ll.Lock( m_lock ) )
			{	OnClose();
				return oex::oexFALSE;
			} // end if
		} // end if

		// SSL accept
		if( -1 == SSL_accept( m_ssl ) )
			err = SSL_get_error( m_ssl, -1 );
		else
			err = 0;

	} while ( to.IsValid() && ( SSL_ERROR_WANT_READ == err || SSL_ERROR_WANT_WRITE == err ) );

	if ( err )
	{	m_sLastError = sqbind::oex2std( oexMks( oexT( "SSL_accept() failed : " ), err ) );
//		oexSHOW( m_sLastError.c_str() );
		OnClose();
		return oex::oexFALSE;
	} // end if

	oex::CPropertyBag pb;
	long lVerify = SSL_get_verify_result( m_ssl );
	pb[ oexT( "cert_verify" ) ] = ( X509_V_OK == lVerify );

	// Get peer certificate
	m_cert = SSL_get_peer_certificate( m_ssl );
	pb[ oexT( "cert_valid" ) ] = ( X509_V_OK == lVerify ) && m_cert;
	
	// +++ Fill in certificate information
/*	if ( m_cert )
	{	X509_NAME *pName = X509_get_subject_name( m_cert );
		if ( pName )
			for ( int i = 0; i < X509_NAME_entry_count( pName ); i++ )
			{	X509_NAME_ENTRY *e = X509_NAME_get_entry( pName, i );
				
			} // end for
	} // end if
*/
	// Set port properties string
	m_sProperties = oex::CParser::Serialize( pb );

	return oex::oexTRUE;
}
示例#28
0
CSqSSLPortFactory::CSqSSLPort::~CSqSSLPort()
{_STT();

	OnClose();
}
示例#29
0
LRESULT CMainDlg::OnBnClickedButtonExit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
	OnClose();
	return 0;
}
示例#30
0
void CParadigmDifferences::OnBnClickedCancel()
{
	OnClose();
}