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のWindowProc2。
WindowProc内から自分自身。
WindowProc2内からWindowProc。
WindowProc2内から自分自身。
WindowProc内からWindowProc2。
ウィンドウ自体は変わらない。
Sample/winapi/GetWindowLong/GWL_WNDPROC/src/GWL_WNDPROC at master · bg1bgst333/Sample · GitHub