構造体: OPENFILENAME

「ファイルを開く」、「ファイル保存」ダイアログボックスについての情報を管理します。


定義
Type OPENFILENAME
    lStructSize       As DWord
    hwndOwner         As HWND
    hInstance         As HINSTANCE
    lpstrFilter       As BytePtr
    lpstrCustomFilter As BytePtr
    nMaxCustFilter    As DWord
    nFilterIndex      As DWord
    lpstrFile         As BytePtr
    nMaxFile          As DWord
    lpstrFileTitle    As BytePtr
    nMaxFileTitle     As DWord
    lpstrInitialDir   As BytePtr
    lpstrTitle        As BytePtr
    Flags             As DWord
    nFileOffset       As Word
    nFileExtension    As Word
    lpstrDefExt       As BytePtr
    lCustData         As DWord
    lpfnHook          As VoidPtr
    lpTemplateName    As BytePtr
End Type
lStructSize
構造体のサイズを指定します。

hwndOwner
ダイアログボックスを所有するウィンドウのハンドルを指定します。

hInstance
Flags メンバに OFN_ENABLETEMPLATEHANDLE フラグが設定されているときには、ダイアログボックスのテンプレートを含むメモリオブジェクトへのハンドルを指定します。
OFN_ENABLETEMPLATE フラグが設定されているときには、lpTemplateName メンバが示す名前のダイアログボックスのテンプレートを含むメモリオブジェクトへのハンドルを指定します。
どちらも設定されていない場合、このメンバは無視されます。

lpstrFilter
ファイル フィルターを NULL で終わる文字列で指定します。NULL を指定すると、ダイアログボックスのフィルター文字列にはなにも表示されません。ファイル フィルターは2つで1組になっており、以下のような構造をしています。
"ファイルタイプの説明" + Chr$(0) + "パターン文字列" + ... + Chr$(0) + Chr$(0)
例:"ビットマップ ファイル(*.bmp)" + Chr$(0) + "*.bmp" + Chr$(0) + "すべてのファイル(*.*)" + Chr$(0) + "*" + Chr$(0) + Chr$(0)

lpstrCustomFilter
ユーザーによって選択されたファイル フィルター文字列のペアが保存されます。
カスタム ファイル フィルターを作成しない場合は NULL を指定します。
NULL でない場合は、nMaxCustFilter メンバに lpstrCustomFilter メンバのバッファ サイズを指定しておく必要があります。

nMaxCustFilter
lpstrCustomFilter メンバのバッファ サイズを指定します。

nFilterIndex
フィルターの初期インデックスを指定します。ユーザーがファイルを選択した場合には、表示されていたフィルターのインデックスが保存されます。

lpstrFile
文字列バッファを指定します。
指定したバッファの内容が、「ファイル名」エディット コントロールに表示されます。
ユーザーがファイルを選択すると、このバッファにファイル パスが格納されます。

nMaxFile
lpstrFile メンバのバッファ サイズを指定します。

lpstrFileTitle
選択されたファイルの名前、および拡張子を保存するための文字列バッファを指定します。必要でない場合は NULL を指定することができます。

nMaxFileTitle
lpstrFileTitle メンバのバッファ サイズを指定します。

lpstrInitialDir
初期ディレクトリのパスを指定します。ディレクトリ設定が必要でない場合は、NULL を指定することができます。
[WindowNT以降、Windows98以降]: NULL を指定し、なおかつ指定したファイル フィルターに適するファイルがカレントディレクトリに存在する場合はカレントディレクトリが初期ディレクトリになります。存在しない場合は、ユーザーの個人ディレクトリ(マイ ドキュメント)が初期ディレクトリに設定されます。
[それ以外のOS]: NULL を指定すると、カレントディレクトリが初期ディレクトリに設定されます。

lpstrTitle
ダイアログボックスのタイトルバーに表示する文字列を指定します。NULL を指定すると、システムのデフォルトのタイトルが設定されます。

