OFNHookProc

O procedimento de gancho de OFNHookProc é um função callback application-defined ou library-defined que é usado com os estilo do Explorer Abrir e Salvar como caixas de diálogo comuns. A função recebe mensagens de notificação enviadas da caixa de diálogo comum. A função também recebe mensagens para quaisquer controles adicionais que você definiu, especificando um modelo de diálogo filho.

O LPOFNHOOKPROC tipo define um ponteiro para este função callback. OFNHookProc é um espaço reservado para o nome função application-defined ou library-defined.

Se você não especificar o Sinalizar OFN_EXPLORER quando você cria uma caixa de diálogo comum Abrir ou Salvar como , e você quer um procedimento de gancho, você deve usar um procedimento de gancho de OFNHookProcOldStyle de estilo antigo. Neste caso, a caixa de diálogo terá a interface do usuário de estilo antigo.

(UINT OFNHookProc de retorno de chamada HWND  hdlg, / / manipular a janela de diálogo de filhoUINTpasta uiMsg, / / mensagem identificadorWPARAMwParam, / / parâmetro da mensagemLPARAMlParam / / parâmetro da mensagem);
 

Parâmetros

hdlg
Identificador para a caixa de diálogo do filho da caixa de diálogo Abrir ou Salvar como . Use a função GetParent para obter o identificador para a janela de caixa de diálogo Abrir ou Salvar como.
pasta uiMsg
Identifica a mensagem sendo recebida.
wParam
Especifica informações adicionais sobre a mensagem. O significado exato depende do valor da pasta uiMsg parâmetro.
lParam
Especifica informações adicionais sobre a mensagem. O significado exato depende do valor da pasta uiMsg parâmetro.

Se a pasta uiMsg parâmetro indica o WM_INITDIALOG mensagem, lParam é um ponteiro para uma estrutura OPENFILENAME contendo que os valores especificados quando a caixa de diálogo foi criada.

Retornar valores

Se o procedimento gancho retorna zero, o procedimento de caixa de diálogo padrão processa a mensagem.

Se o procedimento gancho retorna um valor diferente de zero, o procedimento de caixa de diálogo padrão ignora a mensagem.

Para as mensagens de notificação de CDN_SHAREVIOLATION e CDN_FILEOK , o procedimento de gancho deve retornar um valor diferente de zero para indicar que ele tem usado o SetWindowLong função para definir um diferente de zero valor DWL_MSGRESULT.

Observações

Quando você usa o GetOpenFileName ou GetSaveFileName funções para criar um Explorer-estilo Abrir ou Salvar como caixa de diálogo comum, você pode fornecer um procedimento de gancho de OFNHookProc . Para habilitar o procedimento gancho, use a OPENFILENAME estrutura que é passado para a função de criação diálogo. Especifica o ponteiro para o procedimento gancho na lpfnHook membro e especificar o sinalizador OFN_ENABLEHOOK in o sinalizadores membro.

Se você fornecer um procedimento de gancho para uma caixa de diálogo comum do estilo do Explorer, o sistema cria uma caixa de diálogo que é um filho da caixa de diálogo padrão. O procedimento de gancho atua como o procedimento de diálogo para a caixa de diálogo filho. Esta caixa de diálogo filho baseia-se no modelo especificado na estrutura de OPENFILENAME , ou é uma caixa de diálogo de filho de padrão se nenhum modelo for especificado. A caixa de diálogo filho é criada quando o procedimento caixa de diálogo usar como padrão está processando sua mensagem WM_INITDIALOG . Depois que a caixa de diálogo filho processa sua própria WM_INITDIALOG mensagem, o procedimento de diálogo padrão move os controles padrão, se necessário, para dar espaço para quaisquer controles adicionais da caixa de diálogo filho. O sistema envia a mensagem de notificação CDN_INITDONE para o procedimento gancho.

O procedimento de gancho não recebe mensagens destinadas os controles padrão da caixa de diálogo padrão. Você pode subclasse controla o padrão, mas isso não é recomendado porque ele pode tornar o aplicativo incompatível com versões futuras do caixa de diálogo comum. No entanto, as caixas de diálogo comuns do explorador-estilo fornecem um conjunto de mensagens que o procedimento de gancho pode usar para monitorar e controlar a caixa de diálogo. Estes incluem um conjunto de mensagens de notificação enviadas na caixa de diálogo, bem como mensagens que pode enviar para recuperar informações da caixa de diálogo. Para obter uma lista completa dessas mensagens, consulte Os procedimentos de gancho de estilo do Explorer.

Se o procedimento gancho processa a mensagem WM_CTLCOLORDLG , ela deve retornar um válido identificador pincel de pintura de segundo plano da caixa de diálogo. Em geral, se processa qualquer WM_CTLCOLOR message, ela deve retornar um válido identificador pincel de pintura de segundo plano do controle especificado.

Não chame o EndDialog função do procedimento de gancho. Em vez disso, o procedimento de gancho pode chamar o PostMessage função para postar uma mensagem WM_COMMAND com o valor IDABORT para o procedimento caixa de diálogo. Lançamento IDABORT Fecha a caixa diálogo e faz com que a função de caixa de diálogo retornar FALSE. Se você precisa saber por que o procedimento gancho fechado a caixa de diálogo, você deve fornecer seu próprio mecanismo de comunicação entre o procedimento de gancho e seu aplicativo.

QuickInfo

nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Sem suporte.
Cabeçalho:Declaradas no commdlg.h.
Biblioteca de importação:Definido pelo usuário.

Ver também

Visão geral de biblioteca de caixa de diálogo comum, funções de caixa de diálogo comuns, GetOpenFileName, GetSaveFileName, OFNHookProcOldStyle, OPENFILENAME

Index