使用DLCTL_NO_禁用VB6 WebBrowser控件中的图像,ActiveX等

时间:2010-06-10 07:28:26

标签: vb6 webbrowser-control

就像标题所说,我想使用DLCTL_NO_RUNACTIVEXCTLS和DLCTL_NO_DLACTIVEXCTLS

在vb6 webbrowser控件中禁用图像和ActiveX控件

微软在此处讨论:http://msdn.microsoft.com/en-us/library/aa741313.aspx

但我没有看到任何方法从vb6应用程序访问IDispatch :: Invoke。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我认为VB6不允许你添加环境属性。尝试在另一个容器中托管ActiveX(例如,由您自己编写的ActiveX主机 - 但我不知道您想投入多少时间来声明VB友好的OLE接口并实现它们 - 或者使用另一个类似于{{3相反。

答案 1 :(得分:0)

您不能在VB6中访问IDispatch :: Invoke,只需编写方法并自动实现IDispatch。

Public Function DlControl() As Long
    DlControl = DLCTL_NO_DLACTIVEXCTLS Or ...
End FUnction

然后只需打开Tools-> Procedure Attributes,对于DlControl函数打开Advanced,并将Procedure ID分配给-5512(DISPID_AMBIENT_DLCONTROL)。这是第一部分。

第二部分是将客户端站点设置为IOleClientSite的自定义实现。您需要一个自定义类型库,尝试Edanmo's OLELIB来声明这些接口。 Here是一个delphi样本,如何挂钩IOleClientSite的实现。显然你还需要在某个时候调用OnAmbientPropertyChange。