求解.RegEnumValue得到的数据如何只有一个字符

求解...RegEnumValue得到的数据怎么只有一个字符?
C/C++ code
        DWORD rCount=0,NameLen=255,TypeName,DataSize=255;
        BYTE rData[255];
        TCHAR rName[255];
        while(RegEnumValue(hKey,rCount,rName,&NameLen,NULL,&TypeName,(unsigned char *)rData,&DataSize)!=ERROR_NO_MORE_ITEMS)
        {
            if (DataSize>0)
            {
                              //.......................
            }
            rCount++;
            NameLen=255;DataSize=255;
        }

代码如上,得到的rData总是正确数据的第一个字符,比如数据是E0220804,那么只能得到“E”,但是DataSize返回的却是18

BYTE rData[255];这句我试过好几种写法,char rData[255]以及用new语句,还有malloc,开多大内存空间,怎么总是只有第一个字符呢...

求大神们帮小弟一把

------解决方案--------------------
TCHAR rData[255]; 试试看
估计是UNICODE搞的