#pragma once enum { STATUS_REQUEST = 0, STATUS_HEADER = 1, STATUS_BODY = 2, STATUS_SIMPLE = 3, STATUS_DONE = 4, }; class CParseData { public: CParseData(void); ~CParseData(void); public: BOOL ExecutePage(LPCTSTR lpszFileName); void RenderHeaders(CString& strHeaders); BOOL GetServerVariable(LPTSTR lpszVariable, CString &strValue); BOOL GetQueryString(LPTSTR lpszVariable, CString &strValue); void ParseQueryString(LPCTSTR lpszParams); void SplitString(LPCTSTR lpszString, TCHAR chSep, CStringArray& aryString); int GetRequestMethod() { return m_nRequestMethod; } bool ParseRequests(LPBYTE pData, int nLen); void ProcessRequests(); CString DecodeData(LPBYTE cbData, int nLen); CString m_QueryParams; CString m_FormVars; private: int m_nStatus; int m_nRequestMethod; CString m_strBuffer; CStringList m_strLines; CSimpleMap m_Headers; CSimpleMap m_QueryStringVars; };