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)
11 #define _ATL_PACKING 8
15 #ifndef _ATL_CUSTOM_THROW
16 #define AtlThrow(x) ATL::AtlThrowImp(x)
22 #define ATLASSERT(expr) _ASSERTE(expr)
26 // ATLASSUME, ATLENSURE, ATLVERIFY, ...
32 #ifdef _ATL_DISABLE_NO_VTABLE
35 #define ATL_NO_VTABLE __declspec(novtable)
38 #ifndef ATL_DEPRECATED
39 #define ATL_DEPRECATED __declspec(deprecated)
42 // ATL_NOTHROW, ATL_FORCEINLINE, ATL_NOINLINE
44 // _ATL, ATL_VER, ATL_FILENAME_VER, ATL_FILENAME_VERNUM, ...
48 #define offsetofclass(base, derived) (reinterpret_cast<DWORD_PTR>(static_cast<base *>(reinterpret_cast<derived *>(_ATL_PACKING))) - _ATL_PACKING)
52 #ifndef _ATL_FREE_THREADED
53 #ifndef _ATL_APARTMENT_THREADED
54 #ifndef _ATL_SINGLE_THREADED
55 #define _ATL_FREE_THREADED