何时在哪里卸载全局钩子?解决思路

何时在哪里卸载全局钩子?
我在一MFC扩展dll里创建了全局鼠标钩子(WH_MOUSE类型),然后在共享数据库里,为需要这个钩子的地方做了收用记数,不需要的时候户数器减1,减为0的时候,卸载钩子。

比如A.exe和B.exe都需要这个动态库,如果我启动A,然后再退出,再钩子创建、卸载都正常,也能钩到消息。

如果我启动按A.exe、B.exe这样的顺序,然后再按同样的顺序分别关闭A和B,这时卸载钩子的时候出错(其余都正常),说是非法的挂钩句柄。

换句话说,在B中卸载钩子就出错,在A中创建的钩子,好像只能在A中卸载,可是这样一来,B就钩不到消息了,也失去了全局钩子的意义了!
想问一下,这是为什么?

------解决方案--------------------
你创建的全局钩子有问题吧