OPENFILENAME

A OPENFILENAME estrutura contém informações que o GetOpenFileName e GetSaveFileName funções usam para inicializar um Abrir ou Salvar como caixa de diálogo comum. 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.

typedef struct tagOFN {/ / ofn DWORD lStructSize; 
    HWND hwndOwner; 
    HINSTANCE hInstance; 
    LPCTSTR lpstrFilter; 
    LPTSTR lpstrCustomFilter; 
    DWORD nMaxCustFilter; 
    DWORD nFilterIndex; 
    LPTSTR lpstrFile; 
    DWORD nMaxFile; 
    LPTSTR lpstrFileTitle; 
    DWORD nMaxFileTitle; 
    LPCTSTR lpstrInitialDir; 
    LPCTSTR lpstrTitle; 
    DWORD Sinalizadores; 
    PALAVRA nFileOffset; 
    PALAVRA nFileExtension; 
    LPCTSTR lpstrDefExt; 
    DWORD lCustData; 
    LPOFNHOOKPROC lpfnHook; 
    LPCTSTR lpTemplateName; 
} OPENFILENAME 

 

Membros

lStructSize
Especifica o comprimento, em bytes, da estrutura.
hwndOwner
Identifica a janela que possui a caixa de diálogo. Esse membro pode ser qualquer válido identificador janela, ou ele pode ser NULL se a caixa de diálogo não possui nenhum proprietário.
hInstance
Se o sinalizador OFN_ENABLETEMPLATEHANDLE é definido na sinalizadores membro, hInstance é o identificador de um objeto de memória que contém um modelo caixa diálogo. Se o sinalizador OFN_ENABLETEMPLATE for definido, hInstance identifica um módulo que contém um modelo de caixa de diálogo nomeado pela lpTemplateName membro. Se nenhum sinalizador estiver definido, esse membro será ignorado.

Se o Sinalizar OFN_EXPLORER estiver definido, o sistema usa o modelo especificado para criar uma caixa de diálogo que é um filho da caixa de diálogo estilo do Explorer padrão. Se o Sinalizar OFN_EXPLORER não estiver definido, o sistema usa o modelo para criar uma caixa de diálogo estilo antigo que substitui a caixa de diálogo padrão.

lpstrFilter
Ponteiro para um buffer que contém pares de seqüências de caracteres terminada por caractere nulo filtro. A última seqüência de caracteres no buffer deve ser finalizada pelo NULL dois caracteres.

A primeira seqüência de caracteres em cada par é uma Cadeia de caracteres de Exibir que descreve o filtro (por exemplo, "arquivos de texto"), e a segunda seqüência de caracteres Especifica o filtro padrão (por exemplo, "*.TXT"). Para especificar múltiplo filtro padrões para uma Cadeia de caracteres exibir único, use um ponto e vírgula para separar os padrões (por exemplo, "*.TXT; *.DOC; *.BAK"). Uma seqüência de caracteres de padrão pode ser uma combinação de caracteres de nome de arquivo válido e o caractere de curinga asterisco. Não inclua espaços na cadeia de caracteres padrão.

O sistema não altera a ordem dos filtros. Ele exibe-os na caixa de combinaçãotipos de arquivo, na ordem especificada na lpstrFilter .

Se lpstrFilter é NULL, a caixa de diálogo não exibir todos os filtros.

lpstrCustomFilter
Ponteiro para um buffer estático que contém um par de seqüências de caracteres terminada por caractere nulo filtro para manter o padrão de filtro escolhido pelo usuário. A primeira seqüência de caracteres é a seqüência de caracteres de Exibir que descreve o filtro personalizado, e a segunda seqüência de caracteres é o padrão de filtro selecionado pelo usuário. A primeira vez que seu aplicativo cria a caixa de diálogo, você especifica 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 atual padrão de filtro para a segunda cadeia de caracteres. O padrão de filtro preservado pode ser um dos padrões especificados na lpstrFilter reserva, ou pode ser um filtro padrão digitado pelo usuário. O sistema usa as seqüências de caracteres para inicializar o filtro de arquivo definido pelo usuário na próxima vez que a caixa de diálogo é criada. Se o membro nFilterIndex for zero, a caixa de diálogo usa o filtro personalizado.

Se esse membro é NULL, a caixa de diálogo não preserva padrões de filtro definido pelo usuário.

Se esse membro não é NULL, o valor da nMaxCustFilter membro deve especificar o tamanho, em bytes (versão ANSI) ou 16-bit caracteres (versão Unicode), do buffer lpstrCustomFilter.

