Попробуйте сначала открыть файл. Если файл существует и уже открыт без общего доступа, вы получаете нарушение совместного доступа
CFileException::sharingViolation
.
См. CFileException
для возможных значений CFileException::m_cause
Пример:
UINT open_flag = CFile::modeReadWrite | CFile::modeCreate | CFile::modeNoTruncate;
CFileException ex;
if(file.Open(filename, open_flag, &ex))
{
//success
}
else
{
if(ex.m_cause == CFileException::fileNotFound)
{
//file doesn't exit
}
else if(ex.m_cause == CFileException::sharingViolation)
{
//file exists and is locked
}
}