CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 4 of 4
  1. #1
    Join Date
    Jun 2005
    Posts
    59

    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
    ---------------------------

  2. #2
    Arjay's Avatar
    Arjay is offline Moderator / EX MS MVP Power Poster
    Join Date
    Aug 2004
    Posts
    13,490

    Re: Registry Functions not working as expected

    What happens when you step through the code in a debugger? Which line is line 321?

    Arjay

  3. #3
    Join Date
    Jun 2005
    Posts
    59

    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.

  4. #4
    Arjay's Avatar
    Arjay is offline Moderator / EX MS MVP Power Poster
    Join Date
    Aug 2004
    Posts
    13,490

    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
  •  





Click Here to Expand Forum to Full Width

Featured