]>
Commit | Line | Data |
---|---|---|
ff7c6d11 XL |
1 | // Licensed under the Apache License, Version 2.0 |
2 | // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | |
3 | // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. | |
4 | // All files in the project carrying such notice may not be copied, modified, or distributed | |
5 | // except according to those terms. | |
8bb4bdeb | 6 | //! Defines property types and keys for the Plug and Play Device Property API |
ff7c6d11 XL |
7 | use shared::guiddef::{GUID, IsEqualGUID}; |
8 | use shared::minwindef::ULONG; | |
9 | use um::winnt::{CHAR, PCWSTR, PVOID}; | |
10 | pub type DEVPROPTYPE = ULONG; | |
11 | pub type PDEVPROPTYPE = *mut ULONG; | |
8bb4bdeb XL |
12 | pub const DEVPROP_TYPEMOD_ARRAY: DEVPROPTYPE = 0x00001000; |
13 | pub const DEVPROP_TYPEMOD_LIST: DEVPROPTYPE = 0x00002000; | |
14 | pub const DEVPROP_TYPE_EMPTY: DEVPROPTYPE = 0x00000000; | |
15 | pub const DEVPROP_TYPE_NULL: DEVPROPTYPE = 0x00000001; | |
16 | pub const DEVPROP_TYPE_SBYTE: DEVPROPTYPE = 0x00000002; | |
17 | pub const DEVPROP_TYPE_BYTE: DEVPROPTYPE = 0x00000003; | |
18 | pub const DEVPROP_TYPE_INT16: DEVPROPTYPE = 0x00000004; | |
19 | pub const DEVPROP_TYPE_UINT16: DEVPROPTYPE = 0x00000005; | |
20 | pub const DEVPROP_TYPE_INT32: DEVPROPTYPE = 0x00000006; | |
21 | pub const DEVPROP_TYPE_UINT32: DEVPROPTYPE = 0x00000007; | |
22 | pub const DEVPROP_TYPE_INT64: DEVPROPTYPE = 0x00000008; | |
23 | pub const DEVPROP_TYPE_UINT64: DEVPROPTYPE = 0x00000009; | |
24 | pub const DEVPROP_TYPE_FLOAT: DEVPROPTYPE = 0x0000000A; | |
25 | pub const DEVPROP_TYPE_DOUBLE: DEVPROPTYPE = 0x0000000B; | |
26 | pub const DEVPROP_TYPE_DECIMAL: DEVPROPTYPE = 0x0000000C; | |
27 | pub const DEVPROP_TYPE_GUID: DEVPROPTYPE = 0x0000000D; | |
28 | pub const DEVPROP_TYPE_CURRENCY: DEVPROPTYPE = 0x0000000E; | |
29 | pub const DEVPROP_TYPE_DATE: DEVPROPTYPE = 0x0000000F; | |
30 | pub const DEVPROP_TYPE_FILETIME: DEVPROPTYPE = 0x00000010; | |
31 | pub const DEVPROP_TYPE_BOOLEAN: DEVPROPTYPE = 0x00000011; | |
32 | pub const DEVPROP_TYPE_STRING: DEVPROPTYPE = 0x00000012; | |
33 | pub const DEVPROP_TYPE_STRING_LIST: DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST; | |
34 | pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR: DEVPROPTYPE = 0x00000013; | |
35 | pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING: DEVPROPTYPE = 0x00000014; | |
36 | pub const DEVPROP_TYPE_DEVPROPKEY: DEVPROPTYPE = 0x00000015; | |
37 | pub const DEVPROP_TYPE_DEVPROPTYPE: DEVPROPTYPE = 0x00000016; | |
38 | pub const DEVPROP_TYPE_BINARY: DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY; | |
39 | pub const DEVPROP_TYPE_ERROR: DEVPROPTYPE = 0x00000017; | |
40 | pub const DEVPROP_TYPE_NTSTATUS: DEVPROPTYPE = 0x00000018; | |
41 | pub const DEVPROP_TYPE_STRING_INDIRECT: DEVPROPTYPE = 0x00000019; | |
42 | pub const MAX_DEVPROP_TYPE: DEVPROPTYPE = 0x00000019; | |
43 | pub const MAX_DEVPROP_TYPEMOD: DEVPROPTYPE = 0x00002000; | |
44 | pub const DEVPROP_MASK_TYPE: DEVPROPTYPE = 0x00000FFF; | |
45 | pub const DEVPROP_MASK_TYPEMOD: DEVPROPTYPE = 0x0000F000; | |
ff7c6d11 XL |
46 | pub type DEVPROP_BOOLEAN = CHAR; |
47 | pub type PDEVPROP_BOOLEAN = *mut CHAR; | |
8bb4bdeb XL |
48 | pub const DEVPROP_TRUE: DEVPROP_BOOLEAN = -1; |
49 | pub const DEVPROP_FALSE: DEVPROP_BOOLEAN = 0; | |
ff7c6d11 XL |
50 | pub type DEVPROPGUID = GUID; |
51 | pub type PDEVPROPGUID = *mut GUID; | |
52 | pub type DEVPROPID = ULONG; | |
53 | pub type PDEVPROPID = *mut ULONG; | |
8bb4bdeb XL |
54 | STRUCT!{struct DEVPROPKEY { |
55 | fmtid: DEVPROPGUID, | |
56 | pid: DEVPROPID, | |
57 | }} | |
58 | pub type PDEVPROPKEY = *mut DEVPROPKEY; | |
ff7c6d11 XL |
59 | #[inline] |
60 | pub fn IsEqualDevPropKey(a: &DEVPROPKEY, b: &DEVPROPKEY) -> bool { | |
61 | (a.pid == b.pid) && IsEqualGUID(&a.fmtid, &b.fmtid) | |
62 | } | |
8bb4bdeb XL |
63 | ENUM!{enum DEVPROPSTORE { |
64 | DEVPROP_STORE_SYSTEM, | |
65 | DEVPROP_STORE_USER, | |
66 | }} | |
67 | pub type PDEVPROPSTORE = *mut DEVPROPSTORE; | |
68 | STRUCT!{struct DEVPROPCOMPKEY { | |
69 | Key: DEVPROPKEY, | |
70 | Store: DEVPROPSTORE, | |
ff7c6d11 | 71 | LocaleName: PCWSTR, |
8bb4bdeb XL |
72 | }} |
73 | pub type PDEVPROPCOMPKEY = *mut DEVPROPCOMPKEY; | |
ff7c6d11 XL |
74 | // IsEqualLocaleName |
75 | // IsEqualDevPropCompKey | |
8bb4bdeb XL |
76 | STRUCT!{struct DEVPROPERTY { |
77 | CompKey: DEVPROPCOMPKEY, | |
78 | Type: DEVPROPTYPE, | |
ff7c6d11 XL |
79 | BufferSize: ULONG, |
80 | Buffer: PVOID, | |
8bb4bdeb XL |
81 | }} |
82 | pub type PDEVPROPERTY = *mut DEVPROPERTY; | |
83 | pub const DEVPROPID_FIRST_USABLE: DEVPROPID = 2; |