예제 #1
0
	//--------------------------------------------------------------------------------
	bool CPipeConnector::HandlePendingConnectionResult( bool bConnected )
	{
		_WINQ_FCONTEXT( "CPipeConnector::HandlePendingConnectionResult" );

		bool bPendingIO = false;

		// Overlapped ConnectNamedPipe should return zero. 
		if( bConnected ) 
		{
			//printf("ConnectNamedPipe failed with %d.\n", GetLastError()); 
			return false;
		}

		switch( m_ErrorHelper.GetLastError() ) 
		{ 
		// The overlapped connection in progress. 
		case ErrorIOPending: 
			bPendingIO = true; 
			break; 
   
		// Client is already connected, so signal an event.    
		case ErrorPipeConnected: 
			{
				OVERLAPPED* pOverlapped = reinterpret_cast< OVERLAPPED* >( GetSyncObject() );
				CSyncHandle tmpHandle( pOverlapped->hEvent, true ); 
				CEvent tmpEvent( tmpHandle );
				if( tmpEvent.Set() ) 
				{
					tmpHandle.Drop();
					break; 
				}
			}   
		// If an error occurs during the connect operation... 
		default: 
			{
				//printf("ConnectNamedPipe failed with %d.\n", GetLastError());
				return false;
			}
		} 

		return bPendingIO;		
	}
예제 #2
0
void Pipe::SendEnemyBeingSpawnedToGFX()
{
	EngineEvent tmpEvent(INFO_POS_LVL, m_enemyBeingSpawned->GetInfoForDisplay());
	m_gameEngine->TransmitInfoToGFX(tmpEvent);
}