VC++ _variant_t型变量格式化成CString型字符串

CString C****::Format(_variant_t var)   
{   
    DATE dt;   
    COleDateTime da;   
    CString strValue;   
       
    switch (var.vt)   
    {   
    case VT_BSTR://字符串    
    case VT_LPSTR://字符串    
    case VT_LPWSTR://字符串    
        strValue = (LPCTSTR)(_bstr_t)var;   
        break;   
    case VT_I2://短整型    
        strValue.Format("%d", var.iVal);   
        break;   
    case VT_UI2://无符号短整型    
        strValue.Format("%d", var.uiVal);   
        break;   
    case VT_VOID://    
    case VT_INT://整型    
    case VT_I4://整型    
        strValue.Format("%d", var.intVal);   
        break;   
    case VT_I8://长整型    
        strValue.Format("%d", var.lVal);   
        break;   
    case VT_UINT://无符号整型    
    case VT_UI4://无符号整型    
        strValue.Format("%d", var.uintVal);   
        break;   
    case VT_UI8://无符号长整型    
        strValue.Format("%d", var.ulVal);   
        break;   
    case VT_R4://浮点型    
        strValue.Format("%.4f", var.fltVal);   
        break;   
    case VT_R8://双精度型    
        strValue.Format("%.8f", var.dblVal);   
        break;   
    case VT_DECIMAL: //小数    
        strValue.Format("%.4f", var.decVal);   
        break;   
    case VT_BOOL://布尔型    
        strValue = var.lVal ? "TRUE" : "FALSE";   
        break;   
    case VT_DATE: //日期型    
        dt = var.date;   
        da = COleDateTime(dt);    
        strValue = da.Format("%Y-%m-%d %H:%M:%S");   
        break;   
    case VT_NULL://NULL值    
        strValue = "NULL";   
        break;   
    case VT_EMPTY://空    
        strValue = "";   
        break;   
    case VT_UNKNOWN://未知类型    
    default:   
        strValue = "UN_KNOW";   
        break;   
    }   
    return strValue;   
}   

你可能感兴趣的:(VC++ _variant_t型变量格式化成CString型字符串)