html获得文本,从 IHTMLDocument2 获得/写入 HTML 文本 (IPersistStreamInit)

/

// CHtmlView operations

BOOL CHtmlView::GetSource(CString& refString)

{

BOOL bRetVal = FALSE;

CComPtr spDisp = GetHtmlDocument();

if (spDisp != NULL)

{

HGLOBAL hMemory;

hMemory = GlobalAlloc(GMEM_MOVEABLE, 0);

if (hMemory != NULL)

{

CComQIPtr spPersistStream = spDisp;

if (spPersistStream != NULL)

{

CComPtr spStream;

if (SUCCEEDED(CreateStreamOnHGlobal(hMemory, TRUE, &spStream)))

{

spPersistStream->Save(spStream, FALSE);

LPCTSTR pstr = (LPCTSTR) GlobalLock(hMemory);

if (pstr != NULL)

{

// Stream is always ANSI, but CString

// assignment operator will convert implicitly.

bRetVal = TRUE;

TRY

{

refString = pstr;

}

CATCH_ALL(e)

{

bRetVal = FALSE;

DELETE_EXCEPTION(e);

}

END_CATCH_ALL

if(bRetVal == FALSE)

GlobalFree(hMemory);

else

GlobalUnlock(hMemory);

}

}

}

}

}

return bRetVal;

}

向 IHTMLDocument2  写入 HTML 文本

int CChildView::HqResize(void)

{

USES_CONVERSION;

CComPtr pDoc;

CComPtr sphtmlAll;

CComPtr spObject;

CComPtr spDisp;

CComVariant varName;

CComVariant varIndex;

if(FAILED(m_wndHq.GetDocument(&pDoc)) || pDoc==NULL)

return 0;

CString strHtml="

网页行情"

"

"

"

"CLASSID='clsid:C952403E-C18D-4332-9F3D-0E1D7C486145'"

"ALIGN='CENTER'"

"width='%d'"

"height='%d'>"

"

"

"

"window.focus();"

""

""

"";

CRect rc;

GetClientRect(&rc);

CString strIn;

strIn.Format(strHtml,rc.Width()-20,rc.Height()-15);

CComQIPtr spPersistStream(pDoc);

if(spPersistStream==NULL)

return 0;

LPTSTR lpMem = (LPTSTR)::GlobalAlloc( GPTR,strIn.GetLength()+1);

lstrcpy(lpMem,strIn.GetBuffer());

CComPtrspStream;

CreateStreamOnHGlobal( lpMem, TRUE, &spStream );

// 初始化后,装载显示

spPersistStream->InitNew();

spPersistStream->Load(spStream );

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值