从ActiveX控件,我可以告诉它是从哪个域创建的?

时间:2010-08-17 20:51:17

标签: internet-explorer com activex atl

如果可能,我想阻止我的ActiveX控件被不受信任的页面意外执行,因为它可以用来下载和运行文件。

一个想法是让控件知道它实例化的HTML页面的域,并提示用户是否信任该域。它会在注册表中记住这个选择。如果控件由来自不同域的页面使用,则会要求用户信任新域。

ActiveX控件是否有办法查询IE并询问从哪个域下载页面?

1 个答案:

答案 0 :(得分:2)

是的,实施IObjectWithSite并缓存您在SetSite()中给出的指针。

然后:

  1. QueryInterface()您的IID_IServiceProvider网站。
  2. QueryService() IServiceProvider SID_STopLevelBrowser, IID_IServiceProvider
  3. QueryService() IServiceProvider的顶级SID_SWebBrowserApp, IID_IWebBrowser2
  4. 致电get_LocationURL