Force the Windows registry to be set with a higher
priority than the default value. This commit was SVN r13877.
Этот коммит содержится в:
родитель
a0e5b6a27c
Коммит
04d84aefb4
@ -999,6 +999,7 @@ static int read_keys_from_registry(HKEY hKey, char *sub_key, char *current_key)
|
|||||||
DWORD cchValue = MAX_VALUE_NAME;
|
DWORD cchValue = MAX_VALUE_NAME;
|
||||||
HKEY hTestKey;
|
HKEY hTestKey;
|
||||||
char *sub_sub_key;
|
char *sub_sub_key;
|
||||||
|
mca_base_param_storage_t storage, override, lookup;
|
||||||
|
|
||||||
if( !RegOpenKeyEx( hKey, sub_key, 0, KEY_READ, &hTestKey) == ERROR_SUCCESS )
|
if( !RegOpenKeyEx( hKey, sub_key, 0, KEY_READ, &hTestKey) == ERROR_SUCCESS )
|
||||||
return OPAL_ERROR;
|
return OPAL_ERROR;
|
||||||
@ -1078,23 +1079,36 @@ static int read_keys_from_registry(HKEY hKey, char *sub_key, char *current_key)
|
|||||||
type[type_len]='\0';
|
type[type_len]='\0';
|
||||||
if (lpType == (LPDWORD) REG_SZ) { /* REG_SZ = 1 */
|
if (lpType == (LPDWORD) REG_SZ) { /* REG_SZ = 1 */
|
||||||
retCode = RegQueryValueEx(hTestKey, achValue, NULL, NULL, (LPBYTE)&str_lpData, &dwSize);
|
retCode = RegQueryValueEx(hTestKey, achValue, NULL, NULL, (LPBYTE)&str_lpData, &dwSize);
|
||||||
if (!retCode)
|
if (!retCode) {
|
||||||
{
|
mca_base_param_storage_t storage, override;
|
||||||
/* printf( "%s %s.\n", type, str_key_name); */
|
mca_base_param_storage_t lookup;
|
||||||
mca_base_param_reg_string_name( type, str_key_name, "Key read from Windows registry", false, false, str_lpData, NULL);
|
|
||||||
|
storage.stringval = (char*)str_lpData;
|
||||||
|
override.stringval = (char*)str_lpData;
|
||||||
|
(void)param_register( type, NULL, str_key_name, "Key read from Windows registry",
|
||||||
|
MCA_BASE_PARAM_TYPE_STRING, false, false,
|
||||||
|
&storage, NULL, &override,
|
||||||
|
&lookup );
|
||||||
|
/*printf( "%s %s = %s.\n", type, str_key_name, str_lpData);*/
|
||||||
|
} else {
|
||||||
|
opal_output( 0, "error reading value of param_name: %s with %d error.\n",
|
||||||
|
str_key_name, retCode);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
opal_output(0, "error reading value of param_name: %s with %d error.\n", str_key_name, retCode);
|
|
||||||
}
|
}
|
||||||
if (lpType == (LPDWORD) REG_DWORD) { /* REG_DWORD = 4 */
|
if (lpType == (LPDWORD) REG_DWORD) { /* REG_DWORD = 4 */
|
||||||
retCode = RegQueryValueEx(hTestKey, achValue, NULL, NULL, (LPBYTE)&word_lpData, &dwSize);
|
retCode = RegQueryValueEx(hTestKey, achValue, NULL, NULL, (LPBYTE)&word_lpData, &dwSize);
|
||||||
if (!retCode)
|
if (!retCode) {
|
||||||
{
|
storage.intval = (int)word_lpData;
|
||||||
/* printf( "%s %s.\n", type, str_key_name); */
|
override.intval = (int)word_lpData;
|
||||||
mca_base_param_reg_int_name( type, str_key_name, "Key read from Windows registry", false, false, (int)word_lpData, NULL);
|
(void)param_register( type, NULL, str_key_name, "Key read from Windows registry",
|
||||||
|
MCA_BASE_PARAM_TYPE_INT, false, false,
|
||||||
|
&storage, NULL, &override,
|
||||||
|
&lookup );
|
||||||
|
/*printf( "%s %s = %d.\n", type, str_key_name, (int)word_lpData);*/
|
||||||
|
} else {
|
||||||
|
opal_output( 0, "error reading value of param_name: %s with %d error.\n",
|
||||||
|
str_key_name, retCode );
|
||||||
}
|
}
|
||||||
else
|
|
||||||
opal_output(0, "error reading value of param_name: %s with %d error.\n", str_key_name, retCode);
|
|
||||||
}
|
}
|
||||||
free(type);
|
free(type);
|
||||||
free(str_key_name);
|
free(str_key_name);
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user