//----------------------------------------------------------------------------- // // File: locstr.h // Copyright (C) 1994-1997 Microsoft Corporation // All rights reserved. // // Definition of a localizable string. The following classes are defined: // CLocString - all the operations we can do on a localizable string. // //----------------------------------------------------------------------------- #ifndef LOCSTR_H #define LOCSTR_H interface ILocStringValidation; #pragma warning(disable: 4275) // non dll-interface class 'foo' used // as base for dll-interface class 'bar' class LTAPIENTRY CLocString : public CObject { public: NOTHROW CLocString(); void AssertValid(void) const; // // Information about the localizable string... // NOTHROW BOOL HasHotKey(void) const; NOTHROW WCHAR GetHotKeyChar(void) const; NOTHROW UINT GetHotKeyPos(void) const; NOTHROW const CPascalString & GetNote(void) const; NOTHROW const CPascalString & GetString(void) const; NOTHROW int operator==(const CLocString &) const; NOTHROW int operator!=(const CLocString &) const; // // Some useful assigment operators. // NOTHROW void SetString(const CPascalString&); NOTHROW void SetHotKeyChar(WCHAR); NOTHROW void SetHotKeyPos(UINT); NOTHROW void ClearHotKey(void); NOTHROW void SetNote(const CPascalString &); // Conversion from/to Windows hot key strings // This is also the format used to display strings in edit mode NOTHROW int ParseString(const CPascalString & pasStr, WORD langId); NOTHROW void ComposeString(CPascalString & pasStr, WORD langId) const; NOTHROW CST::StringType GetStringType(void) const; NOTHROW CodePageType GetCodePageType(void) const; NOTHROW void SetStringType(CST::StringType); NOTHROW void SetCodePageType(CodePageType); // Conversion from/to displayable string in the resource table. void GetDisplayLString(CLString &strDest, LangId langId); void GetDisplayPString(CPascalString &strDest, LangId langId, BOOL bReplaceMetaCharacters); void GetEditableString(CLString &strDest, LangId langId); int ParseEditableString(const CLString &strSrc, LangId langId, CString &strErr); int ParseEscapeChar(BOOL bSetHotkeyPos, CPascalString &strErr); int ParseAmpersand(LangId langId,BOOL bSetHotkeyPos,CPascalString &strErr); NOTHROW const CLocString& operator=(const CLocString&); NOTHROW ~CLocString(); protected: private: // // Private implementation functions. // NOTHROW void CopyLocString(const CLocString &); virtual void Serialize(CArchive &) {} // // Prevents the default copy constructor from being called. // CLocString(const CLocString&); CPascalString m_pasBaseString; CST::StringType m_stStringType; WCHAR m_wchHotKeyChar; UINT m_uiHotKeyPos; CodePageType m_cptCodePageType; // cpAnsi CPascalString m_pstrNote; }; class LTAPIENTRY CLocTranslation : public CObject { public: CLocTranslation(); CLocTranslation(const CLocTranslation &); CLocTranslation(const CLocString &Source, LangId lidSource, const CLocString &Target, LangId lidTarget); NOTHROW int operator==(const CLocTranslation &) const; NOTHROW int operator!=(const CLocTranslation &) const; void AssertValid(void) const; NOTHROW void SetTranslation(const CLocString &Source, LangId lidSource, const CLocString &Target, LangId lidTarget); NOTHROW void SetNote(const CPascalString &); NOTHROW void CalculateRanking(const CLocString &); NOTHROW const CLocString & GetSourceString(void) const; NOTHROW const CLocString & GetTargetString(void) const; NOTHROW const CPascalString & GetNote(void) const; NOTHROW UINT GetRanking(void) const; NOTHROW LangId GetSourceLanguage(void) const; NOTHROW LangId GetTargetLanguage(void) const; NOTHROW CVC::ValidationCode ValidateTranslation( const CValidationOptions &) const; NOTHROW CVC::ValidationCode ValidateTranslation( const CValidationOptions &, BOOL, const CLString &, CReport *, CGoto *) const; NOTHROW const CLocTranslation & operator=(const CLocTranslation &); ~CLocTranslation(); private: NOTHROW void CopyTranslation(const CLocTranslation &); NOTHROW void ReordBuildSig(const CLocString &, CPascalString *) const; NOTHROW void PrintfBuildSig(const CLocString &, CPascalString &) const; NOTHROW int ReplaceableLength(const CPascalString &, UINT) const; CLocString m_lsSource; LangId m_lidSource; CLocString m_lsTarget; LangId m_lidTarget; CPascalString m_pstrGlossaryNote; UINT m_uiRanking; }; #pragma warning(default: 4275) #if !defined(_DEBUG) || defined(IMPLEMENT) #include "locstr.inl" #endif #endif //LOCSTR_H