Changeset 700 in dev for trunk/ab5.0/abdev/abdev/FileOperation.cpp
- Timestamp:
- Jul 21, 2008, 1:04:12 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/FileOperation.cpp
r697 r700 16 16 return; 17 17 } 18 } 19 else{ 20 FindClose(hFind); 18 21 } 19 22 } … … 334 337 return NewTextEditWindow(OpenFileName,DocumentType,TabColor); 335 338 } 339 340 BOOL GetFileInformationByHandleWrap(HANDLE hFile, BY_HANDLE_FILE_INFORMATION& fi){ 341 typedef BOOL WINAPI GFIBH(HANDLE, LPBY_HANDLE_FILE_INFORMATION); 342 GFIBH *const pgfibh = reinterpret_cast<GFIBH*>( 343 GetProcAddress(GetModuleHandle("kernel32"), "GetFileInformationByHandle")); 344 if(pgfibh){ 345 return pgfibh(hFile, &fi); 346 } 347 else{ 348 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 349 return FALSE; 350 } 351 } 352 353 //重複チェック用のデータを設定 354 void SetFileIdentity(FILEIDENTITY &fi, BY_HANDLE_FILE_INFORMATION const &bhfi){ 355 fi.VolumeSerialNumber = bhfi.dwVolumeSerialNumber; 356 fi.FileIndexHigh = bhfi.nFileIndexHigh; 357 fi.FileIndexLow = bhfi.nFileIndexLow; 358 } 359 360 void SetFileIdentityFromFile(MDIINFO &mi, HANDLE hFile){ 361 BY_HANDLE_FILE_INFORMATION fi; 362 if(GetFileInformationByHandleWrap(hFile, fi)){ 363 SetFileIdentity(mi.FileIdentity, fi); 364 } 365 } 366 336 367 BOOL SaveDocument(HWND hChild,char *SaveFileName){ //ウィンドウからバッファを読み取り、ファイルに保存 368 //SaveFileNameがNULLのときは上書き保存を試みる。 337 369 extern LPSTR IconFileFilter; 338 370 extern HWND hClient,hDocCombo; … … 344 376 WndNum=GetWndNum(hChild); 345 377 346 char szOldTitle[MAX_PATH]; 347 lstrcpy(szOldTitle,MdiInfo[WndNum]->title.c_str()); 378 std::string oldTitle = MdiInfo[WndNum]->title; 348 379 349 380 if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD||MdiInfo[WndNum]->DocType==WNDTYPE_MENU){ … … 353 384 354 385 if(projectInfo.ModifyOfMaterial){ 355 sprintf(temporary,"%s%s.wnd",projectInfo.GetWorkDir().GetPath().c_str(),projectInfo.GetName().c_str()); 356 SaveWindowFile( temporary, projectInfo.windowInfos ); 386 std::string const& workDir = projectInfo.GetWorkDir().GetPath(); 387 std::string const& projName = projectInfo.GetName(); 388 std::string t; 389 t.reserve( workDir.size() + projName.size() + 4 ); 390 t += workDir; 391 t += projName; 392 t += ".wnd"; 393 SaveWindowFile( t.c_str(), projectInfo.windowInfos ); 357 394 358 395 //.wbpファイルを生成 … … 370 407 sprintf(str,STRING_FILE_OVERWRIDE,temporary); 371 408 if(MessageBox(hOwner,str,APPLICATION_NAME,MB_YESNO|MB_ICONINFORMATION)==IDNO){ 372 CloseHandle(fh);373 409 return 0; 374 410 } … … 377 413 378 414 //ドキュメント セレクト コンボボックスから消去 379 i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,( long)MdiInfo[WndNum]->title.c_str());415 i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(LONG_PTR)MdiInfo[WndNum]->title.c_str()); 380 416 SendMessage(hDocCombo,CB_DELETESTRING,i2,0); 381 417 … … 387 423 lstrcat(str,str2); 388 424 MdiInfo[WndNum]->title = str; 389 SendMessage(hDocCombo,CB_ADDSTRING,0,( long)MdiInfo[WndNum]->title.c_str());390 i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,( long)MdiInfo[WndNum]->title.c_str());425 SendMessage(hDocCombo,CB_ADDSTRING,0,(LONG_PTR)MdiInfo[WndNum]->title.c_str()); 426 i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(LONG_PTR)MdiInfo[WndNum]->title.c_str()); 391 427 SendMessage(hDocCombo,CB_SETCURSEL,i2,0); 392 428 … … 448 484 return 0; 449 485 } 450 WriteFile(fh,pBuf,lstrlen(pBuf),&dummy,NULL); 486 WriteFile(fh,pBuf,strlen(pBuf),&dummy,NULL); 487 SetFileIdentityFromFile(*MdiInfo[WndNum], fh); 451 488 CloseHandle(fh); 452 489 … … 473 510 CloseHandle(fh); 474 511 MdiInfo[WndNum]->path = temporary; 475 i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,( long)MdiInfo[WndNum]->title.c_str());512 i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(LONG_PTR)MdiInfo[WndNum]->title.c_str()); 476 513 SendMessage(hDocCombo,CB_DELETESTRING,i2,0); 477 514 _splitpath(temporary,NULL,NULL,str,str2); 478 515 lstrcat(str,str2); 479 516 MdiInfo[WndNum]->title = str; 480 SendMessage(hDocCombo,CB_ADDSTRING,0,( long)MdiInfo[WndNum]->title.c_str());481 i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,( long)MdiInfo[WndNum]->title.c_str());517 SendMessage(hDocCombo,CB_ADDSTRING,0,(LONG_PTR)MdiInfo[WndNum]->title.c_str()); 518 i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(LONG_PTR)MdiInfo[WndNum]->title.c_str()); 482 519 SendMessage(hDocCombo,CB_SETCURSEL,i2,0); 483 520 SetWindowText(hChild,MdiInfo[WndNum]->title.c_str()); … … 501 538 if(pobj_nv->bSaveTabToHead){ 502 539 COLORREF color; 503 color=pobj_MainTab->GetItemColor( szOldTitle);504 pobj_MainTab->DeleteItem( szOldTitle, false );540 color=pobj_MainTab->GetItemColor(oldTitle.c_str()); 541 pobj_MainTab->DeleteItem( oldTitle.c_str(), false ); 505 542 pobj_MainTab->InsertItem( MdiInfo[WndNum]->title.c_str(), false, color ); 506 543 } 507 544 else{ 508 pobj_MainTab->RenameItem( szOldTitle, MdiInfo[WndNum]->title.c_str() );545 pobj_MainTab->RenameItem( oldTitle.c_str(), MdiInfo[WndNum]->title.c_str() ); 509 546 } 510 547
Note:
See TracChangeset
for help on using the changeset viewer.