Estrutura OPENFILENAMEA (commdlg.h)

[A partir do Windows Vista, as caixas de diálogo abrir e salvar como comuns foram substituídas pela caixa de diálogo Item Comum. Recomendamos que você use a API de Caixa de Diálogo de Item Comum em vez dessas caixas de diálogo da Biblioteca de Caixas de Diálogo Comuns.]

Contém informações que as funções GetOpenFileName e GetSaveFileName usam para inicializar uma caixa de diálogo Abrir ou Salvar como . Depois que o usuário fecha a caixa de diálogo, o sistema retorna informações sobre a seleção do usuário nessa estrutura.

Sintaxe

typedef struct tagOFNA {
  DWORD         lStructSize;
  HWND          hwndOwner;
  HINSTANCE     hInstance;
  LPCSTR        lpstrFilter;
  LPSTR         lpstrCustomFilter;
  DWORD         nMaxCustFilter;
  DWORD         nFilterIndex;
  LPSTR         lpstrFile;
  DWORD         nMaxFile;
  LPSTR         lpstrFileTitle;
  DWORD         nMaxFileTitle;
  LPCSTR        lpstrInitialDir;
  LPCSTR        lpstrTitle;
  DWORD         Flags;
  WORD          nFileOffset;
  WORD          nFileExtension;
  LPCSTR        lpstrDefExt;
  LPARAM        lCustData;
  LPOFNHOOKPROC lpfnHook;
  LPCSTR        lpTemplateName;
  LPEDITMENU    lpEditInfo;
  LPCSTR        lpstrPrompt;
  void          *pvReserved;
  DWORD         dwReserved;
  DWORD         FlagsEx;
} OPENFILENAMEA, *LPOPENFILENAMEA;

Membros

lStructSize

Tipo: DWORD

O comprimento, em bytes, da estrutura. Use sizeof (OPENFILENAME) para esse parâmetro.

hwndOwner

Digite: HWND

Um identificador para a janela que possui a caixa de diálogo. Esse membro pode ser qualquer identificador de janela válido ou pode ser NULL se a caixa de diálogo não tiver proprietário.

hInstance

Tipo: HINSTANCE

Se o sinalizador OFN_ENABLETEMPLATEHANDLE estiver definido no membro Flags , hInstance será um identificador para um objeto de memória que contém um modelo de caixa de diálogo. Se o sinalizador OFN_ENABLETEMPLATE estiver definido, hInstance será um identificador para um módulo que contém um modelo de caixa de diálogo chamado pelo membro lpTemplateName . Se nenhum dos sinalizadores estiver definido, esse membro será ignorado. Se o sinalizador OFN_EXPLORER estiver definido, o sistema usará o modelo especificado para criar uma caixa de diálogo que seja um filho da caixa de diálogo padrão de estilo Explorer. Se o sinalizador OFN_EXPLORER não estiver definido, o sistema usará o modelo para criar uma caixa de diálogo de estilo antigo que substitui a caixa de diálogo padrão.

lpstrFilter

Tipo: LPCTSTR

Um buffer que contém pares de cadeias de caracteres de filtro terminadas em nulo. A última cadeia de caracteres no buffer deve ser encerrada por dois caracteres NULL .

