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