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.
6 use shared::guiddef::GUID;
7 use shared::minwindef::{ULONG, USHORT};
8 use shared::ntdef::{LONGLONG, ULONGLONG};
9 STRUCT!{struct SDP_LARGE_INTEGER_16 {
10     LowPart: ULONGLONG,
11     HighPart: LONGLONG,
12 }}
13 STRUCT!{struct SDP_ULARGE_INTEGER_16 {
14     LowPart: ULONGLONG,
15     HighPart: ULONGLONG,
16 }}
17 pub type PSDP_ULARGE_INTEGER_16 = *mut SDP_ULARGE_INTEGER_16;
18 pub type LPSDP_ULARGE_INTEGER_16 = *mut SDP_ULARGE_INTEGER_16;
19 pub type PSDP_LARGE_INTEGER_16 = *mut SDP_LARGE_INTEGER_16;
20 pub type LPSDP_LARGE_INTEGER_16 = *mut SDP_LARGE_INTEGER_16;
21 ENUM!{enum NodeContainerType {
22     NodeContainerTypeSequence,
23     NodeContainerTypeAlternative,
24 }}
25 pub type SDP_ERROR = USHORT;
26 pub type PSDP_ERROR = *mut USHORT;
27 ENUM!{enum SDP_TYPE {
28     SDP_TYPE_NIL = 0x00,
29     SDP_TYPE_UINT = 0x01,
30     SDP_TYPE_INT = 0x02,
31     SDP_TYPE_UUID = 0x03,
32     SDP_TYPE_STRING = 0x04,
33     SDP_TYPE_BOOLEAN = 0x05,
34     SDP_TYPE_SEQUENCE = 0x06,
35     SDP_TYPE_ALTERNATIVE = 0x07,
36     SDP_TYPE_URL = 0x08,
37     SDP_TYPE_CONTAINER = 0x20,
38 }}
39 ENUM!{enum SDP_SPECIFICTYPE {
40     SDP_ST_NONE = 0x0000,
41     SDP_ST_UINT8 = 0x0010,
42     SDP_ST_UINT16 = 0x0110,
43     SDP_ST_UINT32 = 0x0210,
44     SDP_ST_UINT64 = 0x0310,
45     SDP_ST_UINT128 = 0x0410,
46     SDP_ST_INT8 = 0x0020,
47     SDP_ST_INT16 = 0x0120,
48     SDP_ST_INT32 = 0x0220,
49     SDP_ST_INT64 = 0x0320,
50     SDP_ST_INT128 = 0x0420,
51     SDP_ST_UUID16 = 0x0130,
52     SDP_ST_UUID32 = 0x0220,
53     SDP_ST_UUID128 = 0x0430,
54 }}
55 STRUCT!{struct SdpAttributeRange {
56     minAttribute: USHORT,
57     maxAttribute: USHORT,
58 }}
59 UNION!{union SdpQueryUuidUnion {
60     [u32; 4],
61     uuid128 uuid128_mut: GUID,
62     uuid32 uuid32_mut: ULONG,
63     uuid16 uuid16_mut: USHORT,
64 }}
65 STRUCT!{struct SdpQueryUuid {
66     u: SdpQueryUuidUnion,
67     uuidType: USHORT,
68 }}
69