Función CallWindowProcA (winuser.h)
Pasa la información del mensaje al procedimiento de ventana especificado.
Sintaxis
LRESULT CallWindowProcA(
[in] WNDPROC lpPrevWndFunc,
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam
);
Parámetros
[in] lpPrevWndFunc
Tipo: WNDPROC de
Procedimiento de ventana anterior. Si este valor se obtiene llamando a la función de GetWindowLong con el parámetro nIndex establecido en GWL_WNDPROC o DWL_DLGPROC, en realidad es la dirección de un procedimiento de ventana o cuadro de diálogo, o un valor interno especial que solo tiene sentido para CallWindowProc.
[in] hWnd
Tipo: HWND
Identificador del procedimiento de ventana para recibir el mensaje.
[in] Msg
Tipo: UINT
Mensaje.
[in] wParam
Tipo: WPARAM de
Información adicional específica del mensaje. El contenido de este parámetro depende del valor del parámetro msg de .
[in] lParam
Tipo: LPARAM
Información adicional específica del mensaje. El contenido de este parámetro depende del valor del parámetro msg de .
Valor devuelto
Tipo: LRESULT
El valor devuelto especifica el resultado del procesamiento del mensaje y depende del mensaje enviado.
Observaciones
Use la función CallWindowProc para la subclases de ventana. Normalmente, todas las ventanas con la misma clase comparten un procedimiento de ventana. Una subclase es una ventana o un conjunto de ventanas con la misma clase cuyos mensajes son interceptados y procesados por otro procedimiento de ventana (o procedimientos) antes de pasarse al procedimiento de ventana de la clase .
La función SetWindowLong crea la subclase cambiando el procedimiento de ventana asociado a una ventana determinada, lo que hace que el sistema llame al nuevo procedimiento de ventana en lugar del anterior. Una aplicación debe pasar los mensajes no procesados por el nuevo procedimiento de ventana al procedimiento de ventana anterior llamando a CallWindowProc. Esto permite a la aplicación crear una cadena de procedimientos de ventana.
Si se define STRICT, el parámetro lpPrevWndFunc tiene el tipo de datos WNDPROC. El tipo de WNDPROC de
LRESULT (CALLBACK* WNDPROC) (HWND, UINT, WPARAM, LPARAM);
Si no se define STRICT, el parámetro lpPrevWndFunc tiene el tipo de datos FARPROC. El tipo de FARPROC se declara de la siguiente manera:
int (FAR WINAPI * FARPROC) ()
En C, la declaración
#ifdef STRICT
WNDPROC MyWindowProcedure
#else
FARPROC MyWindowProcedure
#endif
...
lResult = CallWindowProc(MyWindowProcedure, ...) ;
Para obtener más información sobre las funciones declaradas con listas de argumentos vacías, consulte Lenguaje de programación de C++, Segunda edición, por Bjarne Stroustrup.
La función callWindowProc
Ejemplos
Para obtener un ejemplo, vea Subclasing a Window
Nota
El encabezado winuser.h define CallWindowProc como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
winuser.h (incluya Windows.h) |
biblioteca de |
User32.lib |
DLL de |
User32.dll |
conjunto de API de |
ext-ms-win-ntuser-window-l1-1-4 (introducido en Windows 10, versión 10.0.14393) |
Consulte también
conceptual de
de referencia de
procedimientos de ventana de