#ifndef __WINDOWS_INCLUDE_H
#define __WINDOWS_INCLUDE_H

// rename windows Int32/UInt32 datatype as it collides with c4d's new definition
#define LONG	WinLONG
#define ULONG	WinULONG

// prevent include of Windows dialog definitions that will collide with c4d types
#define	WIN32_LEAN_AND_MEAN

#define VC_EXTRALEAN
#define NOMINMAX          // Macros min(a,b) and max(a,b)
//#define NOGDI
/*
#define NOATOM
#define NOGDI
#define NOGDICAPMASKS
#define NOMETAFILE
#define NOMINMAX
#define NOMSG
#define NOOPENFILE
#define NORASTEROPS
#define NOSCROLL
#define NOSOUND
#define NOSYSMETRICS
#define NOTEXTMETRIC
#define NOWH
#define NOCOMM
#define NOKANJI
#define NOCRYPT
#define NOMCX
*/
#include <windows.h>

#undef LONG
#undef ULONG


// A list of annoying macros to #undef.
// Extend as required.
#undef SendMessage
#undef LoadString
#undef GetObject
#undef DrawText
#undef MemoryFence

#undef GetBinaryType
#undef GetShortPathName
#undef GetLongPathName
#undef GetEnvironmentStrings
#undef SetEnvironmentStrings
#undef FreeEnvironmentStrings
#undef FormatMessage
#undef EncryptFile
#undef DecryptFile
#undef CreateMutex
#undef OpenMutex
#undef CreateEvent
#undef OpenEvent
#undef CreateSemaphore
#undef OpenSemaphore
#undef LoadLibrary
#undef GetModuleFileName
#undef CreateProcess
#undef GetCommandLine
#undef GetEnvironmentVariable
#undef SetEnvironmentVariable
#undef ExpandEnvironmentStrings
#undef OutputDebugString
#undef FindResource
#undef UpdateResource
#undef FindAtom
#undef AddAtom
#undef GetSystemDirectory
#undef GetTempPath
#undef GetTempFileName
#undef SetCurrentDirectory
#undef GetCurrentDirectory
#undef CreateDirectory
#undef RemoveDirectory
#undef CreateFile
#undef DeleteFile
#undef SearchPath
#undef CopyFile
#undef MoveFile
#undef ReplaceFile
#undef GetComputerName
#undef SetComputerName
#undef GetUserName
#undef LogonUser
#undef GetVersion
//#undef GetObject

#endif	// __WINDOWS_INCLUDE_H
