[PATCH 3/5] reg: Output the value type when querying the registry
Hugh McMaster
hugh.mcmaster at outlook.com
Wed Apr 20 06:18:12 CDT 2016
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
programs/reg/reg.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/programs/reg/reg.c b/programs/reg/reg.c
index aa39099..b2de02d 100644
--- a/programs/reg/reg.c
+++ b/programs/reg/reg.c
@@ -537,15 +537,27 @@ static int reg_delete(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
return 0;
}
+static const WCHAR *reg_type_to_wchar(DWORD type)
+{
+ int i, array_size = ARRAY_SIZE(type_rels);
+
+ for (i = 0; i < array_size; i++)
+ {
+ if (type == type_rels[i].type)
+ return type_rels[i].name;
+ }
+ return NULL;
+}
+
static int query_all(HKEY key, WCHAR *path)
{
LONG rc;
DWORD num_subkeys, max_subkey_len, subkey_len;
DWORD num_values, max_value_len, value_len;
- DWORD i;
+ DWORD i, type;
WCHAR *value_name, *subkey_name;
WCHAR fmt[] = {'%','1','\n',0};
- WCHAR fmt_value[] = {' ',' ',' ',' ','%','1','\n',0};
+ WCHAR fmt_value[] = {' ',' ',' ',' ','%','1',0};
WCHAR newlineW[] = {'\n',0};
WCHAR fmt_path[] = {'%','1','\\','%','2','\n',0};
@@ -570,9 +582,13 @@ static int query_all(HKEY key, WCHAR *path)
for (i = 0; i < num_values; i++)
{
value_len = max_value_len;
- rc = RegEnumValueW(key, i, value_name, &value_len, NULL, NULL, NULL, NULL);
+ rc = RegEnumValueW(key, i, value_name, &value_len, NULL, &type, NULL, NULL);
if (rc == ERROR_SUCCESS)
+ {
output_string(fmt_value, value_name);
+ output_string(fmt_value, reg_type_to_wchar(type));
+ output_string(newlineW);
+ }
}
HeapFree(GetProcessHeap(), 0, value_name);
--
1.9.1
More information about the wine-patches
mailing list