nMaxCustFilter
Especifica o tamanho, em bytes ou caracteres, do buffer identificado por lpstrCustomFilter. Esta reserva deve ser pelo menos 40 caracteres de comprimento. Este membro será ignorado se lpstrCustomFilter for NULL ou pontos para uma seqüência de caracteres NULL.
nFilterIndex
Especifica o índice do filtro atualmente selecionado no Controlarar de tipos de arquivo. A reserva apontada pelo lpstrFilter contém pares de seqüências de caracteres que definem os filtros. O primeiro par de seqüências de caracteres tem um valor de índice 1, o segundo par 2 e assim por diante. Um índice de zero indica o filtro personalizado especificado pelo lpstrCustomFilter. Você pode especificar um índice na entrada para indicar o filtro inicial descrição e filtro padrão para a caixa de diálogo. Quando o usuário seleciona um arquivo, nFilterIndex retorna o índice do filtro atualmente exibido.

Se nFilterIndex for zero e lpstrCustomFilter for NULL, o sistema usa o primeiro filtro na lpstrFilter reserva. Se todos os três membros são zero ou nulo, o sistema não usa os filtros e não mostra todos os arquivos no Controlarar de lista de arquivo da caixa de diálogo.

lpstrFile
Ponteiro para uma reserva que contém um nome de arquivo usado para inicializar o nome do arquivo de Controlarar de editar. O primeiro caractere desse buffer deve ser NULL se a inicialização não é necessária. Quando o GetOpenFileName ou GetSaveFileName função retorna com êxito, esta reserva contém o designador unidade, caminho, nome de arquivo e extensão do arquivo selecionado.

Se o Sinalizar de OFN_ALLOWMULTISELECT definido, e o usuário selecionar Múltiplo arquivos, o buffer contém o diretório atual seguido por nomes de arquivo dos arquivos selecionados. Para caixas de diálogo do explorador-estilo, as seqüências de caracteres de diretório e nome de arquivo são NULL separado, com um caractere nulo extra após o último nome do arquivo. Para caixas de diálogo do estilo antigo, as seqüências de caracteres são separada por espaço e a função usa nomes de arquivo curtos para nomes de arquivos com espaços. Você pode usar o FindFirstFile função para converter entre nomes de arquivo longos e curtos.

Se o buffer é muito pequeno, a função retorna FALSE e o CommDlgExtendedError função retorna FNERR_BUFFERTOOSMALL. Neste caso, os dois primeiros bytes das lpstrFile reserva contêm o exigido tamanho, em bytes ou caracteres.

nMaxFile
Especifica o tamanho, em bytes (versão ANSI) ou 16-bit caracteres (versão Unicode), a reserva apontada pelo lpstrFile. O GetOpenFileName e GetSaveFileName funções retornar FALSE se o buffer é muito pequeno para conter as informações do arquivo. O buffer deve ter pelo menos 256 caracteres.
lpstrFileTitle
Ponteiro para uma reserva que recebe o nome de arquivo e extensão (sem informações de caminho) do arquivo selecionado. Esse membro pode ser NULL.
nMaxFileTitle
Especifica o tamanho, em bytes (versão ANSI) ou 16-bit caracteres (versão Unicode), a reserva apontada pelo lpstrFileTitle. Este membro será ignorado se lpstrFileTitle é NULL.
lpstrInitialDir
Ponteiro para uma Cadeia de caracteres que especifica o diretório inicial do arquivo.

Windows NT 5.0 e posterior; Windows 98 e posterior:

Se lpstrInitalDir é NULL e o diretório atual contém todos os arquivos dos tipos de filtro especificado, o diretório inicial é o diretório atual.

Se lpstrInitalDir é NULL e o diretório atual não conter todos os arquivos dos tipos de filtro especificado, o diretório inicial é o diretório de arquivos pessoais do usuário atual. Para especificar o diretório de arquivos pessoais do usuário atual como o diretório inicial, defina lpstrInitialDir como o caminho retornado chamando o SHGetSpecialFolderLocation função com o sinalizador CSIDL_PERSONAL.

Versões anteriores do Windows e Windows NT:

Se lpstrInitalDir for NULL, o diretório inicial é o diretório atual.

