DlgDirListComboBoxA 関数 (winuser.h)

コンボ ボックスの内容を、指定したディレクトリ内のサブディレクトリとファイルの名前に置き換えます。 ファイル属性のセットを指定することで、名前の一覧をフィルター処理できます。 名前の一覧には、マップされたドライブ文字を含めることができます。

構文

int DlgDirListComboBoxA(
  [in]      HWND  hDlg,
  [in, out] LPSTR lpPathSpec,
  [in]      int   nIDComboBox,
  [in]      int   nIDStaticPath,
  [in]      UINT  uFiletype
);

パラメーター

[in] hDlg

種類: HWND

コンボ ボックスを含むダイアログ ボックスへのハンドル。

[in, out] lpPathSpec

種類: LPTSTR

絶対パス、相対パス、またはファイル名を指定する null で終わる文字列を含むバッファーへのポインター。 絶対パスは、ドライブ文字 (d:など) または UNC 名 (\\machinename\sharename など) で始めることができます。

関数は、文字列をディレクトリとファイル名に分割します。 関数は、ディレクトリでファイル名と一致する名前を検索します。 文字列でディレクトリが指定されていない場合、関数は現在のディレクトリを検索します。

文字列にファイル名が含まれている場合、ファイル名には少なくとも 1 つのワイルドカード文字 (? または ) が含まれている必要があります。 文字列にファイル名が含まれていない場合、この関数は、ファイル名としてアスタリスク ワイルドカード文字 () を指定したかのように動作します。 ファイル名と一致し、 uFiletype パラメーターで指定された属性を持つ指定されたディレクトリ内のすべての名前が、コンボ ボックスに表示されるリストに追加されます。

[in] nIDComboBox

型: int

hDlg ダイアログ ボックスのコンボ ボックスの識別子。 このパラメーターが 0 の場合、 DlgDirListComboBox はコンボ ボックスの塗りつぶしを試みません。

[in] nIDStaticPath

型: int

hDlg ダイアログ ボックス内の静的コントロールの識別子。 DlgDirListComboBox は、現在のドライブとディレクトリを表示するようにこのコントロールのテキストを設定します。 現在のドライブとディレクトリを表示しない場合、このパラメーターは 0 にすることができます。

[in] uFiletype

型: UINT

コンボ ボックスに追加するファイルまたはディレクトリの属性を指定するビット フラグのセット。 このパラメーターは、次の値と組み合わせて使用できます。

意味
DDL_ARCHIVE
アーカイブされたファイルが含まれます。
DDL_DIRECTORY
角かっこ ([ ]) で囲まれたサブディレクトリが含まれます。
DDL_DRIVES
マップされたすべてのドライブが一覧に追加されます。 ドライブは [-x-] という形式で表示されます。 ここで、x はドライブ文字です。
DDL_EXCLUSIVE
指定した属性を持つファイルのみが含まれます。 既定では、DDL_READWRITEが指定されていない場合でも、読み取り/書き込みファイルが一覧表示されます。
DDL_HIDDEN
隠しファイルを含みます。
DDL_READONLY
読み取り専用ファイルが含まれます。
DDL_READWRITE
追加の属性のない読み取り/書き込みファイルが含まれます。 これが既定の設定です。
DDL_SYSTEM
システム ファイルが含まれます。
DDL_POSTMSGS
このフラグが設定されている場合、 DlgDirListComboBoxPostMessage 関数を使用してコンボ ボックスにメッセージを送信します。 このフラグが設定されていない場合、 DlgDirListComboBox はSendMessage 関数を使用します。

戻り値

型: int

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 たとえば、 lpPathSpec で指定された文字列が有効なパスでない場合、関数は失敗します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

lpPathSpec でディレクトリが指定されている場合、DlgDirListComboBox は、コンボ ボックスに入力する前に、現在のディレクトリを指定したディレクトリに変更します。 nIDStaticPath パラメーターで識別される静的コントロールのテキストは、新しい現在のディレクトリの名前に設定されます。

DlgDirListComboBox、CB_RESETCONTENTCB_DIR メッセージをコンボ ボックスに送信します。

Microsoft Windows NT 4.0 以降: uFiletype に DDL_DIRECTORY フラグが含まれており、lpPathSpec が C:\TEMP などの第 1 レベルのディレクトリを指定している場合、コンボ ボックスには常にルート ディレクトリの ".." エントリが含まれます。 これは、ルート ディレクトリに非表示またはシステム属性があり、DDL_HIDDENフラグとDDL_SYSTEM フラグが指定されていない場合でも当てはまります。 NTFS ボリュームのルート ディレクトリには、非表示属性とシステム属性があります。

セキュリティの警告: この関数を誤って使用すると、プログラムのセキュリティが損なわれる可能性があります。 この関数の誤った使用には、 lpPathSpec が書き込み不可能なバッファー、または null 終端のないバッファーを示す機能が含まれます。 続行する前に、「 セキュリティに関する考慮事項: Microsoft Windows コントロール」 を確認する必要があります。

Microsoft Windows NT 4.0 以降: リストには長いファイル名が表示されます (存在する場合)。

Windows 95 以降: 一覧に短いファイル名 (8.3 形式) が表示されます。 SHGetFileInfo 関数または GetFullPathName 関数を使用して、対応する長いファイル名を取得できます。

Windows 95 以降: DlgDirListComboBoxW は、Microsoft Layer for Unicode でサポートされています。 これを使用するには、「 Microsoft Layer for Unicode on Windows Me/98/95 Systems」で説明されているように、特定のファイルをアプリケーションに追加する必要があります。

注意

winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DlgDirListComboBox を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

こちらもご覧ください

DlgDirList

DlgDirSelectComboBoxEx

参照