GetOpenFileNameA 関数 (commdlg.h)
[Windows Vista 以降、 共通のダイアログ ボックスと [名前を付けて保存 ] ダイアログ ボックスは、[ 共通アイテム] ダイアログボックスに置き換えられていた。 共通ダイアログ ボックス ライブラリのこれらのダイアログ ボックスの代わりに、共通項目ダイアログ API を使用することをお勧めします。
ユーザーが開くファイルまたはファイルのセットのドライブ、ディレクトリ、名前を指定できる [ 開 く] ダイアログ ボックスを作成します。
構文
BOOL GetOpenFileNameA(
[in, out] LPOPENFILENAMEA unnamedParam1
);
パラメーター
[in, out] unnamedParam1
型: LPOPENFILENAME
ダイアログ ボックスの初期化に使用される情報を含む OPENFILENAME 構造体へのポインター。 GetOpenFileName が返されると、この構造体にはユーザーのファイル選択に関する情報が含まれます。
戻り値
種類: BOOL
ユーザーがファイル名を指定し、[ OK] ボタンをクリックすると、戻り値は 0 以外になります。 OPENFILENAME 構造体の lpstrFile メンバーが指すバッファーには、ユーザーが指定した完全なパスとファイル名が含まれています。
ユーザーが [ 開く ] ダイアログ ボックスをキャンセルまたは閉じるか、エラーが発生した場合、戻り値は 0 です。 拡張エラー情報を取得するには、 CommDlgExtendedError 関数を呼び出します。この関数は、次のいずれかの値を返すことができます。
注釈
[エクスプローラー スタイルの [開く] ダイアログ ボックスには、Windows エクスプローラーに似たユーザー インターフェイス機能が用意されています。 エクスプローラー スタイルの [開く] ダイアログ ボックスに OFNHookProc フック プロシージャを指定できます。 フック プロシージャを有効にするには、OPENFILENAME 構造体の Flags メンバーにOFN_EXPLORERフラグとOFN_ENABLEHOOK フラグを設定し、lpfnHook メンバーでフック プロシージャのアドレスを指定します。
Windows では、古いスタイルのユーザー インターフェイスと一貫性のあるユーザー インターフェイスを維持するアプリケーションの古いスタイルの [開く ] ダイアログ ボックスが引き続きサポートされます。 古いスタイルの [開く ] ダイアログ ボックスを表示するには、 OFNHookProcOldStyle フック プロシージャを有効にし、 OFN_EXPLORER フラグが設定されていないことを確認します。
ユーザーがファイルではなくディレクトリを選択できるようにするダイアログ ボックスを表示するには、 SHBrowseForFolder 関数を呼び出します。
複数のファイルを選択する場合、ファイル名の合計文字数制限は関数のバージョンによって異なります。
- ANSI: 32k の制限
- Unicode: 制限なし
例
例については、「 ファイルを開く」を参照してください。
注意
commdlg.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetOpenFileName を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | commdlg.h (Windows.h を含む) |
Library | Comdlg32.lib |
[DLL] | Comdlg32.dll |
API セット | ext-ms-win-shell-comdlg32-l1-1-1 (Windows 10 バージョン 10.0.14393 で導入) |
こちらもご覧ください
概念
その他のリソース
リファレンス