// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//  are changed infrequently
//

#pragma once
#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers
#define  _CRT_SECURE_NO_WARNINGS
#define	 DLL_SOUI
#include <souistd.h>
#include <core/SHostDialog.h>
#include <control/SMessageBox.h>
#include <control/souictrls.h>
#include <res.mgr/sobjdefattr.h>
#include <com-cfg.h>
#include "resource.h"
#define R_IN_CPP	//定义这个开关来
#include "res\resource.h"
using namespace SOUI;
#include "SShellNotifyIcon.h"
#include <event/NotifyCenter.h>
#include <helper/SCriticalSection.h>
#include <interface/STaskLoop-i.h>
#include <helper/SFunctor.hpp>
#include "../__INCLUDE/SVscrollbar.h"
#include "../__INCLUDE/AsynFunctionT.hpp"
// C++/WinRT
#include <winrt/base.h>
#include <winrt/Windows.Foundation.h>
#include <windows.h>
#include <iostream>
#include <vector>
#include <iterator>
#include <filesystem>
#include <algorithm>
#include <wil/wrl.h>
#include <wil/result_macros.h>
#include <Shobjidl.h>
#include <Shlobj.h>
#include <conio.h> 
#include <chrono>
//#include <winhttp.h>
//#pragma comment(lib, "winhttp.lib")
#pragma comment(lib, "Shell32.lib")

#include "comm.h"
#include "Util.hpp"

#include "CApp.h"
#include "CProcessManager.h"
#include "ProcessManager.hpp"
#include "PortableModeUtil.hpp"


#include <nlohmann/json.hpp>

#define JSON_TO(k) j[#k] = value.k;
#define JSON_FROM(k) j.at(#k).get_to(value.k);
#define JSON_TRY_FROM(k) try { j.at(#k).get_to(value.k); } catch (...) {}
#define JSON_TRY_FROM_LOG(k) try { j.at(#k).get_to(value.k); } CATCH_LOG()


#include "ClashModel.h"
#include "ClashApi.h"


//#include "../__INCLUDE/BaseModule.h"
//
//#ifdef _DEBUG
//#ifdef _WIN64
//#pragma comment(lib,"..\\__LIB\\x64\\Debug\\Base.lib")
//#else
//#pragma comment(lib,"..\\__LIB\\Debug\\Base.lib")
//#endif
//#else
//
//#ifdef _WIN64
//#pragma comment(lib,"..\\__LIB\\x64\\Release\\Base.lib")
//#else
//#pragma comment(lib,"..\\__LIB\\Release\\Base.lib")
//#endif
//
//
//#endif