На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

OFNHookProc



An OFNHookProc hook procedure is an application-defined or library-defined callback procedure that is used with the Explorer-style Open and Save As common dialog boxes. The hook procedure receives notification messages sent from the common dialog box. The hook procedure also receives messages for any additional controls that you defined by specifying a child dialog template.

If you do not specify the OFN_EXPLORER flag when you create an Open or Save As common dialog box, and you want a hook procedure, you must use an old-style OFNHookProcOldStyle hook procedure. In this case, the dialog box will have the old-style user interface.

UINT APIENTRY OFNHookProc(

HWND hdlg, // handle to child dialog window
UINT uiMsg, // message identifier
WPARAM wParam, // message parameter
LPARAM lParam // message parameter
);


Parameters

hdlg

Handle to the child dialog box of the Open or Save As dialog box. Use the GetParent function to get the handle to the Open or Save As dialog box window.

uiMsg

Identifies the message being received.

wParam

Specifies additional information about the message. The exact meaning depends on the value of the uiMsg parameter.

lParam

Specifies additional information about the message. The exact meaning depends on the value of the uiMsg parameter.

If the uiMsg parameter indicates the WM_INITDIALOG message, lParam is a pointer to an OPENFILENAME structure containing the values specified when the dialog box was created.



Return Values

If the hook procedure returns zero, the default dialog box procedure processes the message.
If the hook procedure returns a nonzero value, the default dialog box procedure ignores the message.
For the CDN_SHAREVIOLATION and CDN_FILEOK notification messages, the hook procedure should return a nonzero value to indicate that it has used the SetWindowLong function to set a nonzero DWL_MSGRESULT value.

Remarks

When you use the GetOpenFileName or GetSaveFileName functions to create an Explorer-style Open or Save As common dialog box, you can provide an OFNHookProc hook procedure. To enable the hook procedure, use the OPENFILENAME structure that you passed to the dialog creation function. Specify the pointer to the hook procedure in the lpfnHook member and specify the OFN_ENABLEHOOK flag in the Flags member.

If you provide a hook procedure for an Explorer-style common dialog box, the system creates a dialog box that is a child of the default dialog box. The hook procedure acts as the dialog procedure for the child dialog. This child dialog is based on the template you specified in the OPENFILENAME structure, or it is a default child dialog if no template is specified. The child dialog is created when the default dialog procedure is processing its WM_INITDIALOG message. After the child dialog processes its own WM_INITDIALOG message, the default dialog procedure moves the standard controls, if necessary, to make room for any additional controls of the child dialog. The system then sends the CDN_INITDONE notification message to the hook procedure.

The hook procedure does not receive messages intended for the standard controls of the default dialog box. You can subclass the standard controls, but this is discouraged because it may make your application incompatible with future versions of the common dialog box. However, the Explorer-style common dialogs provide a set of messages that the hook procedure can use to monitor and control the dialog. These include a set of WM_NOTIFY notification messages sent from the dialog, as well as messages that you can send to retrieve information from the dialog. For a complete list of these messages, see "Explorer-Style Hook Procedures."

If the hook procedure processes the WM_CTLCOLORDLG message, it must return a valid brush handle for painting the background of the dialog box. In general, if it processes any WM_CTLCOLOR* message, it must return a valid brush handle for painting the background of the specified control.
Do not call the EndDialog function from the hook procedure. Instead, the hook procedure can call the PostMessage function to post a WM_COMMAND message with the IDABORT value to the dialog box procedure. Posting IDABORT closes the dialog box and causes the dialog box function to return FALSE. If you need to know why the hook procedure closed the dialog box, you must provide your own communication mechanism between the hook procedure and your application.

OFNHookProc is a placeholder for the application-defined or library-defined function name. The LPOFNHOOKPROC type is a pointer to either an OFNHookProc
or OFNHookProcOldStyle hook procedure.

See Also

GetOpenFileName, GetSaveFileName, OFNHookProcOldStyle, OPENFILENAME


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

OFNHookProc



Процедура захвата OFNHookProc является определенным приложением или определившим библиотечную процедуру возврата, которая использована Исследователем-стилем Открытым и Сохраняемым Как общие диалоговые ящики. Рычажная процедура получает сообщения уведомления посланные из общего диалогового ящика. Рычажная процедура также получает сообщения для любых дополнительных элементов управления, которые Вы определили определением диалогового шаблона ребенка.

Если Вы не определяете флаг OFN_EXPLORER когда Вы создаете Открывать или Сохранять Как общий диалоговый ящик, и Вы хотите рычажную процедуру, Вы должны использовать старую-процедуру захвата стиля OFNHookProcOldStyle. В этом случае, диалоговый ящик будет иметь старый стиль пользавателя интерфейса.

