プレビュー機能付き「ファイルを開く」ダイアログを表示 <TOP>
GetOpenFileNamePreview プレビュー機能付き「ファイルを開く」ダイアログを表示 GetSaveFileNamePreview プレビュー機能付き「ファイルを保存」ダイアログを表示
'================================================================ '= プレビュー機能付き「ファイルを開く」ダイアログを表示 '= (GetOpenFileNamePreview.bas) '================================================================ #include "Windows.bi" #define OFN_EXPLORER &H80000 'Explorer風ダイアログ #define OFN_ALLOWMULTISELECT &H200 '複数ファイルを選択可能にする #define OFN_CREATEPROMPT &H2000 '指定のファイル名が存在しない時にメッセージボックスを表示 #define OFN_FILEMUSTEXIST &H1000 '存在しないファイル名は入力不可 #define OFN_HIDEREADONLY &H4 '読み取り専用のチェックボックスを非表示 #define OFN_NOCHANGEDIR &H8 '他のサブディレクトリから選択不可 #define OFN_NOREADONLYRETURN &H8000 '読み込み専用ファイルと書きこみ禁止ディレクトリの選択不可 #define OFN_NOVALIDATE &H100 'ファイル名の有効性をチェックしない #define OFN_OVERWRITEPROMPT &H2 '既存のファイル名を指定した時にメッセージを出す #define OFN_PATHMUSTEXIST &H800 '有効なパスだけをうけつける #define OFN_READONLY &H1 '読み取り専用のチェックボックスをチェック #define OFN_SHOWHELP &H10 'ヘルプボタンを表示 Type OPENFILENAME lStructSize As Long '構造体のサイズをバイト単位で指定 hwndOwner As Long 'ダイアログボックスを所有するウィンドウへのハンドルを指定 hInstance As Long 'メモリオブジェクトへのハンドルを指定 lpstrFilter As Long '任意の数のNULL文字で終わる文字列のペアを保持するバッファへのポインタを指定 lpstrCustomFilter As Long 'ユーザーによって選択されたファイル フィルター文字列のペアが保存される nMaxCustFilter As Long 'lpstrCustomFilterメンバのバッファ サイズを指定 nFilterIndex As Long 'フィルターの初期インデックスを指定 lpstrFile As Long '文字列バッファを指定 nMaxFile As Long 'lpstrFileメンバのバッファ サイズを指定 lpstrFileTitle As Long '選択されたファイルの名前、および拡張子を保存するための文字列バッファを指定 nMaxFileTitle As Long 'lpstrFileTitle メンバのバッファ サイズを指定 lpstrInitialDir As Long '初期ディレクトリのパスを指定 lpstrTitle As Long 'ダイアログボックスのタイトルバーに表示する文字列を指定 Flags As Long 'イアログボックスの初期化フラグを、「OFN_・・・・」の定数を組み合わせて指定 nFileOffset As Integer 'lpstrFileメンバが示すパス内の、ファイル名の位置がバッファの先頭から何バイト目であるかを示す nFileExtension As Integer 'lpstrFileメンバが示すパス内の、拡張子の位置がバッファの先頭から何バイト目であるかを示す lpstrDefExt As Long 'デフォルト拡張子の文字列を示す lCustData As Long 'lpfnHookメンバが示すフック プロシージャへ渡すデータを指定 lpfnHook As Long 'フック プロシージャへのポインタを指定 lpTemplateName As Long 'hInstanceメンバが示すモジュール内にあるダイアログ テンプレートを指定 End Type ' プレビュー機能付き「ファイルを開く」ダイアログを表示する Declare Function Api_GetOpenFileNamePreview& Lib "msvfw32" Alias "GetOpenFileNamePreviewA" (ByRef lpofn As OPENFILENAME) ' プレビュー機能付き「ファイルを保存」ダイアログを表示する Declare Function Api_GetSaveFileNamePreview& Lib "msvfw32" Alias "GetSaveFileNamePreviewA" (ByRef lpofn As OPENFILENAME) '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var ofn As OPENFILENAME Var Ret As Long ofn.lStructSize = Len(ofn) ofn.hInstance = GethInst ofn.hwndOwner = GethWnd ofn.lpstrTitle = StrAdr("ファイルを開く" & Chr$(0)) ofn.lpstrFilter = StrAdr("WAVEファイル(*.wav)" & Chr$(0) & "*.wav" & Chr$(0) & "MIDIファイル(*.mid)" & Chr$(0) & "*.mid" & Chr$(0) & "AVIファイル(*.avi)" & Chr$(0) & "*.avi" & Chr$(0) & "AVIファイル(*.avi)" & Chr$(0) & "*.*" & Chr$(0)) ofn.lpstrFile = StrAdr(String$(250, Chr$(0)) & Chr$(0)) ofn.nMaxFile = 250 ofn.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY Or OFN_OVERWRITEPROMPT Ret = Api_GetOpenFileNamePreview(ofn) ofn.lpstrTitle = StrAdr("名前を付けて保存" & Chr$(0)) Ret = Api_GetSaveFileNamePreview(ofn) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End