#include "convbase.h" class CInccKscIn : public CINetCodeConverter { private: BOOL (CInccKscIn::*m_pfnConv)(UCHAR tc); BOOL (CInccKscIn::*m_pfnCleanUp)(); BOOL m_fShift; BOOL m_fKorea; BOOL m_fLeadByte; UINT m_nESCBytes; /* # bytes of ESC sequence */ public: CInccKscIn(UINT uCodePage, int nCodeSet); ~CInccKscIn() {} virtual HRESULT ConvertChar(UCHAR tc, int cchSrc=-1); virtual BOOL CleanUp(); virtual int GetUnconvertBytes(); virtual DWORD GetConvertMode(); virtual void SetConvertMode(DWORD mode); private: void Reset(); BOOL ConvMain(UCHAR tc); BOOL CleanUpMain(); BOOL ConvEsc(UCHAR tc); BOOL CleanUpEsc(); BOOL ConvIsoIn(UCHAR tc); BOOL CleanUpIsoIn(); BOOL ConvIsoInKr(UCHAR tc); BOOL CleanUpIsoInKr(); }; class CInccKscOut : public CINetCodeConverter { private: BOOL m_fDoubleByte; BYTE m_tcLeadByte; DWORD _dwFlag; BOOL m_fShift; BOOL m_fKorea; WCHAR *_lpFallBack; public: CInccKscOut(UINT uCodePage, int nCodeSet, DWORD dwFlag, WCHAR *lpFallBack); ~CInccKscOut() {} virtual HRESULT ConvertChar(UCHAR tc, int cchSrc=-1); virtual BOOL CleanUp(); virtual int GetUnconvertBytes(); virtual DWORD GetConvertMode(); virtual void SetConvertMode(DWORD mode); private: void Reset(); };