有一个代码:
var
myobject: OleVariant;
begin
myobject := CreateOleObject('SomeNamespace.SomeClass');
end;
此 COM 对象具有事件(例如 OnClick)。我应该如何在不导入 TLB 的情况下连接到这些事件?
有一个代码:
var
myobject: OleVariant;
begin
myobject := CreateOleObject('SomeNamespace.SomeClass');
end;
此 COM 对象具有事件(例如 OnClick)。我应该如何在不导入 TLB 的情况下连接到这些事件?
您正在使用 COM 后期绑定,因此您需要编写大量代码来处理事件。如果您了解 COM,这个任务并不难,基本上您需要按照这些步骤操作。
TInterfacedObject
该实现
派生的新对象(类)IDispatch
Invoke()
你的新类的功能IConnectionpointContainer
) 和所需的连接点。IConnectionPointContainer.FindConnectionPoint
IConnectionPoint.Advise()
使用你的实现IDispatch
您可以在这些链接上找到此实现的示例
尝试这些链接以获取有关 COM、后期绑定和事件的更多信息