次の方法で共有


GetBinaryTypeA 関数 (winbase.h)

ファイルが実行可能 (.exe) ファイルであるかどうかを判断し、その場合は実行可能ファイルを実行するサブシステムを決定します。

構文

BOOL GetBinaryTypeA(
  [in]  LPCSTR  lpApplicationName,
  [out] LPDWORD lpBinaryType
);

パラメーター

[in] lpApplicationName

実行可能ファイルの種類を決定するファイルの完全なパス。

既定では、名前はMAX_PATH文字に制限されています。 この制限を 32,767 文字のワイド文字に拡張するには、パスの先頭に "\\?\" を付けます。 詳細については、「ファイル、パス、および名前空間の名前付けする」を参照してください。

先端

Windows 10 バージョン 1607 以降では、事前に "\\?\" なしでMAX_PATHの制限を削除することをオプトインできます。 詳細については、「名前付けファイル、パス、および名前空間の」の「パスの最大長制限」セクションを参照してください。

[out] lpBinaryType

lpApplicationNameで指定されたファイルの実行可能な型に関する情報 受け取る変数へのポインター。 次の定数が定義されています。

価値 意味
SCS_32BIT_BINARY
0
32 ビット Windows ベースのアプリケーション
SCS_64BIT_BINARY
6
64 ビット Windows ベースのアプリケーション。
SCS_DOS_BINARY
1
MS-DOS ベースのアプリケーション
SCS_OS216_BINARY
5
16 ビット OS/2 ベースのアプリケーション
SCS_PIF_BINARY
3
MS-DOS ベースのアプリケーションを実行する PIF ファイル
SCS_POSIX_BINARY
4
POSIX ベースのアプリケーション
SCS_WOW_BINARY
2
16 ビット Windows ベースのアプリケーション

戻り値

ファイルが実行可能な場合、戻り値は 0 以外です。 この関数は、lpBinaryType 指す変数を設定して、ファイルの実行可能ファイルの種類を示します。

ファイルが実行可能でない場合、または関数が失敗した場合、戻り値は 0 になります。 拡張エラー情報を取得するには、GetLastError呼び出します。 ファイルが DLL の場合、最後のエラー コードは ERROR_BAD_EXE_FORMAT

備考

別の方法として、SHGetFileInfo 関数を呼び出し、uFlags パラメーターに SHGFI_EXETYPE フラグを渡すことで、同じ情報を取得できます。

シンボリック リンクの動作 - パスがシンボリック リンクを指している場合は、ターゲット ファイルが使用されます。

Windows 8 および Windows Server 2012 では、この関数は次のテクノロジでサポートされています。

テクノロジー サポート
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 透過的フェールオーバー (TFO) はい
SMB 3.0 とスケールアウト ファイル共有 (SO) はい
クラスター共有ボリューム ファイル システム (CsvFS) はい
回復性のあるファイル システム (ReFS) はい
 

手記

winbase.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetBinaryType を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winbase.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

ファイル管理機能の

SHGetFileInfo の

シンボリック リンク の