blob: 6e8d2873aa2d75525869af211e47628532334c94 [file] [log] [blame]
henrike@webrtc.orgf0488722014-05-13 18:00:26 +00001/*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef RTC_BASE_WIN32_H_
12#define RTC_BASE_WIN32_H_
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000013
Mirko Bonadeie0623852018-02-01 11:17:40 +010014#ifndef WEBRTC_WIN
15#error "Only #include this header in Windows builds"
16#endif
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000017
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020018// Make sure we don't get min/max macros
19#ifndef NOMINMAX
20#define NOMINMAX
21#endif
22
Nico Weber79bd4f12021-10-05 15:01:26 -040023#include <winsock2.h>
24
25// Must be after winsock2.h.
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020026#include <windows.h>
27
Niels Möllerd7b91312018-05-24 11:21:34 +020028typedef int socklen_t;
29
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020030#ifndef SECURITY_MANDATORY_LABEL_AUTHORITY
31// Add defines that we use if we are compiling against older sdks
Yves Gerey665174f2018-06-19 15:03:05 +020032#define SECURITY_MANDATORY_MEDIUM_RID (0x00002000L)
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020033#define TokenIntegrityLevel static_cast<TOKEN_INFORMATION_CLASS>(0x19)
34typedef struct _TOKEN_MANDATORY_LABEL {
Yves Gerey665174f2018-06-19 15:03:05 +020035 SID_AND_ATTRIBUTES Label;
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020036} TOKEN_MANDATORY_LABEL, *PTOKEN_MANDATORY_LABEL;
37#endif // SECURITY_MANDATORY_LABEL_AUTHORITY
38
39#undef SetPort
40
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020041namespace rtc {
42
Yves Gerey665174f2018-06-19 15:03:05 +020043const char* win32_inet_ntop(int af, const void* src, char* dst, socklen_t size);
44int win32_inet_pton(int af, const char* src, void* dst);
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020045
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020046} // namespace rtc
47
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020048#endif // RTC_BASE_WIN32_H_