IStream в MSXML DOMDocument

Есть ли простой способ получить IStream XML-документа, а затем загрузить его в IXMLDOMDocument (msxml)? Желательно без записи потока на диск.


person evve    schedule 13.06.2013    source источник


Ответы (2)



Вероятно, вы захотите использовать SHCreateMemStream :

bool load_xml_string(IXMLDOMDocument* xml_doc, std::string const& xml_string){
  CComPtr<IStream> stream;
  stream.Attach(SHCreateMemStream((const BYTE*)xml_string.c_str(),
                                  (UINT)xml_string.size()));
  VARIANT_BOOL load_result = VARIANT_FALSE;
  return (xml_doc->load(CComVariant(static_cast<IUnknown*>(&stream)), &load_result) == S_OK &&
          load_result == VARIANT_TRUE);
}

person Chronial    schedule 23.04.2020