2013-06-13 5 views
0

XML 문서의 IStream을 가져 와서 IXMLDOMDocument (msxml)에로드하는 간단한 방법이 있습니까? 스트림을 디스크에 기록하지 않는 것이 바람직합니다.IStream to MSXML DOMDocument

답변

1

체크 아웃 this! More example.

std::istream 기반 ISequentialStream 구현 예 : link. (ISequentialStreamIStream의 기본 클래스 임).

// VARIANT_TRUE != TRUE !!!!!!!!!!! 
VARIANT_BOOL retval = VARIANT_TRUE; 
// document object created by CoCreateInstance 
IXMLDOMDocument* xml_doc; 
// own ISequentialStream/IStream instance (like example) 
ISequentialStream* streamaddress; 
// variant: could be IStream, ISequentialStream or IPersistStream 
VARIANT xmlSource; 
// variant init 
VariantInit(&xmlSource); 
// your object is an IUnknown interface 
xmlSource.vt = VT_UNKNOWN; 
// set its address 
xmlSource.punkVal = streamaddress; 
// load XML from stream 
if ((xml_doc->load(xmlSource,&retval) == S_OK) && (retval == VARIANT_TRUE)) { 
    // done 
} 

VARIANT_TRUE