OSDN Git Service

329d83f1e340dff0f11d3104cb8cc94a151fa52a
[mingw/mingw-org-wsl.git] / include / winreg.h
1 /**
2  * @file winreg.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _WINREG_H
25 #define _WINREG_H
26 #pragma GCC system_header
27
28 #ifndef WINADVAPI
29 #define WINADVAPI
30 #endif
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 #define HKEY_CLASSES_ROOT       ((HKEY)0x80000000)
36 #define HKEY_CURRENT_USER       ((HKEY)0x80000001)
37 #define HKEY_LOCAL_MACHINE      ((HKEY)0x80000002)
38 #define HKEY_USERS      ((HKEY)0x80000003)
39 #define HKEY_PERFORMANCE_DATA   ((HKEY)0x80000004)
40 #define HKEY_CURRENT_CONFIG     ((HKEY)0x80000005)
41 #define HKEY_DYN_DATA   ((HKEY)0x80000006)
42 #define REG_OPTION_VOLATILE 1
43 #define REG_OPTION_NON_VOLATILE 0
44 #define REG_CREATED_NEW_KEY 1
45 #define REG_OPENED_EXISTING_KEY 2
46 #define REG_NONE 0
47 #define REG_SZ 1
48 #define REG_EXPAND_SZ 2
49 #define REG_BINARY 3
50 #define REG_DWORD_LITTLE_ENDIAN 4
51 #define REG_DWORD 4
52 #define REG_DWORD_BIG_ENDIAN 5
53 #define REG_LINK 6
54 #define REG_MULTI_SZ 7
55 #define REG_RESOURCE_LIST 8
56 #define REG_FULL_RESOURCE_DESCRIPTOR 9
57 #define REG_RESOURCE_REQUIREMENTS_LIST 10
58 #define REG_QWORD_LITTLE_ENDIAN 11
59 #define REG_QWORD 11
60 #define REG_NOTIFY_CHANGE_NAME 1
61 #define REG_NOTIFY_CHANGE_ATTRIBUTES 2
62 #define REG_NOTIFY_CHANGE_LAST_SET 4
63 #define REG_NOTIFY_CHANGE_SECURITY 8
64
65 #ifndef RC_INVOKED
66 typedef ACCESS_MASK REGSAM;
67 typedef struct value_entA {
68         LPSTR ve_valuename;
69         DWORD ve_valuelen;
70         DWORD ve_valueptr;
71         DWORD ve_type;
72 } VALENTA,*PVALENTA;
73 typedef struct value_entW {
74         LPWSTR ve_valuename;
75         DWORD ve_valuelen;
76         DWORD ve_valueptr;
77         DWORD ve_type;
78 } VALENTW,*PVALENTW;
79 WINADVAPI BOOL WINAPI AbortSystemShutdownA(LPCSTR);
80 WINADVAPI BOOL WINAPI AbortSystemShutdownW(LPCWSTR);
81 WINADVAPI BOOL WINAPI InitiateSystemShutdownA(LPSTR,LPSTR,DWORD,BOOL,BOOL);
82 WINADVAPI BOOL WINAPI InitiateSystemShutdownW(LPWSTR,LPWSTR,DWORD,BOOL,BOOL);
83 WINADVAPI LONG WINAPI RegCloseKey(HKEY);
84 WINADVAPI LONG WINAPI RegConnectRegistryA(LPCSTR,HKEY,PHKEY);
85 WINADVAPI LONG WINAPI RegConnectRegistryW(LPCWSTR,HKEY,PHKEY);
86 WINADVAPI LONG WINAPI RegCreateKeyA(HKEY,LPCSTR,PHKEY);
87 WINADVAPI LONG WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD);
88 WINADVAPI LONG WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD);
89 WINADVAPI LONG WINAPI RegCreateKeyW(HKEY,LPCWSTR,PHKEY);
90 WINADVAPI LONG WINAPI RegDeleteKeyA(HKEY,LPCSTR);
91 WINADVAPI LONG WINAPI RegDeleteKeyW(HKEY,LPCWSTR);
92 #if (WINVER >= 0x0502)
93 WINADVAPI LONG WINAPI RegDeleteKeyExA(HKEY,LPCSTR,REGSAM,DWORD);
94 WINADVAPI LONG WINAPI RegDeleteKeyExW(HKEY,LPCWSTR,REGSAM,DWORD);
95 #endif
96 WINADVAPI LONG WINAPI RegDeleteValueA(HKEY,LPCSTR);
97 WINADVAPI LONG WINAPI RegDeleteValueW(HKEY,LPCWSTR);
98 WINADVAPI LONG WINAPI RegEnumKeyA(HKEY,DWORD,LPSTR,DWORD);
99 WINADVAPI LONG WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
100 WINADVAPI LONG WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,LPSTR,PDWORD,PFILETIME);
101 WINADVAPI LONG WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,LPWSTR,PDWORD,PFILETIME);
102 WINADVAPI LONG WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD);
103 WINADVAPI LONG WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD);
104 WINADVAPI LONG WINAPI RegFlushKey(HKEY);
105 WINADVAPI LONG WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PDWORD);
106 WINADVAPI LONG WINAPI RegLoadKeyA(HKEY,LPCSTR,LPCSTR);
107 WINADVAPI LONG WINAPI RegLoadKeyW(HKEY,LPCWSTR,LPCWSTR);
108 WINADVAPI LONG WINAPI RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL);
109 WINADVAPI LONG WINAPI RegOpenKeyA(HKEY,LPCSTR,PHKEY);
110 WINADVAPI LONG WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY);
111 WINADVAPI LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
112 WINADVAPI LONG WINAPI RegOpenKeyW(HKEY,LPCWSTR,PHKEY);
113 WINADVAPI LONG WINAPI RegQueryInfoKeyA(HKEY,LPSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
114 WINADVAPI LONG WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
115 WINADVAPI LONG WINAPI RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,LPDWORD);
116 WINADVAPI LONG WINAPI RegQueryMultipleValuesW(HKEY,PVALENTW,DWORD,LPWSTR,LPDWORD);
117 WINADVAPI LONG WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,PLONG);
118 WINADVAPI LONG WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
119 WINADVAPI LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
120 WINADVAPI LONG WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,PLONG);
121 WINADVAPI LONG WINAPI RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR);
122 WINADVAPI LONG WINAPI RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
123 WINADVAPI LONG WINAPI RegRestoreKeyA(HKEY,LPCSTR,DWORD);
124 WINADVAPI LONG WINAPI RegRestoreKeyW(HKEY,LPCWSTR,DWORD);
125 WINADVAPI LONG WINAPI RegSaveKeyA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
126 WINADVAPI LONG WINAPI RegSaveKeyW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES);
127 WINADVAPI LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
128 WINADVAPI LONG WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
129 WINADVAPI LONG WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,const BYTE*,DWORD);
130 WINADVAPI LONG WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,const BYTE*,DWORD);
131 WINADVAPI LONG WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
132 WINADVAPI LONG WINAPI RegUnLoadKeyA(HKEY,LPCSTR);
133 WINADVAPI LONG WINAPI RegUnLoadKeyW(HKEY,LPCWSTR);
134
135 #ifdef UNICODE
136 typedef VALENTW VALENT,*PVALENT;
137 #define AbortSystemShutdown AbortSystemShutdownW
138 #define InitiateSystemShutdown InitiateSystemShutdownW
139 #define RegConnectRegistry RegConnectRegistryW
140 #define RegCreateKey RegCreateKeyW
141 #define RegCreateKeyEx RegCreateKeyExW
142 #define RegDeleteKey RegDeleteKeyW
143 #if (WINVER >= 0x0502)
144 #define RegDeleteKeyEx RegDeleteKeyExW
145 #endif
146 #define RegDeleteValue RegDeleteValueW
147 #define RegEnumKey RegEnumKeyW
148 #define RegEnumKeyEx RegEnumKeyExW
149 #define RegEnumValue RegEnumValueW
150 #define RegLoadKey RegLoadKeyW
151 #define RegOpenKey RegOpenKeyW
152 #define RegOpenKeyEx RegOpenKeyExW
153 #define RegQueryInfoKey RegQueryInfoKeyW
154 #define RegQueryMultipleValues RegQueryMultipleValuesW
155 #define RegQueryValue RegQueryValueW
156 #define RegQueryValueEx RegQueryValueExW
157 #define RegReplaceKey RegReplaceKeyW
158 #define RegRestoreKey RegRestoreKeyW
159 #define RegSaveKey RegSaveKeyW
160 #define RegSetValue RegSetValueW
161 #define RegSetValueEx RegSetValueExW
162 #define RegUnLoadKey RegUnLoadKeyW
163 #else
164 typedef VALENTA VALENT,*PVALENT;
165 #define AbortSystemShutdown AbortSystemShutdownA
166 #define InitiateSystemShutdown InitiateSystemShutdownA
167 #define RegConnectRegistry RegConnectRegistryA
168 #define RegCreateKey RegCreateKeyA
169 #define RegCreateKeyEx RegCreateKeyExA
170 #define RegDeleteKey RegDeleteKeyA
171 #if (WINVER >= 0x0502)
172 #define RegDeleteKeyEx RegDeleteKeyExA
173 #endif
174 #define RegDeleteValue RegDeleteValueA
175 #define RegEnumKey RegEnumKeyA
176 #define RegEnumKeyEx RegEnumKeyExA
177 #define RegEnumValue RegEnumValueA
178 #define RegLoadKey RegLoadKeyA
179 #define RegOpenKey RegOpenKeyA
180 #define RegOpenKeyEx RegOpenKeyExA
181 #define RegQueryInfoKey RegQueryInfoKeyA
182 #define RegQueryMultipleValues RegQueryMultipleValuesA
183 #define RegQueryValue RegQueryValueA
184 #define RegQueryValueEx RegQueryValueExA
185 #define RegReplaceKey RegReplaceKeyA
186 #define RegRestoreKey RegRestoreKeyA
187 #define RegSaveKey RegSaveKeyA
188 #define RegSetValue RegSetValueA
189 #define RegSetValueEx RegSetValueExA
190 #define RegUnLoadKey RegUnLoadKeyA
191 #endif
192 #endif
193 #ifdef __cplusplus
194 }
195 #endif
196 #endif