win32 dll程序报错
奋斗小青年 2011-11-02 10:12:37 我现在想写个程序,获取IE浏览器当前输入的URL地址。我的源码如下,但报很多错误,麻烦各位大神帮忙下。
BSTR *strURL;
CComPtr <IOleContainer> spContainer;
m_spClientSite-> GetContainer(&spContainer);
CComQIPtr <IHTMLDocument2> spDoc = spContainer;
CComQIPtr <IWebBrowser2> pWebBrowser;
if (spDoc)
{
// 已经得到了 IHTMLDocument2 的接口指针
CComQIPtr <IHTMLWindow2> spWin2;
CComQIPtr <::IServiceProvider> isp; // 为什么要加::,原因是我使用了using namaspace shockwaveflash;
HRESULT hr = spDoc-> get_parentWindow(&spWin2);
if (FAILED(hr))
return hr;
isp = spWin2;
//spWin2-> QueryInterface(IServiceProvider, &isp); // 上面那句换成这个也可以
CComQIPtr <IWebBrowserApp> iwba;
// SID_SWebBrowserApp 和 IID_IWebBrowserApp 定义是一样的
hr = isp-> QueryService(IID_IWebBrowserApp, IID_IWebBrowserApp, (void **)&iwba);
if (FAILED(hr))
return hr;
hr = isp-> QueryService(IID_IWebBrowserApp, IID_IWebBrowser2, (void **)&pWebBrowser);
if (FAILED(hr))
return hr;
hr = pWebBrowser-> get_LocationURL(strURL);
if (FAILED(hr))
return hr;
return S_OK;
}