void CMovie::StopMovie() { if(musicNum>=0)lpSoundDS->FadeOut(bgmHandle); WaitThreadEnd(); xvidDec.Clear_XviD(); bPlay = FALSE; }
BOOL CMovie::OpenMovie(char *fname,int music,BOOL loop) { int size; Chunk aviFileHead; Chunk aviInfo; AVIMAINHEADER aviMainHead; WaitThreadEnd(); stream = readFile->StreamOpenFile(pack_sound,fname,size); if((-1)==stream) return FALSE; readFile->StreamReadFile(pack_sound,stream,(char *)&aviFileHead,sizeof(Chunk)); if(MAKEFOURCC('R','I','F','F')!=aviFileHead.ckID){ readFile->StreamCloseFile(pack_sound,stream); stream = -1; return FALSE; } readFile->StreamReadFile(pack_sound,stream,(char *)&aviInfo,sizeof(Chunk)); readFile->StreamReadFile(pack_sound,stream,(char *)&aviMainHead,sizeof(AVIMAINHEADER)); readFile->StreamSeekFile(pack_sound,stream,0,FILE_BEGIN); fpms = aviMainHead.dwMicroSecPerFrame; srcWidth = aviMainHead.dwWidth; srcHeight = aviMainHead.dwHeight; HDC hDC = ::GetDC(sysInf.hWnd); HBRUSH brush = CreateSolidBrush(RGB(0, 0, 8)); HBRUSH old_brush = (HBRUSH)SelectObject(hDC,brush); PatBlt(hDC,0,0,wWidth,wHeight,PATCOPY); SelectObject(hDC,old_brush); DeleteObject(brush); ::ReleaseDC(sysInf.hWnd,hDC); if(FALSE == CreateSurface() ){ } buffer_size = srcWidth*srcHeight*2; readBuf = (LPBYTE)malloc(buffer_size); xvidDec.Start_XviD(srcWidth,srcHeight,overlay_forcc[forccNum]); read_size = readFile->StreamReadFile(pack_sound,stream,(char *)readBuf,buffer_size); frame_cnt = 0; old_frame = 0; start_time = 0; old_time = 0; skip_cnt = 0; total_skip_cnt = 0; bPause = FALSE; if(NULL==lpSoundDS)lpSoundDS = new ClSoundDS(sysInf.hWnd,readFile,FALSE); bPlay = TRUE; bLoop = loop; changeExecMode( movie_mode ); musicNum = music; DWORD dwThreadID; hMovieThread = CreateThread(NULL,0,movieThread,this,0,&dwThreadID); bExitMovieThread = FALSE; return TRUE; } // CMovie::OpenMovie
BOOL CMovie::IsPlay() { if(keyState.push_action || keyState.push_cancel){ if(musicNum>=0)lpSoundDS->FadeOut(bgmHandle); WaitThreadEnd(); xvidDec.Clear_XviD(); return FALSE; } return bPlay; }
void Loop::Destory() { service_lock_.lock(); destory_ = true; WaitThreadEnd(); for (ServiceMap::iterator it = service_map_.begin(); it != service_map_.end(); it++) { delete it->second; } service_map_.clear(); service_lock_.unlock(); SAFE_DELETE(work_thread_); }
// 扫描开始主函数 void portscannow(int xp) { int sport; char *timenow, timebuf[32]; // 定义默认扫描的端口 char *ports[32] = { "21", "22", "23", "25", "53", "79", "80", "110", "111", "113", "123", "135", "139", "143", "443", "512", "513", "514", "515", "540", "1080", "1433", "1521", "1524", "3306", "3389", "5631", "6000", "6112", "8000", "8080", "12345" //这里你也可以自己定义要扫描的端口 }; // 显示扫描开始的时间 timenow = _strtime(timebuf); printf("\r\nPortScan Start Time: %s\r\n\n", timenow); // 计数器初始化. maxth = 0; scanok = 0; scannum = 0; searched = 0; // 计算要扫描的端口数量 searchnum = hoststop - hoststart + 1; if (xp == 3) searchnum = searchnum * 32; if (xp == 4) searchnum = searchnum * (endport - startport + 1); // 端口扫描开始 for (portip = hoststart; portip <= hoststop; portip++, scannum++) { // *.*.*.0和*.*.*.255 地址处理 if ((portip % 256) == 0 || (portip % 256) == 255) { if (xp == 3) searchnum = searchnum - 32; if (xp == 4) searchnum = searchnum - (endport - startport + 1); scannum--; playx(); continue; } if (i > 11) i = 0; // 默认端口扫描 // scan 192.168.0.1 // scan 192.168.0.1-192.168.0.254 if (xp == 3) { for (sport = 0; sport < 32; sport++, maxth++, searched++) { // 测试当前线程是否大于180 TestThread(180); // 产生新的线程处理端口扫描 CWinThread * pthread = AfxBeginThread(portscan, LPVOID(atoi((char*)ports[sport]))); //延时 Sleep(120); } } // 自定义端口扫描 // scan -p 21 192.168.0.1 // scan -p 21-80 192.168.0.1-192.168.0.254 if (xp == 4) { // 计算要扫描的端口 sport = endport - startport; if (sport > 500) { // 扫描自定义的端口 for (sport = startport; sport <= endport; sport++, maxth++, searched++) { TestThread(2000); // 产生新的线程处理端口扫描 CWinThread * pthread = AfxBeginThread(portscan, LPVOID(sport)); // 延时 Sleep(10); } } else { // 扫描自定义的端口 for (sport = startport; sport <= endport; sport++, maxth++, searched++) { // 测试当前线程是否大于250 TestThread(250); // 产生新的线程处理端口扫描 CWinThread * pthread = AfxBeginThread(portscan, LPVOID(sport)); // 延时 Sleep(100); playx(); } } } } // 等待所有的线程结束 WaitThreadEnd(); // 显示端口扫描结束时间 timenow = _strtime(timebuf); printf("\r\nPortScan End Time: %s", timenow); printf("\r\nScan %d Hosts completed. Open %d Ports!\r\n", scannum, scanok); }
CMovie::~CMovie() { WaitThreadEnd(); Release(); }