#pragma once

#define _WIN32_WINNT  _WIN32_WINNT_WIN7

#pragma warning( disable : 4290 )
#define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING // NOLINT

// MFC
#define _AFX_ALL_WARNINGS // NOLINT

#pragma warning( push )
#pragma warning( disable : 4302 4311 )

#include "afxwin.h"
#include "afxcontrolbars.h"

#undef min
#undef max
#undef IN

#pragma warning( pop )

// STL
#include <algorithm>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <vector>
#include <unordered_map>
#include <filesystem>
#include <fstream>
#include <format>

// POCO
#ifdef _MSC_VER
  #pragma warning( push )
  #pragma warning( disable : 4244 )
  #pragma warning( disable : 5054 )
#endif

#include <Poco/Exception.h>
#include <Poco/Zip/Compress.h>
#include <Poco/Zip/Decompress.h>
#include <Poco/DateTime.h>
#include <Poco/MemoryStream.h>
#include <Poco/File.h>

#ifdef _MSC_VER
  #pragma warning( pop )
#endif

// OfficeOLE
#include "office/Office.h"

// CCL
#include "ccl/env/cclEnvironment.h"
#include "ccl/semantic/RSCore.h"
#include "ccl/semantic/RSForm.h"
#include "ccl/semantic/RSModel.h"
#include "ccl/oss/OSSchema.h"

using ccl::StrPos;
using ccl::StrRange;
using ccl::EntityUID;
using ccl::VectorOfEntities;
using ccl::SetOfEntities;

// xtrCore
#include "xtr/mfcHelper.h"