Exemplo n.º 1
0
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;
}