#pragma once class CXy; namespace SymbolManager { class AFX_EXT_CLASS CLibraryItem { public: CLibraryItem(); ~CLibraryItem(); void ClearXy(); void SetXy(CXy* pxy); CString GetItemName(void); int Read(void); void Write(void); CXy* m_pxy; CString m_strFileName; BOOL m_bModified; ///< 是否被修改过 }; class AFX_EXT_CLASS CLibraryManager { public: CLibraryManager(); virtual ~CLibraryManager(); CList m_libXy; ///< 符号库里面的文件XY链表 CString m_strPath; BOOL IsSameLibraryPath(LPCTSTR lpszLibPath); void RemoveAll(void); void RemoveGroup(CString strNewFile); void ReloadGroup(const CString& strFile); BOOL RenameGroup(CString oldFile, CString newFile); BOOL SaveAll(); bool InitLib(CString strNewPath, BOOL bNotJudgeSamePath); POSITION AddNewGroup(CString strNewFile); POSITION Find(CXy* pxy); POSITION Find(CString strLibName); CLibraryItem* GetAt(POSITION pos); CXy* GetItemXy(POSITION pos); CString GetTreePathName(LPCTSTR strFileName); /** @brief 查找组strGroup中名称为strName的符号 */ CXy *FindMark(const CString &strGroup, const CString &strName); /* @brief 查找符号名为strName的符号 */ CXy *FindMark(const CString &strName); void ReNameMark(const CString &strGroup, const CString &oldName,const CString &newName); }; } using namespace SymbolManager; extern "C" AFX_EXT_API CLibraryManager *WINAPI AfxGetMarkLibMgr();