103 lines
3.1 KiB
C++
103 lines
3.1 KiB
C++
|
#ifndef _C4_WINDOWS_PUSH_HPP_
|
||
|
#define _C4_WINDOWS_PUSH_HPP_
|
||
|
|
||
|
/** @file windows_push.hpp sets up macros to include windows header files
|
||
|
* without pulling in all of <windows.h>
|
||
|
*
|
||
|
* @see #include windows_pop.hpp to undefine these macros
|
||
|
*
|
||
|
* @see https://aras-p.info/blog/2018/01/12/Minimizing-windows.h/ */
|
||
|
|
||
|
|
||
|
#if defined(_WIN64) || defined(_WIN32)
|
||
|
|
||
|
#if defined(_M_AMD64)
|
||
|
# ifndef _AMD64_
|
||
|
# define _c4_AMD64_
|
||
|
# define _AMD64_
|
||
|
# endif
|
||
|
#elif defined(_M_IX86)
|
||
|
# ifndef _X86_
|
||
|
# define _c4_X86_
|
||
|
# define _X86_
|
||
|
# endif
|
||
|
#elif defined(_M_ARM64)
|
||
|
# ifndef _ARM64_
|
||
|
# define _c4_ARM64_
|
||
|
# define _ARM64_
|
||
|
# endif
|
||
|
#elif defined(_M_ARM)
|
||
|
# ifndef _ARM_
|
||
|
# define _c4_ARM_
|
||
|
# define _ARM_
|
||
|
# endif
|
||
|
#endif
|
||
|
|
||
|
#ifndef NOMINMAX
|
||
|
# define _c4_NOMINMAX
|
||
|
# define NOMINMAX
|
||
|
#endif
|
||
|
|
||
|
#ifndef NOGDI
|
||
|
# define _c4_NOGDI
|
||
|
# define NOGDI
|
||
|
#endif
|
||
|
|
||
|
#ifndef VC_EXTRALEAN
|
||
|
# define _c4_VC_EXTRALEAN
|
||
|
# define VC_EXTRALEAN
|
||
|
#endif
|
||
|
|
||
|
#ifndef WIN32_LEAN_AND_MEAN
|
||
|
# define _c4_WIN32_LEAN_AND_MEAN
|
||
|
# define WIN32_LEAN_AND_MEAN
|
||
|
#endif
|
||
|
|
||
|
/* If defined, the following flags inhibit definition
|
||
|
* of the indicated items.
|
||
|
*
|
||
|
* NOGDICAPMASKS - CC_*, LC_*, PC_*, CP_*, TC_*, RC_
|
||
|
* NOVIRTUALKEYCODES - VK_*
|
||
|
* NOWINMESSAGES - WM_*, EM_*, LB_*, CB_*
|
||
|
* NOWINSTYLES - WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_*
|
||
|
* NOSYSMETRICS - SM_*
|
||
|
* NOMENUS - MF_*
|
||
|
* NOICONS - IDI_*
|
||
|
* NOKEYSTATES - MK_*
|
||
|
* NOSYSCOMMANDS - SC_*
|
||
|
* NORASTEROPS - Binary and Tertiary raster ops
|
||
|
* NOSHOWWINDOW - SW_*
|
||
|
* OEMRESOURCE - OEM Resource values
|
||
|
* NOATOM - Atom Manager routines
|
||
|
* NOCLIPBOARD - Clipboard routines
|
||
|
* NOCOLOR - Screen colors
|
||
|
* NOCTLMGR - Control and Dialog routines
|
||
|
* NODRAWTEXT - DrawText() and DT_*
|
||
|
* NOGDI - All GDI defines and routines
|
||
|
* NOKERNEL - All KERNEL defines and routines
|
||
|
* NOUSER - All USER defines and routines
|
||
|
* NONLS - All NLS defines and routines
|
||
|
* NOMB - MB_* and MessageBox()
|
||
|
* NOMEMMGR - GMEM_*, LMEM_*, GHND, LHND, associated routines
|
||
|
* NOMETAFILE - typedef METAFILEPICT
|
||
|
* NOMINMAX - Macros min(a,b) and max(a,b)
|
||
|
* NOMSG - typedef MSG and associated routines
|
||
|
* NOOPENFILE - OpenFile(), OemToAnsi, AnsiToOem, and OF_*
|
||
|
* NOSCROLL - SB_* and scrolling routines
|
||
|
* NOSERVICE - All Service Controller routines, SERVICE_ equates, etc.
|
||
|
* NOSOUND - Sound driver routines
|
||
|
* NOTEXTMETRIC - typedef TEXTMETRIC and associated routines
|
||
|
* NOWH - SetWindowsHook and WH_*
|
||
|
* NOWINOFFSETS - GWL_*, GCL_*, associated routines
|
||
|
* NOCOMM - COMM driver routines
|
||
|
* NOKANJI - Kanji support stuff.
|
||
|
* NOHELP - Help engine interface.
|
||
|
* NOPROFILER - Profiler interface.
|
||
|
* NODEFERWINDOWPOS - DeferWindowPos routines
|
||
|
* NOMCX - Modem Configuration Extensions
|
||
|
*/
|
||
|
|
||
|
#endif /* defined(_WIN64) || defined(_WIN32) */
|
||
|
|
||
|
#endif /* _C4_WINDOWS_PUSH_HPP_ */
|