Platform SDK: Files and I/O

GetBinaryType

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,  // full file path
  LPDWORD lpBinaryType        // binary type information
);

Parameters

lpApplicationName
[in] Pointer to a null-terminated string that contains the full path of the file whose binary type the function shall determine.

In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to nearly 32,000 wide characters, call the Unicode version of the function and prepend "\\?\" to the path. For more information, see File Name Conventions.

lpBinaryType
[out] Pointer to a variable to receive information about the executable type of the file specified by lpApplicationName. The function adjusts a set of bit flags in this variable. The following bit flag constants are defined.
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

Return Values

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.

Remarks

As an alternative, you can obtain the same information by calling the SHGetFileInfo function, passing the SHGFI_EXETYPE flag in the uFlags parameter.

Requirements

  Windows NT/2000: Requires Windows NT 3.5 or later.
  Windows 95/98: Unsupported.
  Header: Declared in Winbase.h; include Windows.h.
  Library: Use Kernel32.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000.

See Also

File I/O Overview, File I/O Functions