Flags
ダイアログボックスの初期化フラグを、以下の定数を組み合わせて指定します。
定数説明
OFN_ALLOWMULTISELECTリストボックス内で、複数のファイルを選択できるようになります。
OFN_CREATEPROMPTユーザーが存在しないファイルを選択しようとしたときに、確認のためのダイアログを表示します。
OFN_ENABLEHOOKlpfnHook メンバで指定されたフック関数へのポインタを使用可能にします。
OFN_ENABLETEMPLATElpTemplateName メンバと hInstance メンバで指定されるダイアログ テンプレートを利用してダイアログボックスを作成します。
OFN_ENABLETEMPLATEHANDLEロードされたダイアログ テンプレートを含むデータ ブロックを、hInstance メンバが示すことを意味します。lpTemplateName メンバは無視されます。
OFN_EXPLORER作成するダイアログ ボックスをエクスプローラ風にします。
OFN_EXTENSIONDIFFERENTユーザーが lpstrDefExt メンバで指定されている拡張子とは異なる拡張子を入力したことを示します。
OFN_FILEMUSTEXISTユーザーが存在しないファイルを選択できないようにします。
OFN_HIDEREADONLY「書き込み禁止(Read Only)」チェック ボックスを非表示にします。
OFN_LONGNAMES長いファイル名を使うようにします。
OFN_NOCHANGEDIRユーザーがファイル選択のためにディレクトリを移動しても、カレントディレクトリが変更されないようにします。
OFN_NODEREFERENCELINKSショートカット ファイル(*.lnk)が選択された場合、そのショートカット ファイル自体のパスを取得します。このフラグを指定しない場合は、ショートカットのリンク先のパスを取得することになります。
OFN_NOLONGNAMES短いファイル名を使うようにします。エクスプローラスタイルのダイアログ ボックスでは、このフラグは無視されます。
OFN_NONETWORKBUTTON「ネットワーク」ボタンを非表示にします。
OFN_NOREADONLYRETURN取得したファイルが読み取り専用ファイル、または読み取り専用ディレクトリ内のファイルでないことを示します。
OFN_NOTESTFILECREATEダイアログ ボックスが閉じられた後にファイルを作成するようにします。
OFN_NOVALIDATEファイル名に無効な文字を使用できることを示します。
OFN_OVERWRITEPROMPTユーザーが選択したファイルがすでに存在するとき、上書きの確認を行います。
OFN_PATHMUSTEXISTユーザーが無効なパスやディレクトリを入力したとき、警告メッセージを表示するようにします。
OFN_READONLYダイアログ ボックスの初期表示で、「読み取り専用」チェック ボックスをチェックします。また、ダイアログ ボックスを閉じたときに、「読み取り専用」チェック ボックスがチェックされていることを示します。
OFN_SHAREWAREネットワークの共有違反でOpenFile関数が失敗した場合でも、エラーを無視してファイル名を取得するようにします。
OFN_SHOWHELPヘルプボタン[?]を表示します。

nFileOffset
lpstrFile メンバが示すパス内の、ファイル名の位置が、バッファの先頭から何バイト目であるかを示します。

nFileExtension
lpstrFile メンバが示すパス内の、拡張子の位置が、バッファの先頭から何バイト目であるかを示します。

lpstrDefExt
デフォルト拡張子の文字列を示します。

lCustData
lpfnHook メンバが示すフック プロシージャへ渡すデータを指定します。

lpfnHook
フック プロシージャへのポインタを指定します。Flags メンバに OFN_ENABLEHOOK フラグが含まれていない場合、このメンバは無視されます。

lpTemplateName
hInstance メンバが示すモジュール内にあるダイアログ テンプレートを指定します。Flags メンバに OFN_ENABLETEMPLATE フラグが含まれていない場合、このメンバは無視されます。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み


GetOpenFileName関数GetSaveFileName関数