process a single message per call to ProcessMessages