自己参考的一些代码

    技术2022-05-19  20

    //  IHTMLElement* pHtmlElement = NULL;//  if( SUCCEEDED(pElement->get_parentElement( &pHtmlElement ) )//   && pHtmlElement )//  {//   CComVariant varint(NULL);//   if( SUCCEEDED( pHtmlElement->getAttribute( L"itemData", 0, &varint ) ) )//   {//    RECORD* pRecord = (RECORD*)(LONG_PTR)_wtol( varint.bstrVal );//    if ( pRecord )//    {//     MessageBox( (pRecord->strContent +pRecord->strSender).c_str() );//    }//   }//  }

     

     

     IHTMLElement* pParentElement; pElement->get_parentElement(&pParentElement); CComVariant varName; CComBSTR bstr(_T("itemData")); pParentElement->getAttribute(bstr,0,&varName); MessageBox((_bstr_t)varName.bstrVal);

     

     { //如果网页已经初始化,则跳过 if ( !m_bInited ) {  __super::OnNavigateComplete( pDisp, szUrl );  m_bInited = true;  // 得到 IHTMLDocument2 指针  CComPtr< IHTMLDocument2 > spDoc;  GetDHtmlDocument( &spDoc );  if ( spDoc )  {   // 得到 IPersistStreamInit 指针   CComQIPtr< IPersistStreamInit, &IID_IPersistStreamInit > spPSI( spDoc );   // 申请内存,复制 HTML 字符串   if ( spPSI )   {    CHtmlEditer html;    CString Path;    CString strModuleName;    GetModuleFileName( NULL, strModuleName.GetBufferSetLength( MAX_PATH ), MAX_PATH );    strModuleName.ReleaseBuffer();    Path.Format( _T("res://%s/%d"), strModuleName, IDR_CSS_DIV );    //添加CS样式    html.AppendStyle( (LPCTSTR)Path );    //添加script脚本    html.AppendHead(SCRIPT_CODE);

        /#define FOWARD "<div id=/"divid/"  οnmοuseοver=/"SetState(event,this,/'mouseover/')/" /    οnmοuseοut=/"SetState(event,this,/'mouseout/')/"><img src = /"C://Documents and Settings//install.insTALL-31BE561//桌面//个人HTML、js及css测试程序//我的文件夹//a.bmp/" align = /"left/" class=/"alignTop/"><table class=/"tableT/"><tr id=/"trid/" class=/"trT/"><td itemData = /"%s/">%s/                                          <span class = /'visible/' id = /'ID_FROM/'>%s</span>/    <span class = /"visible/" id= /'ID_WHERE/'>%s</span><span class = /"hidden/" id= /'ID_REPLY/'>%s</span><span class = /"hidden/" id= /'ID_FORWAD/'>%s</span><span class = /"hidden/" id= /'ID_SOME/'>%s</span></td></tr><tr><td id=/'ID_CONTEXT/'>%s</td></tr></table></div>"

     

        RECORD* pRecord = new RECORD;    pRecord->strContent = _T("test content");    pRecord->strSender = "12345678911";    CString strName = "刘德华";    CString tableHead = "30分钟前 来自G3通话客户端";    CString strClass = "|G3通话";    CString strContext = "来电, 已接";    CString strReply = "回复|";    CString strForward= "转发|";    CString strSome = "更多操作";    CString str;    str.Format(FOWARD,strName,strName,tableHead,strClass,strReply,strForward,strSome,strContext);    html.AppendBody(str.GetBuffer(0));

        strName = "黎明";    tableHead = "30分钟前 来自G3通话客户端";    strClass = "|G3通话";    strContext = "来电, 未接";    strReply = "回复|";    strForward= "转发|";    strSome = "更多操作";

        str.Format(FOWARD,strName,tableHead,strClass,strReply,strForward,strSome,strContext);    html.AppendBody(str.GetBuffer(0));

        //将内容初始化到网页控件    std::string strHtml = html.toString();

        LPTSTR lpMem = (LPTSTR)::GlobalAlloc( GPTR, (strHtml.length()+1)*sizeof(char) );    if ( lpMem )    {     lstrcpy( lpMem, strHtml.c_str() );     // 转换内存为流对象指针     CComPtr< IStream > spStream;     CreateStreamOnHGlobal( lpMem, TRUE, &spStream );     // 初始化后,装载显示     spPSI->InitNew();     spPSI->Load( spStream );     }    lpMem = NULL;    //m_pBrowserApp->Refresh();   }  } }}

     

     


    最新回复(0)