コード例 #1
0
ファイル: sockcore.cpp プロジェクト: rickerliang/OpenNT
void CSocket::Close()
{
	if (m_hSocket != INVALID_SOCKET)
	{
		CancelBlockingCall();

		VERIFY(AsyncSelect(0));
		CAsyncSocket::Close();
		m_hSocket = INVALID_SOCKET;
	}
}
コード例 #2
0
BOOL ClientSocket::OnMessagePending()
{
	MSG msg;
	if (::PeekMessage(&msg, NULL, WM_TIMER, WM_TIMER, PM_REMOVE))
	{
		if (msg.wParam == (UINT)m_nTimerID)
		{
			// Remove the message and call CancelBlockingCall.
			//::PeekMessage(&msg, NULL, WM_TIMER, WM_TIMER, PM_REMOVE);
			CancelBlockingCall();
			::PostMessage(m_pDlg->GetSafeHwnd(), WM_USER_TIMEOUT, 0, 0);
			return FALSE;  // No need for idle time processing.
		};
		if (msg.wParam == (UINT)m_nTimerReconnect)
		{
			// Remove the message and call CancelBlockingCall.
			//::PeekMessage(&msg, NULL, WM_TIMER, WM_TIMER, PM_REMOVE);
			CancelBlockingCall();
			::PostMessage(m_pDlg->GetSafeHwnd(), WM_USER_TIMEOUT, 0, 0);
			return FALSE;  // No need for idle time processing.
		};
	};
	return CSocket::OnMessagePending();
}
コード例 #3
0
ファイル: TimeOutSocket.cpp プロジェクト: dalinhuang/demodemo
BOOL CTimeOutSocket::OnMessagePending()
{
	// TODO: Add your specialized code here and/or call the base class
	MSG msg;
	if(::PeekMessage(&msg, NULL, WM_TIMER, WM_TIMER, PM_NOREMOVE))
	{
		if (msg.wParam == (UINT) m_nTimerID)
		{
			// Remove the message and call CancelBlockingCall.
			::PeekMessage(&msg, NULL, WM_TIMER, WM_TIMER, PM_REMOVE);
			CancelBlockingCall();
			return FALSE;  // No need for idle time processing.
		};
	};
	//if (GetLastError() == WSAEWOULDBLOCK)
	//{
	//	::PeekMessage(&msg, NULL, WM_TIMER, WM_TIMER, PM_REMOVE);
	//	CancelBlockingCall();
	//	return FALSE;  // No need for idle time processing.
	//}

	return CSocket::OnMessagePending();
}
コード例 #4
0
ファイル: MSocket.cpp プロジェクト: mikemakuch/muzikbrowzer
BOOL MSocket::OnMessagePending() 
{

	MSG msg;

	// Watch for our timer message
	// the -1 is critical, gets msgs created with NULL hwnd, wasn't working
	// before I had -1 there.
	if(::PeekMessage(&msg, (HWND)-1, WM_TIMER, WM_TIMER, PM_NOREMOVE))
	{

		// If our timer expired...
		if (msg.wParam == (UINT) m_nTimerID && m_nTimerID)
		{
			// Remove the message
			::PeekMessage(&msg, NULL, WM_TIMER, WM_TIMER, PM_REMOVE);
			// And cancel the call
			CancelBlockingCall();
			return FALSE;
		}
	}
	// Call base class function
	return CSocket::OnMessagePending();
}