zoukankan      html  css  js  c++  java
  • _variant_t转换数据类型

    short   vartoi(const   _variant_t&   var)  
      {  
      short   value   =   0;  
      switch   (var.vt)  
      {  
      case   VT_BOOL:  
      value   =   var.boolVal;  
      break;  
      case   VT_UI1:  
      case   VT_I1:  
      value   =   var.bVal;  
      break;  
      case   VT_I2:  
      case   VT_UI2:  
      value   =   var.iVal;  
      break;  
      case   VT_NULL:  
      case   VT_EMPTY:  
      value   =   0;  
      break;  
      default:  
      TRACE(_T("Warning:   未处理的   _variant_t   类型值;   文件:   %s;   行:   %d\n"),   __FILE__,   __LINE__);  
      }  
      return   value;  
      }  
       
      long   vartol(const   _variant_t&   var)  
      {  
      long   value   =   0;  
      switch   (var.vt)  
      {  
      case   VT_BOOL:  
      value   =   var.boolVal;  
      break;  
      case   VT_UI1:  
      case   VT_I1:  
      value   =   var.bVal;  
      break;  
      case   VT_UI2:  
      case   VT_I2:  
      value   =   var.iVal;  
      break;  
      case   VT_I4:  
      case   VT_UI4:  
      value   =   var.lVal;  
      break;  
      case   VT_INT:  
      value   =   var.intVal;  
      break;  
      case   VT_R4:  
      value   =   (long)(var.fltVal   +   0.5);  
      break;  
      case   VT_R8:  
      value   =   (long)(var.dblVal   +   0.5);  
      break;  
      case   VT_DECIMAL:  
      value   =   (long)var;  
      break;  
      case   VT_CY:  
      value   =   (long)var;  
      break;  
      case   VT_BSTR://字符串  
      case   VT_LPSTR://字符串  
      case   VT_LPWSTR://字符串  
      value   =   atol((LPCTSTR)(_bstr_t)var);  
      break;  
      case   VT_NULL:  
      case   VT_EMPTY:  
      value   =   0;  
      break;  
      default:  
      TRACE(_T("Warning:   未处理的   _variant_t   类型值;   文件:   %s;   行:   %d\n"),   __FILE__,   __LINE__);  
      }  
      return   value;  
      }  
       
      double   vartof(const   _variant_t&   var)  
      {  
      double   value   =   0;  
      switch   (var.vt)  
      {  
      case   VT_R4:  
      value   =   var.fltVal;  
      break;  
      case   VT_R8:  
      value   =   var.dblVal;  
      break;  
      case   VT_DECIMAL:  
      value   =   (double)var;  
      break;  
      case   VT_CY:  
      value   =   (double)var;  
      break;  
      case   VT_BOOL:  
      value   =   var.boolVal;  
      break;  
      case   VT_UI1:  
      case   VT_I1:  
      value   =   var.bVal;  
      break;  
      case   VT_UI2:  
      case   VT_I2:  
      value   =   var.iVal;  
      break;  
      case   VT_UI4:  
      case   VT_I4:  
      value   =   var.lVal;  
      break;  
      case   VT_INT:  
      value   =   var.intVal;  
      break;  
      case   VT_BSTR://字符串  
      case   VT_LPSTR://字符串  
      case   VT_LPWSTR://字符串  
      value   =   atof((LPCTSTR)(_bstr_t)var);  
      break;  
      case   VT_NULL:  
      case   VT_EMPTY:  
      value   =   0;  
      break;  
      default:  
      value   =   0;  
      TRACE(_T("Warning:   未处理的   _variant_t   类型值;   文件:   %s;   行:   %d\n"),   __FILE__,   __LINE__);  
      }  
      return   value;  
      }  
      //我转载别人的

  • 相关阅读:
    Weblogic任意文件上传漏洞(CVE-2018-2894)复现
    Angular动态创建组件之Portals
    nodejs 开发企业微信第三方应用入门教程
    系列文章|OKR与敏捷(三):赋予团队自主权
    Angular开发技巧
    系列文章|OKR与敏捷(二):实现全栈敏捷
    系列文章|OKR与敏捷(一):瀑布式目标与敏捷的冲突
    OKR与Scrum如何强强联手
    Service Worker
    RxJS 实现摩斯密码(Morse) 【内附脑图】
  • 原文地址:https://www.cnblogs.com/dwjaissk/p/956742.html
Copyright © 2011-2022 走看看