关于读取注册表键值的一个有关问题

关于读取注册表键值的一个问题
我想读取HKEY_CURRENT_USER,Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\下ProxyServer的键值
数据是REG_SZ类型,内容是59.57.15.71:80,但是我读取的结果是个53,我是菜鸟不懂,求各位指点迷津,谢谢了。


HKEY hkey=HKEY_CURRENT_USER;
LPCSTR data_Set="Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\";
LONG res;
//DWORD datatype=REG_DWORD;
DWORD datatype2=REG_SZ;
DWORD dwValue = 1;
unsigned char vari[90];
DWORD ncbvari=20;   //数值名称缓冲区大小


::RegOpenKeyEx(hkey,
data_Set, 0,
KEY_WRITE|KEY_READ, &hkey);
res = ::RegQueryValueEx(hkey,"ProxyServer",0, &datatype2,vari,&ncbvari);
if(res==ERROR_SUCCESS)
MessageBox(NULL,"find!","提示",MB_OK);
else
MessageBox(NULL,"no ","提示",MB_OK);
String str;
str=*vari;
Edit3->Text=*vari;


RegCloseKey(hkey);


------解决方案--------------------
//---------------------------------------

#include <vcl.h>
//要包含此头文件
#include <registry.hpp>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute()){
  Edit1->Text=OpenDialog1->FileName;
  }
}
//---------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TRegistry *reg=new TRegistry;
try{
reg->RootKey=HKEY_CURRENT_USER;
if(!reg->OpenKey("\\Software\\Science\\File List",false)){
reg->CreateKey("\\Software\\Science\\File List");
reg->OpenKey("\\Software\\Science",true);
reg->WriteString("Ver","1.0");
reg->CloseKey();
reg->OpenKey("\\Software\\Science\\File List",true);
reg->WriteString("1","");
reg->WriteString("2","");
reg->WriteString("3","");
}
}
__finally{
reg->CloseKey();
delete reg;
  }
}
//---------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TRegistry *reg=new TRegistry;
try{
reg->RootKey=HKEY_CURRENT_USER;
if(reg->OpenKey("\\Software\\Science\\File List",false)){
reg->WriteString("3",reg->ReadString("2"));
reg->WriteString("2",reg->ReadString("1"));
reg->WriteString("1",Edit1->Text);
  }else{
  MessageBox(Handle,"保存文件列表失败","错误",MB_OK
------解决方案--------------------
MB_ICONERROR);
  }
}
__finally{
reg->CloseKey();
delete reg;