如果你下载了Internet Explorer Toolbar (Deskband) Tutorial的源代码后编译不通过,也不用奇怪,我就是耽搁在这些地方。先说说都有哪些编译问题。
1.编译的问题
如果遇到下面的问题,就说明commctrl.h的版本低。我们完全可以不用TBSTYLE_EX_MIXEDBUTTONS,用TBSTYLE_EX_DRAWDDARROWS就行。另外的三个删掉,换成
TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE,这个问题就解决了。
error C2065: 'TBSTYLE_EX_MIXEDBUTTONS' : undeclared identifier
error C2065: 'BTNS_BUTTON' : undeclared identifier
error C2065: 'BTNS_AUTOSIZE' : undeclared identifier
error C2065: 'BTNS_SHOWTEXT' : undeclared identifier
如果遇到下面问题,把工程文件(dsp)里面的/D _ATL_MIN_CRT删掉。
Linking...
Creating library ReleaseUMinDependency/MotleyFool.lib and object ReleaseUMinDependency/MotleyFool.exp
LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
ReleaseUMinDependency/MotleyFool.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
MotleyFool.dll - 2 error(s), 0 warning(s)
如果你自己重新编写一个新的项目实现IE Toolbar的话,注意一下2个地方。
1.注意CMFToolbar的消息映射顺序。CHAIN_MSG_MAP_MEMBER一定要在WM_CREATE的前面。
BEGIN_MSG_MAP(CToolbarWnd)
CHAIN_MSG_MAP_MEMBER(m_EditWnd)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
…
END_MSG_MAP()
2.注意CReflectionWnd的消息映射顺序。WM_CREATE一定要在CHAIN_MSG_MAP_MEMBER的前面。
BEGIN_MSG_MAP(CReflectWnd)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
CHAIN_MSG_MAP_MEMBER(m_ToolbarWnd)
END_MSG_MAP()
2.Google Search Toolbar
创建CColimasBar类,IE Plugin接口,继承
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CColimasBar, &CLSID_ColimasBar>,
public IDeskBand,
public IInputObject,
public IObjectWithSite,
public IDispatchImpl<IColimasBar, &IID_IColimasBar, &LIBID_IEBASELib>
创建CEditWnd类,输入栏控件,继承
public CWindowImpl<CEditWnd>
创建CReflectWnd类,消息传递空间,继承
public CWindowImpl<CEditWnd>
创建CToolbarWnd类,Toolbar控件,继承
public CWindowImpl<CEditWnd>
修改Toolbar的Title:
const WCHAR TITLE_CColimasBar[] = L"Google";
修改Button的Title:
TCHAR* pCaption = _T("Search!");
增加Button点击事件的Google Search处理函数GetValue
void CToolbarWnd::GetValue()
{
// if we have a web browser pointer then try to navigate to google site to retrieve search
if (m_pBrowser)
{
VARIANT vEmpty;
VariantInit(&vEmpty);
m_pBrowser->Stop();
_bstr_t bsSite;
// if the user has entered url then append them to the edit
if (m_EditWnd.GetWindowTextLength())
{
WCHAR *bstr = NULL;
m_EditWnd.GetWindowText(&bstr);
UINT i= WideCharToMultiByte(CP_UTF8,0,bstr,-1,NULL,0,NULL,NULL); //双字节转换
char *strB=new char[i];
WideCharToMultiByte (CP_UTF8,0,bstr,-1,strB,i,NULL,NULL); //转换为ASCII
UINT len=i;
char* tmp=new char[len*3];
tmp[0]='\0';
for(i=0;i<len-1;i++)
{
byte j= (unsigned char)strB[i]; sprintf(tmp,"%s%%%x",tmp,j); //转换为16进制。
}
bsSite = L"http://www.google.com/search?hl=zh-CN&q=";
//Google Search字符串
bsSite += tmp;
bsSite += "&rls=com.microsoft:en-US&ie=utf8&oe=utf8";
SysFreeString(bstr);
delete[] strB;
}
else
bsSite = "http://www.google.com/";
// have the webrowser navigate to the site URL requested depending on user input.
m_pBrowser->Navigate(bsSite, &vEmpty, &vEmpty, &vEmpty, &vEmpty);
}
}
分享到:
相关推荐
在开发IE ToolBar时,需要定义和实现COM接口,以供浏览器调用和管理工具栏。 4. **注册表设置**:为了使IE识别和加载自定义的工具栏,开发者需要在Windows注册表中添加相应的键值,指示IE何处查找和如何加载该工具...
对于开发者来说,一些常用的IE插件可能包括Fiddler(网络调试工具)、IE Developer Toolbar(IE开发人员工具栏)等,它们帮助开发者检查网页的HTML结构、CSS样式和网络请求。 在压缩包"plugins"中,可能包含了...
这款插件极大地简化了在IE浏览器中进行网页开发和调试的工作流程。 **DOM元素查看**:DOM(Document Object Model)是HTML和XML文档的编程接口,它将网页结构以树形结构表示,使得开发者可以方便地访问和修改网页...
总的来说,用VC开发IE浏览器插件是一项技术含量较高的任务,需要掌握COM编程、ATL以及Windows API等相关知识。通过这样的实践,开发者可以深入了解Windows系统的工作原理,同时也能提供用户自定义和优化浏览器体验的...
对于IE而言,尽管其市场份额逐渐被Chrome、Firefox等现代浏览器取代,但仍有大量的用户和开发者依赖于它,因此开发和使用IE插件的需求依然存在。 其中,"firebug.rar"可能是指Firebug的IE版本。Firebug是一款著名的...
IE Developer Toolbar特性如下: -浏览和修改Web页的文档对象模型(DOM). -通过多种技术方式定位、选定Web页上的特定元素. -禁止或激活IE设置. -查看HTML对象的类名、ID,以及类似链接路径、tab顺序、快捷键等细节
"IE_IE toolbar_IE 工具_IE工具栏_delphi ie工具栏"这部分描述了压缩包内的主要内容,即关于IE浏览器的工具栏开发示例,特别是使用Delphi编程语言实现的IE工具栏。 在Web浏览器中,工具栏是一种用户界面元素,它...
做前端开发的过程中对JS的调试一直没有很好用的工具,所幸的是Firefox下的firebug的诞生给我们带来了数不清的方便,但是在IE下想要调教好JS还是一样的繁琐无奈,遵照IE提示的JS错误提示在代码里找到的却让人...
4. **第三方调试插件**:除此之外,还有一些第三方的JS调试插件,例如DebugBar、IE Developer Toolbar等,它们提供了更多的定制化功能和便利性,帮助开发者在IE环境中更有效地调试JavaScript代码。 在使用这些调试...
DevToolBar 和 IEDOM 都是Web开发的利器,只要装一个就好了,感觉功能差不多,为了方便起见 一起传上来了。 安装后打开IE浏览器,工具栏中出现箭头(DevToolBar)或查找(IEDOM )的按钮,点击就可以十分方便的...
微软官方出口的IEDevToolBar,这是一个免费的专门为Web开发人员制作的IE插件,IE插件IEDevToolBar可以帮助我们分析网站的布局结构,有助于我们学习和分析页面的CSS,其主要功能有: 这是一个免费的转为Web开发人员...
调试JavaScript是网页开发中的重要环节,无论是在IE还是Firefox中,这些插件都提供了强大的JS调试功能。你可以设置断点,查看变量值,跟踪调用栈,这极大地提高了调试效率。对于CSS和HTML,开发者可以直接在页面上...
微软官方出口的IEDevToolBar,这是一个免费的专门为Web开发人员制作的IE插件,IE插件IEDevToolBar可以帮助我们分析网站的布局结构,有助于我们学习和分析页面的CSS,其主要功能有: 这是一个免费的转为Web开发人员...
标题中的“在IE上的toolbar加查找像GOOGLE的toolsbar.zip”表明这...这个项目对于了解如何开发和定制浏览器插件,特别是BHO,具有一定的学习价值。同时,它也提供了从头构建类似Google工具栏的搜索功能的实际操作经验。
在“如何往IE工具条添加按钮 Adding Toolbar Buttons往IE上添加工具条 用VC在IE浏览器的工具条上添加命令按钮.zip”这个项目中,我们可以看到一系列的源代码文件,这些都是实现这个功能的关键组件: 1. `IEButton....
微软的 IEDevToolBar,是一个免费的转为Web开发人员制作的IE插件,主要功能有: 1.以树结构查看 CodeDom,并查看每个 Element 属性,可以使用鼠标点击选中 Element; 2.生成图片报表,就是将页面上说有出现的图片...
本文将详细探讨如何在三种主流浏览器——Firefox、Chrome和Internet Explorer(IE)中使用浏览器的调试工具,尤其是针对PHP的调试toolbar。 首先,让我们从Firefox开始。Firefox提供了名为“Firebug”的扩展,它是...
2. **注册表操作**:IE插件的信息通常存储在注册表的特定位置,比如`HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Toolbar` 和 `HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar`。...
3. **IE Developer Toolbar**:这是微软官方为IE浏览器提供的开发工具栏,包含了浏览和修改DOM、元素定位、禁用或启用IE设置等功能。此外,它还能查看HTML元素的详细属性,如类名、ID、链接路径等,并能进行页面布局...
**IE Developer Toolbar**是一款专门用于辅助开发者调试和优化Web页面的插件。主要功能包括查看和修改DOM对象、查看元素属性(HTML/CSS/JavaScript事件等)。这款工具对于定位页面中动态生成的元素及其关联的...