Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++ BUILD Version: 0000 // Increment this if a change has global effects
Copyright (c) 2000-2002 Microsoft Corporation
Module Name:
parser.h
Abstract:
Header file for parsing XML file
Author:
Xiaohai Zhang (xzhang) 22-March-2000
Revision History:
--*/
#ifndef __PARSER_H__
#define __PARSER_H__
#include "windows.h"
#include "objbase.h"
#include "msxml.h"
class CXMLLine { public: CXMLLine (IXMLDOMNode * pNode) { m_pLineNode = pNode; }
~CXMLLine () { if (m_pLineNode) { m_pLineNode->Release(); } }
HRESULT GetNextLine (CXMLLine ** ppLine);
HRESULT GetAddress (LPTSTR szBuf, DWORD cch); HRESULT GetPermanentID (ULONG * pID); HRESULT IsPermanentID (BOOL *pb); HRESULT IsRemove (BOOL *pb); private: IXMLDOMNode * m_pLineNode; };
class CXMLUser { public: CXMLUser (IXMLDOMNode * pNode) { m_pUserNode = pNode; }
~CXMLUser () { if (m_pUserNode) { m_pUserNode->Release(); } }
HRESULT GetFirstLine (CXMLLine ** ppLine); HRESULT GetNextUser (CXMLUser **ppNextUser);
HRESULT GetDomainUser (LPTSTR szBuf, DWORD cch); HRESULT GetFriendlyName (LPTSTR szBuf, DWORD cch); HRESULT IsNoMerge (BOOL *pb); private: IXMLDOMNode * m_pUserNode; };
class CXMLParser { public:
//
// Constructors / destructors
//
CXMLParser (void); ~CXMLParser ();
//
// Public functions
//
HRESULT SetXMLFile (LPCTSTR szFile); HRESULT GetXMLFile (LPTSTR szFile, DWORD cch);
HRESULT Parse (void); HRESULT ReportParsingError ();
void Release() { if (m_pDocInput) { m_pDocInput->Release(); m_pDocInput = NULL; } }
//
// User transversal
//
HRESULT GetFirstUser (CXMLUser ** ppUser);
protected:
private: HRESULT CreateTempFiles ();
private: BOOL m_bInited; TCHAR m_szXMLFile[MAX_PATH]; IXMLDOMDocument * m_pDocInput;
TCHAR m_szTempSchema[MAX_PATH]; TCHAR m_szTempXML[MAX_PATH]; };
#endif // parser.h
|