I think when using SetWindowLongPtr(), the correct value to use is GWLP_WNDPROC, not GWL_WNDPROC.
GWL_WNDPROC is used with SetWindowLong() instead.
GWL_WNDPROC and GWLP_WNDPROC are both defined in winuser.h. However, GWL_WNDPROC is not defined if _WIN64 is defined. Which makes sense, as SetWindowLong() is not available in a 64-bit flavor. SetWindowLongPtr() was introduced to support 64-bit.
I think when using SetWindowLongPtr(), the correct value to use is GWLP_WNDPROC, not GWL_WNDPROC. GWL_WNDPROC is used with SetWindowLong() instead.
GWL_WNDPROC and GWLP_WNDPROC are both defined in winuser.h. However, GWL_WNDPROC is not defined if _WIN64 is defined. Which makes sense, as SetWindowLong() is not available in a 64-bit flavor. SetWindowLongPtr() was introduced to support 64-bit.