Overriding an ActiveX control's functions
Posted on 2002-05-02
I have a fully functional control ATL Full control, which I need to add some functionality to, without changing the source code of the control itself.
I need to override the control's OnPaint() function, so that I can draw my own output on top of the output that the control generated. This would not be such a big problem if it wasn't becourse the control is Windowed only.
My problem is that I have no way of telling when the control is done drawing, and without knowing that Im unable to paint on top of the control output.
I have allready tried to solve the problem by setting up window hooks, to catch the WM_PAINT message, but for some reason there is no end notification from a WM_PAINT (End notifications are received using the WH_CALLWNDPROCRET hook style).
I have also tried to create an aggregated ATL Full control, but my limited knowledge about ActiveX interfaces prevented me succeeding in that as well.
Any advice or code examples on how to solve this problem would be greatly appreciated.