网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 定作论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 交易代码 > ASP.Net精品代码 > 正文
在浏览器控件中显示信息栏
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 佚名 来源: 网络 发布时间: 10/11/03

Windows XP SP2 中的Internet Explorer 6 引入了一个新的安全用户界面元素,称为信息栏。在特定操作被阻止的时候,信息栏给用户显示一个用户界面元素。特别的,它会在以下操作被阻止的时候显示。

  • 弹出窗口初始化
  • 文件下载
  • 安装ActiveX 控件
  • ActiveX控件安全提示的原因是用户安全设置或者是控件未标记为脚本安全的。
  • 文件的扩展名和多用途因特网邮件扩展类型(MIME)不符的
  • 网络协议锁死的内容

SP2WebBrowserControl 

信息栏是Windows XP SP2 中的Internet Explorer 6引入的安全特性之一。和其他安全特性控制一样,可以通过一个注册表键来控制:FEATURE_SECURITYBAND。 默认情况下IE(iexplorer.exe) 和Windows 资源管理器(explorer.exe) 在这个安全特性控制下。下面显示注册表键和启用过程:

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Internet Explorer
Main
FeatureControl
FEATURE_SECURITYBAND
iexplorer.exe= 0x00000001
explorer.exe= 0x00000001
TTraveler.exe= 0x00000001
process name.exe=0x00000001

 

这个FEATURE_SECURITYBAND 安全特性控制影响IE是否显示信息栏,信息栏在一个操作被阻止的时候提示用户。它不控制操作的阻止过程。

一个集成浏览器控件程序可以通过将其进程添加到这个注册表键来启用信息栏,也可以通过调用CoInternetSetFeatureEnabled函数来在运行时执行。如果一个应用程序并未在这个安全特性控制下,那么浏览器控件的行为和Internet Explorer 6 SP1b中的一样.

没有方法通过脚本来访问这个特性。

在FEATURE_SECURITYBAND及相关安全特性控制下的应用程序可以使用信息栏应用程序编程接口(API)来在一个URL 操作被禁止时自定义显示的用户界面。为信息栏引入了很多新的OLECMDID命令。头三个是属于CGID_DocHostCommandHandler组。宿主应用程序应该在它们的IDocHostUIHandler实现的同一个对象中实现IOleCommandTarget ,以接受来自浏览器控件IOleCommandTarget::Exec调用。

  • OLECMDID_PAGEACTIONBLOCKED
  • OLECMDID_PAGEACTIONUIQUERY
  • OLECMDID_FOCUSVIEWCONTROLS

宿主应用程序可以使用下面两个新的OLECMDID 命令来执行浏览器控件IOleCommandTarget::Exec调用。

  • OLECMDID_FOCUSVIEWCONTROLSQUERY
  • OLECMDID_SHOWPAGEACTIONMENU
这个示例使用IWebBrowser2::ExecWB 来执行OLECMDID_SHOWPAGEACTIONMENU 命令。
   POINT pt = { 0 };   GetCursorPos(&pt);   CComVariant varHwnd((LONG)hwnd);   CComVariant varX(pt.x);   CComVariant varY(pt.y);   SAFEARRAY* psa = SafeArrayCreateVector(VT_VARIANT, 0, 3);   LONG lIndex = 0;   SafeArrayPutElement(psa, &lIndex, &varHwnd);   lIndex++;   SafeArrayPutElement(psa, &lIndex, &varX);   lIndex++;   SafeArrayPutElement(psa, &lIndex, &varY);   CComVariant varArgIn;   V_VT(&varArgIn) = VT_ARRAY | VT_I4;   V_ARRAY(&varArgIn) = psa;   pBrowser->ExecWB(OLECMDID_SHOWPAGEACTIONMENU, (OLECMDEXECOPT)dwPageActionFlags, &varArgIn, NULL);

另外,应用程序可以实现IInternetSecurityManager来重载默认的安全区域设置,参见创建一个自定义URL安全管理器以获得更多信息。

要在Visual C++中使用CoInternetSetFeatureEnabled函数等XPSP2新增的API的话,必须安装了Windows XP SP2 Platform SDK。这个SDK可以在http://www.microsoft.com/msdownload/platformsdk/sdkupdate/下载

Windows XP SP2 Platform SDK不支持Visual C++6.0附带的编译器。Visual C++6.0用户建议升级到Visual C++.Net,或者安装Microsoft Visual C++ Toolkit 2003 。

Microsoft Visual C++ Toolkit 2003 可以在http://msdn.microsoft.com/visualc/vctoolkit2003/下载到,但是在Visual C++6.0中使用Microsoft Visual C++ Toolkit 2003的代价之一就是不能使用内建的调试器。VC的选项中可执行文件、头文件和库文件的目录搜索顺序应该依次是:

  1. Microsoft Visual C++ Toolkit 2003
  2. Windows XP SP2 Platform SDK
  3. Windows SDK (Windows Server 2003)
  4. VC98 (Visual C++ 6.0)
  • 下一篇资讯: DataGridView合并单元格
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 电话:013574892963 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号