Here is the code:
CoInitializeEx(0,COINIT_MULTITHREADED);
HRESULT rv;
HANDLE hFile =
CreateFile(XML_FILE,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,0);
DWORD dwSize = GetFileSize(hFile,NULL);
HGLOBAL hGlobal = GlobalAlloc(GMEM_FIXED,dwSize);
ReadFile(hFile,hGlobal,dwSize,&dwSize,NULL);
IStream* pStream;
CreateStreamOnHGlobal(hGlobal,TRUE,&pStream);
IXMLDOMDocument* pDocument;
rv =
CoCreateInstance(CLSID_DOMDocument,NULL,CLSCTX_INPROC,IID_IXMLDOMDocument,(void**)
&pDocument);
pDocument->put_async(VARIANT_FALSE);
VARIANT var = { 0 };
var.vt = VT_UNKNOWN;
var.punkVal = pStream;
VARIANT_BOOL err;
rv = pDocument->load(var,&err);
I don't know the answer, you might want to post in
http://social.msdn.microsoft.com/Forums/en-US/msxml/threads/
as some Microsoft employees are answering questions there so your
chances to get a qualified answer are higher there than in this newsgroup.
--
Martin Honnen --- MVP XML
http://msmvps.com/blogs/martin_honnen/