00001 #ifndef __CONSOLE_H__ 00002 #define __CONSOLE_H__ 00003 00004 00005 00006 //Some defines we will be requiring 00007 #define SC_LINES 0x0001 00008 #define SC_COLUMNS 0x0002 00009 #define SC_ATTRIB 0x0004 00010 #define SC_MAXLINES 0x0008 00011 00012 class CConsole 00013 { 00014 public: 00015 //Constructor & Destructor 00016 CConsole (); 00017 CConsole (BOOL); 00018 ~CConsole (); 00019 00020 //Properties 00021 short GetNumberOfLines(); 00022 short SetNumberOfLines (short sLines); 00023 short SetNumberOfColumns (short sColumns); 00024 short GetNumberOfColumns (); 00025 WORD GetAttributes (); 00026 WORD SetAttributes (WORD wAttrib,short NumChars = 0); 00027 short SetMaxLinesInWindow (short maxLines); 00028 short GetMaxLinesInWindow (); 00029 00030 //Methods 00031 void RedirectToConsole (WORD wFlags); 00032 BOOL SetupConsole(WORD wFlags); 00033 HANDLE GetHandle (DWORD dwFlag); 00034 BOOL Clear (); 00035 BOOL ApplyAttrib (short NumChars); 00036 WORD GetSettings (WORD wFlags); 00037 00038 00039 //Helpers 00040 BOOL CreateConsole (); 00041 BOOL DestroyConsole (); 00042 00043 protected: 00044 BOOL m_bRedirected; 00045 short m_sNumColumns; 00046 short m_sNumLines; 00047 WORD m_wAttrib; 00048 short m_sMaxLines; 00049 DWORD m_dwError; 00050 static BOOL sm_bConsole; 00051 00052 }; 00053 #endif //__CONSOLE_H__