How to validate a valid integer and floating number in VC++ CString

c++, mfc

Solution

Use _tcstol() and _tcstod():

bool IsValidInt(const CString& text, long& value)
{
    LPCTSTR ptr = (LPCTSTR) text;
    LPTSTR endptr;
    value = _tcstol(ptr, &endptr, 10);
    return (*ptr && endptr - ptr == text.GetLength());
}

bool IsValidFloat(const CString& text, double& value)
{
    LPCTSTR ptr = (LPCTSTR) text;
    LPTSTR endptr;
    value = _tcstod(ptr, &endptr);
    return (*ptr && endptr - ptr == text.GetLength());
}

EDIT: Modified the code to follow the excellent suggestions provided in the comments.

Problem

Can some one tell me a valid way to validate a number present in CString object as either a valid integer or floating number?

Original source