It doesn't surprise me that it is discontinued. Its in a legacy application that I need to support for a few more years until we can get the rewrite done.
The ActiveX doesn't seem to have anything methods I could use. I think I'll have to use MouseClick in the DataWindow to try and simulate focus. I suspect that it in not actually getting focus which is where my problem lies.
I dropping an OLE object onto the window designer and then inheriting from FlipperGraph.
I have now worked out that I can give the graph focus by setting the TabStop property to true and tabbing through the controls. The issue therefore seems to be that the ocx is trapping the mouseclick so VO doesn't see it at all.
I've discovered an event hat may give me what I want but if it is firing, I can seem to receive it. The help for the event is attached.
I've constructed a method in the specific DashBoardWin class:
METHOD ocxCashflowGraph_FoundObject( oGrf, uID, nID, oObf, nBtn ) CLASS DashboardWin
I don't think the wparam or lparam help here, I've only used them to trap function keys and character input.
May be you need to look for WM_MOUSEACTIVATE message:
METHOD Dispatch(oEvent) CLASS <Your Flipper OLE Control Class>
LOCAL msg := oEvent:Message as DWORD
LOCAL hwndChild as ptr
case msg == WM_SETCURSOR
case msg == WM_MOUSEACTIVATE
hwndChild := GetWindow(hwnd, GW_CHILD)
IF (hwndChild != null_ptr)
However, it will all depend on what messages the OCX is sending to the dispatch method.
If you do that then the code will be early bound and the compiler can help you find typos in your code and will produce better code.
I would recommend this in particular for methods that are executed a lot, like the Dispatch method that you were showing.