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 
12 namespace Microsoft {
13     namespace WRL {
14         namespace Details {
15             struct BoolStruct {
16                 int Member;
17             };
18 
19             typedef int BoolStruct::* BoolType;
20 
throw()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