1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| void CFred::XmlReader()
{
CComPtr<IXmlReader> pReader;
CComPtr<IStream> pStream;
XmlNodeType nodeType = XmlNodeType_None;
HRESULT result = S_OK;
const WCHAR* ppwszPrefix;
const WCHAR* ppwszLocalName;
const WCHAR* pwszValue;
UINT pcwchPrefix;
result = CreateXmlReader(__uuidof(IXmlReader), (void**) &pReader, NULL);
// create stream object
result = SHCreateStreamOnFile(L"fred.xml", STGM_READ | STGM_SHARE_DENY_READ, &pStream);
result = pReader->SetInput(pStream);
while (S_OK == (pReader->Read(&nodeType)))
{
switch (nodeType)
{
case XmlNodeType_Element:
result = pReader->GetLocalName(&ppwszLocalName, NULL);
}
}
for(HRESULT result = pReader->MoveToFirstAttribute();
S_OK == result;
result = pReader->MoveToNextAttribute())
{
/*pReader->GetPrefix(*/
}
} |