2015-05-31 10:12:29 -05:00
// 31 may 2015
# define UNICODE
# define _UNICODE
# define STRICT
# define STRICT_TYPED_ITEMIDS
2016-04-20 18:51:30 -05:00
2015-05-31 10:12:29 -05:00
// see https://github.com/golang/go/issues/9916#issuecomment-74812211
2015-12-22 15:00:51 -06:00
// TODO get rid of this
2015-05-31 10:12:29 -05:00
# define INITGUID
2016-04-20 18:51:30 -05:00
2015-11-27 12:35:24 -06:00
// for the manifest
2019-04-08 22:39:27 -05:00
# ifndef uiStatic
2015-11-27 12:35:24 -06:00
# define ISOLATION_AWARE_ENABLED 1
2016-05-29 11:00:55 -05:00
# endif
2016-04-20 18:51:30 -05:00
2015-05-31 17:45:11 -05:00
// get Windows version right; right now Windows Vista
2016-04-20 18:51:30 -05:00
// unless otherwise stated, all values from Microsoft's sdkddkver.h
// TODO is all of this necessary? how is NTDDI_VERSION used?
// TODO plaform update sp2
# define WINVER 0x0600 /* from Microsoft's winnls.h */
# define _WIN32_WINNT 0x0600
# define _WIN32_WINDOWS 0x0600 /* from Microsoft's pdh.h */
# define _WIN32_IE 0x0700
# define NTDDI_VERSION 0x06000000
2018-04-30 20:55:54 -05:00
// The MinGW-w64 header has an unverified IDWriteTypography definition.
// TODO I can confirm this myself, but I don't know how long it will take for them to note my adjustments... Either way, I have to confirm this myself.
// TODO change the check from _MSC_VER to a MinGW-w64-specific check
// TODO keep track of what else is guarded by this
# ifndef _MSC_VER
2018-04-30 19:59:26 -05:00
# define __MINGW_USE_BROKEN_INTERFACE
# endif
2015-05-31 10:12:29 -05:00
# include <windows.h>
2016-04-20 18:51:30 -05:00
2015-11-27 18:59:46 -06:00
// Microsoft's resource compiler will segfault if we feed it headers it was not designed to handle
# ifndef RC_INVOKED
2015-05-31 10:12:29 -05:00
# include <commctrl.h>
2016-04-23 23:33:42 -05:00
# include <uxtheme.h>
2018-06-10 12:15:21 -05:00
# include <vsstyle.h>
# include <vssym32.h>
2016-04-20 18:51:30 -05:00
# include <windowsx.h>
# include <shobjidl.h>
# include <d2d1.h>
2016-05-05 20:49:50 -05:00
# include <d2d1helper.h>
2016-04-20 18:51:30 -05:00
# include <dwrite.h>
2018-06-09 18:24:36 -05:00
# include <wincodec.h>
2016-04-20 18:51:30 -05:00
2015-05-31 10:12:29 -05:00
# include <stdint.h>
# include <string.h>
# include <wchar.h>
# include <stdarg.h>
# include <stdio.h>
2015-09-08 11:11:01 -05:00
# include <math.h>
2015-10-11 06:51:14 -05:00
# include <float.h>
2016-04-21 20:57:36 -05:00
# include <inttypes.h>
2016-04-20 18:51:30 -05:00
# include <vector>
# include <map>
2018-03-13 21:01:15 -05:00
# include <unordered_map>
2016-05-13 22:29:41 -05:00
# include <sstream>
2017-02-22 14:19:11 -06:00
# include <functional>
2018-06-16 18:05:36 -05:00
# include <utility>
2015-11-27 18:59:46 -06:00
# endif