Rizin
unix-like reverse engineering framework and cli tools
rz_windows.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2022 GustavoLCR <gugulcr@gmail.com>
2 // SPDX-License-Identifier: LGPL-3.0-only
3 
4 #ifndef RZ_WINDOWS_H
5 #define RZ_WINDOWS_H
6 /*
7  * This file is to be included whenever access to
8  * Windows APIs and type definitions is necessary.
9  * You should avoid including this file in often used
10  * header files as it will slow down compilation.
11  */
12 #if __WINDOWS__ || _WIN32 || _MSC_VER
13 #include <sdkddkver.h>
14 #ifdef NTDDI_WIN10_TH2
15 /* Avoid using Developer Preview and default to Windows 10/Windows Server 2016 */
16 #undef _WIN32_WINNT
17 #undef NTDDI_VERSION
18 #define _WIN32_WINNT _WIN32_WINNT_WIN10
19 #define NTDDI_VERSION NTDDI_WIN10
20 #endif
21 #ifndef WIN32_LEAN_AND_MEAN
22 #define WIN32_LEAN_AND_MEAN
23 #endif
24 #define NOGDICAPMASKS // CC_*, LC_*, PC_*, CP_*, TC_*, RC_
25 #define NOWINMESSAGES // WM_ *, EM_ *, LB_ *, CB_ *
26 #define NOWINSTYLES // WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_*
27 #define NOSYSMETRICS // SM_*
28 #define NOMENUS // MF_*
29 #define NOICONS // IDI_*
30 #define NOKEYSTATES // MK_*
31 #define NOSYSCOMMANDS // SC_*
32 #define NORASTEROPS // Binary and Tertiary raster ops
33 #define NOSHOWWINDOW // SW_*
34 #define OEMRESOURCE // OEM Resource values
35 #define NOATOM // Atom Manager routines
36 #define NOCOLOR // Screen colors
37 #define NOCTLMGR // Control and Dialog routines
38 #define NODRAWTEXT // DrawText() and DT_*
39 #define NOGDI // All GDI defines and routines
40 #define NOKERNEL // All KERNEL defines and routines
41 #define NOMB // MB_* and MessageBox()
42 #define NOMEMMGR // GMEM_*, LMEM_*, GHND, LHND, associated routines
43 #define NOMETAFILE // typedef METAFILEPICT
44 #define NOMINMAX // Macros min(a,b) and max(a,b)
45 #define NOOPENFILE // OpenFile(), OemToAnsi, AnsiToOem, and OF_*
46 #define NOSCROLL // SB_* and scrolling routines
47 #define NOSOUND // Sound driver routines
48 #define NOSYSPARAMSINFO // System Parameter information definitions
49 #define NOTEXTMETRIC // typedef TEXTMETRIC and associated routines
50 #define NOWH // SetWindowsHook and WH_*
51 #define NOCOMM // COMM driver routines
52 #define NOKANJI // Kanji support stuff.
53 #define NOHELP // Help engine interface.
54 #define NOPROFILER // Profiler interface.
55 #define NODEFERWINDOWPOS // DeferWindowPos routines
56 #define NOMCX // Modem Configuration Extensions
57 #define NOIME // Input Method Manager
58 /* Includes windows.h */
59 #include <winsock2.h>
60 #include <ws2tcpip.h>
61 typedef int socklen_t;
62 #undef USE_SOCKETS
63 #define __addr_t_defined
64 #include <direct.h>
65 /* Windows <=8 compatibility */
66 #ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
67 #define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0
68 #endif
69 #ifndef ENABLE_VIRTUAL_TERMINAL_INPUT
70 #define ENABLE_VIRTUAL_TERMINAL_INPUT 0
71 #endif
72 #include <VersionHelpers.h>
73 #endif
74 #endif
unsigned int socklen_t
Definition: sftypes.h:219