|
获取wince IE(我用的就是WINCE的IESAMPLE)打开的当前网页的指定(鼠标选中的内容块)的内容(文字内容),如:鼠标选中的一段网页的新闻,部分代码如下:
//CHAR Buffer[8192];//用来获取鼠标的选中的值
DWORD dwErr= 0x0;
// CComPtr<IHTMLDocument> pDoc;
CComPtr<IHTMLDocument2> pDoc2=NULL;
CComPtr<IWebBrowser2> _pBrowser;//_pBrowser当前网页的IWebBrowser2接口
HRESULT hr;
IDispatch* pDocDisp=NULL;
if(_pBrowser!=NULL)
{
hr= _pBrowser->get_Document(&pDocDisp);
CHAR buf[1024];
DWORD dwErr= 0x0;
dwErr= GetLastError( );
sprintf( buf, "%X", dwErr );//返回0x00000006句柄无效
}
if(pDocDisp!=NULL)
{
hr=pDocDisp->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&pDoc2);//查询接口IHTMLDocument2失败,返回的pDoc2不行,主要是这里的问题,帮我看看
CHAR buf[1024];
DWORD dwErr= 0x0;
dwErr= GetLastError( );
sprintf( buf, "%X", dwErr );
if(!SUCCEEDED(hr))
{
MessageBox( _hWnd, L"No this interface", L"Error", MB_OK );
}
}
IHTMLSelectionObject* pSelection=NULL;
if(pDoc2!=NULL)
{
hr=pDoc2->get_selection(&pSelection);
dwErr= GetLastError( );
sprintf( buf, "%X", dwErr );
}
if(SUCCEEDED(hr))
{
IDispatch* pDispRange=NULL;
if(pSelection!=NULL)
{
hr=pSelection->createRange(&pDispRange);
dwErr= GetLastError( );
sprintf( buf, "%X", dwErr );
}
if(SUCCEEDED(hr))
{
IHTMLTxtRange* pTextRange=NULL;
if(pDispRange!=NULL)
{
hr=pDispRange->QueryInterface(IID_IHTMLTxtRange,(void**)
(&pTextRange));
dwErr= GetLastError( );
sprintf( buf, "%X", dwErr );
}
if(SUCCEEDED(hr))
{
CComBSTR sText=NULL;
if(pTextRange!=NULL)
{
pTextRange->get_text(&sText);//鼠标选中的得到的Buffer给
sText;
//
dwErr= GetLastError( );
sprintf( buf, "%X", dwErr );
}
pTextRange->Release();
}
pDispRange->Release();
}
pSelection->Release();
}
// pDoc2->Release();
return S_OK;
网上很多人这样用,我就不行了,那位大侠先看到,请帮忙看看,帮帮忙,谢谢了
硬件是三星2440开发板 |
|