all classes that will be derived from should have a virtual destructor otherwise deleting an instance via pointer to a base class is undefined behaviour, CLayerShellResource/CXDGSurfaceResource hits this with std::default_delete in the new sharedptr implentation.
also added a commit to fix missing includes for no precompiled headers builds and removed a redefinition of HYPRATOMS that already is defined in macros.hpp in the second commit,
all classes that will be derived from should have a virtual destructor otherwise deleting an instance via pointer to a base class is undefined behaviour, CLayerShellResource/CXDGSurfaceResource hits this with std::default_delete in the new sharedptr implentation.