Как проверить, является ли файл PE? (то есть, .exe он или нет)?
не понимаю, чем в данном случае является szFile
Судя по тому, как он используется, szFile -- указатель на буфер с содержимым файла. Почему такой странный выбор типа -- действительно непонятно, логично было бы использовать const void *.
Можно ведь как-то проверить, является ли файл Portable Executable? можно, нужно считать часть файла, и проверить его сигнатуру, если сигнатура совпадает, то это исполняемый файл, если нет, то соответственно нет, но также стоит учитывать, что есть ряд особенностей.