001: /*
002: * IzPack - Copyright 2001-2008 Julien Ponge, All Rights Reserved.
003: *
004: * http://izpack.org/
005: * http://izpack.codehaus.org/
006: *
007: * Copyright 2006 Klaus Bartz
008: *
009: * Licensed under the Apache License, Version 2.0 (the "License");
010: * you may not use this file except in compliance with the License.
011: * You may obtain a copy of the License at
012: *
013: * http://www.apache.org/licenses/LICENSE-2.0
014: *
015: * Unless required by applicable law or agreed to in writing, software
016: * distributed under the License is distributed on an "AS IS" BASIS,
017: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018: * See the License for the specific language governing permissions and
019: * limitations under the License.
020: */
021:
022: package com.coi.tools.os.win;
023:
024: /**
025: * Constants related to MS Windows DACLs.
026: * @author Klaus Bartz
027: *
028: */
029: public interface MSWinConstants {
030: /*
031: * Registry root values, extracted from winreg.h
032: */
033: /** HKCR registry root */
034: static final int HKEY_CLASSES_ROOT = 0x80000000;
035:
036: /** HKCU registry root */
037: static final int HKEY_CURRENT_USER = 0x80000001;
038:
039: /** HKLM registry root */
040: static final int HKEY_LOCAL_MACHINE = 0x80000002;
041:
042: /** HKU registry root */
043: static final int HKEY_USERS = 0x80000003;
044:
045: /** HKPD registry root */
046: static final int HKEY_PERFORMANCE_DATA = 0x80000004;
047:
048: /** HKCC registry root */
049: static final int HKEY_CURRENT_CONFIG = 0x80000005;
050:
051: /** HKDD registry root */
052: static final int HKEY_DYN_DATA = 0x80000006;
053:
054: /*
055: * Registry value types, extracted from winnt.h
056: */
057: /** No value type */
058: static final int REG_NONE = 0;
059:
060: /** Unicode nul terminated string */
061: static final int REG_SZ = 1;
062:
063: /** Unicode nul terminated string */
064: static final int REG_EXPAND_SZ = 2;
065:
066: /** Free form binary */
067: static final int REG_BINARY = 3;
068:
069: /** 32-bit number */
070: static final int REG_DWORD = 4;
071:
072: /** Symbolic Link (unicode) */
073: static final int REG_LINK = 6;
074:
075: /** Multiple Unicode strings */
076: static final int REG_MULTI_SZ = 7;
077:
078: //
079: // Define access rights to files and directories
080: // Copied from winnt.h BUILD Version: 0095
081:
082: /** Flag for permission read file or pipe date. */
083: static final int FILE_READ_DATA = 0x0001; // file & pipe
084:
085: /** Flag for permission list contents of a directory. */
086: static final int FILE_LIST_DIRECTORY = 0x0001; // directory
087:
088: /** Flag for permission write file or pipe data. */
089: static final int FILE_WRITE_DATA = 0x0002; // file & pipe
090:
091: /** Flag for permission add a file to a directory. */
092: static final int FILE_ADD_FILE = 0x0002; // directory
093:
094: /** Flag for permission add data to a file (append). */
095: static final int FILE_APPEND_DATA = 0x0004; // file
096:
097: /** Flag for permission add a subdirectory to a directory. */
098: static final int FILE_ADD_SUBDIRECTORY = 0x0004; // directory
099:
100: /** Flag for permission create a named pipe. */
101: static final int FILE_CREATE_PIPE_INSTANCE = 0x0004; // named pipe
102:
103: /** Flag for permission read. */
104: static final int FILE_READ_EA = 0x0008; // file & directory
105:
106: /** Flag for permission write. */
107: static final int FILE_WRITE_EA = 0x0010; // file & directory
108:
109: /** Flag for permission execute a file. */
110: static final int FILE_EXECUTE = 0x0020; // file
111:
112: /** Flag for permission traverse through a directory. */
113: static final int FILE_TRAVERSE = 0x0020; // directory
114:
115: /** Flag for permission delete a file or subdirectory in a directory. */
116: static final int FILE_DELETE_CHILD = 0x0040; // directory
117:
118: /** Flag for permission all read attributes. */
119: static final int FILE_READ_ATTRIBUTES = 0x0080; // all
120:
121: /** Flag for permission all write attributes. */
122: static final int FILE_WRITE_ATTRIBUTES = 0x0100; // all
123:
124: /** Flag for permission delete. */
125: static final int DELETE = 0x00010000;
126:
127: /** Flag for permission read. */
128: static final int READ_CONTROL = 0x00020000;
129:
130: /** Flag for permission write a DAC. */
131: static final int WRITE_DAC = 0x00040000;
132:
133: /** Flag for permission set owner. */
134: static final int WRITE_OWNER = 0x00080000;
135:
136: /** Flag for permission use synchronize. */
137: static final int SYNCHRONIZE = 0x00100000;
138:
139: /** Flag for permission standard rights for required. */
140: static final int STANDARD_RIGHTS_REQUIRED = 0x000F0000;
141:
142: /** Flag for permission standard rights for read. */
143: static final int STANDARD_RIGHTS_READ = 0x00020000; // original READ_CONTROL
144:
145: /** Flag for permission standard rights for write. */
146: static final int STANDARD_RIGHTS_WRITE = 0x00020000; // original READ_CONTROL
147:
148: /** Flag for permission standard rights for execute. */
149: static final int STANDARD_RIGHTS_EXECUTE = 0x00020000; // original READ_CONTROL
150:
151: /** Flag for permission all standard rights. */
152: static final int STANDARD_RIGHTS_ALL = 0x001F0000;
153:
154: /** Flag for permission all specific rights. */
155: static final int SPECIFIC_RIGHTS_ALL = 0x0000FFFF;
156:
157: /** Flag for permission STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF. */
158: static final int FILE_ALL_ACCESS = 0x001F03FF;
159:
160: /** Flag for permission generic read. */
161: static final int FILE_GENERIC_READ = 0x00120089;
162:
163: // #define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
164: // FILE_WRITE_DATA |\
165: // FILE_WRITE_ATTRIBUTES |\
166: // FILE_WRITE_EA |\
167: // FILE_APPEND_DATA |\
168: // SYNCHRONIZE)
169:
170: /** Flag for permission generic write. */
171: static final int FILE_GENERIC_WRITE = 0x00120116;
172:
173: // #define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
174: // FILE_READ_ATTRIBUTES |\
175: // FILE_EXECUTE |\
176: // SYNCHRONIZE)
177: /** Flag for permission generic execute. */
178: static final int FILE_GENERIC_EXECUTE = 0x001200A0;
179:
180: //
181: // AccessSystemAcl access type
182: //
183:
184: /** Flag for permission all specific rights. */
185: static final int ACCESS_SYSTEM_SECURITY = 0x01000000;
186:
187: //
188: // MaximumAllowed access type
189: //
190:
191: /**
192: * Flag for NT permissions: For more information see the Windows NT description for permisson
193: * flags.
194: */
195: static final int MAXIMUM_ALLOWED = 0x02000000;
196:
197: //
198: // These are the generic rights.
199: //
200:
201: /**
202: * Flag for NT permissions: For more information see the Windows NT description for permisson
203: * flags.
204: */
205: static final int GENERIC_READ = 0x80000000; // may be a problem with int ...
206:
207: /**
208: * Flag for NT permissions: For more information see the Windows NT description for permisson
209: * flags.
210: */
211: static final int GENERIC_WRITE = 0x40000000;
212:
213: /**
214: * Flag for NT permissions: For more information see the Windows NT description for permisson
215: * flags.
216: */
217: static final int GENERIC_EXECUTE = 0x20000000;
218:
219: /**
220: * Flag for NT permissions: For more information see the Windows NT description for permisson
221: * flags.
222: */
223: static final int GENERIC_ALL = 0x10000000;
224:
225: /**
226: * Flag for NT permissions: For more information see the Windows NT description for permisson
227: * flags.
228: */
229: static final int FILE_CASE_SENSITIVE_SEARCH = 0x00000001;
230:
231: /**
232: * Flag for NT permissions: For more information see the Windows NT description for permisson
233: * flags.
234: */
235: static final int FILE_CASE_PRESERVED_NAMES = 0x00000002;
236:
237: /**
238: * Flag for NT permissions: For more information see the Windows NT description for permisson
239: * flags.
240: */
241: static final int FILE_UNICODE_ON_DISK = 0x00000004;
242:
243: /**
244: * Flag for NT permissions: For more information see the Windows NT description for permisson
245: * flags.
246: */
247: static final int FILE_PERSISTENT_ACLS = 0x00000008;
248:
249: /**
250: * Flag for NT permissions: For more information see the Windows NT description for permisson
251: * flags.
252: */
253: static final int FILE_FILE_COMPRESSION = 0x00000010;
254:
255: /**
256: * Flag for NT permissions: For more information see the Windows NT description for permisson
257: * flags.
258: */
259: static final int FILE_VOLUME_QUOTAS = 0x00000020;
260:
261: /**
262: * Flag for NT permissions: For more information see the Windows NT description for permisson
263: * flags.
264: */
265: static final int FILE_SUPPORTS_SPARSE_FILES = 0x00000040;
266:
267: /**
268: * Flag for NT permissions: For more information see the Windows NT description for permisson
269: * flags.
270: */
271: static final int FILE_SUPPORTS_REPARSE_POINTS = 0x00000080;
272:
273: /**
274: * Flag for NT permissions: For more information see the Windows NT description for permisson
275: * flags.
276: */
277: static final int FILE_SUPPORTS_REMOTE_STORAGE = 0x00000100;
278:
279: /**
280: * Flag for NT permissions: For more information see the Windows NT description for permisson
281: * flags.
282: */
283: static final int FILE_VOLUME_IS_COMPRESSED = 0x00008000;
284:
285: /**
286: * Flag for NT permissions: For more information see the Windows NT description for permisson
287: * flags.
288: */
289: static final int FILE_SUPPORTS_OBJECT_IDS = 0x00010000;
290:
291: /**
292: * Flag for NT permissions: For more information see the Windows NT description for permisson
293: * flags.
294: */
295: static final int FILE_SUPPORTS_ENCRYPTION = 0x00020000;
296:
297: }
|