A primeira cadeia de caracteres em cada par é uma cadeia de caracteres de exibição que descreve o filtro (por exemplo, "Arquivos de Texto" e a segunda cadeia de caracteres especifica o padrão de filtro (por exemplo, ".TXT"). Para especificar vários padrões de filtro para uma única cadeia de caracteres de exibição, use um ponto e vírgula para separar os padrões (por exemplo, ".TXT;.DOC;. BAK"). Uma cadeia de caracteres padrão pode ser uma combinação de caracteres de nome de arquivo válidos e o caractere curinga asterisco (*). Não inclua espaços na cadeia de caracteres padrão.

O sistema não altera a ordem dos filtros. Ele os exibe na caixa de combinação Tipos de Arquivo na ordem especificada em lpstrFilter.

Se lpstrFilter for NULL, a caixa de diálogo não exibirá nenhum filtro.

No caso de um atalho, se nenhum filtro estiver definido, GetOpenFileName e GetSaveFileName recuperarão o nome do arquivo .lnk, não seu destino. Esse comportamento é o mesmo que definir o sinalizador OFN_NODEREFERENCELINKS no membro Flags . Para recuperar o destino de um atalho sem filtragem, use a cadeia de caracteres "All Files\0*.*\0\0".

lpstrCustomFilter

Tipo: LPTSTR

Um buffer estático que contém um par de cadeias de caracteres de filtro terminadas em nulo para preservar o padrão de filtro escolhido pelo usuário. A primeira cadeia de caracteres é a cadeia de caracteres de exibição que descreve o filtro personalizado e a segunda cadeia de caracteres é o padrão de filtro selecionado pelo usuário. Na primeira vez que o aplicativo cria a caixa de diálogo, você especifica a primeira cadeia de caracteres, que pode ser qualquer cadeia de caracteres não vazia. Quando o usuário seleciona um arquivo, a caixa de diálogo copia o padrão de filtro atual para a segunda cadeia de caracteres. O padrão de filtro preservado pode ser um dos padrões especificados no buffer lpstrFilter ou pode ser um padrão de filtro digitado pelo usuário. O sistema usa as cadeias de caracteres para inicializar o filtro de arquivo definido pelo usuário na próxima vez que a caixa de diálogo for criada. Se o membro nFilterIndex for zero, a caixa de diálogo usará o filtro personalizado.

Se esse membro for NULL, a caixa de diálogo não preservará os padrões de filtro definidos pelo usuário.

Se esse membro não for NULL, o valor do membro nMaxCustFilter deverá especificar o tamanho, em caracteres, do buffer lpstrCustomFilter .

nMaxCustFilter

Tipo: DWORD

O tamanho, em caracteres, do buffer identificado por lpstrCustomFilter. Esse buffer deve ter pelo menos 40 caracteres. Esse membro será ignorado se lpstrCustomFilter for NULL ou apontar para uma cadeia de caracteres NULL .

nFilterIndex

Tipo: DWORD

O índice do filtro selecionado no momento no controle Tipos de Arquivo . O buffer apontado por lpstrFilter contém pares de cadeias de caracteres que definem os filtros. O primeiro par de cadeias de caracteres tem um valor de índice de 1, o segundo par 2 e assim por diante. Um índice de zero indica o filtro personalizado especificado por lpstrCustomFilter. Você pode especificar um índice na entrada para indicar a descrição inicial do filtro e o padrão de filtro para a caixa de diálogo. Quando o usuário seleciona um arquivo, nFilterIndex retorna o índice do filtro exibido no momento. Se nFilterIndex for zero e lpstrCustomFilter for NULL, o sistema usará o primeiro filtro no buffer lpstrFilter . Se todos os três membros forem zero ou NULL, o sistema não usará filtros e não mostrará nenhum arquivo no controle de lista de arquivos da caixa de diálogo.

lpstrFile

Tipo: LPTSTR

O nome do arquivo usado para inicializar o controle de edição Nome do Arquivo . O primeiro caractere desse buffer deve ser NULL se a inicialização não for necessária. Quando a função GetOpenFileName ou GetSaveFileName retorna com êxito, esse buffer contém o designador da unidade, o caminho, o nome do arquivo e a extensão do arquivo selecionado.

Se o sinalizador OFN_ALLOWMULTISELECT estiver definido e o usuário selecionar vários arquivos, o buffer conterá o diretório atual seguido pelos nomes de arquivo dos arquivos selecionados. Para caixas de diálogo de estilo Explorer, as cadeias de caracteres de diretório e nome de arquivo são separadas null, com um caractere NULL extra após o sobrenome do arquivo. Para caixas de diálogo de estilo antigo, as cadeias de caracteres são separadas por espaço e a função usa nomes de arquivo curtos para nomes de arquivo com espaços. Você pode usar a função FindFirstFile para converter entre nomes de arquivo longos e curtos. Se o usuário selecionar apenas um arquivo, a cadeia de caracteres lpstrFile não terá um separador entre o caminho e o nome do arquivo.

Se o buffer for muito pequeno, a função retornará FALSE e a função CommDlgExtendedError retornará FNERR_BUFFERTOOSMALL. Nesse caso, os dois primeiros bytes do buffer lpstrFile contêm o tamanho necessário, em bytes ou caracteres.

nMaxFile

Tipo: DWORD

O tamanho, em caracteres, do buffer apontado por lpstrFile. O buffer deve ser grande o suficiente para armazenar o caminho e a cadeia de caracteres ou cadeias de caracteres de nome de arquivo, incluindo o caractere NULL de terminação. As funções GetOpenFileName e GetSaveFileName retornarão FALSE se o buffer for muito pequeno para conter as informações do arquivo. O buffer deve ter pelo menos 256 caracteres.

lpstrFileTitle

Tipo: LPTSTR

O nome do arquivo e a extensão (sem informações de caminho) do arquivo selecionado. Esse membro pode ser NULL.

nMaxFileTitle

Tipo: DWORD

O tamanho, em caracteres, do buffer apontado por lpstrFileTitle. Esse membro será ignorado se lpstrFileTitle for NULL.

lpstrInitialDir

Tipo: LPCTSTR

O diretório inicial. O algoritmo para selecionar o diretório inicial varia em diferentes plataformas.

Windows 7:

  1. Se lpstrInitialDir tiver o mesmo valor que foi passado na primeira vez que o aplicativo usou uma caixa de diálogo Abrir ou Salvar como , o caminho selecionado mais recentemente pelo usuário será usado como o diretório inicial.
  2. Caso contrário, se lpstrFile contiver um caminho, esse caminho será o diretório inicial.
  3. Caso contrário, se lpstrInitialDir não for NULL, ele especificará o diretório inicial.
  4. Se lpstrInitialDir for NULL e o diretório atual contiver arquivos dos tipos de filtro especificados, o diretório inicial será o diretório atual.
  5. Caso contrário, o diretório inicial é o diretório de arquivos pessoais do usuário atual.
  6. Caso contrário, o diretório inicial será a pasta Desktop.
Windows 2000/XP/Vista:
  1. Se lpstrFile contiver um caminho, esse caminho será o diretório inicial.
  2. Caso contrário, lpstrInitialDir especifica o diretório inicial.
  3. Caso contrário, se o aplicativo tiver usado uma caixa de diálogo Abrir ou Salvar como no passado, o caminho usado mais recentemente será selecionado como o diretório inicial. No entanto, se um aplicativo não for executado por muito tempo, seu caminho selecionado salvo será descartado.
  4. Se lpstrInitialDir for NULL e o diretório atual contiver arquivos dos tipos de filtro especificados, o diretório inicial será o diretório atual.
  5. Caso contrário, o diretório inicial é o diretório de arquivos pessoais do usuário atual.
  6. Caso contrário, o diretório inicial será a pasta Desktop.

lpstrTitle

Tipo: LPCTSTR

Uma cadeia de caracteres a ser colocada na barra de título da caixa de diálogo. Se esse membro for NULL, o sistema usará o título padrão (ou seja, Salvar como ou Abrir).

Flags

Tipo: DWORD

Um conjunto de sinalizadores de bits que você pode usar para inicializar a caixa de diálogo. Quando a caixa de diálogo retorna, ela define esses sinalizadores para indicar a entrada do usuário. Esse membro pode ser uma combinação dos sinalizadores a seguir.

Valor Significado
OFN_ALLOWMULTISELECT
0x00000200
A caixa de listagem Nome do Arquivo permite várias seleções. Se você também definir o sinalizador OFN_EXPLORER, a caixa de diálogo usará a interface do usuário no estilo Explorer; caso contrário, ela usará a interface do usuário de estilo antigo.

Se o usuário selecionar mais de um arquivo, o buffer lpstrFile retornará o caminho para o diretório atual seguido pelos nomes de arquivo dos arquivos selecionados. O membro nFileOffset é o deslocamento, em bytes ou caracteres, para o primeiro nome de arquivo e o membro nFileExtension não é usado. Para caixas de diálogo de estilo Explorer, as cadeias de caracteres de diretório e nome de arquivo são separadas null, com um caractere NULL extra após o sobrenome do arquivo. Esse formato permite que as caixas de diálogo no estilo do Explorador retornem nomes de arquivos longos que incluem espaços. Para caixas de diálogo de estilo antigo, as cadeias de caracteres de nome de arquivo e diretório são separadas por espaços e a função usa nomes de arquivo curtos para nomes de arquivo com espaços. Você pode usar a função FindFirstFile para converter entre nomes de arquivo longos e curtos.

Se você especificar um modelo personalizado para uma caixa de diálogo de estilo antigo, a definição da caixa de listagem Nome do Arquivo deverá conter o valor LBS_EXTENDEDSEL .

OFN_CREATEPROMPT
0x00002000
Se o usuário especificar um arquivo que não existe, esse sinalizador fará com que a caixa de diálogo solicite ao usuário permissão para criar o arquivo. Se o usuário optar por criar o arquivo, a caixa de diálogo será fechada e a função retornará o nome especificado; caso contrário, a caixa de diálogo permanecerá aberta. Se você usar esse sinalizador com o sinalizador OFN_ALLOWMULTISELECT , a caixa de diálogo permitirá que o usuário especifique apenas um arquivo inexistente.
OFN_DONTADDTORECENT
0x02000000
Impede que o sistema adicione um link ao arquivo selecionado no diretório do sistema de arquivos que contém os documentos usados mais recentemente pelo usuário. Para recuperar o local desse diretório, chame a função SHGetSpecialFolderLocation com o sinalizador CSIDL_RECENT .
OFN_ENABLEHOOK
0x00000020
Habilita a função hook especificada no membro lpfnHook .
OFN_ENABLEINCLUDENOTIFY
0x00400000
Faz com que a caixa de diálogo envie CDN_INCLUDEITEM mensagens de notificação para o procedimento de gancho OFNHookProc quando o usuário abre uma pasta. A caixa de diálogo envia uma notificação para cada item na pasta recém-aberta. Essas mensagens permitem controlar quais itens a caixa de diálogo exibe na lista de itens da pasta.
OFN_ENABLESIZING
0x00800000
Permite que a caixa de diálogo estilo Explorer seja redimensionada usando o mouse ou o teclado. Por padrão, as caixas de diálogo Abrir e Salvar como no estilo Explorer permitem que a caixa de diálogo seja redimensionada independentemente de esse sinalizador estar definido. Esse sinalizador só será necessário se você fornecer um procedimento de gancho ou um modelo personalizado. A caixa de diálogo de estilo antigo não permite redimensionamento.
OFN_ENABLETEMPLATE
0x00000040
O membro lpTemplateName é um ponteiro para o nome de um recurso de modelo de caixa de diálogo no módulo identificado pelo membro hInstance . Se o sinalizador OFN_EXPLORER estiver definido, o sistema usará o modelo especificado para criar uma caixa de diálogo que seja um filho da caixa de diálogo padrão de estilo Explorer. Se o sinalizador OFN_EXPLORER não estiver definido, o sistema usará o modelo para criar uma caixa de diálogo de estilo antigo que substitui a caixa de diálogo padrão.
OFN_ENABLETEMPLATEHANDLE
0x00000080
O membro hInstance identifica um bloco de dados que contém um modelo de caixa de diálogo pré-carregada. O sistema ignorará lpTemplateName se esse sinalizador for especificado. Se o sinalizador OFN_EXPLORER estiver definido, o sistema usará o modelo especificado para criar uma caixa de diálogo que seja um filho da caixa de diálogo padrão de estilo Explorer. Se o sinalizador OFN_EXPLORER não estiver definido, o sistema usará o modelo para criar uma caixa de diálogo de estilo antigo que substitui a caixa de diálogo padrão.
OFN_EXPLORER
0x00080000
Indica que todas as personalizações feitas na caixa de diálogo Abrir ou Salvar como usam os métodos de personalização de estilo Explorer. Para obter mais informações, consulte Explorer-Style Hook Procedures and Explorer-Style Custom Templates.

Por padrão, as caixas de diálogo Abrir e Salvar como usam a interface do usuário no estilo Explorer, independentemente de esse sinalizador ser definido. Esse sinalizador só será necessário se você fornecer um procedimento de gancho ou um modelo personalizado ou definir o sinalizador OFN_ALLOWMULTISELECT .

Se você quiser a interface do usuário de estilo antigo, omita o sinalizador OFN_EXPLORER e forneça um modelo de estilo antigo ou um procedimento de gancho de substituição. Se você quiser o estilo antigo, mas não precisar de um modelo ou procedimento de gancho personalizado, basta fornecer um procedimento de gancho que sempre retorna FALSE.

OFN_EXTENSIONDIFFERENT
0x00000400
O usuário digitou uma extensão de nome de arquivo diferente da extensão especificada por lpstrDefExt. A função não usará esse sinalizador se lpstrDefExt for NULL.
OFN_FILEMUSTEXIST
0x00001000
O usuário pode digitar apenas nomes de arquivos existentes no campo de entrada Nome do Arquivo . Se esse sinalizador for especificado e o usuário inserir um nome inválido, o procedimento da caixa de diálogo exibirá um aviso em uma caixa de mensagem. Se esse sinalizador for especificado, o sinalizador OFN_PATHMUSTEXIST também será usado. Esse sinalizador pode ser usado em uma caixa de diálogo Abrir . Ele não pode ser usado com uma caixa de diálogo Salvar como .
OFN_FORCESHOWHIDDEN
0x10000000
Força a exibição de arquivos ocultos e do sistema, substituindo assim a configuração do usuário para mostrar ou não arquivos ocultos. No entanto, um arquivo marcado como sistema e oculto não é mostrado.
OFN_HIDEREADONLY
0x00000004
Oculta a caixa somente leitura marcar.
OFN_LONGNAMES
0x00200000
Para caixas de diálogo de estilo antigo, esse sinalizador faz com que a caixa de diálogo use nomes de arquivo longos. Se esse sinalizador não for especificado ou se o sinalizador OFN_ALLOWMULTISELECT também estiver definido, as caixas de diálogo de estilo antigo usarão nomes de arquivo curtos (formato 8.3) para nomes de arquivo com espaços. Explorer estilo caixas de diálogo ignoram esse sinalizador e sempre exibem nomes de arquivo longos.
OFN_NOCHANGEDIR
0x00000008
Restaura o diretório atual para seu valor original se o usuário alterou o diretório durante a pesquisa de arquivos.

Esse sinalizador é ineficaz para GetOpenFileName.

OFN_NODEREFERENCELINKS
0x00100000
Direciona a caixa de diálogo para retornar o caminho e o nome do arquivo do atalho selecionado (. Arquivo LNK). Se esse valor não for especificado, a caixa de diálogo retornará o caminho e o nome do arquivo referenciado pelo atalho.
OFN_NOLONGNAMES
0x00040000
Para caixas de diálogo de estilo antigo, esse sinalizador faz com que a caixa de diálogo use nomes de arquivo curtos (formato 8.3). Explorer estilo caixas de diálogo ignoram esse sinalizador e sempre exibem nomes de arquivo longos.
OFN_NONETWORKBUTTON
0x00020000
Oculta e desabilita o botão Rede .
OFN_NOREADONLYRETURN
0x00008000
O arquivo retornado não tem a caixa somente leitura marcar selecionada e não está em um diretório protegido por gravação.
OFN_NOTESTFILECREATE
0x00010000
O arquivo não é criado antes que a caixa de diálogo seja fechada. Esse sinalizador deverá ser especificado se o aplicativo salvar o arquivo em um compartilhamento de rede create-nonmodify. Quando um aplicativo especifica esse sinalizador, a biblioteca não marcar para proteção de gravação, um disco completo, uma porta de unidade aberta ou proteção de rede. Os aplicativos que usam esse sinalizador devem executar operações de arquivo com cuidado, pois um arquivo não pode ser reaberto depois de fechado.
OFN_NOVALIDATE
0x00000100
As caixas de diálogo comuns permitem caracteres inválidos no nome do arquivo retornado. Normalmente, o aplicativo de chamada usa um procedimento de gancho que verifica o nome do arquivo usando a mensagem FILEOKSTRING . Se a caixa de texto no controle de edição estiver vazia ou não contiver nada além de espaços, as listas de arquivos e diretórios serão atualizadas. Se a caixa de texto no controle de edição contiver qualquer outra coisa, nFileOffset e nFileExtension serão definidos como valores gerados pela análise do texto. Nenhuma extensão padrão é adicionada ao texto, nem o texto é copiado para o buffer especificado por lpstrFileTitle. Se o valor especificado por nFileOffset for menor que zero, o nome do arquivo será inválido. Caso contrário, o nome do arquivo é válido e nFileExtension e nFileOffset podem ser usados como se o sinalizador OFN_NOVALIDATE não tivesse sido especificado.
OFN_OVERWRITEPROMPT
0x00000002
Faz com que a caixa de diálogo Salvar como gere uma caixa de mensagem se o arquivo selecionado já existir. O usuário deve confirmar se deseja substituir o arquivo.
OFN_PATHMUSTEXIST
0x00000800
O usuário pode digitar apenas caminhos válidos e nomes de arquivo. Se esse sinalizador for usado e o usuário digitar um caminho inválido e um nome de arquivo no campo de entrada Nome do Arquivo , a função da caixa de diálogo exibirá um aviso em uma caixa de mensagem.
OFN_READONLY
0x00000001
Faz com que a caixa somente leitura marcar seja selecionada inicialmente quando a caixa de diálogo é criada. Esse sinalizador indica o estado da caixa somente leitura marcar quando a caixa de diálogo é fechada.
OFN_SHAREAWARE
0x00004000
Especifica que, se uma chamada para a função OpenFile falhar devido a uma violação de compartilhamento de rede, o erro será ignorado e a caixa de diálogo retornará o nome do arquivo selecionado. Se esse sinalizador não estiver definido, a caixa de diálogo notificará o procedimento de gancho quando ocorrer uma violação de compartilhamento de rede para o nome de arquivo especificado pelo usuário. Se você definir o sinalizador OFN_EXPLORER , a caixa de diálogo enviará a mensagem CDN_SHAREVIOLATION para o procedimento de gancho. Se você não definir OFN_EXPLORER, a caixa de diálogo enviará a mensagem registrada SHAREVISTRING para o procedimento de gancho.
OFN_SHOWHELP
0x00000010
Faz com que a caixa de diálogo exiba o botão Ajuda . O membro hwndOwner deve especificar a janela para receber as mensagens registradas HELPMSGSTRING que a caixa de diálogo envia quando o usuário clica no botão Ajuda . Uma caixa de diálogo no estilo Explorer envia uma mensagem de notificação CDN_HELP para o procedimento de gancho quando o usuário clica no botão Ajuda.

nFileOffset

Tipo: WORD

O deslocamento baseado em zero, em caracteres, desde o início do caminho até o nome do arquivo na cadeia de caracteres apontada por lpstrFile. Para a versão ANSI, esse é o número de bytes; para a versão Unicode, esse é o número de caracteres. Por exemplo, se lpstrFile apontar para a cadeia de caracteres a seguir, "c:\dir1\dir2\file.ext", esse membro conterá o valor 13 para indicar o deslocamento da cadeia de caracteres "file.ext". Se o usuário selecionar mais de um arquivo, nFileOffset será o deslocamento para o nome do primeiro arquivo.

nFileExtension

Tipo: WORD

O deslocamento baseado em zero, em caracteres, desde o início do caminho até a extensão de nome de arquivo na cadeia de caracteres apontada por lpstrFile. Para a versão ANSI, esse é o número de bytes; para a versão Unicode, esse é o número de caracteres. Normalmente, a extensão de nome de arquivo é a subcadeia de caracteres que segue a última ocorrência do caractere de ponto ("."). Por exemplo, txt é a extensão do nome de arquivo readme.txt, html a extensão de readme.txt.html. Portanto, se lpstrFile apontar para a cadeia de caracteres "c:\dir1\dir2\readme.txt", esse membro conterá o valor 20. Se lpstrFile apontar para a cadeia de caracteres "c:\dir1\dir2\readme.txt.html", esse membro conterá o valor 24. Se lpstrFile apontar para a cadeia de caracteres "c:\dir1\dir2\readme.txt.html.", esse membro conterá o valor 29. Se lpstrFile apontar para uma cadeia de caracteres que não contenha nenhum caractere ".", como "c:\dir1\dir2\readme", esse membro conterá zero.

lpstrDefExt

Tipo: LPCTSTR

A extensão padrão. GetOpenFileName e GetSaveFileName acrescentam essa extensão ao nome do arquivo se o usuário não digitar uma extensão. Essa cadeia de caracteres pode ter qualquer comprimento, mas apenas os três primeiros caracteres são acrescentados. A cadeia de caracteres não deve conter um ponto (.). Se esse membro for NULL e o usuário não digitar uma extensão, nenhuma extensão será acrescentada.

lCustData

Tipo: LPARAM

Dados definidos pelo aplicativo que o sistema passa para o procedimento de gancho identificado pelo membro lpfnHook . Quando o sistema envia a mensagem WM_INITDIALOG para o procedimento de gancho, o parâmetro lParam da mensagem é um ponteiro para a estrutura OPENFILENAME especificada quando a caixa de diálogo foi criada. O procedimento de gancho pode usar esse ponteiro para obter o valor lCustData .

lpfnHook

Tipo: LPOFNHOOKPROC

Um ponteiro para um procedimento de gancho. Esse membro é ignorado, a menos que o membro Flags inclua o sinalizador OFN_ENABLEHOOK .

Se o sinalizador OFN_EXPLORER não estiver definido no membro Flags , lpfnHook será um ponteiro para um procedimento de gancho OFNHookProcOldStyle que recebe mensagens destinadas à caixa de diálogo. O procedimento de gancho retorna FALSE para passar uma mensagem para o procedimento da caixa de diálogo padrão ou TRUE para descartar a mensagem.

Se OFN_EXPLORER estiver definido, lpfnHook será um ponteiro para um procedimento de gancho OFNHookProc . O procedimento de gancho recebe mensagens de notificação enviadas da caixa de diálogo. O procedimento de gancho também recebe mensagens para quaisquer controles adicionais que você definiu especificando um modelo de caixa de diálogo filho. O procedimento de gancho não recebe mensagens destinadas aos controles padrão da caixa de diálogo padrão.

lpTemplateName

Tipo: LPCTSTR

O nome do recurso de modelo de caixa de diálogo no módulo identificado pelo membro hInstance . Para recursos de caixa de diálogo numerados, esse pode ser um valor retornado pela macro MAKEINTRESOURCE . Esse membro é ignorado, a menos que o sinalizador OFN_ENABLETEMPLATE seja definido no membro Flags . Se o sinalizador OFN_EXPLORER estiver definido, o sistema usará o modelo especificado para criar uma caixa de diálogo que seja filho da caixa de diálogo padrão de estilo Explorer. Se o sinalizador OFN_EXPLORER não estiver definido, o sistema usará o modelo para criar uma caixa de diálogo de estilo antigo que substitui a caixa de diálogo padrão.

lpEditInfo

Esse membro é compilado condicionalmente (usando #ifdef _MAC) para que ele seja aplicável somente aos computadores Macintosh do Motorola 68K e não aos sistemas operacionais cliente Windows.

lpstrPrompt

Esse membro é compilado condicionalmente (usando #ifdef _MAC) para que ele seja aplicável somente aos computadores Macintosh do Motorola 68K e não aos sistemas operacionais cliente Windows.

pvReserved

Tipo: void*

Este membro é reservado.

dwReserved

Tipo: DWORD

Este membro é reservado.

FlagsEx

Tipo: DWORD

Um conjunto de sinalizadores de bits que você pode usar para inicializar a caixa de diálogo. Atualmente, esse membro pode ser zero ou o sinalizador a seguir.

Valor Significado
OFN_EX_NOPLACESBAR
0x00000001
Se esse sinalizador estiver definido, a barra de locais não será exibida. Se esse sinalizador não estiver definido, as caixas de diálogo no estilo Explorer incluirão uma barra de locais que contém ícones para pastas comumente usadas, como Favoritos e Área de Trabalho.

Comentários

Por motivos de compatibilidade, a Barra de Locais ficará oculta se Flags estiver definido como OFN_ENABLEHOOK e lStructSizefor OPENFILENAME_SIZE_VERSION_400.

Observação

O cabeçalho commdlg.h define OPENFILENAME 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

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho commdlg.h (inclua Windows.h)

Confira também

Biblioteca de caixas de diálogo comuns

Conceitual

Getopenfilename

Getsavefilename

Outros recursos

Referência

SHGetSpecialFolderLocation