| 1978 | //------------------------------------- |
| 1979 | |
| 1980 | ImageError_e CImageHelperBase::Open( LPCTSTR pszImageFilename, |
| 1981 | ImageInfo* pImageInfo, |
| 1982 | const bool bCreateIfNecessary, |
| 1983 | std::string& strFilenameInZip) |
| 1984 | { |
| 1985 | pImageInfo->hFile = INVALID_HANDLE_VALUE; |
| 1986 | |
| 1987 | ImageError_e Err; |
| 1988 | const size_t uStrLen = strlen(pszImageFilename); |
| 1989 | |
| 1990 | if (uStrLen > GZ_SUFFIX_LEN && _stricmp(pszImageFilename+uStrLen-GZ_SUFFIX_LEN, GZ_SUFFIX) == 0) |
| 1991 | { |
| 1992 | Err = CheckGZipFile(pszImageFilename, pImageInfo); |
| 1993 | } |
| 1994 | else if (uStrLen > ZIP_SUFFIX_LEN && _stricmp(pszImageFilename+uStrLen-ZIP_SUFFIX_LEN, ZIP_SUFFIX) == 0) |
| 1995 | { |
| 1996 | Err = CheckZipFile(pszImageFilename, pImageInfo, strFilenameInZip); |
| 1997 | } |
| 1998 | else |
| 1999 | { |
| 2000 | Err = CheckNormalFile(pszImageFilename, pImageInfo, bCreateIfNecessary); |
| 2001 | } |
| 2002 | |
| 2003 | if (pImageInfo->pImageType == NULL && Err == eIMAGE_ERROR_NONE) |
| 2004 | Err = eIMAGE_ERROR_UNSUPPORTED; |
| 2005 | |
| 2006 | if (Err != eIMAGE_ERROR_NONE) |
| 2007 | return Err; |
| 2008 | |
| 2009 | char szFilename[MAX_PATH] = { 0 }; |
| 2010 | DWORD uNameLen = GetFullPathName(pszImageFilename, MAX_PATH, szFilename, NULL); |
| 2011 | pImageInfo->szFilename = szFilename; |
| 2012 | if (uNameLen == 0 || uNameLen >= MAX_PATH) |
| 2013 | Err = eIMAGE_ERROR_FAILED_TO_GET_PATHNAME; |
| 2014 | |
| 2015 | return eIMAGE_ERROR_NONE; |
| 2016 | } |
| 2017 | |
| 2018 | //------------------------------------- |
| 2019 | |