如何 :在ActiveX控件中获得顶层IWebBrowser2接口

本文翻译自http://support.microsoft.com/kb/257717

如何: 在ActiveX 控件中获得顶层 IWebBrowser2 接口


此文章的信息应用于:
  • Microsoft Internet Explorer (编程) 版本4.0, 4.01, 4.01 SP1, 4.01 SP2, 5, 5.01, 5.5


概要

微软知识库文章

Q172763 信息:在ActiveX 中访问对象模型
说明了如何在控件中获得所在窗口的IWebBrowser2的引用。但是,开发者实际上经常需要的是饱含框架集的顶层IWebBrowser2的引用。例如,当你在网页载入之前调用statusText() 命令设置状态栏的值时可以用到。因为这个属性对WebBrowser控件无效,所以调用所在框架的IWebBrowser2的函数会产生错误。


更多信息

为获得顶层IWebBrowser2 引用, 从客户站点获取IServiceProvider接口并且执行一个QueryService 操作获取IID_IServiceProvider服务:SID_STopLevelBrowser (这在Shlguid.h中定义);对第二个IServiceProvider,执行一个QueryService 获取IID_IWebBrowser2 服务:SID_SWebBrowserApp.

做这件事情最适合的地方是在IOleObject的SetClientSite() 方法里面:

#include <SHLGUID.h>

#define COMRELEASE(ptr)/ 
	if (ptr != NULL) {/ 
		ptr->Release();/ 
		ptr = NULL;/	
	}

IWebBrowser2 *browser = NULL;

STDMETHODIMP SetClientSite(IOleClientSite *pClientSite) 
{
	HRESULT hr = S_OK;
	IServiceProvider *isp, *isp2 = NULL;
	if (!pClientSite)
	{
		COMRELEASE(browser);
	}  
	else
	{
		hr = pClientSite->QueryInterface(IID_IServiceProvider, reinterpret_cast<void **>(&isp));
		if (FAILED(hr)) 
		{
			hr = S_OK;
			goto cleanup;
		}
		hr = isp->QueryService(SID_STopLevelBrowser, IID_IServiceProvider, reinterpret_cast<void **>(&isp2));
		if (FAILED(hr))
		{
			hr = S_OK;
			goto cleanup;
		}
		hr = isp2->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2, reinterpret_cast<void **>(&browser));
		if (FAILED(hr)) 
		{
			hr = S_OK;
			goto cleanup;
		}
	cleanup:
		// Free resources.
		COMRELEASE(isp);
		COMRELEASE(isp2);
		return hr;
	}
} 


参考

要更多信息,单击下面的文档编号查看微软知识库中的文章

Q172763 信息: 在ActiveX中访问对象模型
要更多关于开发基于Web的Internet Explorer解决方案,请访问下列站点:
http://msdn.microsoft.com/workshop/entry.asp

http://msdn.microsoft.com/ie/

http://support.microsoft.com/highlights/iep.asp?FR=0&SD=MSDN

© 微软公司 2000,保留所有权利

微软公司的Jay Andrew Allen 投稿

额外的查询关键字:IServiceProvider SID_STopLevelBrowser IWebBrowser2

关键字: kbActiveX kbCtrl kbIE kbIE400 kbGrpDSInet kbie500 kbDSupport kbie501 kbie550 
文章类型 : kbhowto 
技术 : kbIEsearch kbAudDeveloper kbSDKIESearch kbIE500Search kbSDKIE400 kbSDKIE401 kbSDKIE401SP1 kbSDKIE401SP2 kbSDKIE500 kbSDKIE501 kbSDKIE550 kbIE550Search


