atl.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright 2018 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef BASE_WIN_ATL_H_
  5. #define BASE_WIN_ATL_H_
  6. // Check no prior poisonous defines were made.
  7. #include "base/win/windows_defines.inc"
  8. // Undefine before windows header will make the poisonous defines
  9. #include "base/win/windows_undefines.inc"
  10. // atlwin.h relies on std::void_t, but libc++ doesn't define it unless
  11. // _LIBCPP_STD_VER > 14. Workaround this by manually defining it.
  12. #include <type_traits>
  13. #if defined(_LIBCPP_STD_VER) && _LIBCPP_STD_VER <= 14
  14. namespace std {
  15. template <class...>
  16. using void_t = void;
  17. }
  18. #endif
  19. // Declare our own exception thrower (atl_throw.h includes atldef.h).
  20. #include "base/win/atl_throw.h"
  21. #include <atlbase.h>
  22. #include <atlcom.h>
  23. #include <atlctl.h>
  24. #include <atlhost.h>
  25. #include <atlsecurity.h>
  26. #include <atlwin.h>
  27. // Undefine the poisonous defines
  28. #include "base/win/windows_undefines.inc"
  29. // Check no poisonous defines follow this include
  30. #include "base/win/windows_defines.inc"
  31. #endif // BASE_WIN_ATL_H_