Ignore:
Timestamp:
Jul 21, 2008, 5:42:40 PM (16 years ago)
Author:
イグトランス (egtra)
Message:

ファイルハンドルが解放されず困ることがあるのでCHandleへ入れた。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/abdev/IconEditor.cpp

    r700 r705  
    263263
    264264        //ファイル読み込み(正常に読み込めるかの確認も含む)
    265         HANDLE hFile;
    266         DWORD dw;
    267         hFile=CreateFile(filepath,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    268         if(hFile==INVALID_HANDLE_VALUE){
    269             //"\"%s\" ファイルの読み込みに失敗しました。"
    270             sprintf(str,STRING_ERROR_CANT_FILEOPEN,filepath);
    271             MessageBox(hOwner,str,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    272             return;
    273         }
    274         i=GetFileSize(hFile,NULL);
    275         buffer=(char *)HeapAlloc(hHeap,0,i+1);
    276         ReadFile(hFile,buffer,i,&dw,NULL);
    277         CloseHandle(hFile);
     265        {
     266            DWORD dw;
     267            ATL::CHandle hFile(CreateFile(filepath,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL));
     268            if(hFile==INVALID_HANDLE_VALUE){
     269                hFile.Detach();
     270                //"\"%s\" ファイルの読み込みに失敗しました。"
     271                sprintf(str,STRING_ERROR_CANT_FILEOPEN,filepath);
     272                MessageBox(hOwner,str,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
     273                return;
     274            }
     275            i=GetFileSize(hFile,NULL);
     276            buffer=(char *)HeapAlloc(hHeap,0,i+1);
     277            ReadFile(hFile,buffer,i,&dw,NULL);
     278        }
    278279
    279280        ICONDIR *pIconDir;
     
    518519
    519520    //ファイルへ書き込み
    520     HANDLE hFile;
    521521    DWORD dummy;
    522     hFile=CreateFile(filepath,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
     522    ATL::CHandle hFile(CreateFile(filepath,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL));
    523523    if(hFile==INVALID_HANDLE_VALUE){
     524        hFile.Detach();
    524525        //"\"%s\" ファイルへの書き込みに失敗しました。"
    525526        sprintf(temporary,STRING_ERROR_CANT_FILESAVE,filepath);
     
    529530    WriteFile(hFile,buffer,i2,&dummy,NULL);
    530531    SetFileIdentityFromFile(*MdiInfo[WndNum], hFile);
    531     CloseHandle(hFile);
    532532}
    533533
Note: See TracChangeset for help on using the changeset viewer.