#if !defined(AFX_STDAFX_H__82E57206_F9AD_11D2_B4A3_0000C020D0D6__INCLUDED_)
#define AFX_STDAFX_H__82E57206_F9AD_11D2_B4A3_0000C020D0D6__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif

#define _CRT_SECURE_NO_WARNINGS
#define _CRT_NONSTDC_NO_WARNINGS
#define _WINSOCK_DEPRECATED_NO_WARNINGS

#define VC_EXTRALEAN

#include<afxwin.h>
#include<afxext.h>
#include<afxdisp.h>
#include<afxadv.h>
#include<afxpriv.h>
#include<afxtempl.h>
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include<afxcmn.h>
#endif
#include<mmsystem.h>
#include<conio.h>
#include<Winsock2.h>
#include<vector>
#include<utility>

#if _MSC_VER >= 1900 // VS2015 and later
#include<versionhelpers.h>
#endif

// primitive data types that should be part of the language
typedef unsigned char flag;
typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned long dword;
typedef unsigned short ushort;
typedef unsigned long ulong;
typedef unsigned int uint;
typedef ULONGLONG uint64;

#if !defined GCLP_HCURSOR
#define GCLP_HCURSOR        GCL_HCURSOR
#endif

#if !defined IDC_HAND // Win2k specific definition
#define IDC_HAND            MAKEINTRESOURCE(32649)
#endif

#if _MSC_VER <= 1200 // missing type definition in the MSVC6.0 SDK and earlier
#define SetWindowLongPtr	SetWindowLong
#define GetWindowLongPtr	GetWindowLong
#define SetClassLongPtr		SetClassLong
#define GetClassLongPtr		GetClassLong
#define UINT_PTR          UINT  // wrong typedef in MSVC6.0 so overwite it per define
typedef SIZE_T DWORD_PTR, *PDWORD_PTR;
typedef ULONG  ULONG_PTR, *PULONG_PTR;
typedef LONG   LONG_PTR,  *PLONG_PTR;
#endif

#if _MSC_VER < 1400 // before VS2005
#define override			// is part of the C++11 standard
#endif

#if !defined PROCESS_POWER_THROTTLING_CURRENT_VERSION
#define PROCESS_POWER_THROTTLING_CURRENT_VERSION 1
#endif

#if !defined PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION
#define PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION 0x04
#endif

#if _MSC_VER <= 1900  // add until VS2015 from processthreadsapi.h
enum { ProcessPowerThrottling = 4 };

typedef struct _PROCESS_POWER_THROTTLING_STATE {
    ULONG Version;
    ULONG ControlMask;
    ULONG StateMask;
} PROCESS_POWER_THROTTLING_STATE, * PPROCESS_POWER_THROTTLING_STATE;
#endif

//{{AFX_INSERT_LOCATION}}
#endif // !defined(AFX_STDAFX_H__82E57206_F9AD_11D2_B4A3_0000C020D0D6__INCLUDED_)

