#ifndef _COMMON_FINDTEXTEX_HPP_ #define _COMMON_FINDTEXTEX_HPP_ #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_CHARRANGE_HPP_ #include #endif class FindTextEx : private FINDTEXTEX { public: FindTextEx(void); FindTextEx(const FindTextEx &findTextEx); FindTextEx(const CharRange &charRange,const String &strFind); virtual ~FindTextEx(); FindTextEx &operator=(const FindTextEx &findTextEx); BOOL operator==(const FindTextEx &findTextEx)const; CharRange searchRange(void)const; void searchRange(const CharRange &searchRange); const String &strFind(void)const; void strFind(const String &strFind); CharRange foundRange(void)const; void foundRange(const CharRange &foundRange); FINDTEXTEX &findTextEx(void); private: String mStrInternal; }; inline FindTextEx::FindTextEx(void) { FINDTEXTEX::chrg.cpMin=0; FINDTEXTEX::chrg.cpMax=0; FINDTEXTEX::lpstrText=0; FINDTEXTEX::chrgText.cpMin=0; FINDTEXTEX::chrgText.cpMax=0; } inline FindTextEx::FindTextEx(const FindTextEx &findTextEx) { *this=findTextEx; } inline FindTextEx::FindTextEx(const CharRange &charRange,const String &strFind) { mStrInternal=strFind; FINDTEXTEX::chrg.cpMin=charRange.posMin(); FINDTEXTEX::chrg.cpMax=charRange.posMax(); FINDTEXTEX::lpstrText=(char*)mStrInternal; } inline FindTextEx::~FindTextEx() { } inline FindTextEx &FindTextEx::operator=(const FindTextEx &findTextEx) { searchRange(findTextEx.searchRange()); strFind(findTextEx.strFind()); foundRange(findTextEx.foundRange()); return *this; } inline BOOL FindTextEx::operator==(const FindTextEx &findTextEx)const { return (searchRange()==findTextEx.searchRange()&& foundRange()==findTextEx.foundRange()&& strFind()==findTextEx.strFind()); } inline CharRange FindTextEx::searchRange(void)const { return CharRange(FINDTEXTEX::chrg.cpMin,FINDTEXTEX::chrg.cpMax); } inline void FindTextEx::searchRange(const CharRange &searchRange) { FINDTEXTEX::chrg.cpMin=searchRange.posMin(); FINDTEXTEX::chrg.cpMax=searchRange.posMax(); } inline const String &FindTextEx::strFind(void)const { return mStrInternal; } inline void FindTextEx::strFind(const String &strFind) { mStrInternal=strFind; FINDTEXTEX::lpstrText=(char*)mStrInternal; } inline CharRange FindTextEx::foundRange(void)const { return CharRange(FINDTEXTEX::chrgText.cpMin,FINDTEXTEX::chrgText.cpMax); } inline void FindTextEx::foundRange(const CharRange &foundRange) { FINDTEXTEX::chrgText.cpMin=foundRange.posMin(); FINDTEXTEX::chrgText.cpMax=foundRange.posMax(); } inline FINDTEXTEX &FindTextEx::findTextEx(void) { return *this; } #endif