DlgDirListA 関数 (winuser.h)
リスト ボックスの内容を、指定したディレクトリ内のサブディレクトリとファイルの名前に置き換えます。 ファイル属性のセットを指定することで、名前の一覧をフィルター処理できます。 一覧には、必要に応じて、マップされたドライブを含めることができます。
構文
int DlgDirListA(
[in] HWND hDlg,
[in, out] LPSTR lpPathSpec,
[in] int nIDListBox,
[in] int nIDStaticPath,
[in] UINT uFileType
);
パラメーター
[in] hDlg
種類: HWND
リスト ボックスを含むダイアログ ボックスのハンドル。
[in, out] lpPathSpec
種類: LPTSTR
絶対パス、相対パス、またはファイル名を指定する null で終わる文字列を含むバッファーへのポインター。 絶対パスは、ドライブ文字 (d:など) または UNC 名 (\<i>machinename\sharename など) で始めることができます。
関数は、文字列をディレクトリとファイル名に分割します。 関数は、ファイル名と一致する名前をディレクトリで検索します。 文字列にディレクトリが指定されていない場合、関数は現在のディレクトリを検索します。
文字列にファイル名が含まれている場合、ファイル名には少なくとも 1 つのワイルドカード文字 (? または *) が含まれている必要があります。 文字列にファイル名が含まれていない場合、この関数はアスタリスクワイルドカード文字 (*) をファイル名として指定したかのように動作します。 ファイル名に一致し、 uFileType パラメーターで指定された属性を持つ、指定したディレクトリ内のすべての名前がリスト ボックスに追加されます。
[in] nIDListBox
型: int
[hDlg] ダイアログ ボックスのリスト ボックスの識別子。 このパラメーターが 0 の場合、 DlgDirList はリスト ボックスへの入力を試みません。
[in] nIDStaticPath
型: int
[hDlg] ダイアログ ボックスの静的コントロールの識別子。 DlgDirList は、現在のドライブとディレクトリを表示するようにこのコントロールのテキストを設定します。 現在のドライブとディレクトリを表示しない場合、このパラメーターは 0 にすることができます。
[in] uFileType
型: UINT
リスト ボックスに追加するファイルまたはディレクトリの属性を指定します。 このパラメーターには、次の 1 つ以上の値を指定できます。
値 | 意味 |
---|---|
|
アーカイブされたファイルが含まれます。 |
|
サブディレクトリを含みます。 サブディレクトリ名は角かっこ ([ ]) で囲まれます。 |
|
マップされたすべてのドライブが一覧に追加されます。 ドライブは [- x-] という形式で一覧表示されます。 ここで、x はドライブ文字です。 |
|
指定した属性を持つファイルのみが含まれます。 既定では、DDL_READWRITEが指定されていない場合でも、読み取り/書き込みファイルが一覧表示されます。 |
|
隠しファイルが含まれます。 |
|
読み取り専用ファイルが含まれます。 |
|
追加の属性を持たない読み取り/書き込みファイルが含まれます。 これが既定の設定です。 |
|
システム ファイルが含まれています。 |
|
設定した場合、 DlgDirList は PostMessage 関数を使用して、リスト ボックスにメッセージを送信します。 設定されていない場合、 DlgDirList は SendMessage 関数を使用します。 |
戻り値
型: int
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 たとえば、 lpPathSpec で指定された文字列が有効なパスでない場合、関数は失敗します。 拡張されたエラー情報を取得するには、 を呼び出します。
注釈
lpPathSpec でディレクトリが指定されている場合、DlgDirListComboBox は、リスト ボックスに入力する前に、現在のディレクトリを指定されたディレクトリに変更します。 nIDStaticPath パラメーターによって識別される静的コントロールのテキストは、新しい現在のディレクトリの名前に設定されます。
DlgDirList は 、LB_RESETCONTENT と LB_DIR メッセージをリスト ボックスに送信します。
uFileType に DDL_DIRECTORY フラグが含まれており、lpPathSpec で C:\TEMP などの第 1 レベルのディレクトリが指定されている場合、リスト ボックスにはルート ディレクトリの ".." エントリが常に含まれます。 これは、ルート ディレクトリに非表示またはシステム属性があり、DDL_HIDDENフラグとDDL_SYSTEM フラグが指定されていない場合でも当てはまります。 NTFS ボリュームのルート ディレクトリには、非表示属性とシステム属性があります。
ディレクトリの一覧には、長いファイル名 (存在する場合) が表示されます。
例
例については、「 単一選択リスト ボックスでのディレクトリ一覧の作成 」および「複数選択リスト ボックスの 作成」を参照してください。
注意
winuser.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DlgDirList を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
こちらもご覧ください
参照