Função DlgDirListComboBoxA (winuser.h)

Substitui o conteúdo de uma caixa de combinação pelos nomes dos subdiretórios e arquivos em um diretório especificado. Você pode filtrar a lista de nomes especificando um conjunto de atributos de arquivo. A lista de nomes pode incluir letras de unidade mapeadas.

Sintaxe

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

Parâmetros

[in] hDlg

Tipo: HWND

Um identificador para a caixa de diálogo que contém a caixa de combinação.

[in, out] lpPathSpec

Tipo: LPTSTR

Um ponteiro para um buffer que contém uma cadeia de caracteres terminada em nulo que especifica um caminho absoluto, um caminho relativo ou um nome de arquivo. Um caminho absoluto pode começar com uma letra de unidade (por exemplo, d:) ou um nome UNC (por exemplo, \\machinename\sharename).

A função divide a cadeia de caracteres em um diretório e um nome de arquivo. A função pesquisa o diretório em busca de nomes que correspondam ao nome do arquivo. Se a cadeia de caracteres não especificar um diretório, a função pesquisa o diretório atual.

Se a cadeia de caracteres incluir um nome de arquivo, o nome do arquivo deverá conter pelo menos um caractere curinga (? ou ). Se a cadeia de caracteres não incluir um nome de arquivo, a função se comportará como se você tivesse especificado o caractere curinga do asterisco () como o nome do arquivo. Todos os nomes no diretório especificado que correspondem ao nome do arquivo e têm os atributos especificados pelo parâmetro uFiletype são adicionados à lista exibida na caixa de combinação.

[in] nIDComboBox

Tipo: int

O identificador de uma caixa de combinação na caixa de diálogo hDlg . Se esse parâmetro for zero, DlgDirListComboBox não tentará preencher uma caixa de combinação.

[in] nIDStaticPath

Tipo: int

O identificador de um controle estático na caixa de diálogo hDlg . DlgDirListComboBox define o texto desse controle para exibir a unidade e o diretório atuais. Esse parâmetro poderá ser zero se você não quiser exibir a unidade e o diretório atuais.

[in] uFiletype

Tipo: UINT

Um conjunto de sinalizadores de bits que especifica os atributos dos arquivos ou diretórios a serem adicionados à caixa de combinação. Esse parâmetro pode ser uma combinação dos seguintes valores.

Valor Significado
DDL_ARCHIVE
Inclui arquivos arquivados.
DDL_DIRECTORY
Inclui subdiretórios, que são colocados entre colchetes ([ ]).
DDL_DRIVES
Todas as unidades mapeadas são adicionadas à lista. As unidades são listadas no formulário [-x-], em que x é a letra da unidade.
DDL_EXCLUSIVE
Inclui apenas arquivos com os atributos especificados. Por padrão, os arquivos de leitura/gravação são listados mesmo se DDL_READWRITE não for especificado.
DDL_HIDDEN
Inclui arquivos ocultos.
DDL_READONLY
Inclui arquivos somente leitura.
DDL_READWRITE
Inclui arquivos de leitura/gravação sem atributos adicionais. Essa é a configuração padrão.
DDL_SYSTEM
Inclui arquivos do sistema.
DDL_POSTMSGS
Se esse sinalizador estiver definido, DlgDirListComboBox usará a função PostMessage para enviar mensagens para a caixa de combinação. Se esse sinalizador não estiver definido, DlgDirListComboBox usará a função SendMessage .

Retornar valor

Tipo: int

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Por exemplo, se a cadeia de caracteres especificada por lpPathSpec não for um caminho válido, a função falhará. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Se lpPathSpec especificar um diretório, DlgDirListComboBox alterará o diretório atual para o diretório especificado antes de preencher a caixa de combinação. O texto do controle estático identificado pelo parâmetro nIDStaticPath é definido como o nome do novo diretório atual.

DlgDirListComboBox envia as mensagens CB_RESETCONTENT e CB_DIR para a caixa de combinação.

Microsoft Windows NT 4.0 e posterior: se uFiletype incluir o sinalizador DDL_DIRECTORY e lpPathSpec especificar um diretório de primeiro nível, como C:\TEMP, a caixa de combinação sempre incluirá uma entrada "." para o diretório raiz. Isso é verdadeiro mesmo se o diretório raiz tiver atributos ocultos ou do sistema e os sinalizadores DDL_HIDDEN e DDL_SYSTEM não forem especificados. O diretório raiz de um volume NTFS tem atributos ocultos e do sistema.

Aviso de segurança: Usar essa função incorretamente pode comprometer a segurança do programa. O uso incorreto dessa função inclui ter lpPathSpec indicando um buffer não gravável ou um buffer sem terminação nula. Você deve examinar as Considerações de Segurança: Controles do Microsoft Windows antes de continuar.

Microsoft Windows NT 4.0 e posterior: a lista exibe nomes de arquivo longos, se houver.

Windows 95 ou posterior: a lista exibe nomes de arquivo curtos (o formulário 8.3). Você pode usar as funções SHGetFileInfo ou GetFullPathName para obter o nome de arquivo longo correspondente.

Windows 95 ou posterior: DlgDirListComboBoxW tem suporte da Camada da Microsoft para Unicode. Para usar isso, você deve adicionar determinados arquivos ao seu aplicativo, conforme descrito no Microsoft Layer for Unicode em Sistemas Me/98/95 do Windows.

Observação

O cabeçalho winuser.h define DlgDirListComboBox como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll

Confira também

Dlgdirlist

DlgDirSelectComboBoxEx

Referência