if (ERROR_SUCCESS != (ret = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control", NULL, NULL, NULL, KEY_ALL_ACCESS, NULL, &hKEY, NULL))) {
sprintf(errInf, "打开或创建 [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control] 失败! ret = %ld", ret);
#if 0
if (_OS_WIN7 == g_OsVer) strcat(errInf, "\nWindows 7 用户请以管理员权限运行。");
else if (_OS_WIN8 == g_OsVer) strcat(errInf, "\nWindows 8 用户请以管理员权限运行。");
else if (_OS_WIN10 == g_OsVer) strcat(errInf, "\nWindows 10 用户请以管理员权限运行。");
else if (_OS_WINTP == g_OsVer) strcat(errInf, "\nWindows 技术预览版 用户请以管理员权限运行。");
#endif
return FALSE;
}
::RegCloseKey(hKEY);
if (ERROR_SUCCESS != (ret = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\usbflags", NULL, NULL, NULL, KEY_ALL_ACCESS, NULL, &hKEY, NULL))) {
sprintf(errInf, "打开或创建 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags] 失败! ret = %ld", ret);
return FALSE;
}
::RegCloseKey(hKEY);
LPCTSTR StrKey = "SYSTEM\\CurrentControlSet\\Control\\usbflags";
ret = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, StrKey, NULL, KEY_READ|KEY_WRITE, &hKEY);
if (ERROR_SUCCESS != ret) {
sprintf(errInf, "打开 [HKEY_LOCAL_MACHINE\\%s] 失败! ret = %ld", StrKey, ret);
return FALSE;
}
问题:
(1)逐句解读功能和实现方法;
(2)前两段RegCloseKey具体作用是什么?为什么要释放你?
谢谢