1 // Copyright 2015, Igor Shaula
2 // Licensed under the MIT License <LICENSE or
3 // http://opensource.org/licenses/MIT>. This file
4 // may not be copied, modified, or distributed
5 // except according to those terms.
6 
7 //! `use winreg::enums::*;` to import all needed enumerations and constants
8 use super::winapi;
9 pub use winapi::um::winnt::{
10     KEY_ALL_ACCESS, KEY_CREATE_LINK, KEY_CREATE_SUB_KEY, KEY_ENUMERATE_SUB_KEYS, KEY_EXECUTE,
11     KEY_NOTIFY, KEY_QUERY_VALUE, KEY_READ, KEY_SET_VALUE, KEY_WOW64_32KEY, KEY_WOW64_64KEY,
12     KEY_WOW64_RES, KEY_WRITE,
13 };
14 pub use winapi::um::winreg::{
15     HKEY_CLASSES_ROOT, HKEY_CURRENT_CONFIG, HKEY_CURRENT_USER, HKEY_CURRENT_USER_LOCAL_SETTINGS,
16     HKEY_DYN_DATA, HKEY_LOCAL_MACHINE, HKEY_PERFORMANCE_DATA, HKEY_PERFORMANCE_NLSTEXT,
17     HKEY_PERFORMANCE_TEXT, HKEY_USERS,
18 };
19 
20 macro_rules! winapi_enum{
21     ($t:ident, $doc:expr => [$($v:ident),*]) => (
22         #[doc=$doc]
23         #[allow(non_camel_case_types)]
24         #[derive(Debug,Clone,PartialEq)]
25         pub enum $t {
26             $( $v = winapi::um::winnt::$v as isize ),*
27         }
28     )
29 }
30 
31 winapi_enum!(RegType, "Enumeration of possible registry value types" => [
32 REG_NONE,
33 REG_SZ,
34 REG_EXPAND_SZ,
35 REG_BINARY,
36 REG_DWORD,
37 REG_DWORD_BIG_ENDIAN,
38 REG_LINK,
39 REG_MULTI_SZ,
40 REG_RESOURCE_LIST,
41 REG_FULL_RESOURCE_DESCRIPTOR,
42 REG_RESOURCE_REQUIREMENTS_LIST,
43 REG_QWORD
44 ]);
45 pub use self::RegType::*;
46 
47 winapi_enum!(RegDisposition, "Enumeration of possible disposition values" => [
48 REG_CREATED_NEW_KEY,
49 REG_OPENED_EXISTING_KEY
50 ]);
51 pub use self::RegDisposition::*;
52