char * GetValue(void)
Gets a pointer to the current value -- this is allocated using new, so should be deleted by the calling program.