BOOL CGelDoc::LoadSample(LPCTSTR pszFilename) { CFile file; CDib* pDib = NULL; TRY { if (!file.Open(pszFilename, CFile::modeRead | CFile::shareDenyNone)) AfxThrowResourceException(); pDib = new CDib(); pDib->LoadDib(&file); // throws pDib->DeleteDib(); delete pDib; pDib = NULL; // If we got this far, go for the gusto and replace our sample. delete m_pUntransformed; file.Seek(0L, CFile::begin); m_pUntransformed = new CDib(&file); delete m_pTransformed; file.Seek(0L, CFile::begin); m_pTransformed = new CDib(&file); delete m_pSelection; file.Seek(0L, CFile::begin); m_pSelection = new CDib(&file); file.Close(); } CATCH_ALL(e) { if (pDib) delete pDib; if (file.m_hFile) file.Close(); return FALSE; } END_CATCH_ALL ApplyGel(); ApplySelection(); CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd(); if (pFrame) pFrame->UpdateSample(); return TRUE; }