!!插件发布功能的授权使用问题!! 最近在一B/S结构的系统中使用了插件来远程操控客户端的一硬件设备。但是考虑到功能使用的安全问题,希望这个插件发布的功能只能在该B/S系统上用,而不允许安装了此插件的客户将其该插件用于其他系统中?我的初步考虑是在插件中获取其宿主,判断其宿主是否是我们的B/S系统,但不知如何在插件里获取其宿主?望同行指点一二或提供其他好的建议。(vc开发) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己先顶一下。用GetParent()获取不到相关的父窗口信息。 我试过GetModuleFileName(NULL,...),但它只能返回iexplorer.exe的路径,我没有办法确定是不是我的B/S系统。 GetModuleFileName确定是不是你的B/S系统。GetModuleFileName返回的是路径加名称,需要在程序中取名称 这个我早试过,只能取到iexplore.exe的全路径,但不能说所有的iexplore.exe都是我的B/S系统。如果实现了IWebBrowser2就好办了,我就可以取到iexplore链接的是不是我的系统 你的插件是什么类型的?BHO?ActiveX?如果是这两种是能取得IWebBrowser2当前加载的URL的。 能不能在控件中加入认证信息之类的,认证通过后对设备的操作接口才能使用?另外ls的ls说:插件是什么类型的?BHO?ActiveX?如果是这两种是能取得IWebBrowser2当前加载的URL的。想知道怎样可以获取到该IWebBrowser2的指针 BHO插件通过SetSite调用就已经获得了IWebBrowser2接口,随时都能访问当前打开的URL;ActiveX插件通过查询容器接口能获得自己所属的IHTMLDocument2接口,所以也能获取文档对应的URL 不是BHO,是一个普通的activex插件,没有实现IObjectWithSiteImpl<...>,因此如何获取IWebBrowser2应该就可部分解决这个问题 IOleObject::GetClientSite --> IOleClientSiteIOleClientSite::QueryInterface --> IServiceProviderIServiceProvider::QueryService --> IHTMLDocument2 jameshooo ,能不能麻烦写点具体的代码?我试的时候出现一些问题,可能是我写的不对 首先,你的ActiveX组件肯定实现了IOleObject接口,就从这儿开始吧:CComPtr<IOleClientSite> spClentSite;((IOleObject*)this)->GetClientSite(&spClientSite);CComPtr<IOleContainer> spCont;spClientSite->GetContainer(&spCont);CComQIPtr<IHTMLDocument2> spDoc = spCont;13楼代码有点问题,不能直接从IServiceProvider直接获得IHTMLDocument2,需要绕点弯,还是这个代码最简单。 如果你的组件是用MFC实现的,则直接调用 COleControl::GetClientSite 我的插件是MFC的,我试了,这样是有问题的 问题已经完美解决。非常感谢jameshooo的引导。 怎样批量操作进度条控件 今天开始交接,散分表示祝贺! 怎么在CEdit中显示utf8字符串? 哪为兄弟有《ole2高级编程技术》一书啊? 能否给个VC做应用程序插件的例程,很简单的都行,主要是把原理说清楚就行了! VC中MFC ODBC编程中创建CRecordset基类的子类 哪位能帮我把下面的两段DELPHI写的代码转换成VC的?谢谢 用winsock实现http的get请求,返回的文本中,中文全是乱码,怎么破。 win32程序问题 新人报道 vc如何获取xml http数据 为什么新版本Visual Studio 中的C++ 难以编译通过以前的Visual C++6.0程序,谁能告诉我.
GetModuleFileName返回的是路径加名称,需要在程序中取名称
想知道怎样可以获取到该IWebBrowser2的指针
ActiveX插件通过查询容器接口能获得自己所属的IHTMLDocument2接口,所以也能获取文档对应的URL
IOleClientSite::QueryInterface --> IServiceProvider
IServiceProvider::QueryService --> IHTMLDocument2
CComPtr<IOleClientSite> spClentSite;
((IOleObject*)this)->GetClientSite(&spClientSite);
CComPtr<IOleContainer> spCont;
spClientSite->GetContainer(&spCont);
CComQIPtr<IHTMLDocument2> spDoc = spCont;13楼代码有点问题,不能直接从IServiceProvider直接获得IHTMLDocument2,需要绕点弯,还是这个代码最简单。