用CRegKey的QueryStringValue读取失败,错误码为2

我想用CRegKey读取注册表信息,代码如下。可是到QueryStringValue取数据的时候出现错误码为2的错误,不知道有谁碰到过这个问题,请帮忙看一下,谢谢。
CRegKey myKey;
LONG ret = 0;
if((ret = myKey.Open(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"), KEY_READ)) != ERROR_SUCCESS)
{
    AfxMessageBox(_T("error open reg key."));
}
else
{
    TCHAR s[128] = {0};
    DWORD len = 128*sizeof(TCHAR);
    CString key = _T("test");
    LONG ret = 0;
    DWORD dwType = 0;
    //m_key.GetWindowTextW(key);
    if((ret = myKey.QueryStringValue(_T("test"), s,&len)) == ERROR_SUCCESS)
    {
        CString value = s;
        m_value.SetWindowTextW(value);
    }
    else
    {
        AfxMessageBox(_T("query error."));
    }
    {
        CString value = s;
        m_value.SetWindowTextW(value);
    }
    else
    {
        AfxMessageBox(_T("query error."));
    }
}