⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 variantbufconvert.cpp

📁 一个手机通信的源代码 一个手机通信的源代码一个手机通信的源代码
💻 CPP
字号:
// VariantBufConvert.cpp: implementation of the CVariantBufConvert class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
//#include "VariantResearch.h"
#include "VariantBufConvert.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CVariantBufConvert::CVariantBufConvert()
{

}

CVariantBufConvert::~CVariantBufConvert()
{

}

BOOL CVariantBufConvert::BufToVariant(VARIANT &var, void *Buf, int BufSize)
{
 if(BufSize<=0)
   return FALSE;
 SAFEARRAY * psa=NULL;
 SAFEARRAYBOUND pBound;
 pBound.lLbound=0; //该维数组的第一个Index
 pBound.cElements=BufSize;    //数组个数 
 psa=SafeArrayCreate(VT_UI1,1,&pBound);
 memcpy(psa->pvData,Buf,BufSize);
 var.vt=VT_ARRAY|VT_UI1 ;
 var.parray =psa;
 return TRUE;
}

BOOL CVariantBufConvert::VariantToBuf(VARIANT &var, void *Buf, long InputSize,long& ReturnBufSize)
{
 if(Buf==NULL)  //无Buf
   return FALSE;
 if(InputSize<=0)
	return FALSE;
 if(var.vt !=(VT_ARRAY|VT_UI1))//类型不对
   return FALSE;  
 SAFEARRAY * psa=var.parray;
 SafeArrayGetUBound(psa,1,&ReturnBufSize);
 ReturnBufSize++;
 if(InputSize>=ReturnBufSize)
  memcpy(Buf,psa->pvData, ReturnBufSize);
 else
 {
  memcpy(Buf,psa->pvData, InputSize);
  ReturnBufSize=InputSize;
 }
 return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -