如题,困惑中,望高手解答
解决方案 »
- 请教如何在active控件中创建一个edit和button控件?
- 如何点击一个按钮转到一个网页上去。
- RichEdit控件写的程序,为什么在office2000能正常实现,可是在office 2003却不能正常实现?急!!!
- 如何取得并设置界面边框的宽度;如何设置窗口主菜单的位置?
- 客户端的数据结构如何发送到服务端?
- CPropertySheet的问题
- 有2个简单问题,关于文档。
- 那里可以下到Jeff Prosise写的《MFC WINDOWS程序设计》,就是Programing Windows with MFC,Second Edition的中文版
- 我想做一个局域网下的语音聊天软件,大家来谈医坛怎么实现吧!越详细越好!
- 绘图问题一则
- malloc和realloc函数的格式
- 仿资源管理器 树图标问题
如firefox就有它对应的XPCom等插件开发规范
其他浏览器内核如WebKit, Gecko都有自己的插件规范,楼主有兴趣可以去它们的开发站点了解下.
详细的情况你可以Google一下"遨游 插件 SDK"
Detecting Who's Calling
As mentioned earlier, a BHO can be called either by Internet Explorer or Windows Explorer if you're running at least shell version 4.71. In this case, I'm designing a helper object specifically targeted to work with HTML pages, so it will have nothing to do with Windows Explorer. A DLL that doesn't want to be loaded by a certain caller can simply return False in its DllMain() function once it detects who's calling. The GetModuleFileName() API function returns the name of the caller module if you pass NULL as its first argument. Such a parameter is the handle of the module whose name you want to know. NULL means that you want the name of the calling process.if (dwReason == DLL_PROCESS_ATTACH)
{
TCHAR pszLoader[MAX_PATH];
GetModuleFileName(NULL, pszLoader, MAX_PATH);
_tcslwr(pszLoader);
if (_tcsstr(pszLoader, _T("explorer.exe")))
return FALSE;
}Once you know the name of the process, you can quit loading if it is Windows Explorer. Notice that a more selective choice might be dangerous. In fact, other processes could try to load the DLL for legitimate reasons and be rejected. The first victim of this situation is regsvr32.exe, the program used to automatically register the object. If you make a different test, say, only against the Internet Explorer executable:if (!_tcsstr(pszLoader, _T("iexplore.exe"))) you won't be able to register the DLL any longer. In fact, when regsvr32.exe attempts to load the DLL to invoke the DllRegisterServer() function, the call will be rejected.