コード例 #1
0
ファイル: djvuDlg.cpp プロジェクト: mar80nik/djvu
UINT Collect_Function2(LPVOID pParam)
{
	CSingleLock Lock1(&(MAINAPP->StopMutex)); 
	Lock1.Lock();
	MAINAPP->StopThread=AfxBeginThread(Function1,NULL);	
	int i; CString Path;

	for(i=0;i<MAINAPP->Directories.GetSize();i++)
	{
		Path=MAINAPP->Directories[i]; CStringArray *t=MAINAPP->AllFiles[i];
		CollectFiles(Path,*t);				
		delete t;	
	}
	MAINAPP->AllFiles.RemoveAll();
	Lock1.Unlock();
	return 0;
}
コード例 #2
0
bool CNetConnection::StealFrom(CNameObject * pObject,UINT Param)
{
	CAutoLock Lock1(m_RecvLock);
	CAutoLock Lock2(m_SendLock);

	PrintNetLog(0xffffffff,"(%d)执行连接替换(%d)!",GetID(),pObject->GetID());
	if(pObject->IsKindOf(GET_CLASS_INFO(CNetConnection)))
	{
		Destory();

		if(!CNameObject::StealFrom(pObject,Param))
			return false;
		CNetConnection * pConnection=(CNetConnection *)pObject;
		if(!m_Socket.StealFrom(&(pConnection->m_Socket),Param))
			return false;
		
		m_pServer=pConnection->m_pServer;
		m_WantClose=pConnection->m_WantClose;
		m_pEpollEventRouter=pConnection->m_pEpollEventRouter;
		pConnection->m_pEpollEventRouter=NULL;
		if(m_pEpollEventRouter)
			m_pEpollEventRouter->SetEventHander(this);

		
		
		CEpollEventObject * pEpollEventObject;

		m_RecvQueue.Create(pConnection->m_RecvQueue.GetBufferSize());		
		while(pConnection->m_RecvQueue.PopFront(pEpollEventObject))
		{
			m_RecvQueue.PushBack(pEpollEventObject);
		}		

		m_SendQueue.Create(pConnection->m_SendQueue.GetBufferSize());		
		while(pConnection->m_SendQueue.PopFront(pEpollEventObject))
		{
			m_SendQueue.PushBack(pEpollEventObject);
		}	

		return true;
		
	}
	return false;
}
コード例 #3
0
ファイル: djvuDlg.cpp プロジェクト: mar80nik/djvu
void CDjvuDlg::OnStart() 
{
	CString T; 
	UpdateData(DlgGet);
	for(int i=0;i<Items.GetSize();i++)
	{
		if(Items[i]->IsChecked())
		{			
			T+=Items[i]->GetString();			
		}	
		if(i<Items.GetSize()-1) T+=" ";
	}
	int a=5;
	
	CString T1='"'+CString("g:\\My software\\_IMAGE\\_DJVU\\DjVu Small v0.3\\bin\\djvudecode.exe")+'"';

	T=T1+CString(" ")+T;

	STARTUPINFO si;  GetStartupInfo(&si);
	PROCESS_INFORMATION &pi1=MAINAPP->pi;	

	if(!CreateProcess(NULL, (char *)LPCSTR(T), NULL, NULL, FALSE, DETACHED_PROCESS | CREATE_SUSPENDED | IDLE_PRIORITY_CLASS, NULL, NULL, &si, &pi1)) 
	{
		int a=5;
	}
	else
	{
		temp=T; UpdateData(DlgSet); 
		ListBox1.AddString(T); UpdateList();

		MAINAPP->StopThread=0; 
		CSingleLock Lock1(&(MAINAPP->StopMutex)); Lock1.Lock();
		MAINAPP->m_pMainWnd->SetWindowText("Working"); OnStartUI();
		ResumeThread(pi1.hThread);
		MAINAPP->StopThread=AfxBeginThread(Function1,NULL);		
	}
	int b=5;
		
}