Compartir a través de


Función de devolución de llamada WNDPROC (winuser.h)

Función de devolución de llamada, que define en la aplicación, que procesa los mensajes enviados a una ventana. El tipo WNDPROC define un puntero a esta función de devolución de llamada. El nombre WndProc es un marcador de posición para el nombre de la función que define en la aplicación.

Syntax

WNDPROC Wndproc;

LRESULT Wndproc(
  HWND unnamedParam1,
  UINT unnamedParam2,
  WPARAM unnamedParam3,
  LPARAM unnamedParam4
)
{...}

Parámetros

unnamedParam1

Tipo: HWND

Identificador de la ventana. Este parámetro se denomina normalmente hWnd.

unnamedParam2

Tipo: UINT

Mensaje. Este parámetro suele denominar uMsg.

Para obtener listas de los mensajes proporcionados por el sistema, consulte Mensajes definidos por el sistema.

unnamedParam3

Tipo: WPARAM

Información adicional del mensaje. Este parámetro se denomina normalmente wParam.

El contenido del parámetro wParam depende del valor del parámetro uMsg .

unnamedParam4

Tipo: LPARAM

Información adicional del mensaje. Este parámetro se denomina normalmente lParam.

El contenido del parámetro lParam depende del valor del parámetro uMsg .

Valor devuelto

Tipo: LRESULT

El valor devuelto es el resultado del procesamiento del mensaje y depende del mensaje enviado.

Observaciones

Nota:

Los parámetros se definen en el encabezado sin nombres: typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);. Por lo tanto, el bloque de sintaxis los enumera como unnamedParam1 - unnamedParam4. Puedes asignar un nombre a estos parámetros en la aplicación. Sin embargo, normalmente se denominan como se muestra en las descripciones de parámetros. Las plantillas de proyecto de Visual Studio usarán estos nombres (o algo similar, dependiendo de la plantilla).

Si la aplicación se ejecuta en una versión de 32 bits del sistema operativo Windows, las excepciones no detectadas de la devolución de llamada se pasarán a los controladores de excepciones de nivel superior de la aplicación cuando estén disponibles. A continuación, el sistema llama al filtro de excepciones no controladas para controlar la excepción antes de finalizar el proceso. Si el PCA está habilitado, ofrecerá corregir el problema la próxima vez que ejecute la aplicación.

Sin embargo, si la aplicación se ejecuta en una versión de 64 bits del sistema operativo Windows o WOW64, debe tener en cuenta que un sistema operativo de 64 bits controla excepciones no detectadas de forma diferente en función de su arquitectura de procesador de 64 bits, arquitectura de excepciones y convención de llamada. En la tabla siguiente se resumen todas las formas posibles de que un sistema operativo Windows de 64 bits o WOW64 controle las excepciones no detectadas.

Tipo de comportamiento Cómo controla el sistema las excepciones no detectadas
1 El sistema suprime las excepciones no detectadas.
2 El sistema finaliza primero el proceso y, a continuación, el Asistente de compatibilidad de programas (PCA) ofrece corregirlo la próxima vez que ejecute la aplicación. Para deshabilitar la mitigación de PCA, agregue una sección Compatibilidad al manifiesto de aplicación.
3 El sistema llama a los filtros de excepción, pero suprime las excepciones no detectadas cuando sale del ámbito de devolución de llamada, sin invocar a los controladores asociados.

En la tabla siguiente se muestra cómo una versión de 64 bits del sistema operativo Windows y WOW64 controla las excepciones no detectadas. Observe que el tipo de comportamiento 2 solo se aplica a la versión de 64 bits del sistema operativo Windows 7 y versiones posteriores.

Sistema operativo WOW64 Windows de 64 bits
Windows XP 3 1
Windows Server 2003 3 1
Windows Vista 3 1
Windows Vista SP1 1 1
Windows 7 y versiones posteriores 1 2

Nota:

En Windows 7 con SP1 (32 bits, 64 bits o WOW64), el sistema llama al filtro de excepciones no controladas para controlar la excepción antes de finalizar el proceso. Si el Asistente de compatibilidad de programas (PCA) está habilitado, se ofrecerá corregir el problema la próxima vez que ejecute la aplicación.

Si necesita controlar excepciones en la aplicación, puede usar el control estructurado de excepciones para hacerlo. Para obtener más información sobre cómo usar el control de excepciones estructurados, consulte Control estructurado de excepciones.

Requisitos

Requirement Importancia
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
Header winuser.h (incluya windows.h)

Consulte también