#ifndef __BTHSDPDEF_H__ #define __BTHSDPDEF_H__ #ifdef __cplusplus extern "C" { #endif struct SDP_LARGE_INTEGER_16 { ULONGLONG LowPart; LONGLONG HighPart; }; struct SDP_ULARGE_INTEGER_16 { ULONGLONG LowPart; ULONGLONG HighPart; }; typedef struct SDP_ULARGE_INTEGER_16 SDP_ULARGE_INTEGER_16, *PSDP_ULARGE_INTEGER_16, *LPSDP_ULARGE_INTEGER_16; typedef struct SDP_LARGE_INTEGER_16 SDP_LARGE_INTEGER_16, *PSDP_LARGE_INTEGER_16, *LPSDP_LARGE_INTEGER_16; enum NodeContainerType { NodeContainerTypeSequence, NodeContainerTypeAlternative }; typedef enum NodeContainerType NodeContainerType; typedef USHORT SDP_ERROR, *PSDP_ERROR; enum SDP_TYPE { SDP_TYPE_NIL = 0x00, SDP_TYPE_UINT = 0x01, SDP_TYPE_INT = 0x02, SDP_TYPE_UUID = 0x03, SDP_TYPE_STRING = 0x04, SDP_TYPE_BOOLEAN = 0x05, SDP_TYPE_SEQUENCE = 0x06, SDP_TYPE_ALTERNATIVE = 0x07, SDP_TYPE_URL = 0x08, SDP_TYPE_CONTAINER = 0x20 }; // 9 - 31 are reserved typedef enum SDP_TYPE SDP_TYPE; // allow for a little easier type checking / sizing for integers and UUIDs // ((SDP_ST_XXX & 0xF0) >> 4) == SDP_TYPE_XXX // size of the data (in bytes) is encoded as ((SDP_ST_XXX & 0xF0) >> 8) enum SDP_SPECIFICTYPE { SDP_ST_NONE = 0x0000, SDP_ST_UINT8 = 0x0010, SDP_ST_UINT16 = 0x0110, SDP_ST_UINT32 = 0x0210, SDP_ST_UINT64 = 0x0310, SDP_ST_UINT128 = 0x0410, SDP_ST_INT8 = 0x0020, SDP_ST_INT16 = 0x0120, SDP_ST_INT32 = 0x0220, SDP_ST_INT64 = 0x0320, SDP_ST_INT128 = 0x0420, SDP_ST_UUID16 = 0x0130, SDP_ST_UUID32 = 0x0220, SDP_ST_UUID128 = 0x0430 }; typedef enum SDP_SPECIFICTYPE SDP_SPECIFICTYPE; typedef struct _SdpAttributeRange { USHORT minAttribute; USHORT maxAttribute; } SdpAttributeRange; typedef #ifdef USE_MIDL_SYNTAX [switch_type(unsigned short)] #endif union SdpQueryUuidUnion { #ifdef USE_MIDL_SYNTAX [case(SDP_ST_UUID128)] #endif GUID uuid128; #ifdef USE_MIDL_SYNTAX [case(SDP_ST_UUID32)] #endif _NTDDK_ ULONG uuid32; #ifdef USE_MIDL_SYNTAX [case(SDP_ST_UUID16)] #endif _NTDDK_ USHORT uuid16; } SdpQueryUuidUnion; typedef struct _SdpQueryUuid { #ifdef USE_MIDL_SYNTAX [switch_is(uuidType)] #endif SdpQueryUuidUnion u; USHORT uuidType; } SdpQueryUuid; #ifdef __cplusplus }; #endif #endif // __BTHSDPDEF_H__