XP_STRCPY( regbuf, REG_UNINSTALL_DIR ); if (bSharedList) { XP_STRCAT( regbuf, SHAREDSTR ); } else { XP_STRCAT( regbuf, gCurstr ); }  err = NR_RegGetKey( vreg, ROOTKEY_PRIVATE, regbuf, &key ); if (err != REGERR_OK) return err;
err = NR_RegPack( vreg, userData, fn );
VR_INTERFACE(REGERR) VR_EnumUninstall(REGENUM *state, char* userPackageName,                                    int32 len1, char*regPackageName, int32 len2, XP_Bool bSharedList){    REGERR err;    RKEY key;    RKEY key1;    char regbuf[MAXREGPATHLEN+1] = {0};    char temp[MAXREGPATHLEN+1] = {0};       err = vr_Init();    if (err != REGERR_OK)        return err;    XP_STRCPY( regbuf, REG_UNINSTALL_DIR );    if (bSharedList)    {        XP_STRCAT( regbuf, SHAREDSTR );    }    else    {        XP_STRCAT( regbuf, gCurstr );    }                         err = NR_RegGetKey( vreg, ROOTKEY_PRIVATE, regbuf, &key );    if (err != REGERR_OK)        return err;    *regbuf = '\0';    *userPackageName = '\0';    err = NR_RegEnumSubkeys( vreg, key, state, regbuf, sizeof(regbuf), REGENUM_CHILDREN);    if (err == REGERR_OK && !bSharedList )    {        if (XP_STRCMP(regbuf, UNINSTALL_NAV_STR) == 0)        {            /* skip Communicator package, get the next one instead */            err = NR_RegEnumSubkeys( vreg, key, state, regbuf, sizeof(regbuf), REGENUM_CHILDREN);        }    }    if (err != REGERR_OK)        return err;    err = NR_RegGetKey( vreg, key, regbuf, &key1 );    if (err != REGERR_OK)        return err;    err = NR_RegGetEntryString( vreg, key1, PACKAGENAMESTR, userPackageName, len1);    if (err != REGERR_OK)    {        *userPackageName = '\0';        return err;    }    if (len2 <= (int32)XP_STRLEN(regbuf))    {        err =  REGERR_BUFTOOSMALL;        *userPackageName = '\0';        return err;    }        *regPackageName = '\0';    if (bSharedList)    {        XP_STRCPY(temp, "/");        XP_STRCAT(temp, regbuf);        *regbuf = '\0';        XP_STRCPY(regbuf, temp);    }    err = vr_unmanglePackageName(regbuf, regPackageName, len2);    return err;}   /* EnumUninstall */