GWL_WNDPROC

GetWindowLongにGWL_WNDPROCを指定すると、指定したウィンドウハンドルのウィンドウのウィンドウプロシージャを取得できる。

GetWindowLongA function (winuser.h) - Win32 apps | Microsoft Docs

GWL_WNDPROC.cppで、

WindowProcのアドレスを表示。

今度はWindowProc2のアドレスを表示。

WindowProcの中で、親ウィンドウと子ウィンドウのウィンドウプロシージャアドレスを表示。

こっちのWindowProc2も、親ウィンドウと子ウィンドウのウィンドウプロシージャアドレスを表示。
なのだが、WindowProc2からは親ウィンドウハンドルは取得できないので(ほんとはできるんだけど)、WindowProcの時のCreateWindowの最後の引数でhwndを指定している。それが、WindowProc2からはlpCreateStruct->lpCreateParamsで取得することが出来る。

まず_tWinMainのWindowProc
まず_tWinMainのWindowProc

まず_tWinMainのWindowProc。

今度は_tWinMainのWindowProc2
今度は_tWinMainのWindowProc2

今度は_tWinMainのWindowProc2。

WindowProc内から自分自身
WindowProc内から自分自身

WindowProc内から自分自身。

WindowProc2内からWindowProc
WindowProc2内からWindowProc

WindowProc2内からWindowProc。

WindowProc2内から自分自身
WindowProc2内から自分自身

WindowProc2内から自分自身。

WindowProc内からWindowProc2
WindowProc内からWindowProc2

WindowProc内からWindowProc2。

ウィンドウ自体は変わらない
ウィンドウ自体は変わらない

ウィンドウ自体は変わらない。

Sample/winapi/GetWindowLong/GWL_WNDPROC/src/GWL_WNDPROC at master · bg1bgst333/Sample · GitHub