---
name: "CallWindowProcA"
section: "3w"
platform: "linux"
package: "libwine-dev"
version: "1.4.1-4"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/CallWindowProcA"
---

# CallWindowProcA(3w)

## NAME

**CallWindowProcA** (USER32.@)

## SYNOPSIS

LRESULT CallWindowProcA\
  (\
   WNDPROC *func*,\
   HWND    *hwnd*,\
   UINT    *msg*,\
   WPARAM  *wParam*,\
   LPARAM  *lParam*\
  )

## PARAMS

*func* **\[In\]**  window procedure.

*hwnd* **\[In\]**  target window.

*msg* **\[In\]**  message.

*wParam* **\[In\]**  message dependent parameter.

**\[In\]**  message dependent parameter.

## DESCRIPTION

The **CallWindowProc(3w)** function invokes the Windows(tm) procedure \_func\_, with \_hwnd\_ as the target window, the message specified by \_msg\_, and the message parameters \_wParam\_ and \_lParam\_.

Some kinds of argument conversion may be done, I'm not sure what.

CallWindowProc() may be used for Windows(tm) subclassing. Use SetWindowLong() to set a new Windows(tm) procedure for Windows(tm) of the subclass, and handle subclassed messages in the new windows procedure. The new Windows(tm) procedure may then use **CallWindowProc(3w)** with \_func\_ set to the parent class's Windows(tm) procedure to dispatch the message to the superclass.

## RETURNS

The return value is message dependent.

## CONFORMANCE

ECMA-**234**, Win32

## IMPLEMENTATION

Declared in **"winuser.h"**.

Implemented in **"dlls/user32/winproc.c"**.

Debug channel **"win"**.
