basic_types_abi.cpp 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*
  2. * Copyright Andrey Semashev 2018.
  3. * Distributed under the Boost Software License, Version 1.0.
  4. * (See accompanying file LICENSE_1_0.txt or copy at
  5. * http://www.boost.org/LICENSE_1_0.txt)
  6. */
  7. /*!
  8. * \file basic_types_abi.cpp
  9. * \author Andrey Semashev
  10. * \date 09.03.2018
  11. *
  12. * \brief This file contains ABI test for basic WinAPI types
  13. */
  14. #include <boost/winapi/basic_types.hpp>
  15. #include <windows.h>
  16. #include <boost/predef/platform/windows_uwp.h>
  17. #include "abi_test_tools.hpp"
  18. int main()
  19. {
  20. BOOST_WINAPI_TEST_TYPE_SAME(BOOL);
  21. BOOST_WINAPI_TEST_TYPE_SAME(PBOOL);
  22. BOOST_WINAPI_TEST_TYPE_SAME(LPBOOL);
  23. BOOST_WINAPI_TEST_TYPE_SAME(BOOLEAN);
  24. BOOST_WINAPI_TEST_TYPE_SAME(PBOOLEAN);
  25. BOOST_WINAPI_TEST_TYPE_SAME(BYTE);
  26. BOOST_WINAPI_TEST_TYPE_SAME(PBYTE);
  27. BOOST_WINAPI_TEST_TYPE_SAME(LPBYTE);
  28. BOOST_WINAPI_TEST_TYPE_SAME(UCHAR);
  29. BOOST_WINAPI_TEST_TYPE_SAME(PUCHAR);
  30. BOOST_WINAPI_TEST_TYPE_SAME(WORD);
  31. BOOST_WINAPI_TEST_TYPE_SAME(PWORD);
  32. BOOST_WINAPI_TEST_TYPE_SAME(LPWORD);
  33. BOOST_WINAPI_TEST_TYPE_SAME(DWORD);
  34. BOOST_WINAPI_TEST_TYPE_SAME(PDWORD);
  35. BOOST_WINAPI_TEST_TYPE_SAME(LPDWORD);
  36. BOOST_WINAPI_TEST_TYPE_SAME(HANDLE);
  37. BOOST_WINAPI_TEST_TYPE_SAME(PHANDLE);
  38. BOOST_WINAPI_TEST_TYPE_SAME(SHORT);
  39. BOOST_WINAPI_TEST_TYPE_SAME(PSHORT);
  40. BOOST_WINAPI_TEST_TYPE_SAME(USHORT);
  41. BOOST_WINAPI_TEST_TYPE_SAME(PUSHORT);
  42. BOOST_WINAPI_TEST_TYPE_SAME(INT);
  43. BOOST_WINAPI_TEST_TYPE_SAME(PINT);
  44. BOOST_WINAPI_TEST_TYPE_SAME(LPINT);
  45. BOOST_WINAPI_TEST_TYPE_SAME(UINT);
  46. BOOST_WINAPI_TEST_TYPE_SAME(PUINT);
  47. BOOST_WINAPI_TEST_TYPE_SAME(LONG);
  48. BOOST_WINAPI_TEST_TYPE_SAME(PLONG);
  49. BOOST_WINAPI_TEST_TYPE_SAME(LPLONG);
  50. BOOST_WINAPI_TEST_TYPE_SAME(ULONG);
  51. BOOST_WINAPI_TEST_TYPE_SAME(PULONG);
  52. BOOST_WINAPI_TEST_TYPE_SAME(LONGLONG);
  53. BOOST_WINAPI_TEST_TYPE_SAME(ULONGLONG);
  54. BOOST_WINAPI_TEST_TYPE_SAME(LONGLONG);
  55. BOOST_WINAPI_TEST_TYPE_SAME(ULONGLONG);
  56. BOOST_WINAPI_TEST_TYPE_SAME(INT_PTR);
  57. BOOST_WINAPI_TEST_TYPE_SAME(UINT_PTR);
  58. BOOST_WINAPI_TEST_TYPE_SAME(LONG_PTR);
  59. BOOST_WINAPI_TEST_TYPE_SAME(ULONG_PTR);
  60. BOOST_WINAPI_TEST_TYPE_SAME(DWORD_PTR);
  61. BOOST_WINAPI_TEST_TYPE_SAME(PDWORD_PTR);
  62. BOOST_WINAPI_TEST_TYPE_SAME(SIZE_T);
  63. BOOST_WINAPI_TEST_TYPE_SAME(PSIZE_T);
  64. BOOST_WINAPI_TEST_TYPE_SAME(SSIZE_T);
  65. BOOST_WINAPI_TEST_TYPE_SAME(PSSIZE_T);
  66. BOOST_WINAPI_TEST_TYPE_SAME(PVOID);
  67. BOOST_WINAPI_TEST_TYPE_SAME(LPVOID);
  68. BOOST_WINAPI_TEST_TYPE_SAME(LPCVOID);
  69. BOOST_WINAPI_TEST_TYPE_SAME(CHAR);
  70. BOOST_WINAPI_TEST_TYPE_SAME(LPSTR);
  71. BOOST_WINAPI_TEST_TYPE_SAME(LPCSTR);
  72. BOOST_WINAPI_TEST_TYPE_SAME(WCHAR);
  73. BOOST_WINAPI_TEST_TYPE_SAME(LPWSTR);
  74. BOOST_WINAPI_TEST_TYPE_SAME(LPCWSTR);
  75. BOOST_WINAPI_TEST_TYPE_SAME(VOID);
  76. #if BOOST_PLAT_WINDOWS_SDK_VERSION >= BOOST_WINAPI_WINDOWS_SDK_6_0 && BOOST_WINAPI_PARTITION_APP_SYSTEM
  77. // Windows SDK that comes with MSVC-7.1 and 8 does not define NTSTATUS. Up until Windows SDK 10 NTSTATUS is only defined in Desktop API partition.
  78. BOOST_WINAPI_TEST_TYPE_SAME(NTSTATUS);
  79. BOOST_WINAPI_TEST_TYPE_SAME(PNTSTATUS);
  80. #endif
  81. BOOST_WINAPI_TEST_TYPE_SAME(HMODULE);
  82. BOOST_WINAPI_TEST_STRUCT(LARGE_INTEGER, (LowPart)(HighPart)(u.LowPart)(u.HighPart)(QuadPart));
  83. BOOST_WINAPI_TEST_STRUCT(SECURITY_ATTRIBUTES, (nLength)(lpSecurityDescriptor)(bInheritHandle));
  84. return boost::report_errors();
  85. }