MCPcopy Create free account
hub / github.com/AppleWin/AppleWin / Open

Method Open

source/DiskImageHelper.cpp:1980–2016  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1978//-------------------------------------
1979
1980ImageError_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

Callers 1

ImageOpenFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected