我下面的代码有什么问题,
RegEnumKey这个函数为什么会错误
HKEY hKey=NULL;
char *szSubKey="Software\\DuDu\\DddOEM";
LONG lnReturnCode=0;
HKEY hKeyResult=HKEY_LOCAL_MACHINE;
lnReturnCode=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,szSubKey,0,KEY_ENUMERATE_SUB_KEYS|KEY_EXECUTE|KEY_QUERY_VALUE,&hKey);
char szKeyName[MAX_PATH];
for(long i=0;lnReturnCode==ERROR_SUCCESS;i++)
{
                  MessageBox("a");//此处只会弹出一次
lnReturnCode=::RegEnumKey(hKey,i,szKeyName,MAX_PATH);
if(lnReturnCode==ERROR_SUCCESS)
MessageBox(szKeyName);
}