lpstrTitle
Ponteiro para uma Cadeia de caracteres para ser colocado na barra de título da caixa de diálogo. Se esse membro é NULL, o sistema usa o título padrão (ou seja, Salvar como ou Abrir).
Sinalizadores
Um conjunto de bit sinalizadores que você pode usar para inicializar a caixa diálogo. Quando a caixa de diálogo retorna, ele define esses sinalizadores para indicar a entrada do usuário. Esse membro pode ser uma combinação dos sinalizadores a seguir:
Bandeira Significado
OFN_ALLOWMULTISELECT
Especifica que a caixa de listanome do arquivopermite várias seleções. Se você também definir o Sinalizar OFN_EXPLORER, a caixa de diálogo usa a interface de usuário do estilo do Explorer; caso contrário, ele usa a interface do usuário de estilo antigo .

Se o usuário selecionar mais de um arquivo, o buffer lpstrFile retorna o caminho para o diretório atual seguido por nomes de arquivo dos arquivos selecionados. O membro nFileOffset é o deslocamento, em bytes ou caracteres, para o primeiro nome de arquivo, e o membro de nFileExtension não é usado. Para caixas de diálogo do explorador-estilo, as seqüências de caracteres de diretório e nome de arquivo são NULL separado, com um caractere nulo extra após o último nome do arquivo. Este formato permite que as caixas de diálogo do estilo do Explorer retornar nomes de arquivo longos que contêm espaços. Para caixas de diálogo do estilo antigo, as seqüências de caracteres de diretório e nome de arquivo são separadas por espaços e a função usa nomes de arquivo curtos para nomes de arquivos com espaços. Você pode usar o FindFirstFile função para converter entre nomes de arquivo longos e curtos.

Se você especificar um modelo Personalizar para uma caixa de diálogo estilo antigo, a definição da caixa de lista Nome do arquivo deve conter o valor LBS_EXTENDEDSEL.

OFN_CREATEPROMPT
Se o usuário especifica um arquivo que não existe, este sinalizador fará com que a caixa de diálogo para prompt o usuário de permissão criar o arquivo. Se o usuário optar por criar o arquivo, a caixa de diálogo é fechada e a função retorna o nome especificado; caso contrário, a caixa de diálogo permanece aberta. Se você usar esse sinalizador com o Sinalizar de OFN_ALLOWMULTISELECT, a caixa de diálogo permite ao usuário especificar somente um arquivo inexistente.
OFN_ENABLEHOOK
Permite que a função de gancho especificada na lpfnHook membro.
OFN_ENABLESIZING
Windows NT 5.0, Windows 98:Permite que a caixa de diálogo do estilo do Explorer ser redimensionada usando o mouse ou o teclado. Por padrão, as caixas de diálogo do estilo do Explorer Abrir e Salvar como permite que a caixa de diálogo ser redimensionada independentemente de saber se este sinalizador estiver definido. Este sinalizador é necessário somente se você fornecer um procedimento de gancho ou modelo personalizado. A caixa de diálogo estilo antigo não permite redimensionamento.
OFN_ENABLETEMPLATE
Indica que a lpTemplateName membro aponta para o nome de um recurso de modelo de diálogo no módulo identificado pelo hInstance membro.

Se o Sinalizar OFN_EXPLORER estiver definido, o sistema usa o modelo especificado para criar uma caixa de diálogo que é um filho da caixa de diálogo estilo do Explorer padrão. Se o Sinalizar OFN_EXPLORER não estiver definido, o sistema usa o modelo para criar uma caixa de diálogo estilo antigo que substitui a caixa de diálogo padrão.

OFN_ENABLETEMPLATEHANDLE
Indica que o hInstance membro identifica um bloco dados que contém um modelo caixa diálogo pré-carregadas. O sistema ignora a lpTemplateName se este sinalizador for especificado.

Se o Sinalizar OFN_EXPLORER estiver definido, o sistema usa o modelo especificado para criar uma caixa de diálogo que é um filho da caixa de diálogo estilo do Explorer padrão. Se o Sinalizar OFN_EXPLORER não estiver definido, o sistema usa o modelo para criar uma caixa de diálogo estilo antigo que substitui a caixa de diálogo padrão.

OFN_EXPLORER
Indica que quaisquer personalizações feitas à caixa de diálogo Abrir ou Salvar como usam os novos métodos de personalização do explorador-estilo. Para obter mais informações, consulte Procedimentos de gancho de estilo do Explorer e Explorer-estilo Personalizar modelos.

Por padrão, as caixas de diálogo Abrir e Salvar como usam a interface de usuário do estilo do Explorer independentemente de saber se este sinalizador é definido. Este sinalizador é necessário somente se você fornece um procedimento de gancho ou um modelo Personalizar, defina o Sinalizar de OFN_ALLOWMULTISELECT.

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

