通过DISPID_AMBIENT_DLCONTROL控制WebBrowser下载

宿主可以在某些方面控制下载—帧、图形、Java等等—通过实现 IOleClientSite 和一个定义为 DISPID_AMBIENT_DLCONTROL 的周边属性。当 dispidMember 设置为DISPID_AMBIENT_DLCONTROL 调用宿主的 IDispatch::Invoke 方法时,它应该将pvarResult 设置为 0 或下列值的组合:
  DLCTL_BGSOUNDS 浏览器组件播放同文档相联的背景声音;
  DLCTL_DLIMAGES 浏览器组件从服务器下载图形;
  DLCTL_DOWNLOADONLY 浏览器组件下载页面但不显示;
  DLCTL_FORCEOFFLINE 浏览器组件工作在脱机方式。通过 URLMON 提出请求时, 即使计算机连接了互联网,也设置 BINDF_OFFLINEOPERATION 标志;
  DLCTL_NO_BEHAVIORS 浏览器组件不执行任何行为;
  DLCTL_NO_CLIENTPULL 浏览器组件不执行任何客户端的 pull 操作;
  DLCTL_NO_DLACTIVEXCTLS 浏览器组件不下载文档中的任何 ActiveX 控件;
  DLCTL_NO_FRAMEDOWNLOAD 浏览器组件对包含框架的页面进行语法分析但不下载任何帧, 同时忽略框架,不翻译任何 frame 标记;
  DLCTL_NO_JAVA 浏览器组件不执行任何 Java applet;
  DLCTL_NO_METACHARSET 浏览器组件隐藏文档中的 META 元素指示的字符集;
  DLCTL_NO_RUNACTIVEXCTLS 浏览器组件不执行文档中的任何 ActiveX 控件;
  DLCTL_NO_SCRIPTS 浏览器组件不执行任何脚本;
  DLCTL_OFFLINE 与 DLCTL_OFFLINEIFNOTCONNECTED 相同;
  DLCTL_OFFLINEIFNOTCONNECTED 如果未连接互联网,浏览器组件将以脱机方式工作。通过 URLMON 提出请求时,即使计算机连接了互联网,也设置 BINDF_GETFROMCACHE_IF_NET_FAIL 标志;
  DLCTL_PRAGMA_NO_CACHE 浏览器组件迫使请求发送给服务器并忽略代理,即使代理指明 数据是最新的也是如此。通过 URLMON 提出请求时,设置 BINDF_PRAGMA_NO_CACHE 标志;
  DLCTL_RESYNCHRONIZE 浏览器组件忽略缓存中的数据并向服务器请求更新。如果服务器指明 缓存中的数据是更新了的则使用缓存数据。通过 URLMON 提出DLCTL_SILENT 浏览器组件不显示用户界面。通过 URLMON 提出请求时,设置 BINDF_SILENTOPERATION 标志;
  DLCTL_URL_ENCODING_DISABLE_UTF8 浏览器组件禁止 UTF-8 编码;
  DLCTL_URL_ENCODING_ENABLE_UTF8 浏览器组件允许 UTF-8 编码;
  DLCTL_VIDEOS 浏览器组件播放文档中包含的视频片断。

转自:http://hi.baidu.com/adoblog/blog/item/db7327afd236e4fdfbed50d5.html

posted @ 2012-03-10 14:52  stma  阅读(1040)  评论(0)    收藏  举报