UINT APIENTRY OFNHookProc(

HWND hdlg, // РУЧКА в диалоговое окно ребенка UINT uiMsg, // идентификатора сообщения WPARAM wParam, // параметр сообщения LPARAM lParam // параметр сообщения
);


Параметры

hdlg

Прооперируйте диалоговый ящик ребенка Открывать или Сохранять Как диалоговый ящик. Используйте функцию GetParent, чтобы получать ручке в Открывать или Сохранять Как диалоговое окно ящика.

uiMsg

Идентифицирует сообщение, получанное.

wParam

Определяет дополнительную информацию о сообщении. Точный намереваться зависеть от величины параметра uiMsg.

lParam

Определяет дополнительную информацию о сообщении. Точный намереваться зависеть от величины параметра uiMsg.

Если параметр uiMsg указывает сообщение WM_INITDIALOG, lParam - указатель в структуре OPENFILENAME, содержащей величины определялся когда диалоговый блок был создан.



Обратные Величины

Если рычажная процедура возвращает нуль, по умолчанию процессы процедуры диалогового блока сообщение.
Если рычажная процедура возвращает ненулевую величину, по умолчанию диалоговый блок процедуры игнорирует сообщение.
Для CDN_SHAREVIOLATION и сообщений уведомления CDN_FILEOK, рычажная процедура должна возвращать ненулевую величину, чтобы указывать, что она использовала функцию SetWindowLong, чтобы устанавливать ненулевую величину DWL_MSGRESULT.

Замечания

Когда Вы используете GetOpenFileName или функции GetSaveFileName, чтобы создавать стиль Explorer-Открытый или Сохранять Как общий диалоговый блок, Вы можете обеспечить процедуру захвата OFNHookProc. Для того, чтобы приспосабливаться рычажную процедуру, используйте структуру OPENFILENAME, которую Вы прошли в диалоговую функцию создания. Определите указатель в рычажную процедуру в элементе lpfnHook и определяйте флаг OFN_ENABLEHOOK в элементе Флагов.

Если Вы обеспечиваете рычажную процедуру для общего диалогового блока стиля Explorer-, система создает диалогового блока, который - ребенок по умолчанию диалогового блока. Рычажная процедура действует как диалоговая процедура для диалога ребенка. Этот диалог ребенка основан в шаблоне, который Вы определили в структуре OPENFILENAME, или это - по умолчанию диалог ребенка если никакой шаблон не определен. Диалог ребенка создан когда по умолчанию диалоговая процедура обрабатывает свое сообщение WM_INITDIALOG. После того, как диалог ребенка обработает свое собственное сообщение WM_INITDIALOG, по умолчанию диалоговая процедура перемещает стандартные элементы управления, если необходимо, чтобы освобождать для любого дополнительного управления ребенком общаться. Система затем посылает сообщение уведомления CDN_INITDONE в рычажную процедуру.

Рычажная процедура не получает сообщения предназначенные для стандартного управления по умолчанию диалоговым блоком. Вы можете подкласс стандарт регулируется, но это отговорен поскольку это может сделать вашим приложением несовместимым с будущими версиями общего диалога боксировать. Тем не менее, общие диалоги стиля Explorer-обеспечивают установку сообщений, которые рычажная процедура может использовать, чтобы проверять и управлять диалогом. Эти включают установку сообщений уведомления WM_NOTIFY посланного из диалога, а также сообщения, которые Вы можете послать извлекать информацию из диалога. Для полного списка этих сообщений, смотри "Процедуры Захвата Explorer-Style."

Если рычажная процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвращать правильную ручку щетки для живописи фона диалогового блока. В общих чертах, если это обрабатывает любое WM_CTLCOLOR* сообщение, это должно возвращать правильную ручку щетки для живописи фона определенного управления.
Не вызывайте функцию EndDialog из рычажной процедуры. Взамен, рычажная процедура может вызвать функцию PostMessage, чтобы посылать сообщение WM_COMMAND с величиной IDABORT диалоговому блоку процедуры. Почтовое отправления IDABORT закрывает диалогового блока и заставляет диалоговую функцию блока, чтобы возвращать ЛОЖЬ. Если Вам нужно знать почему рычажная процедура закрывала диалогового блока, Вы должны обеспечить вашему собственному механизму связи между рычажной процедурой и вашим приложением.

OFNHookProc - метка-заполнитель для определенный приложение или определивший библиотечное функциональное имя. Тип LPOFNHOOKPROC является указателем на или OFNHookProc или процедура захвата OFNHookProcOldStyle.

Смотри Также

GetOpenFileName, GetSaveFileName, OFNHookProcOldStyle, OPENFILENAME


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz