The GetBinaryType function determines whether a file is executable, and if so, what type of executable file it is. That last property determines which subsystem an executable file runs under.
BOOL GetBinaryType (
LPCTSTR lpApplicationName, // pointer to fully qualified path of
// file to test
LPDWORD lpBinaryType // pointer to variable to receive
// binary type information
);
Value | Description |
---|---|
SCS_32BIT_BINARY | A Win32-based application |
SCS_DOS_BINARY | An MS-DOS – based application |
SCS_OS216_BINARY | A 16-bit OS/2-based application |
SCS_PIF_BINARY | A PIF file that executes an MS-DOS – based application |
SCS_POSIX_BINARY | A POSIX – based application |
SCS_WOW_BINARY | A 16-bit Windows-based application |
If the file is executable, the return value is nonzero. The function sets the variable pointed to by lpBinaryType to indicate the file's executable type.
If the function is not executable, or if the function fails, the return value is zero. To get extended error information, call GetLastError.
As an alternative, you can obtain the same information by calling the SHGetFileInfo function, passing the SHGFI_EXETYPE flag in the uFlags parameter.
Windows NT: Requires version 3.5 or later.
Windows: Unsupported.
Windows CE: Unsupported.
Header: Declared in winbase.h.
Import Library: Use kernel32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT.
File I/O Overview, File Functions