OFN_EXTENSIONDIFFERENT
Especifica que o usuário digitado um extensão de nome de arquivo que difere a extensão especificada por lpstrDefExt. A função não usa esse sinalizador se lpstrDefExt é NULL.
OFN_FILEMUSTEXIST
Especifica que o usuário pode digitar apenas nomes de ficheiros existentes no camponome do arquivode entrada. Se este sinalizador for especificado e o usuário insere um nome inválido, o procedimento caixa diálogo exibe um aviso em uma caixa de mensagem. Se este sinalizador for especificado, o sinalizador OFN_PATHMUSTEXIST também é usado .
OFN_HIDEREADONLY
Oculta a caixa de seleçãosomente leitura .
OFN_LONGNAMES
Para caixas de diálogo do estilo antigo, este sinalizador faz com que a caixa de diálogo usar nomes de arquivo longos. Se este sinalizador não for especificado, ou se também for definido o Sinalizar OFN_ALLOWMULTISELECT, caixas de diálogo do estilo antigo usam nomes de arquivo curtos (formato 8.3) para nomes de arquivos com espaços.

Caixas de diálogo do estilo do Explorer ignoram este sinalizador e sempre exibem nomes de arquivos longos.

OFN_NOCHANGEDIR
Restaura o diretório atual para seu valor original, se o usuário alterou o diretório ao procurarar por limas.
OFN_NODEREFERENCELINKS
Direciona a caixa de diálogo para retornar o caminho e o nome do arquivo de atalho selecionado (.Arquivo LNK). Se esse valor não for especificado, a caixa de diálogo retorna o caminho e o nome do arquivo do arquivo referenciado pelo atalho
OFN_NOLONGNAMES
Para caixas de diálogo do estilo antigo, este sinalizador fará com que a caixa de diálogo usar nomes de arquivo curtos (formato 8.3).

Caixas de diálogo do estilo do Explorer ignoram este sinalizador e sempre exibem nomes de arquivos longos.

OFN_NONETWORKBUTTON
Oculta e desativa o botão ' rede '.
OFN_NOREADONLYRETURN
Especifica que o arquivo retornado não tem leitura somente caixa de seleção marcada e não está em um diretório protegido contra gravação.
OFN_NOTESTFILECREATE
Especifica que o arquivo não é criado antes que a caixa de diálogo é fechada. Esse sinalizador deve ser especificado se o aplicativo salva o arquivo em um compartilhamento de rede criar-nonmodify. Quando um aplicativo especifica esse sinalizador, a biblioteca não Marcar para proteção contra gravação, um disco cheio, uma porta da unidade aberta ou proteção de rede. Aplicativos usando esse sinalizador devem executar arquivo operações com cuidado, porque um arquivo não pode ser reaberto depois que ele é fechado.
OFN_NOVALIDATE
Especifica que o comum caixas de diálogo permitam caracteres inválidos no nome de 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 Controlarar de editar está vazia ou contém apenas espaços, as listas de arquivos e diretórios são atualizadas. Se a caixa de texto no Controlarar de Editar contém qualquer outra coisa, nFileOffset e nFileExtension são definidas como valores gerados por analisar o texto. Nenhuma extensão padrão é adicionado ao texto, nem é o texto copiado para o buffer especificado pelo lpstrFileTitle.
Se o valor especificado por nFileOffset é menor que zero, o nome do arquivo é inválido. Caso contrário, o nome do arquivo é válido, e nFileExtension e nFileOffset podem ser usados como se não tivesse sido especificado o sinalizador OFN_NOVALIDATE.
OFN_OVERWRITEPROMPT
Faz com que o Salvar como caixa de diálogo gerar uma caixa de mensagem se o arquivo selecionado já existe. O usuário deverá confirmar se deseja substituir o arquivo.
OFN_PATHMUSTEXIST
Especifica que o usuário pode digitar apenas nomes de arquivos e caminhos válidos. Se este sinalizador é usado e o usuário digita um inválido caminho e nome do arquivo no campo de entrada denome do arquivo, a função de caixa de diálogo exibe um aviso em uma caixa de mensagem .
OFN_READONLY
Faz com que a leiturasomente caixa de seleção ser marcada inicialmente quando a caixa diálogo é criada. Este sinalizador indica o estado da caixa de seleçãosomente leituraquando a caixa de diálogo é fechada .
OFN_SHAREAWARE
Especifica que, se um chamar para o função OpenFile falha devido a uma violação de compartilhamento de rede, o erro será ignorado e a caixa de diálogo retorna o nome do arquivo selecionado.

