●はじめに (1999/04/04 KPJ)
今回も、コモンダイアログの使い方について書きたいと思います。
コモンダイアログとGetOpenFileName関数の説明については、前回分を読んでください。
●保存の前にGetSaveFileName関数
GetSaveFileNameは、

BOOL GetSaveFileName(LPOPENFILENAME lpofn)

と定義されています。

lpofnは、OPENFILENAMEという構造体のポインタです。
前回説明したGetOpenFileName関数と同じように、OPENFILENAME構造体に値をセットする必要があります。
GetOpenFileName関数とGetSaveFileName関数は同じように扱うことができるので、今回のサンプルソースでは、これらをまとめてみました。
サンプルソースで、OPENFILENAME構造体にセットしている値は以下の通りです。

lStructSize : 構造体のサイズ(必ずセットしてください)
hwndOwner : 親ウィンドウのハンドル
lpstrFilter : ダイアログで選択できる拡張子の種類、複数ある場合は続けて記述
nFilterIndex : ダイアログが開いた時に選択されている拡張子が lpstrFilterの何番目かを記述、一番最初であれば 1をセット
lpstrFile : 選択されたファイル名を代入するためのバッファ
nMaxFile : lpstrFileにセットしたバッファのサイズ
lpstrTitl : ダイアログのタイトル部分に表示される文字列
lpstrDefExt : 選択したファイル名の拡張子が省略されている場合に追加する拡張子
Flags : ダイアログにセットする各種オプション

GetSaveFileName関数を呼び出すときにFlagsにセットした値は以下の通りです。

OFN_OVERWRITEPROMPT : 同じファイル名が存在した場合に、上書き確認用のダイアログを表示する。
OFN_HIDEREADONLY : 「読みとり専用ファイルとして開く」のチェックボックスを表示させない。

●あとがき
コモンダイアログの説明については今回で一旦終えて、次回は別の話題について書きたいと思います。