|
-
July 19th, 2005, 07:05 PM
#1
Registry Functions not working as expected
Code:
if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, pathToKey, 0, KEY_ALL_ACCESS, &hAppKey) == ERROR_SUCCESS){
DWORD dwType = REG_SZ;
DWORD buffSize = 255;
DWORD dwTypeDW = REG_DWORD;
DWORD buffSizeDW = sizeof(DWORD);
//MessageBox(NULL, "Setting Listview Item", szTitle, MB_ICONINFORMATION | MB_OK);
if (RegQueryValueEx(hAppKey, "mask", 0, &dwTypeDW, (BYTE *) &rgFileInfo[item].masked, &buffSizeDW) != ERROR_SUCCESS){
MessageBox(NULL, pathToKey, "Unable to open value", MB_OK);
}
if (rgFileInfo[item].masked){
break;
}
if (RegQueryValueEx(hAppKey, "name", 0, &dwType, (BYTE *) rgFileInfo[item].szName, &buffSize) != ERROR_SUCCESS){
MessageBox(NULL, pathToKey, "Unable to open value", MB_OK);
}
if (strcmp(rgFileInfo[item].szRegName, "VUC") == 0){
int isError = 0;
if (majorVersion != rgFileInfo[item].majorVersion){
rgFileInfo[item].majorVersion = majorVersion;
if (RegSetValueEx(hAppKey, "major", 0, dwTypeDW, (BYTE *) majorVersion, buffSizeDW) != ERROR_SUCCESS){
isError = 1;
}
}
if (minorVersion != rgFileInfo[item].minorVersion){
rgFileInfo[item].minorVersion = minorVersion;
if (RegSetValueEx(hAppKey, "minor", 0, dwTypeDW, (BYTE *) minorVersion, buffSizeDW) != ERROR_SUCCESS){
isError = 1;
}
}
if (releaseVersion != rgFileInfo[item].releaseVersion){
rgFileInfo[item].releaseVersion = releaseVersion;
if (RegSetValueEx(hAppKey, "release", 0, dwTypeDW, (BYTE *) releaseVersion, buffSizeDW) != ERROR_SUCCESS){
isError = 1;
}
}
if (buildVersion != rgFileInfo[item].buildVersion){
rgFileInfo[item].buildVersion = buildVersion;
if (RegSetValueEx(hAppKey, "build", 0, dwTypeDW, (BYTE *) buildVersion, buffSizeDW) != ERROR_SUCCESS){
DisplayError("RegSetValueEx", __LINE__);
isError = 1;
}
}
_snprintf(rgFileInfo[item].szVer, sizeof(rgFileInfo[item].szVer) - 1, "%d.%d.%d", majorVersion, minorVersion, releaseVersion);
if (isError){
MessageBox(NULL, "Unable to set new versioning information", szTitle, MB_OK | MB_ICONERROR);
}
}else{
RegQueryValueEx(hAppKey, "version", 0, &dwType, (BYTE *) rgFileInfo[item].szVer, &buffSize);
}
I get:
---------------------------
Vectec Update Client (VUC)
---------------------------
RegSetValueEx (Release) failed with error 6 on line 321:
The handle is invalid.
---------------------------
OK
---------------------------
-
July 20th, 2005, 12:31 PM
#2
Re: Registry Functions not working as expected
What happens when you step through the code in a debugger? Which line is line 321?
Arjay
-
July 20th, 2005, 01:23 PM
#3
Re: Registry Functions not working as expected
Line 321 is "RegSetValueEx(hAppKey, "release", 0, dwTypeDW, (BYTE *) releaseVersion, buffSizeDW) != ERROR_SUCCESS"
That one.
However, I'm not sure what to look for in the debugger.
-
July 20th, 2005, 01:38 PM
#4
Re: Registry Functions not working as expected
Set a brake point on line 321 and inspect the variables to make sure they are all valid. Also, check the value of GetLastError() to find out more error info.
Arjay
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|