正如标题所说,我想使用DLCTL_NO_RUNACTIVEXCTLS和DLCTL_NO_DLACTIVEXCTLS禁用vb6 the浏览器控件中的图像和ActiveX控件
微软在这里谈论它:http://msdn.microsoft.com/en-us/library/aa741313.aspx
但是我看不到任何从vb6应用程序访问IDispatch::Invoke的方法。
任何帮助都将不胜感激。
发布于 2010-06-11 01:19:17
我不认为VB6允许您添加环境属性。尝试将ActiveX托管在另一个容器中(例如,您自己编写的ActiveX主机-但我不知道您要花费多少时间来声明和实现VB友好的OLE接口-或者使用另一个类似于http://www.codeproject.com/KB/atl/vbmhwb.aspx的ActiveX。
发布于 2010-06-11 01:28:44
你不需要在VB6中访问IDispatch::Invoke,你只需要编写你的方法,IDispatch就会自动实现。
Public Function DlControl() As Long
DlControl = DLCTL_NO_DLACTIVEXCTLS Or ...
End FUnction然后只需打开Tools->Procedure Attributes并为DlControl函数打开高级并将Procedure ID分配给-5512 (DISPID_AMBIENT_DLCONTROL)即可。这是第一部分。
第二部分是将客户端站点设置为您自定义实现的IOleClientSite。您将需要一个自定义类型库,尝试使用Edanmo's OLELIB来声明这些接口。Here是一个如何连接IOleClientSite实现的delphi示例。显然,在某些情况下,您还必须调用OnAmbientPropertyChange。
https://stackoverflow.com/questions/3012434
复制相似问题