GetSaveFileName(A)

ユーザーが保存するファイル名を指定するための「保存」ダイアログボックスを作成します。

BOOL GetSaveFileNameA(
    LPOPENFILENAME pofn
);

COMDLG32.DLL

引数

pofn

ダイアログボックスを初期化するために使用されるOPENFILENAME構造体のアドレスを指定します。関数から制御が返ると、ユーザーが選択したファイルに関する情報が格納されます。

戻り値

ユーザーがファイル名を指定して「OK」ボタンを押すと、戻り値は0以外の値になります。OPENFILENAME構造体のlpstrFileメンバが指すバッファに、ユーザーが選択したファイルのフルパスとファイル名が格納されます。

ユーザーがダイアログボックをキャンセルまたは閉じた場合、もしくはエラーが発生した場合には、戻り値は0になります。拡張エラー情報を取得するには、CommDlgExtendedError関数を使います。この関数は以下のいずれかの値を返します。

0xFFFF (CDERR_DIALOGFAILURE)
0x0001 (CDERR_STRUCTSIZE)
0x0002 (CDERR_INITIALIZATION)
0x0003 (CDERR_NOTEMPLATE)
0x0004 (CDERR_NOHINSTANCE)
0x0005 (CDERR_LOADSTRFAILURE)
0x0006 (CDERR_FINDRESFAILURE)
0x0007 (CDERR_LOADRESFAILURE)
0x0008 (CDERR_LOCKRESFAILURE)
0x0009 (CDERR_MEMALLOCFAILURE)
0x000A (CDERR_MEMLOCKFAILURE)
0x000B (CDERR_NOHOOK)
0x3001 (FNERR_SUBCLASSFAILURE)
0x3002 (FNERR_INVALIDFILENAME)
0x3003 (FNERR_BUFFERTOOSMALL)

解説

エクスプローラスタイルの「開く」ダイアログボックスは、Windowsエクスプローラに似たユーザーインターフェースの特徴を持ちます。このダイアログボックスでは、OFNHookProcフックプロシージャを実装できます。フックプロシージャを有効にするには、OPENFILENAME構造体のFlagsメンバにOFN_EXPLORERおよびOFN_ENABLEHOOKフラグを指定し、lpfnHookメンバにフックプロシージャのアドレスを指定します。

Windowsでは引き続きオールドスタイルの「開く」ダイアログボックスをサポートします。オールドスタイルダイアログボックスを表示するには、OFNHookProcOldStyleフックプロシージャを有効にし、OFN_EXPLORERフラグを設定しないようにします。

対応情報

Windows 95 以降 / Windows NT 3.1 以降