#ifndef __TOKEN_H__ #define __TOKEN_H__ #include class CToken: public CObject { friend class CTokenFile; public: // Constructor CToken(); int Parse(CString strSrc, CString strTgt); CString GetTgtText() { return m_strTgtText; } CString GetSrcText() { return m_strSrcText; } unsigned int GetFlags() { return m_uiFlags; } BOOL GetTgtSize(WORD *, WORD *, WORD *, WORD *); BOOL GetSrcSize(WORD *, WORD *, WORD *, WORD *); int GetLastError() { return m_uiLastError; } CString GetTokenID() { return m_strTokenID; } protected: unsigned int m_uiTypeID; unsigned int m_uiResID; unsigned int m_uiItemID; unsigned int m_uiFlags; unsigned int m_uiStatusFlags; unsigned int m_uiLastError; CString m_strItemName; CString m_strSrcText; CString m_strTgtText; CString m_strTokenID; }; class CTokenFile { public: CTokenFile(); ~CTokenFile(); // Operators int Open(CString strSrcFile, CString strTgtFile); const CToken * GetToken(unsigned int TypeID, unsigned int ResID, unsigned int ItemID, CString strText, CString strItemName = ""); const CToken * GetNoCaptionToken(unsigned int TypeID, unsigned int ResID, unsigned int ItemID, CString strItemName = ""); // Overload GetTokenSize since some item have no text but change in size const CToken * GetTokenSize(CToken * pToken, WORD * px, WORD * py, WORD * pcx, WORD * pcy); const CToken * CTokenFile::GetTokenSize(unsigned int TypeID, unsigned int ResID, unsigned int ItemID, CString strItemName, WORD * px, WORD * py, WORD * pcx, WORD * pcy); int GetTokenNumber() { return (int)m_Tokens.GetSize(); } private: CObArray m_Tokens; INT_PTR m_iLastPos; INT_PTR m_iUpperBound; CString m_strSrcFile; CString m_strTgtFile; }; #endif // __TOKEN_H__