Home | History | Annotate | Download | only in wrl
      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 
     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