为什么不调用窗口过程而不是调用CallWindowProc?

Hay*_*tuk 3 windows winapi function-pointers callback

为什么会有CallWindowProc这样的函数?我们提供窗口过程的地址,所以调用函数而不是调用另一个调用函数的函数是不是更好?

Cat*_*lus 8

因为GetWindowLong(或GetWindowLongPtr)可能返回一个不是函数指针的值,它CallWindowProc可以识别并转换为正确的调用.[1]