上次更新: 2001年7月21日

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Cocos2d-iPhone是一个基于Objective-C的2D游戏开发框架,它支持在iPhone和iPad上进行游戏开发。Cocos2d-iPhone使用了OpenGL ES来加速渲染,并提供了一组强大的工具和库,方便开发者创建高性能的移动游戏。 iWebBrowser是Cocos2d-iPhone框架一个非常实用的工具,它可以在游戏内嵌一个网页浏览器。通过iWebBrowser,开发者可以在游戏直接展示网页内容,实现各种功能,比如游戏内置网页广告、帮助文档的展示等等。 使用iWebBrowser可以很方便地在游戏加载和展示网页内容。它提供了加载URL、返回、刷新等常见的网页浏览器功能,并且可以自定义外观和布局。开发者可以根据需要,调整浏览器的大小、位置,使其更好地适应游戏界面。 在使用iWebBrowser的过程,开发者可以根据游戏的需求,通过Cocos2d-iPhone的其他功能和特性,来增强浏览器的交互性和可玩性。比如,可以在浏览器加载完页面后,通过Cocos2d-iPhone提供的触摸事件来对页面上的元素进行交互操作,或者在游戏嵌入自定义的按钮和件,以提供更丰富的功能。 总之,Cocos2d-iPhone的iWebBrowser提供了一种简单而强大的方式,让开发者可以在游戏内嵌一个网页浏览器,展示各种网页内容,并与游戏其他功能进行结合,提供更好的用户体验。无论是展示广告、加载帮助文档还是其他网页内容,iWebBrowser都是一个非常实用的工具。 ### 回答2: Cocos2d-iPhone是一个开源的2D游戏开发框架,用于iOS平台的游戏开发。它基于Objective-C语言编写,具有简单易用、跨平台、性能高效等特点。Cocos2d-iPhone提供了丰富的功能和工具,开发者可以利用它来创建各种类型的2D游戏。 Web浏览器(iWebBrowser)是一种用于访问和浏览互联网上的网页的应用程序。在Cocos2d-iPhone,我们可以通过使用内置的Web浏览器组件来实现游戏内嵌网页的功能。通过Cocos2d-iPhone的Web浏览器组件,我们可以将一个网页嵌入到游戏场景,并且在游戏实时显示和交互。 使用Cocos2d-iPhone的Web浏览器组件,开发者可以实现许多有趣的功能和效果。比如,我们可以在游戏实时显示网络上的实时数据,或者在游戏嵌入一些广告或者社交媒体的内容。通过Web浏览器组件,我们可以方便地加载和显示网络上的网页内容,并且可以在游戏进行交互操作。 总之,Cocos2d-iPhone提供了内置的Web浏览器组件(iWebBrowser),使得在游戏嵌入和显示网页成为可能。通过这个功能,开发者可以实现各种有趣的功能和效果,提升游戏的交互性和娱乐性。 ### 回答3: Cocos2d是一个流行的开源游戏开发引擎,适用于多平台的游戏开发。它是基于C++语言的,并且有支持多种编程语言的绑定,如Python和Lua。Cocos2d提供了丰富的功能和工具,使开发者能够轻松创建高品质的游戏。 iWebBrowser是Cocos2d的一个类,它是用于在游戏展示网页内容的组件。iWebBrowser可以嵌入到游戏的任何场景,可以展示网页内容,并且可以通过Cocos2d的渲染系统将网页渲染到游戏窗口。开发者可以利用iWebBrowser来实现一些与网页相关的功能,如展示游戏动态、显示游戏公告等。 Cocos2d提供了一系列的API来iWebBrowser的行为和显示。开发者可以通过这些API来加载指定的网页内容,设置网页的大小和位置,监听网页加载完成的事件等。同时,开发者也可以通过这些API来实现一些与网页交互的功能,如获取网页内容、执行网页上的JavaScript等。 iWebBrowser在编写游戏时非常有用,它允许开发者将网页内容无缝地集成到游戏,提供了更加丰富的内容展示方式。无论是展示游戏内的一些信息,还是进行广告宣传,iWebBrowser都可以做到简单、高效的集成。开发者可以通过Cocos2d提供的API来灵活地iWebBrowser的显示与交互,以满足游戏的需求。 总之,Cocos2d iWebBrowser是Cocos2d游戏引擎的一个组件,用于在游戏展示网页内容,并提供了一系列的API来制其行为和交互。这个组件能够帮助开发者更好地展示游戏内的信息和进行广告宣传等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒋晟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值