master
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _INC_BTHSDPDEF
7#define _INC_BTHSDPDEF
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13typedef
14#ifdef __WIDL__
15 [switch_type(unsigned short)]
16#endif
17union SdpQueryUuidUnion {
18#ifdef __WIDL__
19 [case(SDP_ST_UUID128)]
20#endif
21 GUID uuid128;
22#ifdef __WIDL__
23 [case(SDP_ST_UUID32)]
24#endif
25 ULONG uuid32;
26#ifdef __WIDL__
27 [case(SDP_ST_UUID16)]
28#endif
29 USHORT uuid16;
30} SdpQueryUuidUnion;
31
32typedef struct _SdpAttributeRange {
33 USHORT minAttribute;
34 USHORT maxAttribute;
35} SdpAttributeRange;
36
37typedef struct _SdpQueryUuid {
38#ifdef __WIDL__
39 [switch_is(uuidType)]
40#endif
41 SdpQueryUuidUnion u;
42 USHORT uuidType;
43} SdpQueryUuid;
44
45typedef enum _SDP_TYPE {
46 SDP_TYPE_NIL = 0x00,
47 SDP_TYPE_UINT = 0x01,
48 SDP_TYPE_INT = 0x02,
49 SDP_TYPE_UUID = 0x03,
50 SDP_TYPE_STRING = 0x04,
51 SDP_TYPE_BOOLEAN = 0x05,
52 SDP_TYPE_SEQUENCE = 0x06,
53 SDP_TYPE_ALTERNATIVE = 0x07,
54 SDP_TYPE_URL = 0x08,
55 SDP_TYPE_CONTAINER = 0x20
56} SDP_TYPE;
57
58typedef enum _SDP_SPECIFICTYPE {
59 SDP_ST_NONE = 0x0000,
60 SDP_ST_UINT8 = 0x0010,
61 SDP_ST_UINT16 = 0x0110,
62 SDP_ST_UINT32 = 0x0210,
63 SDP_ST_UINT64 = 0x0310,
64 SDP_ST_UINT128 = 0x0410,
65 SDP_ST_INT8 = 0x0020,
66 SDP_ST_INT16 = 0x0120,
67 SDP_ST_INT32 = 0x0220,
68 SDP_ST_INT64 = 0x0320,
69 SDP_ST_INT128 = 0x0420,
70 SDP_ST_UUID16 = 0x0130,
71 SDP_ST_UUID32 = 0x0220,
72 SDP_ST_UUID128 = 0x0430
73} SDP_SPECIFICTYPE;
74
75typedef struct _SDP_LARGE_INTEGER_16 {
76 ULONGLONG LowPart;
77 LONGLONG HighPart;
78} SDP_LARGE_INTEGER_16, *PSDP_LARGE_INTEGER_16, *LPSDP_LARGE_INTEGER_16;
79
80typedef struct _SDP_ULARGE_INTEGER_16 {
81 ULONGLONG LowPart;
82 ULONGLONG HighPart;
83} SDP_ULARGE_INTEGER_16, *PSDP_ULARGE_INTEGER_16, *LPSDP_ULARGE_INTEGER_16;
84
85typedef enum NodeContainerType {
86 NodeContainerTypeSequence,
87 NodeContainerTypeAlternative
88} NodeContainerType;
89
90typedef USHORT SDP_ERROR, *PSDP_ERROR;
91
92typedef struct _SDP_ELEMENT_DATA {
93 SDP_TYPE type;
94 SDP_SPECIFICTYPE specificType;
95 __C89_NAMELESS union {
96 SDP_LARGE_INTEGER_16 int128;
97 LONGLONG int64;
98 LONG int32;
99 SHORT int16;
100 CHAR int8;
101 SDP_ULARGE_INTEGER_16 uint128;
102 ULONGLONG uint64;
103 ULONG uint32;
104 USHORT uint16;
105 UCHAR uint8;
106 UCHAR booleanVal;
107 GUID uuid128;
108 ULONG uuid32;
109 USHORT uuid16;
110 struct {
111 LPBYTE value;
112 ULONG length;
113 } string;
114 struct {
115 LPBYTE value;
116 ULONG length;
117 } url;
118 struct {
119 LPBYTE value;
120 ULONG length;
121 } sequence;
122 struct {
123 LPBYTE value;
124 ULONG length;
125 } alternative;
126 } data;
127} SDP_ELEMENT_DATA, *PSDP_ELEMENT_DATA;
128
129typedef struct _SDP_STRING_TYPE_DATA {
130 USHORT encoding;
131 USHORT mibeNum;
132 USHORT attributeID;
133} SDP_STRING_TYPE_DATA, *PSDP_STRING_TYPE_DATA;
134
135#ifdef __cplusplus
136}
137#endif
138#endif /*_INC_BTHSDPDEF*/