-
-
[求助]COM组件中的事件的HOOK
-
发表于:
2013-2-5 15:21
6213
-
最近研究一个ocx控件,coclass实现了两个接口IA,IAEvents,IA包含控件功能,IAEvents包含了IA的事件,第一个接口通过Hook CoCreateInstance得到IUnknown指针后,(IUnknown*)->QueryInterface(IID_IA获得IA接口,通过IA的VTable,Hook成功,但IAEvents的指针通过(IUnknown*)->QueryInterface(IID_IAEvents却无法获取,返回E_NOINTERFACE,没有此接口,但我通过OLEView查看ocx实现:
coclass ZKA {
[default] interface IA;
[default, source] dispinterface IAEvents;
};
[
uuid(762A8D2D-3DDE-9744-BA38-08F900D10D6D),
version(3.1),
helpstring("Dispatch interface for ZKA Control"),
dual
]
dispinterface IA {
properties:
methods:
[id(0x00000006), propget]
long RecCount();
[id(0x00000006), propput]
void RecCount([in] long rhs);
[id(0x00000008)]
void Method1();
}
[
uuid(7ABB2E53-7EAE-4B51-A964-009ADC68D107),
version(3.1),
helpstring("Events interface for ZKA Control")
]
dispinterface IAEvents {
properties:
methods:
[id(0x00000005)]
void OnEvent1([in] long AQuality);
}
为什么无法找到IAEvents呢,还有这个COM组件的事件那位大侠知道他是怎么个实现步骤的,通过连接点or...?我想截取IAEvents中的事件,怎么能做到啊,望各位大侠指点啊,不胜感激。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!