Сравнить hFile с HFILE_ERROR (не с NULL!). Кроме того, вы должны изменить OpenFile на CreateFile и вызвать его правильно, OpenFile уже давно устарел. На самом деле MSDN четко заявляет:
Функция OpenFile
Используйте эту функцию только с 16-битным
версии Windows. Для новее
приложения, используйте CreateFile
функция.
Когда вы сделаете это изменение, вы получите РУЧКУ, которую вы должны сравнить с INVALID_HANDLE_VALUE.
Обновление: правильный способ получения размера файла:
LARGE_INTEGER fileSize={0};
// You may want to use a security descriptor, tweak file sharing, etc...
// But this is a boiler plate file open
HANDLE hFile=CreateFile(mmsHandle->hTemporalFileName,GENERIC_READ,0,NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile!=INVALID_HANDLE_VALUE && GetFileSizeEx(hFile,&fileSize) &&
fileSize.QuadPart!=0)
{
// The file has size
}
else
{
// The file is missing or size==0 (or an error occurred getting its size)
}
// Do whatever else and don't forget to close the file handle when done!
if (hFile!=INVALID_HANDLE_VALUE)
CloseHandle(hFile);