unsigned FillBufferByCom( ComEvaluator& evalutor , SBuffer& buffer , IComPacket* cp ) { bool done = false; int count = 1; unsigned result; while ( !done ) { try { result = ComEvaluator::fillBuffer( cp , buffer ); done = true; } catch ( BufferException& e ) { buffer.grow( ( buffer.getMaxSize() * 3 ) / 2 ); Msg( e.what() ); } catch ( ComException& e ) { Msg( e.what() ); return 0; } ++count; } return result; }