Closed klemens-morgenstern closed 8 years ago
I had a quick look and unfortunately I cannot accept this PR in its current form. Here are some comments:
__declspec
and raw types in the declarations. Use the corresponding macros and typedefs.*A
and *W
), the narrow one should be conditioned on BOOST_NO_ANSI_APIS
. Where appropriate, there can be a lower-case overload that calls the correct function depending on the argument types.windows.h
is not included all functions must be declared in the global namespace. When no type punning is required, the functions can be simply imported into boost::detail::winapi
. Otherwise, there should be an inline wrapper function in boost::detail::winapi
that performs type conversions and calls the real function in the global namespace.const DWORD_ DEBUG_PROCESS_ = DEBUG_PROCESS;
. The lower-case versions are optional and are provided in addition to the upper-case ones, where possible (e.g. when they don't clash with something else).extern "C"
in boost::detail::winapi
.boost::detail::winapi
in an ABI-compatible way to the originals in Windows SDK. When windows.h
is not included, the original structs must be forward-declared in the global namespace. When a struct is involved in a function interface, the inline wrapper in boost::detail::winapi
for the function must be present.UNICODE
, please. All structs must have stable implementation regardless of the macros.TCHAR
, please. It should not exist.DWOD_
type (see show_windows.hpp). Run the tests first, please.All in all, have a look at the other headers in Boost.WinAPI and try to follow the existing practice.
Thank you for the comments. I'll incorporate your comments and hopefully it'll be a better PR next time.
I removed all direct inclusions of windows.h in boost/process and replaced them in the boost.winapi style. I hope this library would be the right place for those additions, so boost.process can use them.