1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef _WRL_INTERNAL_H_
8#define _WRL_INTERNAL_H_
9
10#include <windows.h>
11
12namespace Microsoft {
13    namespace WRL {
14        namespace Details {
15            struct BoolStruct {
16                int Member;
17            };
18
19            typedef int BoolStruct::* BoolType;
20
21            inline void DECLSPEC_NORETURN RaiseException(HRESULT hr, DWORD flags = EXCEPTION_NONCONTINUABLE) throw() {
22                ::RaiseException(static_cast<DWORD>(hr), flags, 0, NULL);
23            }
24
25            template <bool b, typename T = void>
26            struct EnableIf {};
27
28            template <typename T>
29            struct EnableIf<true, T> {
30                typedef T type;
31            };
32        }
33    }
34}
35
36#endif
37