我要做一个类似qq眩采工具栏的东西,就是在IE中,当鼠标移动到图片上时,会弹出一个对话框,可以将图片保存等.
请教如何做.
我现在的思路是,用钩子Hook WindowsAPI BitBlt函数,当鼠标移动的时候,取鼠标下一个很小的矩形,然后使这个矩形无效,如果调用了BitBlt函数就代表鼠标小的是图片.
现在这个想法做了部分,但是还没有完全实现,如果高人有更好的方法,请指教,还有如果谁作过类似的东西,还忘赐教.
谢谢.
请教如何做.
我现在的思路是,用钩子Hook WindowsAPI BitBlt函数,当鼠标移动的时候,取鼠标下一个很小的矩形,然后使这个矩形无效,如果调用了BitBlt函数就代表鼠标小的是图片.
现在这个想法做了部分,但是还没有完全实现,如果高人有更好的方法,请指教,还有如果谁作过类似的东西,还忘赐教.
谢谢.
参考:
http://www.vckbase.com/document/viewdoc/?id=288
和
http://www.vckbase.com/document/viewdoc/?id=1446
应该是先判断鼠标的位置,当在某个位置时,弹出菜单,复制,保存等菜单进行所需操作"
"当在某个位置时":什么位置,怎样知道IE中图片的在什么位置
能详细说明吗?
1、attachEvent的参数是一个IDispatch,你随便怎么乱实现都可以,之后触发事件的时候,DHTML会用你实现的Invoke 来调用,我记不清楚了 GetIDsOfNames、GetTypeInfo、GetTypeInfoCount这3个函数他是不会调用的,你可以放心,直接返回E_NOTIMPL就可以,当然IUnknown的实现不能省
{\
function A(b)\
{\
}\
\
for(int i=0; i < 5; i++)\
{\
A(i);\
}\
}"把这个字符串转换成BSTR作为你execScript的那个BSTR参数,你就可以得到这个函数的VARIANT类型的变量,你可以从里面得到IDispatch的值,然后用IDispatch::Invoke,把dispid设成0来调用就是调用它本身。
See also
http://msdn.microsoft.com/workshop/browser/mshtml/tutorials/sink.asp