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*/