3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: ATL Base definitions
5 * COPYRIGHT: Copyright 2019 Mark Jansen (mark.jansen@reactos.org)
12 #include <pseh/pseh2.h>
15 #define _ATL_PACKING 8
19 #ifndef _ATL_CUSTOM_THROW
20 #define AtlThrow(x) ATL::AtlThrowImp(x)
26 #define ATLASSERT(expr) _ASSERTE(expr)
30 // ATLASSUME, ATLENSURE, ATLVERIFY, ...
36 #ifdef _ATL_DISABLE_NO_VTABLE
39 #define ATL_NO_VTABLE __declspec(novtable)
42 #ifndef ATL_DEPRECATED
43 #define ATL_DEPRECATED __declspec(deprecated)
46 // ATL_NOTHROW, ATL_FORCEINLINE, ATL_NOINLINE
48 // _ATL, ATL_VER, ATL_FILENAME_VER, ATL_FILENAME_VERNUM, ...
52 #define offsetofclass(base, derived) (reinterpret_cast<DWORD_PTR>(static_cast<base *>(reinterpret_cast<derived *>(_ATL_PACKING))) - _ATL_PACKING)
56 #ifndef _ATL_FREE_THREADED
57 #ifndef _ATL_APARTMENT_THREADED
58 #ifndef _ATL_SINGLE_THREADED
59 #define _ATL_FREE_THREADED