// Implementation of class CFileNode // // During parsing an inf file, information about each file // is stored in an instance of this class. Such information // includes the name of the file, its section in the inf file, // its location (directory), etc. #include "filenode.h" CPNode::CPNode(LPCTSTR szName) { Assert (szName != NULL); lstrcpyn(m_szName, szName, MAX_PATH); m_pNext = NULL; m_bRemovable = FALSE; } CPNode::~CPNode() { if (m_pNext != NULL) delete m_pNext; } // insert a new file node into list //HRESULT CFileNode::Insert(LPCTSTR szName, LPCTSTR szSection) HRESULT CPNode::Insert(CPNode* pNewNode) { if (pNewNode == NULL) return HRESULT_FROM_WIN32(ERROR_BAD_ARGUMENTS); m_pNext = pNewNode; return S_OK; } // get the file node placed right after this one in list CPNode* CPNode::GetNext() const { return m_pNext; } // tell the path in which this file is located HRESULT CPNode::SetStr(LPTSTR lpszMember, LPCTSTR lpszNew ) { Assert (lpszNew != NULL); if (lpszNew == NULL) return HRESULT_FROM_WIN32(ERROR_BAD_ARGUMENTS); lstrcpyn(lpszMember, lpszNew, MAX_PATH); // all our string members are MAX_PATH return S_OK; } // retrieve the name of the file represented by this node LPCTSTR CPNode::GetName() const { return m_szName; } // retrieve the path of the file represented by this node LPCTSTR CPNode::GetPath() const { return (m_szPath[0] == '\0' ? NULL : m_szPath); } // constructor CPackageNode::CPackageNode(LPCTSTR szName, LPCTSTR szNamespace, LPCTSTR szPath) : CPNode(szName) { Assert (szNamespace != NULL); lstrcpyn(m_szName, szName, MAX_PATH); lstrcpyn(m_szNamespace, szNamespace, MAX_PATH); if (szPath != NULL) { lstrcpyn(m_szPath, szPath, MAX_PATH); } else { m_szPath[0] = '\0'; } m_pNext = NULL; m_fIsSystemClass = FALSE; } // destructor CPackageNode::~CPackageNode() { } // retrieve the name of the section in the inf file which // which the file represented by this node was installed LPCTSTR CPackageNode::GetNamespace() const { return m_szNamespace; } // constructor CFileNode::CFileNode(LPCTSTR szName, LPCTSTR szSection, LPCTSTR szPath) : CPNode(szName) { Assert (szSection != NULL); lstrcpyn(m_szName, szName, MAX_PATH); lstrcpyn(m_szSection, szSection, MAX_PATH); if (szPath != NULL) { lstrcpyn(m_szPath, szPath, MAX_PATH); } else { m_szPath[0] = '\0'; } m_pNext = NULL; } // destructor CFileNode::~CFileNode() { } // retrieve the name of the section in the inf file which // which the file represented by this node was installed LPCTSTR CFileNode::GetSection() const { return m_szSection; }