RegQueryValueEx retrieved only one letter



I want to retrieve the string value of a register key which is "C:
\program files\test", but every time I only get one letter as "C"
returned. My code is as follows, can somebody help me find out what
happened?

///////////////////////////////////////////////////////////////////////////////////////
HKEY hKEY
LPCTSTR data_Set=_T("Software\\test\\Settings");
long ret0=(::RegOpenKeyEx (HKEY_CURRENT_USER, data_Set, 0,
KEY_READ, &hKEY));
if(ret0!=ERROR_SUCCESS)
AfxMessageBox(_T("error: cannot open hKEY!"));

char *szPath = new char[256];
DWORD type_1=REG_SZ ;
DWORD cbData_1=80;
long ret1=::RegQueryValueEx(hKEY,_T("InstallPath"), NULL,&type_1,
(BYTE *)szPath, &cbData_1);
if(ret1!=ERROR_SUCCESS)
AfxMessageBox(_T("error, cannot query hKEY!"));

::RegCloseKey(hKEY);

USES_CONVERSION;
AfxMessageBox(A2T(ch));
delete szPath;

.



Relevant Pages