如何在VC中使用IHTMLDocument2::createElement()函数创建一个 IHTMLScriptElement?

questionboy 2003-10-15 05:12:07
IHTMLDocument2::createElement()函数可以创建一个新的IHTMLElement,但是我在创建一个IHTMLScriptElement的时候却遇到了问题。虽然使用“script”关键字创建了一个新的element,但是它并不是一个IHTMLScriptElement,这是为什么?代码如下:
IHTMLElementCollectionPtr pColl;
if( m_pDoc2 != 0 && S_OK == m_pDoc2->get_all( &pColl ) )
{
long l;
if( S_OK == pColl->get_length( &l ) )
{
for( long i=0; i<l; i++ )
{
VARIANT vt;
vt.vt = VT_I4;
vt.lVal = i;
IDispatchPtr pDis;
if( S_OK == pColl->item( vt, vt, &pDis ) )
{
CComBSTR str;
IHTMLDOMNodePtr pNode = pDis;
if( pNode )
{
if( S_OK == pNode->get_nodeName( &str ) )
{
IHTMLElementPtr pEle;
//获取body element
if( str == CComBSTR("BODY") || str == CComBSTR("body") )
{
//创建一个script关键字的element
if( S_OK == m_pDoc2->createElement( L"script", &pEle ) )
{
IHTMLDOMNodePtr p = pEle;
if( p )
{
IHTMLDOMNodePtr pReturn;
//将新的element插入到body最后
if( S_OK == pNode->appendChild( p, &pReturn ) )
{
break;
}
}
}
}
}
}
}
}
}
}
...全文
385 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
questionboy 2003-10-17
  • 打赏
  • 举报
回复
感谢大家,是我调用有问题,应该如下调用
CComBSTR str("script");
m_pDoc2->createElement( str, &pEle ) );
IHTMLScriptElementPtr p = pEle;
assert( p != 0 );
我在调用createElement的时候第一个参数传递有问题。
m_pDoc2->createElement( L"script", &pEle ) )

yzxlyd 2003-10-17
  • 打赏
  • 举报
回复
up
saucer 2003-10-17
  • 打赏
  • 举报
回复
should work, look here (in Japanese, but you read the code):

http://member.nifty.ne.jp/LILILIN/HOWTO/activex_javascript.htm

or use document's get_scripts methods
questionboy 2003-10-16
  • 打赏
  • 举报
回复
如果能够这样直接转换我就不用愁了
yonghengdizhen 2003-10-15
  • 打赏
  • 举报
回复
它返回的是一个IHTMLElement 接口
你应该调用IHTMLElement::QueryInterface
并要求获得IHTMLScriptElement接口
如果对象实现了该接口将返回对应的接口指针并返回S_OK
否则将返回E_NOINTERFACE
内容概要:本文针对高新能源渗透率电网构网型(GFM-VSG)与跟网型(GFL-PQ)并联变流器的异构控制体系及其频率支撑能力展开深入研究,重点通过Simulink仿真实现对混合并网系统的动态特性进行建模与分析。研究系统梳理了GFM与GFL变流器在控制原理上的本质差异,揭示了其在多时间尺度下的交互机制,并探讨了在强弱电网不同适配场景下的协同控制逻辑。通过构建包含虚拟同步机(VSG)和恒功率控制(PQ)策略的仿真模型,全面分析系统在电网扰动下的频率响应特性、暂态稳定性及扰动抑制能力。研究对比了不同类型变流器在频率调节、功率分配和系统恢复方面的性能表现,深入剖析异构系统频率支撑的协作机制与优化路径,为高比例新能源电网的安全稳定运行提供了理论依据与技术支撑。; 适合人群:具备电力电子、新能源并网、自动控制或电力系统相关专业知识背景,从事科研、工程应用或技术开发的研发人员、高校研究生及高年级本科生。; 使用场景及目标:① 研究GFM与GFL变流器在混合并网系统的协同控制策略与交互机理;② 分析高渗透率新能源电网面临的频率稳定问题及变流器的频率支撑能力;③ 利用Simulink搭建GFM-GFL混合并网系统仿真模型,开展动态性能验证、控制算法设计与优化。; 阅读建议:建议结合文提到的Simulink仿真模型与博士论文复现案例进行实践操作,重点关注不同工况下的系统频率响应曲线、功率动态曲线与控制参数敏感性分析,深入理解异构控制体系的设计逻辑、多时间尺度交互特性及优化潜力。

87,988

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