xref: /reactos/sdk/lib/atl/atldef.h (revision 40462c92)
1 /*
2 * PROJECT:     ReactOS ATL
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)
6 */
7 
8 #pragma once
9 
10 #ifndef __REACTOS__
11     #include <cstddef>
12     #include <pseh/pseh2.h>
13 #endif
14 
15 #define _ATL_PACKING 8
16 
17 
18 #ifndef AtlThrow
19 #ifndef _ATL_CUSTOM_THROW
20 #define AtlThrow(x) ATL::AtlThrowImp(x)
21 #endif
22 #endif
23 
24 
25 #ifndef ATLASSERT
26 #define ATLASSERT(expr) _ASSERTE(expr)
27 #endif
28 
29 
30 // ATLASSUME, ATLENSURE, ATLVERIFY, ...
31 
32 
33 
34 
35 
36 #ifdef _ATL_DISABLE_NO_VTABLE
37 #define ATL_NO_VTABLE
38 #else
39 #define ATL_NO_VTABLE __declspec(novtable)
40 #endif
41 
42 #ifndef ATL_DEPRECATED
43 #define ATL_DEPRECATED __declspec(deprecated)
44 #endif
45 
46 // ATL_NOTHROW, ATL_FORCEINLINE, ATL_NOINLINE
47 
48 // _ATL, ATL_VER, ATL_FILENAME_VER, ATL_FILENAME_VERNUM, ...
49 
50 
51 
52 #define offsetofclass(base, derived) (reinterpret_cast<DWORD_PTR>(static_cast<base *>(reinterpret_cast<derived *>(_ATL_PACKING))) - _ATL_PACKING)
53 
54 
55 
56 #ifndef _ATL_FREE_THREADED
57 #ifndef _ATL_APARTMENT_THREADED
58 #ifndef _ATL_SINGLE_THREADED
59 #define _ATL_FREE_THREADED
60 #endif
61 #endif
62 #endif
63 
64