Navigate2函数在winxp的有关问题

Navigate2函数在winxp的问题
我在WIN7上用 VS2008编译一个 MFC release 工程
工程是这样的
一个Dialog 然后在InitDialog函数里面动态创建一个WebBrowSer控件

代码为:
C/C++ code
    CRect rect_main;
    GetClientRect(&rect_main);
    pWeb2 = new CWebBrowser2;
    pWeb2->Create(NULL, WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_CLIPCHILDREN|WS_CLIPSIBLINGS, rect_main, this, IE_TWO);



然后添加一个Buttton 代码为
C/C++ code
void CexeDlg::OnBnClickedButton1()
{
    VARIANT vt;
    pWeb2->Navigate2(&CComVariant("http://www.baidu.com"), &vt,&vt,&vt,&vt);
}



我点了一下Button 在WIN7下无问题 到了XP就出现


经过跟踪后发现是在

0012D3A0 01288B68 返回到 ieframe.01288B68 来自 <jmp.&OLEAUT32.#24>//这个函数就是 SafeArrayUnlock
在里面发现了读写错误

怎么回事啊 WIN7就没问题。。。。对了Debug没问题



------解决方案--------------------
可以用CHtmlView来派生一个CHtmlCtrl控件的,这个网上有代码

或者这样?
VARIANT vtEmpty; 
VariantInit(&vtEmpty);
pWeb2->Navigate2(&CComVariant("http://shenghuo.alipay.com/peerpay/confirmPeerPay.htm?id=20120512098290866&sign=fcbfebf1"),&vtEmpty,&vtEmpty,&vtEmpty,&vtEmpty);