Work around problems on Solaris if config.h is not included.
[wine] / include / winreg.h
1 /*
2  *              Win32 registry defines (see also winnt.h)
3  */
4 #ifndef __WINE_WINREG_H
5 #define __WINE_WINREG_H
6
7 #include "winbase.h"
8 #include "winnt.h"
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif /* defined(__cplusplus) */
13
14 /*
15 #define SHELL_ERROR_SUCCESS           0L
16 #define SHELL_ERROR_BADDB             1L
17 #define SHELL_ERROR_BADKEY            2L
18 #define SHELL_ERROR_CANTOPEN          3L
19 #define SHELL_ERROR_CANTREAD          4L
20 #define SHELL_ERROR_CANTWRITE         5L
21 #define SHELL_ERROR_OUTOFMEMORY       6L
22 #define SHELL_ERROR_INVALID_PARAMETER 7L
23 #define SHELL_ERROR_ACCESS_DENIED     8L
24 */
25
26 #define HKEY_CLASSES_ROOT       ((HKEY) 0x80000000)
27 #define HKEY_CURRENT_USER       ((HKEY) 0x80000001)
28 #define HKEY_LOCAL_MACHINE      ((HKEY) 0x80000002)
29 #define HKEY_USERS              ((HKEY) 0x80000003)
30 #define HKEY_PERFORMANCE_DATA   ((HKEY) 0x80000004)
31 #define HKEY_CURRENT_CONFIG     ((HKEY) 0x80000005)
32 #define HKEY_DYN_DATA           ((HKEY) 0x80000006)
33
34 /*
35  *      registry provider structs
36  */
37 typedef struct value_entA 
38 {   LPSTR       ve_valuename;
39     DWORD       ve_valuelen;
40     DWORD_PTR   ve_valueptr;
41     DWORD       ve_type;
42 } VALENTA, *PVALENTA;
43
44 typedef struct value_entW {
45     LPWSTR      ve_valuename;
46     DWORD       ve_valuelen;
47     DWORD_PTR   ve_valueptr;
48     DWORD       ve_type;
49 } VALENTW, *PVALENTW;
50
51 typedef ACCESS_MASK REGSAM;
52
53 DWORD       WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,
54                                      LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD);
55 DWORD       WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,
56                                      LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD);
57 #define     RegCreateKeyEx WINELIB_NAME_AW(RegCreateKeyEx)
58 LONG        WINAPI RegSaveKeyA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
59 LONG        WINAPI RegSaveKeyW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES);
60 #define     RegSaveKey WINELIB_NAME_AW(RegSaveKey)
61 LONG        WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
62 LONG        WINAPI RegConnectRegistryA(LPCSTR,HKEY,LPHKEY);
63 LONG        WINAPI RegConnectRegistryW(LPCWSTR,HKEY,LPHKEY);
64 #define     RegConnectRegistry WINELIB_NAME_AW(RegConnectRegistry)
65 DWORD       WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPSTR,
66                                    LPDWORD,LPFILETIME);
67 DWORD       WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR,
68                                    LPDWORD,LPFILETIME);
69 #define     RegEnumKeyEx WINELIB_NAME_AW(RegEnumKeyEx)
70 LONG        WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,LPDWORD);
71 LONG        WINAPI RegLoadKeyA(HKEY,LPCSTR,LPCSTR);
72 LONG        WINAPI RegLoadKeyW(HKEY,LPCWSTR,LPCWSTR);
73 #define     RegLoadKey WINELIB_NAME_AW(RegLoadKey)
74 LONG        WINAPI RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL);
75 DWORD       WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,LPHKEY);
76 DWORD       WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,LPHKEY);
77 #define     RegOpenKeyEx WINELIB_NAME_AW(RegOpenKeyEx)
78 DWORD       WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,LPDWORD,LPDWORD,LPDWORD,
79                                       LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
80                                       LPDWORD,LPFILETIME);
81 DWORD       WINAPI RegQueryInfoKeyA(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,
82                                       LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
83                                       LPDWORD,LPFILETIME);
84 #define     RegQueryInfoKey WINELIB_NAME_AW(RegQueryInfoKey)
85 LONG        WINAPI RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR);
86 LONG        WINAPI RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
87 #define     RegReplaceKey WINELIB_NAME_AW(RegReplaceKey)
88 LONG        WINAPI RegRestoreKeyA(HKEY,LPCSTR,DWORD);
89 LONG        WINAPI RegRestoreKeyW(HKEY,LPCWSTR,DWORD);
90 #define     RegRestoreKey WINELIB_NAME_AW(RegRestoreKey)
91 LONG        WINAPI RegUnLoadKeyA(HKEY,LPCSTR);
92 LONG        WINAPI RegUnLoadKeyW(HKEY,LPCWSTR);
93 #define     RegUnLoadKey WINELIB_NAME_AW(RegUnLoadKey)
94
95 /* Declarations for functions that are the same in Win16 and Win32 */
96
97 DWORD       WINAPI RegCloseKey(HKEY);
98 DWORD       WINAPI RegFlushKey(HKEY);
99
100 DWORD       WINAPI RegCreateKeyA(HKEY,LPCSTR,LPHKEY);
101 DWORD       WINAPI RegCreateKeyW(HKEY,LPCWSTR,LPHKEY);
102 #define     RegCreateKey WINELIB_NAME_AW(RegCreateKey)
103 DWORD       WINAPI RegDeleteKeyA(HKEY,LPCSTR);
104 DWORD       WINAPI RegDeleteKeyW(HKEY,LPCWSTR);
105 #define     RegDeleteKey WINELIB_NAME_AW(RegDeleteKey)
106 DWORD       WINAPI RegDeleteValueA(HKEY,LPCSTR);
107 DWORD       WINAPI RegDeleteValueW(HKEY,LPCWSTR);
108 #define     RegDeleteValue WINELIB_NAME_AW(RegDeleteValue)
109 DWORD       WINAPI RegEnumKeyA(HKEY,DWORD,LPSTR,DWORD);
110 DWORD       WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
111 #define     RegEnumKey WINELIB_NAME_AW(RegEnumKey)
112 DWORD       WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
113 DWORD       WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
114 #define     RegEnumValue WINELIB_NAME_AW(RegEnumValue)
115 DWORD       WINAPI RegOpenKeyA(HKEY,LPCSTR,LPHKEY);
116 DWORD       WINAPI RegOpenKeyW(HKEY,LPCWSTR,LPHKEY);
117 #define     RegOpenKey WINELIB_NAME_AW(RegOpenKey)
118 DWORD       WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,LPLONG);
119 DWORD       WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,LPLONG);
120 #define     RegQueryValue WINELIB_NAME_AW(RegQueryValue)
121 DWORD       WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
122 DWORD       WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
123 #define     RegQueryValueEx WINELIB_NAME_AW(RegQueryValueEx)
124 DWORD       WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
125 DWORD       WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
126 #define     RegSetValue WINELIB_NAME_AW(RegSetValue)
127 DWORD       WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,CONST BYTE*,DWORD);
128 DWORD       WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,CONST BYTE*,DWORD);
129 #define     RegSetValueEx WINELIB_NAME_AW(RegSetValueEx)
130
131 #ifdef __cplusplus
132 } /* extern "C" */
133 #endif /* defined(__cplusplus) */
134
135 #endif  /* __WINE_WINREG_H */