首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C中使用IXMLDOMNode_insertBefore

在C中使用IXMLDOMNode_insertBefore
EN

Stack Overflow用户
提问于 2020-09-01 19:13:55
回答 1查看 58关注 0票数 0

我目前正在使用win32和一些MSXML开发一个纯C应用程序来处理设置文件。我的文件结构类似于:

代码语言:javascript
复制
<doc>
  <Element1>
    <A></A>
    <C></C>
  </Element1>
...
</doc>

我需要在A和C之间插入一个元素<B></B>。我找到了派生自C++方法HRESULT insertBefore( IXMLDOMNode* pNewChild, VARIANT varRefChild, IXMLDOMNode** ppOutNewChild );的包装器IXMLDOMNode_insertBefore。varRefChild应该引用C节点,但是我找不到在VARIANT结构中存储它的地址的方法。

EN

回答 1

Stack Overflow用户

发布于 2020-09-02 12:24:01

作为文档IXMLDOMNode::insertBefore下的Example,它使用CComVariant varRef并将其设置为IXMLDOMNode

代码语言:javascript
复制
varRef = pXMLNodeRef;
hr = pXMLElement->insertBefore(pXMLNodeNew, varRef, &pXMLNodeCur);

您也可以像C:中的CComVariant operator=类一样执行此操作:

代码语言:javascript
复制
CComVariant& operator=(_Inout_opt_ IUnknown* pSrc) ATLVARIANT_THROW()
{
    if (vt != VT_UNKNOWN || pSrc != punkVal)
    {
        ClearThrow();  //VariantClear()

        vt = VT_UNKNOWN;
        punkVal = pSrc;

        // Need to AddRef as VariantClear will Release
        if (punkVal != NULL)
            punkVal->AddRef();
    }
    return *this;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63686547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档