BOOL InjectDomNode(IWebBrowser *pWb,CString strJSUrl) { if (pWb == NULL) { return FALSE; } CComQIPtr<IHTMLDocument> pDoc; HRESULT hr = pWb->get_Document((IDispatch **)&pDoc); if ( FAILED(hr) || pDoc == NULL ) { return FALSE; } CComQIPtr<IHTMLDocument2> pDoc2(pDoc); if (pDoc2 == NULL) { return FALSE; } CComQIPtr<IHTMLBodyElement> pBody(pDoc2); pDoc2->get_body((IHTMLElement **)&pBody); if (pBody == NULL) { return FALSE; } CComQIPtr<IHTMLElement> pElem; CComQIPtr<IHTMLElement> pJscript; CComQIPtr<IHTMLDocument3> pDoc3 = pDoc; CComQIPtr<IDispatch> iDisp; CComBSTR PJsType = _T("script"); //javascript对象 hr = pDoc2->createElement(PJsType,&pJscript); //创建新元素对象 if(FAILED(hr) || !pJscript ) return FALSE; pJscript->setAttribute(CComBSTR("type"),CComVariant("text/javascript"),0); //设置JS类型 pJscript->setAttribute(CComBSTR("src"),CComVariant(strJSUrl),0); //设置JS类型 pJscript->setAttribute(CComBSTR("charset"),CComVariant("gb2312"),0); //pJscript->setAttribute(CComBSTR("defer"),CComVariant(VARIANT_TRUE),0); //设置加载延迟(必须的) //pJscript->setAttribute(CComBSTR("defer"),CComVariant("defer"),0); //设置加载延迟(必须的) CComQIPtr< IHTMLDOMNode, &IID_IHTMLDOMNode > pBodyNode(pBody); //转为节点对象 if(pBodyNode && pDoc) { CComQIPtr<IHTMLDOMNode,&IID_IHTMLDOMNode> pNewChild(pJscript); //转为节点对象 CComPtr<IHTMLDOMNode> pRefChild; hr = pBodyNode->appendChild(pNewChild, &pRefChild); //加载body页面后面 return hr==S_OK; } return E_FAIL; }
AAboutForm* AAboutForm::CreateMe() { afc_object<AMLBody> pBody(new AMLBody()); AString xml; xml = g_szFormXML; xml.Replace(_T("@"),_T("\"")); pBody->FromXML(xml); AAboutForm* p = dynamic_cast<AAboutForm*>( AControl::CreateInstance(&pBody,AApplication::Get()) ); return p; }
void AColorDialogForm::CreateFromXML() { afc_object<AMLBody> pBody(new AMLBody()); AString xml; xml = g_szDialogWnd; xml.Replace(_T("@"),_T("\"")); pBody->FromXML(xml); this->FromXML(&pBody); this->CenterToScreen(); }
void AMessageForm::CreateFromXML(TDialogButton db) { m_dbs = db; afc_object<AMLBody> pBody(new AMLBody()); AString xml; xml = g_szDialogWnd; xml.Replace(_T("@"),_T("\"")); pBody->FromXML(xml); this->FromXML(&pBody); this->CenterToScreen(); }
bool CHTTPMessageBodyBuilder::CreateMedia (IMediaTypePtr *retpBody) // CreateMedia // // Creates the media buffer { IMediaTypePtr pBody(new CRawMediaType); pBody->DecodeFromBuffer(m_sMediaType, m_Body); *retpBody = pBody; return true; }
WORD PEXPORT KppTestGoal(ITEMID idGoal) { #ifdef INFERENCE WORD i = FALSE; EXPID idBody; LPEXP lpBody2; LPGOAL lpGoal = (LPGOAL) KppGetItem(GOAL, idGoal); GLOBALHANDLE hBody2; LOGICALID (EXPORT FAR *pBody)(void); if (!lpGoal) return KppRegisterKappaMessage (hResThisDll, IDE_ERRORINFUNC, lpIDs->idError, NULLID, NULLID); if (FLAGS(lpGoal) & CBODY) { pBody = CBODYPTR(lpGoal); KppReleaseItem(GOAL, idGoal); if ( !pBody ) return KppRegisterKappaMessage (hResThisDll, IDE_ERRORINFUNC, lpIDs->idError, NULLID, NULLID); KappaReturnAtom( pBody() ); } else { idBody = BODY(lpGoal); KppReleaseItem(GOAL, idGoal); if (!idBody) KappaReturnAtom(lpIDs->idNull); lpBody2 = KppCopyTempExp(idBody, (GLOBALHANDLE FAR *)&hBody2); UnwindProtect (cleanup); i = Kpp_EvalExp(lpBody2); cleanup: KppReleaseTempExp(hBody2, i); EndProtect(); return i; } #endif }