急保存bmp图片,如何保存不了呢?老跳出来“对*bmp的存取被拒绝。”

急急急:保存bmp图片,怎么保存不了呢?老跳出来“对***.bmp的存取被拒绝。”
是哪里出了问题呢,大家帮忙看一下
C/C++ code
void CColorToGrayDoc::OnFileSave() 
{
    // TODO: Add your command handler code here
         CFile file;
    CString filename;
    CFileDialog dlg(FALSE,"BMP",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*||");
    if(dlg.DoModal() == IDOK)
    {
        filename=dlg.GetPathName();
        if(file.Open(filename,CFile::modeCreate|CFile::shareDenyNone,NULL)==0)
        { 
        //建立文件失败
            AfxMessageBox("无法保存文件!",MB_OK,0);
            return;
        }
        
        //文件头
        BITMAPFILEHEADER bf;
        //填写文件数据的内容
        bf.bfType=0X4d42;//数据类型为'BM'
        bf.bfReserved1 =0;
        bf.bfReserved2 =0;//保留字'0'
        bf.bfOffBits =(DWORD)sizeof(BITMAPFILEHEADER)+(DWORD)sizeof(BITMAPINFOHEADER)+(DWORD)numQuad*sizeof(RGBQUAD);
        bf.bfSize =bf.bfOffBits +pbi->bmiHeader.biSizeImage;

        //将文件头、位图信息和像素组写入磁盘文件
        file.Write (&bf,sizeof(BITMAPFILEHEADER));
        file.Write (&pbi,sizeof(BITMAPINFOHEADER)+numQuad*sizeof(RGBQUAD));
        file.Write (&pbi->bmiHeader,pbi->bmiHeader.biSizeImage);

        //关闭文件
        file.Close ();

    }


------解决方案--------------------
“对***.bmp的存取被拒绝。”文件在使用!
------解决方案--------------------
|CFile::shareDenyNone
去了吧