bhoc++标签之间的数据共享
IE BHO c++ data sharing among tabs
我希望我的IE扩展的BHO实例能够共享公共数据。我只需要他们共享几个变量,所以我试图找到一个简单的解决方案的问题。
我能想到的从简单到复杂的替代方案是:
1)从文件系统或注册表中写入/读取数据,请参阅MSDN文章和Codeproject文章。问题:这些信息是否可以从运行在不同线程中的BHO实例访问?
2)开发与所有BHO实例通信的Windows服务或后台应用程序,参见MSDN文章。问题:我不知道如何制作这个,或者从哪里开始。我很担心用户必须安装很多东西。
3)提供IPC机制,使不同的BHO实例可以直接相互通信。与使用IGlobalInterfaceTable一样,请参阅ookii文章。问题:是的,你可以在这个IGlobalInterfaceTable中存储指针,并获得cookie来访问它们,但是你如何与BHO实例2共享一个在BHO实例1中获得的cookie,以便第二个实例可以访问第一个实例插入在IGlobalInterfaceTable中的数据?我们是不是又遇到了同样的数据共享问题?
嗯,正如你所看到的,在寻找了整整一周的解决方案之后,我就是不知道如何开始处理这个问题。
通常,内存映射文件用于此目的。然而,这是一项非常重要的工作,因为您必须确保正确地对它们进行ACL设置,以允许跨进程访问(每个选项卡可能位于不同的进程中),并跨多个完整性级别工作。
1种,除了一个正常的网站可以写的地方与一个可信的网站可以访问的地方是隔离的。
编写服务可能是最简单的方法,因为有大量关于如何编写windows服务的文档(如果使用Visual c++,您甚至可以获得ATL项目向导),并且您的代理代码可以在选项卡进程崩溃甚至用户注销时幸存下来。3确实你有同样的共享问题,COM消息被UIPI阻止,除非你可以改变消息过滤器,但是COM使用的消息没有记录。我会使用命名管道/内存文件映射之类的东西。
您需要在某处托管通信代理代码,并且只创建一次。你可以写一些东西,比如工作组中的计算机如何选择主浏览器(有点像聊天),或者有一个代理进程来完成通信工作(例如在windows服务中)。
- 在cuda线程之间共享大量常量数据
- 在c代码之间共享数据的最佳方式
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- C++/QT:使用指向私有成员的常量指针作为只读数据共享
- 线程之间的实时数据共享
- 如何在进程之间共享大量数据而不重复?(国际刑罚委员会)
- 简单使用 std::atomic 在两个线程之间共享数据
- 包括数据类型之间的斗争
- C++实现相同接口的对象/类之间的数据共享
- C++中类数据成员之间的通信
- 线程之间类的静态数据共享
- 抽象数据类型(ADT)和数据结构之间有什么区别
- OpenMP中类成员变量的数据共享属性
- 多个文件数据共享
- GL顶点数据的QThread数据共享方法
- 在数据子集之间进行选择
- c++ /Windows多线程同步/数据共享
- bhoc++标签之间的数据共享
- 在托管c#应用程序的非托管c++ Dll调用中,如何处理数据类型之间的冲突
- 如何/应该在Qt中创建ui表单和数据成员之间的自动链接