Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Boost.Nowide
windows.hpp
1//
2// Copyright (c) 2012 Artyom Beilis (Tonkikh)
3// Copyright (c) 2022 Alexander Grund
4//
5// Distributed under the Boost Software License, Version 1.0.
6// https://www.boost.org/LICENSE_1_0.txt
7
8#ifndef BOOST_NOWIDE_WINDOWS_HPP_INCLUDED
9#define BOOST_NOWIDE_WINDOWS_HPP_INCLUDED
10
11#ifdef BOOST_USE_WINDOWS_H
12#include <windows.h>
13// (Usually) included by windows.h
14#include <shellapi.h>
15#else
16
17// When BOOST_USE_WINDOWS_H is not defined we declare the function prototypes to avoid including windows.h
18
19extern "C" {
20
21// From windows.h
22
23__declspec(dllimport) wchar_t* __stdcall GetEnvironmentStringsW(void);
24__declspec(dllimport) int __stdcall FreeEnvironmentStringsW(wchar_t*);
25__declspec(dllimport) wchar_t* __stdcall GetCommandLineW(void);
26__declspec(dllimport) unsigned long __stdcall GetLastError();
27__declspec(dllimport) void* __stdcall LocalFree(void*);
28__declspec(dllimport) int __stdcall SetEnvironmentVariableW(const wchar_t*, const wchar_t*);
29__declspec(dllimport) unsigned long __stdcall GetEnvironmentVariableW(const wchar_t*, wchar_t*, unsigned long);
30
31// From shellapi.h
32
33__declspec(dllimport) wchar_t** __stdcall CommandLineToArgvW(const wchar_t*, int*);
34}
35
36#endif
37
38#endif