winapi/test/run/winapi_info.cpp
2018-03-14 14:06:07 +03:00

98 lines
2.5 KiB
C++

/*
* Copyright Andrey Semashev 2017.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
/*!
* \file winapi_info.cpp
* \author Andrey Semashev
* \date 25.06.2017
*
* \brief This file contains a test that displays information about Windows SDK.
*/
#define BOOST_USE_WINDOWS_H
#include <windows.h>
#include <boost/winapi/config.hpp>
#include <stdio.h>
#include <string.h>
#include <boost/config.hpp>
#include <boost/predef/platform/windows_uwp.h>
void print_macro(const char* name, const char* value)
{
// If a macro is not defined, value will contain the macro name after the starting dot
if (strcmp(name, value + 1) == 0)
{
printf("%s is not defined\n", name);
}
else
{
printf("%s: \"%s\"\n", name, value + 1);
}
}
#define PRINT_MACRO(x) print_macro(#x, BOOST_STRINGIZE(.x))
void print_winsdk_macros()
{
printf("Windows SDK macros:\n===================\n\n");
PRINT_MACRO(_WIN32_WINNT);
PRINT_MACRO(WINVER);
PRINT_MACRO(NTDDI_VERSION);
PRINT_MACRO(_WIN32_IE);
PRINT_MACRO(BOOST_USE_WINAPI_VERSION);
PRINT_MACRO(BOOST_NO_ANSI_APIS);
PRINT_MACRO(BOOST_WINAPI_IS_MINGW);
PRINT_MACRO(BOOST_WINAPI_IS_MINGW_W64);
PRINT_MACRO(BOOST_WINAPI_IS_CYGWIN);
PRINT_MACRO(BOOST_PLAT_WINDOWS_SDK_VERSION);
PRINT_MACRO(__W32API_VERSION);
PRINT_MACRO(__W32API_MAJOR_VERSION);
PRINT_MACRO(__W32API_MINOR_VERSION);
PRINT_MACRO(__W32API_PATCHLEVEL);
PRINT_MACRO(WINAPI_FAMILY);
PRINT_MACRO(UNDER_CE);
PRINT_MACRO(_WIN32_WCE_EMULATION);
PRINT_MACRO(WIN32);
PRINT_MACRO(_WIN32);
PRINT_MACRO(__WIN32__);
PRINT_MACRO(_WIN64);
PRINT_MACRO(__CYGWIN__);
PRINT_MACRO(_X86_);
PRINT_MACRO(_AMD64_);
PRINT_MACRO(_IA64_);
PRINT_MACRO(_ARM_);
PRINT_MACRO(_ARM64_);
PRINT_MACRO(_MAC);
PRINT_MACRO(_MANAGED);
PRINT_MACRO(UNICODE);
PRINT_MACRO(_UNICODE);
PRINT_MACRO(STRICT);
PRINT_MACRO(NO_STRICT);
PRINT_MACRO(WIN32_LEAN_AND_MEAN);
printf("\n");
PRINT_MACRO(WINBASEAPI);
PRINT_MACRO(NTSYSAPI);
PRINT_MACRO(WINAPI);
PRINT_MACRO(NTAPI);
PRINT_MACRO(CALLBACK);
PRINT_MACRO(APIENTRY);
PRINT_MACRO(BOOST_WINAPI_WINAPI_CC);
PRINT_MACRO(BOOST_WINAPI_NTAPI_CC);
PRINT_MACRO(BOOST_WINAPI_CALLBACK_CC);
PRINT_MACRO(VOID);
PRINT_MACRO(CONST);
}
int main(int, char*[])
{
print_winsdk_macros();
return 0;
}