]> git.proxmox.com Git - rustc.git/blame - vendor/winapi/src/shared/devpropdef.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / vendor / winapi / src / shared / devpropdef.rs
CommitLineData
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
7use shared::guiddef::{GUID, IsEqualGUID};
8use shared::minwindef::ULONG;
9use um::winnt::{CHAR, PCWSTR, PVOID};
10pub type DEVPROPTYPE = ULONG;
11pub type PDEVPROPTYPE = *mut ULONG;
8bb4bdeb
XL
12pub const DEVPROP_TYPEMOD_ARRAY: DEVPROPTYPE = 0x00001000;
13pub const DEVPROP_TYPEMOD_LIST: DEVPROPTYPE = 0x00002000;
14pub const DEVPROP_TYPE_EMPTY: DEVPROPTYPE = 0x00000000;
15pub const DEVPROP_TYPE_NULL: DEVPROPTYPE = 0x00000001;
16pub const DEVPROP_TYPE_SBYTE: DEVPROPTYPE = 0x00000002;
17pub const DEVPROP_TYPE_BYTE: DEVPROPTYPE = 0x00000003;
18pub const DEVPROP_TYPE_INT16: DEVPROPTYPE = 0x00000004;
19pub const DEVPROP_TYPE_UINT16: DEVPROPTYPE = 0x00000005;
20pub const DEVPROP_TYPE_INT32: DEVPROPTYPE = 0x00000006;
21pub const DEVPROP_TYPE_UINT32: DEVPROPTYPE = 0x00000007;
22pub const DEVPROP_TYPE_INT64: DEVPROPTYPE = 0x00000008;
23pub const DEVPROP_TYPE_UINT64: DEVPROPTYPE = 0x00000009;
24pub const DEVPROP_TYPE_FLOAT: DEVPROPTYPE = 0x0000000A;
25pub const DEVPROP_TYPE_DOUBLE: DEVPROPTYPE = 0x0000000B;
26pub const DEVPROP_TYPE_DECIMAL: DEVPROPTYPE = 0x0000000C;
27pub const DEVPROP_TYPE_GUID: DEVPROPTYPE = 0x0000000D;
28pub const DEVPROP_TYPE_CURRENCY: DEVPROPTYPE = 0x0000000E;
29pub const DEVPROP_TYPE_DATE: DEVPROPTYPE = 0x0000000F;
30pub const DEVPROP_TYPE_FILETIME: DEVPROPTYPE = 0x00000010;
31pub const DEVPROP_TYPE_BOOLEAN: DEVPROPTYPE = 0x00000011;
32pub const DEVPROP_TYPE_STRING: DEVPROPTYPE = 0x00000012;
33pub const DEVPROP_TYPE_STRING_LIST: DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST;
34pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR: DEVPROPTYPE = 0x00000013;
35pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING: DEVPROPTYPE = 0x00000014;
36pub const DEVPROP_TYPE_DEVPROPKEY: DEVPROPTYPE = 0x00000015;
37pub const DEVPROP_TYPE_DEVPROPTYPE: DEVPROPTYPE = 0x00000016;
38pub const DEVPROP_TYPE_BINARY: DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY;
39pub const DEVPROP_TYPE_ERROR: DEVPROPTYPE = 0x00000017;
40pub const DEVPROP_TYPE_NTSTATUS: DEVPROPTYPE = 0x00000018;
41pub const DEVPROP_TYPE_STRING_INDIRECT: DEVPROPTYPE = 0x00000019;
42pub const MAX_DEVPROP_TYPE: DEVPROPTYPE = 0x00000019;
43pub const MAX_DEVPROP_TYPEMOD: DEVPROPTYPE = 0x00002000;
44pub const DEVPROP_MASK_TYPE: DEVPROPTYPE = 0x00000FFF;
45pub const DEVPROP_MASK_TYPEMOD: DEVPROPTYPE = 0x0000F000;
ff7c6d11
XL
46pub type DEVPROP_BOOLEAN = CHAR;
47pub type PDEVPROP_BOOLEAN = *mut CHAR;
8bb4bdeb
XL
48pub const DEVPROP_TRUE: DEVPROP_BOOLEAN = -1;
49pub const DEVPROP_FALSE: DEVPROP_BOOLEAN = 0;
ff7c6d11
XL
50pub type DEVPROPGUID = GUID;
51pub type PDEVPROPGUID = *mut GUID;
52pub type DEVPROPID = ULONG;
53pub type PDEVPROPID = *mut ULONG;
8bb4bdeb
XL
54STRUCT!{struct DEVPROPKEY {
55 fmtid: DEVPROPGUID,
56 pid: DEVPROPID,
57}}
58pub type PDEVPROPKEY = *mut DEVPROPKEY;
ff7c6d11
XL
59#[inline]
60pub fn IsEqualDevPropKey(a: &DEVPROPKEY, b: &DEVPROPKEY) -> bool {
61 (a.pid == b.pid) && IsEqualGUID(&a.fmtid, &b.fmtid)
62}
8bb4bdeb
XL
63ENUM!{enum DEVPROPSTORE {
64 DEVPROP_STORE_SYSTEM,
65 DEVPROP_STORE_USER,
66}}
67pub type PDEVPROPSTORE = *mut DEVPROPSTORE;
68STRUCT!{struct DEVPROPCOMPKEY {
69 Key: DEVPROPKEY,
70 Store: DEVPROPSTORE,
ff7c6d11 71 LocaleName: PCWSTR,
8bb4bdeb
XL
72}}
73pub type PDEVPROPCOMPKEY = *mut DEVPROPCOMPKEY;
ff7c6d11
XL
74// IsEqualLocaleName
75// IsEqualDevPropCompKey
8bb4bdeb
XL
76STRUCT!{struct DEVPROPERTY {
77 CompKey: DEVPROPCOMPKEY,
78 Type: DEVPROPTYPE,
ff7c6d11
XL
79 BufferSize: ULONG,
80 Buffer: PVOID,
8bb4bdeb
XL
81}}
82pub type PDEVPROPERTY = *mut DEVPROPERTY;
83pub const DEVPROPID_FIRST_USABLE: DEVPROPID = 2;