1 | /*
|
---|
2 | * Shell Library definitions
|
---|
3 | */
|
---|
4 | #ifndef __WINE_WINREG_H
|
---|
5 | #define __WINE_WINREG_H
|
---|
6 |
|
---|
7 | #include "winbase.h"
|
---|
8 | #include "winnt.h"
|
---|
9 |
|
---|
10 | /*
|
---|
11 | #define SHELL_ERROR_SUCCESS 0L
|
---|
12 | #define SHELL_ERROR_BADDB 1L
|
---|
13 | #define SHELL_ERROR_BADKEY 2L
|
---|
14 | #define SHELL_ERROR_CANTOPEN 3L
|
---|
15 | #define SHELL_ERROR_CANTREAD 4L
|
---|
16 | #define SHELL_ERROR_CANTWRITE 5L
|
---|
17 | #define SHELL_ERROR_OUTOFMEMORY 6L
|
---|
18 | #define SHELL_ERROR_INVALID_PARAMETER 7L
|
---|
19 | #define SHELL_ERROR_ACCESS_DENIED 8L
|
---|
20 | */
|
---|
21 |
|
---|
22 | #define REG_NONE 0 /* no type */
|
---|
23 | #define REG_SZ 1 /* string type (ASCII) */
|
---|
24 | #define REG_EXPAND_SZ 2 /* string, includes %ENVVAR% (expanded by caller) (ASCII) */
|
---|
25 | #define REG_BINARY 3 /* binary format, callerspecific */
|
---|
26 | /* YES, REG_DWORD == REG_DWORD_LITTLE_ENDIAN */
|
---|
27 | #define REG_DWORD 4 /* DWORD in little endian format */
|
---|
28 | #define REG_DWORD_LITTLE_ENDIAN 4 /* DWORD in little endian format */
|
---|
29 | #define REG_DWORD_BIG_ENDIAN 5 /* DWORD in big endian format */
|
---|
30 | #define REG_LINK 6 /* symbolic link (UNICODE) */
|
---|
31 | #define REG_MULTI_SZ 7 /* multiple strings, delimited by \0, terminated by \0\0 (ASCII) */
|
---|
32 | #define REG_RESOURCE_LIST 8 /* resource list? huh? */
|
---|
33 | #define REG_FULL_RESOURCE_DESCRIPTOR 9 /* full resource descriptor? huh? */
|
---|
34 | #define REG_RESOURCE_REQUIREMENTS_LIST 10
|
---|
35 |
|
---|
36 | #define HEX_REG_NONE 0x80000000
|
---|
37 | #define HEX_REG_SZ 0x80000001
|
---|
38 | #define HEX_REG_EXPAND_SZ 0x80000002
|
---|
39 | #define HEX_REG_BINARY 0x80000003
|
---|
40 | #define HEX_REG_DWORD 0x80000004
|
---|
41 | #define HEX_REG_DWORD_LITTLE_ENDIAN 0x80000004
|
---|
42 | #define HEX_REG_DWORD_BIG_ENDIAN 0x80000005
|
---|
43 | #define HEX_REG_LINK 0x80000006
|
---|
44 | #define HEX_REG_MULTI_SZ 0x80000007
|
---|
45 | #define HEX_REG_RESOURCE_LIST 0x80000008
|
---|
46 | #define HEX_REG_FULL_RESOURCE_DESCRIPTOR 0x80000009
|
---|
47 |
|
---|
48 | #define HKEY_CLASSES_ROOT ((HKEY) 0x80000000)
|
---|
49 | #define HKEY_CURRENT_USER ((HKEY) 0x80000001)
|
---|
50 | #define HKEY_LOCAL_MACHINE ((HKEY) 0x80000002)
|
---|
51 | #define HKEY_USERS ((HKEY) 0x80000003)
|
---|
52 | #define HKEY_PERFORMANCE_DATA ((HKEY) 0x80000004)
|
---|
53 | #define HKEY_CURRENT_CONFIG ((HKEY) 0x80000005)
|
---|
54 | #define HKEY_DYN_DATA ((HKEY) 0x80000006)
|
---|
55 |
|
---|
56 | #define REG_OPTION_RESERVED 0x00000000
|
---|
57 | #define REG_OPTION_NON_VOLATILE 0x00000000
|
---|
58 | #define REG_OPTION_VOLATILE 0x00000001
|
---|
59 | #define REG_OPTION_CREATE_LINK 0x00000002
|
---|
60 | #define REG_OPTION_BACKUP_RESTORE 0x00000004 /* FIXME */
|
---|
61 | #define REG_OPTION_TAINTED 0x80000000 /* Internal? */
|
---|
62 |
|
---|
63 | #define REG_CREATED_NEW_KEY 0x00000001
|
---|
64 | #define REG_OPENED_EXISTING_KEY 0x00000002
|
---|
65 |
|
---|
66 | /* For RegNotifyChangeKeyValue */
|
---|
67 | #define REG_NOTIFY_CHANGE_NAME 0x1
|
---|
68 |
|
---|
69 | #define KEY_QUERY_VALUE 0x00000001
|
---|
70 | #define KEY_SET_VALUE 0x00000002
|
---|
71 | #define KEY_CREATE_SUB_KEY 0x00000004
|
---|
72 | #define KEY_ENUMERATE_SUB_KEYS 0x00000008
|
---|
73 | #define KEY_NOTIFY 0x00000010
|
---|
74 | #define KEY_CREATE_LINK 0x00000020
|
---|
75 |
|
---|
76 | #define KEY_READ (STANDARD_RIGHTS_READ| \
|
---|
77 | KEY_QUERY_VALUE| \
|
---|
78 | KEY_ENUMERATE_SUB_KEYS|\
|
---|
79 | KEY_NOTIFY \
|
---|
80 | )
|
---|
81 | #define KEY_WRITE (STANDARD_RIGHTS_WRITE| \
|
---|
82 | KEY_SET_VALUE| \
|
---|
83 | KEY_CREATE_SUB_KEY \
|
---|
84 | )
|
---|
85 | #define KEY_EXECUTE KEY_READ
|
---|
86 | #define KEY_ALL_ACCESS (STANDARD_RIGHTS_ALL| \
|
---|
87 | KEY_READ|KEY_WRITE| \
|
---|
88 | KEY_CREATE_LINK \
|
---|
89 | )
|
---|
90 |
|
---|
91 | /*
|
---|
92 | * registry provider structs
|
---|
93 | */
|
---|
94 | typedef struct value_entA
|
---|
95 | { LPSTR ve_valuename;
|
---|
96 | DWORD ve_valuelen;
|
---|
97 | DWORD_PTR ve_valueptr;
|
---|
98 | DWORD ve_type;
|
---|
99 | } VALENTA, *PVALENTA;
|
---|
100 |
|
---|
101 | typedef struct value_entW {
|
---|
102 | LPWSTR ve_valuename;
|
---|
103 | DWORD ve_valuelen;
|
---|
104 | DWORD_PTR ve_valueptr;
|
---|
105 | DWORD ve_type;
|
---|
106 | } VALENTW, *PVALENTW;
|
---|
107 |
|
---|
108 | BOOL WINAPI LookupPrivilegeValueA(LPCSTR,LPCSTR,LPVOID);
|
---|
109 | BOOL WINAPI LookupPrivilegeValueW(LPCWSTR,LPCWSTR,LPVOID);
|
---|
110 | #define LookupPrivilegeValue WINELIB_NAME_AW(LookupPrivilegeValue)
|
---|
111 | HANDLE WINAPI RegisterEventSourceA(LPCSTR,LPCSTR);
|
---|
112 | HANDLE WINAPI RegisterEventSourceW(LPCWSTR,LPCWSTR);
|
---|
113 | #define RegisterEventSource WINELIB_NAME_AW(RegisterEventSource)
|
---|
114 | LONG WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,
|
---|
115 | LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD);
|
---|
116 | LONG WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,
|
---|
117 | LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD);
|
---|
118 | #define RegCreateKeyEx WINELIB_NAME_AW(RegCreateKeyEx)
|
---|
119 | LONG WINAPI RegSaveKeyA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
|
---|
120 | LONG WINAPI RegSaveKeyW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES);
|
---|
121 | #define RegSaveKey WINELIB_NAME_AW(RegSaveKey)
|
---|
122 | LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
|
---|
123 | BOOL WINAPI DeregisterEventSource(HANDLE);
|
---|
124 | BOOL WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
|
---|
125 | BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
|
---|
126 | #define GetFileSecurity WINELIB_NAME_AW(GetFileSecurity)
|
---|
127 | BOOL WINAPI GetUserNameA(LPSTR,LPDWORD);
|
---|
128 | BOOL WINAPI GetUserNameW(LPWSTR,LPDWORD);
|
---|
129 | #define GetUserName WINELIB_NAME_AW(GetUserName)
|
---|
130 | BOOL WINAPI OpenProcessToken(HANDLE,DWORD,HANDLE*);
|
---|
131 | LONG WINAPI RegConnectRegistryA(LPCSTR,HKEY,LPHKEY);
|
---|
132 | LONG WINAPI RegConnectRegistryW(LPCWSTR,HKEY,LPHKEY);
|
---|
133 | #define RegConnectRegistry WINELIB_NAME_AW(RegConnectRegistry)
|
---|
134 | LONG WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPSTR,
|
---|
135 | LPDWORD,LPFILETIME);
|
---|
136 | LONG WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR,
|
---|
137 | LPDWORD,LPFILETIME);
|
---|
138 | #define RegEnumKeyEx WINELIB_NAME_AW(RegEnumKeyEx)
|
---|
139 | LONG WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,LPDWORD);
|
---|
140 | LONG WINAPI RegLoadKeyA(HKEY,LPCSTR,LPCSTR);
|
---|
141 | LONG WINAPI RegLoadKeyW(HKEY,LPCWSTR,LPCWSTR);
|
---|
142 | #define RegLoadKey WINELIB_NAME_AW(RegLoadKey)
|
---|
143 | LONG WINAPI RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL);
|
---|
144 | LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,LPHKEY);
|
---|
145 | LONG WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,LPHKEY);
|
---|
146 | #define RegOpenKeyEx WINELIB_NAME_AW(RegOpenKeyEx)
|
---|
147 | LONG WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,LPDWORD,LPDWORD,LPDWORD,
|
---|
148 | LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
|
---|
149 | LPDWORD,LPFILETIME);
|
---|
150 | LONG WINAPI RegQueryInfoKeyA(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,
|
---|
151 | LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
|
---|
152 | LPDWORD,LPFILETIME);
|
---|
153 | #define RegQueryInfoKey WINELIB_NAME_AW(RegQueryInfoKey)
|
---|
154 | LONG WINAPI RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR);
|
---|
155 | LONG WINAPI RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
|
---|
156 | #define RegReplaceKey WINELIB_NAME_AW(RegReplaceKey)
|
---|
157 | LONG WINAPI RegRestoreKeyA(HKEY,LPCSTR,DWORD);
|
---|
158 | LONG WINAPI RegRestoreKeyW(HKEY,LPCWSTR,DWORD);
|
---|
159 | #define RegRestoreKey WINELIB_NAME_AW(RegRestoreKey)
|
---|
160 | LONG WINAPI RegUnLoadKeyA(HKEY,LPCSTR);
|
---|
161 | LONG WINAPI RegUnLoadKeyW(HKEY,LPCWSTR);
|
---|
162 | #define RegUnLoadKey WINELIB_NAME_AW(RegUnLoadKey)
|
---|
163 | BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
|
---|
164 | BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
|
---|
165 | #define SetFileSecurity WINELIB_NAME_AW(SetFileSecurity)
|
---|
166 |
|
---|
167 | /* Declarations for functions that are the same in Win16 and Win32 */
|
---|
168 |
|
---|
169 | LONG WINAPI RegCloseKey(HKEY);
|
---|
170 | LONG WINAPI RegFlushKey(HKEY);
|
---|
171 |
|
---|
172 | LONG WINAPI RegCreateKeyA(HKEY,LPCSTR,LPHKEY);
|
---|
173 | LONG WINAPI RegCreateKeyW(HKEY,LPCWSTR,LPHKEY);
|
---|
174 | #define RegCreateKey WINELIB_NAME_AW(RegCreateKey)
|
---|
175 | LONG WINAPI RegDeleteKeyA(HKEY,LPCSTR);
|
---|
176 | LONG WINAPI RegDeleteKeyW(HKEY,LPCWSTR);
|
---|
177 | #define RegDeleteKey WINELIB_NAME_AW(RegDeleteKey)
|
---|
178 | LONG WINAPI RegDeleteValueA(HKEY,LPSTR);
|
---|
179 | LONG WINAPI RegDeleteValueW(HKEY,LPWSTR);
|
---|
180 | #define RegDeleteValue WINELIB_NAME_AW(RegDeleteValue)
|
---|
181 | LONG WINAPI RegEnumKeyA(HKEY,DWORD,LPSTR,DWORD);
|
---|
182 | LONG WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
|
---|
183 | #define RegEnumKey WINELIB_NAME_AW(RegEnumKey)
|
---|
184 | LONG WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
---|
185 | LONG WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
---|
186 | #define RegEnumValue WINELIB_NAME_AW(RegEnumValue)
|
---|
187 | LONG WINAPI RegOpenKeyA(HKEY,LPCSTR,LPHKEY);
|
---|
188 | LONG WINAPI RegOpenKeyW(HKEY,LPCWSTR,LPHKEY);
|
---|
189 | #define RegOpenKey WINELIB_NAME_AW(RegOpenKey)
|
---|
190 | LONG WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,LPLONG);
|
---|
191 | LONG WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,LPLONG);
|
---|
192 | #define RegQueryValue WINELIB_NAME_AW(RegQueryValue)
|
---|
193 | LONG WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
---|
194 | LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
---|
195 | #define RegQueryValueEx WINELIB_NAME_AW(RegQueryValueEx)
|
---|
196 | LONG WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
|
---|
197 | LONG WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
|
---|
198 | #define RegSetValue WINELIB_NAME_AW(RegSetValue)
|
---|
199 | LONG WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,LPBYTE,DWORD);
|
---|
200 | LONG WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,LPBYTE,DWORD);
|
---|
201 | #define RegSetValueEx WINELIB_NAME_AW(RegSetValueEx)
|
---|
202 |
|
---|
203 | LONG WINAPI RegQueryMultipleValuesA(HKEY hKey, PVALENTA val_list, DWORD num_vals, LPTSTR lpValueBuf, LPDWORD ldwTotsize);
|
---|
204 | LONG WINAPI RegQueryMultipleValuesW(HKEY hKey, PVALENTW val_list, DWORD num_vals, LPWSTR lpValueBuf, LPDWORD ldwTotsize);
|
---|
205 | #define RegQueryMultipleValues WINELIB_NAME_AW(RegQueryMultipleValues)
|
---|
206 |
|
---|
207 | #endif /* __WINE_WINREG_H */
|
---|