【发布时间】:2011-08-15 03:43:07
【问题描述】:
在一个 VB6 项目中,我添加了对 COM dll 的引用:c:\windows\system32\locationapi.dll
以下代码运行良好,可以正确访问对象的方法/属性:
Public civicfactory
Set civicfactory = CreateObject("LocationDisp.CivicAddressReportFactory")
但是,它的事件不起作用 - 我无法捕捉它们。我想我需要像这样声明对象:
Public WithEvents civicfactory As LocationDisp.CivicAddressReportFactory
但这给了我错误“未定义用户定义的类型”。
谁能告诉我为什么它这样说,而第一个代码运行良好?
由于我的目的是让事件处理程序正常工作,您能否指出我的代码中的任何错误或缺失的任何内容:
Public civicfactory
Private Sub civicfactory_NewCivicAddressReport(report)
MsgBox "New civic address report arrived"
DisplayCivic (report)
End Sub
Set civicfactory = CreateObject("LocationDisp.CivicAddressReportFactory")
civicfactory.ListenForReports (1000)
类似的代码在 VBScript 中工作,但我无法让它在 VB 6 中工作 - 永远不会调用事件处理程序。
提前致谢!
【问题讨论】:
-
看到上面“ListenForReports”之后IDE插入的那个空间了吗?它对你说:“这里不应该有括号,你知道你在做什么吗?”
-
正确的名称应该类似于 LocationApiLib.CivicAddressReportFactory
标签: events object com vb6 event-handling