[BTRFS]
[reactos.git] / reactos / base / applications / msconfig_new / regutils.h
1 #ifndef __REGUTILS_H__
2 #define __REGUTILS_H__
3
4 #pragma once
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9
10 ////////////////////////////////////////////////////////////////////////////////
11 typedef LRESULT
12 (*PQUERY_REGISTRY_KEYS_ROUTINE)(IN HKEY hRootKey,
13 IN LPCWSTR KeyName,
14 IN LPWSTR SubKeyName,
15 IN HKEY hOpenedSubKey,
16 IN PVOID Context,
17 IN PVOID EntryContext);
18
19 #define QUERY_REGISTRY_KEYS_ROUTINE(fnName) \
20 LRESULT (fnName)(IN HKEY hRootKey, \
21 IN LPCWSTR KeyName, \
22 IN LPWSTR SubKeyName, \
23 IN HKEY hOpenedSubKey, \
24 IN PVOID Context, \
25 IN PVOID EntryContext)
26
27 typedef struct __tagQUERY_REGISTRY_KEYS_TABLE
28 {
29 PQUERY_REGISTRY_KEYS_ROUTINE QueryRoutine;
30 PVOID EntryContext;
31 // Other fields ?
32 } QUERY_REGISTRY_KEYS_TABLE, *PQUERY_REGISTRY_KEYS_TABLE;
33
34 LRESULT
35 RegQueryRegistryKeys(IN HKEY hRootKey,
36 IN LPCWSTR KeyName,
37 IN PQUERY_REGISTRY_KEYS_TABLE QueryTable,
38 IN PVOID Context);
39
40 ////////////////////////////////////////////////////////////////////////////////
41 typedef LRESULT
42 (*PQUERY_REGISTRY_VALUES_ROUTINE)(IN HKEY hRootKey,
43 IN LPCWSTR KeyName,
44 IN LPWSTR ValueName,
45 IN DWORD ValueType,
46 IN LPBYTE ValueData,
47 IN DWORD ValueLength,
48 IN PVOID Context,
49 IN PVOID EntryContext);
50
51 #define QUERY_REGISTRY_VALUES_ROUTINE(fnName) \
52 LRESULT (fnName)(IN HKEY hRootKey, \
53 IN LPCWSTR KeyName, \
54 IN LPWSTR ValueName, \
55 IN DWORD ValueType, \
56 IN LPBYTE ValueData, \
57 IN DWORD ValueLength, \
58 IN PVOID Context, \
59 IN PVOID EntryContext)
60
61 typedef struct __tagQUERY_REGISTRY_VALUES_TABLE
62 {
63 PQUERY_REGISTRY_VALUES_ROUTINE QueryRoutine;
64 PVOID EntryContext;
65 // Other fields ?
66 } QUERY_REGISTRY_VALUES_TABLE, *PQUERY_REGISTRY_VALUES_TABLE;
67
68 LRESULT
69 RegQueryRegistryValues(IN HKEY hRootKey,
70 IN LPCWSTR KeyName,
71 IN PQUERY_REGISTRY_VALUES_TABLE QueryTable,
72 IN PVOID Context);
73
74 ////////////////////////////////////////////////////////////////////////////////
75
76 LONG
77 RegGetDWORDValue(IN HKEY hKey,
78 IN LPCWSTR lpSubKey OPTIONAL,
79 IN LPCWSTR lpValue OPTIONAL,
80 OUT LPDWORD lpData OPTIONAL);
81
82 LONG
83 RegSetDWORDValue(IN HKEY hKey,
84 IN LPCWSTR lpSubKey OPTIONAL,
85 IN LPCWSTR lpValue OPTIONAL,
86 IN BOOL bCreateKeyIfDoesntExist,
87 IN DWORD dwData);
88
89 #ifdef __cplusplus
90 } // extern "C"
91 #endif
92
93 #endif // __REGUTILS_H__