---
name: "WINPROC_SetProc"
section: "3w"
platform: "linux"
package: "wine-doc"
version: "0.0.980315-1"
release: "Debian 2.0 (Hamm)"
platforms: ["linux"]
url: "https://new.carta.tech/WINPROC_SetProc"
---

# WINPROC\_SetProc(3w)

WINPROC\_SetProc

## NAME

WINPROC\_SetProc - WINPROC\_SetProc

## SYNOPSIS

**BOOL32 WINPROC\_SetProc**\
 **(**\
\
 	**HWINDOWPROC \*pFirst,**\
\
 	**WNDPROC16 func,**\
\
 	**WINDOWPROCTYPE type,**\
\
 	**WINDOWPROCUSER user**\
 **);**

## DESCRIPTION

Set the window procedure for a window or class. There are three tree classes of winproc callbacks:\

1\) Class  -\> wp                 	-	not subclassed class  -\> wp -\> wp -\> wp -\> wp 	-	SetClassLong() /           /\
 2\) Window -'           /		-	not subclassed window -\> wp -\> wp '           	-	SetWindowLong()\

3\) Timer  -\> wp                   	-	SetTimer()

Initially, winproc of the window points to the current winproc thunk of its class. Subclassing prepends a new thunk to the window winproc chain at the head of the list. Thus, window thunk list includes class thunks and the latter are preserved when the window is destroyed.

## SEE ALSO

[WINPROC\_Init(3w)](/WINPROC_Init/3w.md), [WINPROC\_GetProc(3w)](/WINPROC_GetProc/3w.md), [WINPROC\_FreeProc(3w)](/WINPROC_FreeProc/3w.md), [WINPROC\_GetProcType(3w)](/WINPROC_GetProcType/3w.md), [WINPROC\_MapMsg32ATo32W(3w)](/WINPROC_MapMsg32ATo32W/3w.md), [WINPROC\_UnmapMsg32ATo32W(3w)](/WINPROC_UnmapMsg32ATo32W/3w.md), [WINPROC\_MapMsg32WTo32A(3w)](/WINPROC_MapMsg32WTo32A/3w.md), [WINPROC\_UnmapMsg32WTo32A(3w)](/WINPROC_UnmapMsg32WTo32A/3w.md), [WINPROC\_MapMsg16To32A(3w)](/WINPROC_MapMsg16To32A/3w.md), [WINPROC\_UnmapMsg16To32A(3w)](/WINPROC_UnmapMsg16To32A/3w.md), [WINPROC\_MapMsg16To32W(3w)](/WINPROC_MapMsg16To32W/3w.md), [WINPROC\_UnmapMsg16To32W(3w)](/WINPROC_UnmapMsg16To32W/3w.md), [WINPROC\_MapMsg32ATo16(3w)](/WINPROC_MapMsg32ATo16/3w.md), [WINPROC\_UnmapMsg32ATo16(3w)](/WINPROC_UnmapMsg32ATo16/3w.md), [WINPROC\_MapMsg32WTo16(3w)](/WINPROC_MapMsg32WTo16/3w.md), [WINPROC\_UnmapMsg32WTo16(3w)](/WINPROC_UnmapMsg32WTo16/3w.md), [WINPROC\_CallProc16To32A(3w)](/WINPROC_CallProc16To32A/3w.md), [WINPROC\_CallProc16To32W(3w)](/WINPROC_CallProc16To32W/3w.md), [CallWindowProc16(3w)](/CallWindowProc16/3w.md), [CallWindowProc32A(3w)](/CallWindowProc32A/3w.md), [CallWindowProc32W(3w)](/CallWindowProc32W/3w.md)
