Уведомление WM_CANCELJOURNAL


Сообщение WM_CANCELJOURNAL посылается в приложение, когда пользователь отменяет действия по ведению журнала приложения. Сообщение помещается в очередь сообщений с дескриптором окна равным ПУСТО (NULL).

Синтаксис

WM_CANCELJOURNAL

Возвращаемое значение

Это сообщение не возвращает значение. Оно предназначено, чтобы обрабатываться внутри основного цикла или процедурой фильтра (hook) GetMessage, а не оконной процедурой.

Замечания

Режимы записи и воспроизведения журнала  является режимами навязываемыми системе, которые дают возможность прикладной программе последовательно записывать или воспроизводить ввод данных пользователем. Система вводит эти режимы, когда приложение устанавливает процедуру фильтра (hook) JournalRecordProc или JournalPlaybackProc. Когда система находится в любом из них, приложения должны перехватывать чтение ввода данных из очереди ввода данных. Если какое-либо  одно из приложений прекращает читать ввод данных, в то время, когда система находится в режиме ведения журнала, другие прикладные программы вынуждены ждать.

Чтобы гарантировать устойчивость системы,  которая не может быть в "подвешенном" состоянии из-за какого-либо приложения, система автоматически отменяет любые действия ведения журнала, когда пользователь нажимает CTRL+ESC или CTRL+ALT+DEL. В этом случае система отцепляет любые процедуры фильтра, ведущие запись в журнал и помещает в очередь сообщение WM_CANCELJOURNAL, с дескриптором окна равным ПУСТО (NULL), приложения, которое устанавливало фильтр, ведущий запись в журнал.

Сообщение WM_CANCELJOURNAL имеет дескриптор окна ПУСТО (NULL), поэтому оно не может быть пересылаться оконной процедуре. Есть два способа для приложения, чтобы видеть сообщение WM_CANCELJOURNAL: если приложение запущено в своем собственном главном цикле, оно должно перехватить это сообщение между его вызовом функции  GetMessage или PeekMessage и вызовом функции DispatchMessage. Если приложение запущено не в своем собственном главном цикле, оно должно установить процедуру фильтра (hook) GetMsgProc (через вызов функции SetWindowsHookEx определяющей тип фильтра (hook) WH_GETMESSAGE), который следит за сообщениями.

Когда приложение видит сообщение WM_CANCELJOURNAL,  оно может предположить две вещи: пользователь преднамеренно отменил запись журнала или режим воспроизведения, а система уже отцепила какую-либо запись журнала или процедуры фильтра (hook) воспроизведения.

Обратите внимание! на то, что то, что комбинации клавиш, упомянутых выше (CTRL+ESC или CTRL+ALT+DEL) заставляют систему отменить ведение журнала. Если имеется хотя бы одно приложение в "подвешенном" состоянии, они дают пользователю средство восстановления. Код виртуальной клавиши VK_CANCEL (обычно реализуемый как комбинация клавиш CTRL+BREAK) является сигналом для приложения, находящегося в режиме записи журнала, за которым оно должно следить как сигналом о том, что пользователь желает отменить действие ведения журнала. Различие в том, что наблюдение за VK_CANCEL - это предполагаемый характер работы для приложений ведущих журнал, тогда как CTRL+ESC или CTRL+ALT+DEL заставляют систему отменять ведение журнала независимо от режима работы приложения ведущего журнал. 

Смотри также

Обзор Фильтр-процедуры (hooks) событий, Уведомления, используемые фильтрами (hook), DispatchMessageGetMessage JournalPlaybackProcJournalRecordProcGetMsgProcPeekMessageSetWindowsHookEx

Размещение и совместимость WM_CANCELJOURNAL

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.5 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Минимальная версия DLL

Нет

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz