Delphi CreateOleObject events

后端 未结 1 647
礼貌的吻别
礼貌的吻别 2021-01-06 20:53

There is a code:

var 
myobject: OleVariant;
begin
 myobject := CreateOleObject(\'SomeNamespace.SomeClass\');
end;

This COM object has event

相关标签:
1条回答
  • 2021-01-06 21:08

    You are working with COM late-binding, so do you need write a lot of code to handle events. this task is not difficult if you know COM, basically do you need follow these steps.

    • Create a new object(class) derived from TInterfacedObject that implements IDispatch
    • implement the Invoke() function of your new class
    • Query for the connection point container (IConnectionpointContainer) and desired connection point.
    • sink the connection point using IConnectionPointContainer.FindConnectionPoint
    • finally execute the IConnectionPoint.Advise() using your implementation of the IDispatch

    you can found examples of this implementation on these links

    • How to use an objects event created using createoleobject
    • Delphi 5 running powerpoint (example using a late binding object with events)
    • Delphi 5 running powerpoint (example using a late binding object with events)

    try out these links for more info about COM, late-binding and events

    • Automation in Delphi COM Programming
    • Supporting automation events in Delphi
    0 讨论(0)
提交回复
热议问题