Функция обратного вызова WNDPROC (winuser.h)
Функция обратного вызова, определяемая в приложении, которая обрабатывает сообщения, отправляемые в окно. Тип WNDPROC определяет указатель на эту функцию обратного вызова. Имя WndProc — это заполнитель для имени функции, определенной в приложении.
Синтаксис
WNDPROC Wndproc;
LRESULT Wndproc(
HWND unnamedParam1,
UINT unnamedParam2,
WPARAM unnamedParam3,
LPARAM unnamedParam4
)
{...}
Параметры
unnamedParam1
Тип: HWND
Дескриптор окна. Этот параметр обычно называется hWnd.
unnamedParam2
Тип: UINT
Сообщение. Этот параметр обычно называется uMsg.
Списки системных сообщений см. в разделе Системные сообщения.
unnamedParam3
Тип: WPARAM
Дополнительные сведения о сообщении. Этот параметр обычно называется wParam.
Содержимое параметра wParam зависит от значения параметра uMsg .
unnamedParam4
Тип: LPARAM
Дополнительные сведения о сообщении. Этот параметр обычно называется lParam.
Содержимое параметра lParam зависит от значения параметра uMsg .
Возвращаемое значение
Тип: LRESULT
Возвращаемое значение является результатом обработки сообщения и зависит от отправленного сообщения.
Комментарии
Если приложение выполняется в 32-разрядной версии операционной системы Windows, необхваченные исключения из обратного вызова будут передаваться в обработчики исключений более высокого уровня приложения, если они доступны. Затем система вызывает необработанные фильтры исключений для обработки исключения до завершения процесса. Если PCA включен, он предложит устранить проблему при следующем запуске приложения.
Однако если приложение работает в 64-разрядной версии операционной системы Windows или WOW64, следует помнить, что 64-разрядная операционная система обрабатывает неуловимые исключения по-разному в зависимости от 64-разрядной архитектуры процессора, архитектуры исключений и соглашения о вызовах. В следующей таблице перечислены все возможные способы обработки необхваченных исключений в 64-разрядной операционной системе Windows или WOW64.
Тип поведения | Как система обрабатывает неперехваченные исключения |
---|---|
1 | Система подавляет все неперехваченные исключения. |
2 | Система сначала завершает процесс, а затем помощник по совместимости программ (PCA) предлагает исправить его при следующем запуске приложения. Вы можете отключить устранение рисков PCA, добавив раздел Совместимость в манифест приложения. |
3 | Система вызывает фильтры исключений, но подавляет все неперехваченные исключения при выходе из обратного вызова область, не вызывая связанные обработчики. |
В следующей таблице показано, как 64-разрядная версия операционной системы Windows и WOW64 обрабатывает необхваченные исключения. Обратите внимание, что тип поведения 2 применяется только к 64-разрядной версии операционной системы Windows 7 и более поздних версий.
Операционная система | WOW64 | 64-разрядная версия Windows |
---|---|---|
Windows XP | 3 | 1 |
Windows Server 2003 | 3 | 1 |
Windows Vista | 3 | 1 |
Windows Vista с пакетом обновления 1 (SP1) | 1 | 1 |
Windows 7 и более поздние версии | 1 | 2 |
Примечание
В Windows 7 с пакетом обновления 1 (SP1) (32-разрядная, 64-разрядная версия или WOW64) система вызывает необработанные фильтры исключений для обработки исключения до завершения процесса. Если включен помощник по совместимости программ (PCA), он предложит устранить проблему при следующем запуске приложения.
Если вам нужно обрабатывать исключения в приложении, для этого можно использовать структурированную обработку исключений. Дополнительные сведения об использовании структурированной обработки исключений см. в разделе Структурированная обработка исключений.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | winuser.h (включая windows.h) |