//-------------------------------------------------------------------------------- bool CPipeConnector::Connect() { _WINQ_FCONTEXT( "CPipeConnector::Connect" ); unsigned long ulError = 0; CTime Time; unsigned long ulInitialTickCount = Time.GetTickCount(); do { m_bConnected = m_Pipe.Open( m_strServerName, m_strPipeName, m_ulAccess, m_ulShareMode, m_pSecurity, m_ulFlags ); if( !m_bConnected ) { ulError = m_ErrorHelper.GetLastError(); } }while( !m_bConnected && ( ulError == nsWin32::ErrorPipeBusy ) && ( ( Time.GetTickCount() - ulInitialTickCount ) < m_ulConnectionTimeout ) ); if( !AsyncConnection() ) { m_bConnected ? OnConnected() : OnConnectionError(); } return m_bConnected; }