int WINAPI FindDupes2(const char* szList, HWND hParent) { AFX_MANAGE_STATE(AfxGetAppModuleState()); sListOfImages.RemoveAll(); sListOfImagesToDelete.RemoveAll(); sListOfImageDibs.RemoveAll(); CString sFiles=szList; sFiles.Replace("\r",""); sFiles+="\n"; while(sFiles.GetLength()>0){ CString sWPTitle=sFiles.SpanExcluding("\n"); if(strlen(sWPTitle)!=strlen(sFiles)){ sFiles=sFiles.Mid(strlen(sWPTitle)+1); }else{ sFiles=""; } if(sWPTitle!="" && FindMini(sFiles,sWPTitle+"\n")==-1){ sListOfImages.Add(sWPTitle); } } CheckImages(0); { CSplashParams sp; sp.szText="Reading..."; sp.bgColor=0; sp.txColor=RGB(255,255,255); sp.dwTextParams|=TXSHADOW_VCENT|TXSHADOW_FILLBG|TXSHADOW_WIDE|TXSHADOW_GLOW|TXSHADOW_MIXBG;////TXSHADOW_SHCOL sp.dwSplashAlign=SPLASH_OPACITY; sp.dwSplashAlign|=SPLASH_HLEFT; sp.dwSplashAlign|=SPLASH_VTOP; CSplashWindow sw(&sp); {//!!! for(int i=0;i<sListOfImageDibs.GetSize()-1;i++){ int iClosest=i+1; if(sListOfImageDibs[i] && sListOfImageDibs[iClosest]){ double daffmin=sListOfImageDibs[i]->CalcDistance(sListOfImageDibs[iClosest]); for(int j=i+2;j<sListOfImageDibs.GetSize();j++){ if(sListOfImageDibs[j]){ double lAffinity=sListOfImageDibs[i]->CalcDistance(sListOfImageDibs[j]); if(daffmin>lAffinity){ daffmin=lAffinity; iClosest=j; } } } } // iClosest<>i+1 CString sTmp=sListOfImages[iClosest]; sListOfImages[iClosest]=sListOfImages[i+1]; sListOfImages[i+1]=sTmp; CDib* sTmp2=sListOfImageDibs[iClosest]; sListOfImageDibs[iClosest]=sListOfImageDibs[i+1]; sListOfImageDibs[i+1]=sTmp2; sw.SetText(Format("Checking %i",i)); } } sw.SetText("Renaming..."); for(int i=0;i<sListOfImageDibs.GetSize();i++){ MoveFile(sListOfImages[i],GetDirectoryFromPath(sListOfImages[i])+Format("%04i_%s",i,GetFileFromPath(sListOfImages[i]))); if(sListOfImageDibs[i]){ delete sListOfImageDibs[i]; } } } return 0; }
std::string GetLocalModulePath() { std::string dllpath = GetLocalModuleFilename(); return GetDirectoryFromPath(dllpath); }