<Return[D]><Top>

DlgDirListComboBox

Declare Function Api_DlgDirListComboBox& Lib "user32" Alias "DlgDirListComboBoxA" (ByVal hDlg&, ByVal lpPathSpec$, ByVal nIDComboBox&, ByVal nIDStaticPath&, ByVal wFileType&)

Declare Function DlgDirListComboBox Lib "user32" Alias "DlgDirListComboBoxA" (ByVal hDlg As Long, ByVal lpPathSpec As String, ByVal nIDComboBox As Long, ByVal nIDStaticPath As Long, ByVal wFileType As Long) As Long

コンボボックスに、指定のディレクトリ内のサブディレクトリ名とファイル名を表示する。一連のファイル属性を指定して、名前リストをフィルタすることもできる。名前リストに、マップ先のドライブ文字を含めることもできる。

パラメータ
hDlg
    [入力]コンボボックスを持つダイアログボックスのハンドルを指定する。
lpPathSpec
    [入出力]絶対パス、層対パス、ファイル名のいずれかを指定する、NULL で終わる文字列を保持するバッファへのポインタを指定する。

    絶対パスは、ドライブ名(たとえば、d:\)または UNC 名(たとえば、\\machinename\sharename)で始めることができる。
    この関数は、文字列をディレクトリ名とファイル名に分ける。そして、指定されたファイル名に一致するものをディレクトリ内で検索する。文字

    列がディレクトリを指定していない場合、この関数は現在のディレクトリを検索する。
    文字列が 1 つのファイル名を含む場合、そのファイル名に少なくとも 1 つのワイルドカード文字(? または *)が含まれていなければならない。

    文字列がファイル名を含まない場合、ファイル名としてアスタリスクワイルド文字(*)が指定された場合と同様の動作になる。指定されたディレ

    クトリ内の名前のうち、指定のファイル名に一致し、uFileType パラメータで指定されたファイル属性に一致するものは、コンボボックス内に

    表示されるリストへ追加される。
nIDComboBox
    [入力]hDlg ダイアログボックス内のコンボボックスの識別子を指定する。0 を指定すると、コンボボックスで一覧は表示されない。
nIDStaticPath
    [入力]hDlg ダイアログボックス内の静的コントロールの識別子を指定する。このコントロールに、現在のドライブ名とディレクトリ名を表示す

    るためのテキストが設定される。0 を指定すると、現在のドライブ名およびディレクトリ名は表示されない。
uFiletype
    [入力]コンボボックスに追加したいファイルまたはディレクトリの属性を指定する一連のビットフラグを記述する。次の値の任意の組み合わ

    せを指定する。

    値                            

意味                                                                                                                                            

    DDL_ARCHIVE

アーカイブファイルを表示する。

    DDL_DIRECTORY

サブディレクトリを表示する。サブディレクトリ名は角かっこ([ ])で囲まれる。

    DDL_DRIVES

すべてのマップ先ドライブ名を表示する。ドライブは [-x-] という形式で表示され、x はドライブ文字を表する。

    DDL_EXCLUSIVE

 

指定された属性を持つファイルのみを表示する。既定では、DDL_READWRITE が明示的に指定されていなくても、読み書き可能なファイルが表示される。

    DDL_HIDDEN

隠しファイルを表示する。

    DDL_READONLY

読み取り専用ファイルを表示する。

    DDL_READWRITE

特に属性を持たない、読み書き可能なファイルを表示する。これは既定の設定である。

    DDL_SYSTEM

システムファイルを表示する。

    DDL_POSTMSGS

 

このフラグがセットされている場合、DlgDirListComboBox は PostMessage 関数を使ってメッセージをコンボボックスへ送信する。このフラグがセットされていない場合、DlgDirListComboBox は SendMessage 関数を使う。

 

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。たとえば、lpPathSpec パラメータで指定された文字列が有効なパスではない場合、関数は失敗する。拡

    張エラー情報を取得するには、 関数を使う。

解説
    lpPathSpec がディレクトリを指定している場合、DlgDirListComboBox は指定のディレクトリを現在のディレクトリにして、その後にコンボボッ

    クスへの表示を行う。nIDStaticPath パラメータで指定された静的コントロールのテキストは、新しく設定された現在のディレクトリになる。
    DlgDirListComboBox は、CB_RESETCONTENT と CB_DIR の各メッセージをコンボボックスへ送信する。
    Windows NT 4.0 以降:uFileType で DDL_DIRECTORY フラグをセットし、lpPathSpec で C:\TEMP のような第 1 レベルのディレクトリ

    を指定した場合、コンボボックスにはルートディレクトリを表す ".." のエントリが必ず表示される。ルートディレクトリが隠し属性またはシステム

    属性を備えていて、DDL_HIDDEN と DDL_SYSTEM のどちらもセットされていない場合も、このことが成立する。NTFS ボリュームのル

    ートディレクトリには、隠し属性とシステム属性が割り当てられている。
    Windows NT/ 2000:長いファイル名が存在する場合、リストには長いファイル名が表示される。
    Windows 95:リストには短いファイル名(8.3 形式)が表示されます。SHGetFileInfo または GetFullPathName 関数を使って、それに対応

    する長いファイル名を取得できる。