基本上,我只是使用uPNPDeviceFinder类搜索uPnP设备.FindByType方法,.FindByUDN有效,但FindByType给出错误:
当我尝试调用方法时,VB6出现编译错误:
Function or interface marked as restricted, or the function
uses an Automation type not supported in Visual Basic.
我不知道这甚至意味着什么或为什么我得到它。我正在引用并使用yoru system32目录中的upnp.dll文件 - 当我在VS2010(比如说,vb.net)中引用并使用它时,一切正常,没有发现问题,但在VB6中,我得到上面的错误,任何人的想法?感谢。
答案 0 :(得分:1)
该函数在类型库中声明为
HRESULT FindByType(
[in] BSTR bstrTypeURI,
[in] unsigned long dwFlags,
[out, retval] IUPnPDevices** pDevices);
并且无符号参数dwFlags
在VB6中无法使用
Function FindByType(bstrTypeURI As String, dwFlags As <Unsupported variant type>) As UPnPDevices
你必须通过将param类型更改为兼容的VB6类型来“VB-fy”这个类型库。
修改强>
Here是我尝试VB-fy这个类型库,使用风险自负。 IDL使用mktyplib
编译。
请注意,您无需向用户发送vbupnp.tlb
,也无需在其计算机上注册。只需在您的开发机器上注册并使用它。