Hello Bill, It seems the ATL thunking class CStdCallThunk (not CWndProcThunk) can be used in this case too. Have you already looked into this? You may then have say, CWinEventHookRoot with the thunking and CWinEventHookImpl providing the non-static procedure, no virtual method.
Hello Bill, Looking good but what is the real use of the s_mapHooksToObjPtrs object?
Hello Bill, I think the best option will be to implement a simpler scrolling similar to CScrollImpl<t>, because CScrollImpl<t> which is the best for all the scrollable windows assume you will be painting.</t></t> Paul