Поделиться через


Функция обратного вызова 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)

См. также раздел