1 // Copyright (c) 2006, 2007 Julio M. Merino Vidal 2 // Copyright (c) 2008 Ilya Sokolov, Boris Schaeling 3 // Copyright (c) 2009 Boris Schaeling 4 // Copyright (c) 2010 Felipe Tanus, Boris Schaeling 5 // Copyright (c) 2011, 2012 Jeff Flinn, Boris Schaeling 6 // Copyright (c) 2016 Klemens D. Morgenstern 7 // 8 // Distributed under the Boost Software License, Version 1.0. (See accompanying 9 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 11 #ifndef BOOST_PROCESS_WINDOWS_SHOW_WINDOW_HPP 12 #define BOOST_PROCESS_WINDOWS_SHOW_WINDOW_HPP 13 14 #include <boost/winapi/process.hpp> 15 #include <boost/winapi/show_window.hpp> 16 #include <boost/process/detail/handler_base.hpp> 17 18 19 namespace boost { namespace process { namespace detail { namespace windows { 20 21 template<::boost::winapi::WORD_ Flags> 22 struct show_window : ::boost::process::detail::handler_base 23 { 24 template <class WindowsExecutor> on_setupboost::process::detail::windows::show_window25 void on_setup(WindowsExecutor &e) const 26 { 27 e.startup_info.dwFlags |= ::boost::winapi::STARTF_USESHOWWINDOW_; 28 e.startup_info.wShowWindow |= Flags; 29 } 30 }; 31 32 struct create_no_window_ : public ::boost::process::detail::handler_base 33 { 34 template <class Executor> on_setupboost::process::detail::windows::create_no_window_35 void on_setup(Executor &exec) const 36 { 37 exec.creation_flags |= ::boost::winapi::CREATE_NO_WINDOW_; 38 } 39 }; 40 41 42 }}}} 43 44 #endif 45 46