Figure 10: GetString member function of CConsoleApp (from conapp.cpp)

bool CConsoleApp::GetString( tstring& strValue,
                             bool remove_string ) {
   // iterators for traversing the argument list
   list<CCmdArg>::iterator iter_begin = arglist.begin();
   list<CCmdArg>::iterator iter_end = arglist.end();
   list<CCmdArg>::iterator iter;

   iter = 
      find_if( iter_begin, iter_end,
        EqualType(CCmdArg(CCmdArg::CmdString,tstring(_T("")))));

   if ( iter != iter_end ) {
      strValue = (*iter).GetString();
      if ( remove_string )
         // remove the argument from the list
         arglist.erase( iter ); 
      return true;
   }

   return false;
}