请教:如何使用IHTMLWindow2的put_onloadVARIANTv方法来设置接收event的IDispatchobject?
描述:
我使用的方法是:
1. 创建一个IDispatch类——
class ATL_NO_VTABLE CHTMLWinEventHandler :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CHTMLWinEventHandler, &CLSID_HTMLWinEventHandler>,
public IDispatchImpl<IHTMLWinEventHandler, &IID_IHTMLWinEventHandler, &LIBID_GetIESLib>
{
...
...
}
2. 调用put_onload——
CComObject<CHTMLWinEventHandler> *pOnload = NULL;
hr = CComObject<CHTMLWinEventHandler>::CreateInstance(&pOnload);
VARIANTARG vLoadHandler;
VariantInit(&vLoadHandler);
vLoadHandler.vt = VT_DISPATCH;
vLoadHandler.pdispVal = (IDispatch *)pOnload;
hr = pHtmlWin->put_onload(vLoadHandler);
但是却接收不到任何event。
值得一提的是:我想捕捉的是其他进程的IHTMLWindow2事件,不知是否跨进程如此使用是无用的。
该调用方法是否有误?
如果不能跨进程的话,我用插入线程的方法,在目标进程中使用该方法能否成功?
解决方案1:
用连接点Advise啊