根据Internet Explorer_Server窗口得到IWebBrowser2,调用Navigate2失败解决办法

根据Internet Explorer_Server窗口得到IWebBrowser2,调用Navigate2失败
函数代码如下,传入的参数hWnd为Internet   Explorer_Server窗口句柄
函数调用执行的结果总是FAIL,哪位达人指出其中的错误?谢谢了
void   MyNavigate2(HWND   hWnd,char   *url)  
{
CoInitialize(   NULL   );

HINSTANCE   hInst   =   LoadLibrary(_T( "OLEACC.DLL "));
IWebBrowser2*   pWebBrowser2=NULL;
if(hInst!=NULL)
{
if(hWnd!=NULL)
{
LRESULT   lRes;
UINT   nMsg   =   ::RegisterWindowMessage(_T( "WM_HTML_GETOBJECT "));
::SendMessageTimeout(hWnd,nMsg,0L,0L,SMTO_ABORTIFHUNG,   1000,   (DWORD*)&lRes   );
LPFNOBJECTFROMLRESULT   pfObjectFromLresult   =   (LPFNOBJECTFROMLRESULT)::GetProcAddress(hInst,   _T( "ObjectFromLresult ")   );
if(pfObjectFromLresult!=NULL)
{
HRESULT   hr;
CComPtr <IHTMLDocument2> spDoc;
hr=pfObjectFromLresult(lRes,IID_IHTMLDocument2,0,(void**)&spDoc);
if(SUCCEEDED(hr))
{
CComPtr <IHTMLWindow2> spWnd2;
CComPtr <IServiceProvider> spServiceProv;

hr=spDoc-> get_parentWindow   ((IHTMLWindow2**)&spWnd2);
if(SUCCEEDED(hr))
{
hr=spWnd2-> QueryInterface   (IID_IServiceProvider,(void**)&spServiceProv);
if(SUCCEEDED(hr))
{
hr   =   spServiceProv-> QueryService(SID_SWebBrowserApp,IID_IWebBrowser2,(void**)&pWebBrowser2);

CComVariant   d= "http://www.google.com ";

hr=pWebBrowser2-> Navigate2(&d,NULL,NULL,NULL,NULL);
Sleep(10000);
if(SUCCEEDED(hr))
{
MessageBox(NULL, "SUCCEEDED ", "Navigate2 ",MB_ICONSTOP);
}
else
MessageBox(NULL, "fail ", "Navigate2 ",MB_ICONSTOP);
//pWebBrowser2-> Navigate2((VARIANT   *)url,&t,&v,&p,&h);
}
}
}

}
}
::FreeLibrary(hInst);
}  
CoUninitialize();
}

------解决方案--------------------
错误代码呢?
------解决方案--------------------
我也和你遇到了一样的问题,我SNIFF了数据,发现改了HEADER后的数据是正常发送出去了,但我在网页上用document.referrer里取不到referrer的值。真郁闷!!!