Se este sinalizador não estiver definido, a caixa de diálogo notifica seu procedimento gancho quando ocorre uma violação de compartilhamento de rede para o nome do arquivo especificado pelo usuário. Se você definir o Sinalizar OFN_EXPLORER, a caixa de diálogo envia a mensagem CDN_SHAREVIOLATION para o procedimento de gancho. Se você não definir OFN_EXPLORER, a caixa de diálogo envia a mensagem registrada de SHAREVISTRING para o procedimento gancho.

OFN_SHOWHELP
Faz com que a caixa de diálogo Exibir no botão Ajuda . O hwndOwner membro deve especificar a janela para receber a HELPMSGSTRING registadas mensagens de caixa de diálogo envia quando o usuário clica no botão Ajuda.

Uma caixa de diálogo do estilo do Explorer envia uma mensagem de notificação CDN_HELP para o procedimento gancho quando o usuário clica no botão Ajuda.


nFileOffset
Especifica o deslocamento baseada em zero, em bytes (versão ANSI) ou 16-bit caracteres (versão Unicode), desde o início do caminho para o nome do arquivo na seqüência de caracteres apontada pelo lpstrFile. Por exemplo, se lpstrFile aponta para a seguinte seqüência de caracteres, "c:\dir1\dir2\file.ext", esse membro contém o valor 13 para indicar o deslocamento de seqüência de caracteres "seqüência".

Se o usuário selecionar mais de um arquivo, nFileOffset é o deslocamento para o primeiro nome de arquivo.

nFileExtension
Especifica o deslocamento baseada em zero, em bytes (versão ANSI) ou 16-bit caracteres (versão Unicode), desde o início do caminho para a extensão de nome de arquivo na seqüência de caracteres apontada pelo lpstrFile. Por exemplo, se lpstrFile aponta para a seguinte seqüência de caracteres, "c:\dir1\dir2\file.ext", esse membro contém o valor 18. Se o usuário não tipo uma extensão e lpstrDefExt é NULL, esse membro especifica um deslocamento para o caractere nulo final. Se o usuário digitou "." como o último caractere no nome de arquivo, esse membro Especifica zero.
lpstrDefExt
Aponta para um buffer que contém a extensão padrão. GetOpenFileName e GetSaveFileName acrescentam esta extensão para o nome do arquivo se o usuário não digitar uma extensão de. Essa Cadeia de caracteres pode ser qualquer comprimento, mas somente os três primeiros caracteres são acrescentados. A Cadeia de caracteres não deve conter um ponto (.). Se esse membro é NULL e o usuário não digitar uma extensão, sem extensão é acrescentado.
lCustData
Especifica dados application-defined que o sistema passa para o procedimento gancho identificado pelo lpfnHook membro. Quando o sistema envia o WM_INITDIALOG mensagem para o procedimento gancho, lParam parâmetro a mensagem é que um ponteiro para o OPENFILENAME estrutura especificado quando a caixa de diálogo foi criada. O procedimento de gancho pode usar esse ponteiro para obter o valor de lCustData.
lpfnHook
Ponteiro para um procedimento de gancho. Esse membro é ignorado a menos que a sinalizadores membro inclui o sinalizador OFN_ENABLEHOOK.

Se o Sinalizar OFN_EXPLORER não é definido na sinalizadores membro, lpfnHook é um ponteiro para um procedimento de gancho de OFNHookProcOldStyle que recebe mensagens destinadas a caixa de diálogo. O procedimento gancho retorna FALSE para transmitir uma mensagem para o procedimento de caixa de diálogo padrão ou TRUE para descartar a mensagem.

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

lpTemplateName
Ponteiro para uma seqüência de caracteres null-terminated que nomeia um recurso de modelo de diálogo no módulo identificado pelo hInstance membro. Para recursos de caixa de diálogo numerada, isso pode ser um valor retornado pela MAKEINTRESOURCE macro. Esse membro é ignorado a menos que o sinalizador OFN_ENABLETEMPLATE é definido na sinalizadores membro.

Se o Sinalizar OFN_EXPLORER estiver definido, o sistema usa o modelo especificado para criar uma caixa de diálogo que é um filho da caixa de diálogo estilo do Explorer padrão. Se o Sinalizar OFN_EXPLORER não estiver definido, o sistema usa o modelo para criar uma caixa de diálogo estilo antigo que substitui a caixa de diálogo padrão.

QuickInfo

nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Requer versão 1.0 ou posterior.
Cabeçalho:Declaradas no commdlg.h.
Unicode:Definidos como estruturas ANSI e Unicode.

Ver também

Visão geral de biblioteca de caixa de diálogo comum, estruturas de caixa de diálogo comuns, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation

Index