github.com/searKing/golang/go@v1.2.74/os/signal/cgo/include/boost/winapi/handles.hpp (about) 1 /* 2 * Copyright 2010 Vicente J. Botet Escriba 3 * Copyright 2015 Andrey Semashev 4 * 5 * Distributed under the Boost Software License, Version 1.0. 6 * See http://www.boost.org/LICENSE_1_0.txt 7 */ 8 9 #ifndef BOOST_WINAPI_HANDLES_HPP_INCLUDED_ 10 #define BOOST_WINAPI_HANDLES_HPP_INCLUDED_ 11 12 #include <boost/winapi/basic_types.hpp> 13 14 #ifdef BOOST_HAS_PRAGMA_ONCE 15 #pragma once 16 #endif 17 18 #if !defined( BOOST_USE_WINDOWS_H ) 19 extern "C" { 20 BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC 21 CloseHandle(boost::winapi::HANDLE_ handle); 22 23 BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC 24 DuplicateHandle( 25 boost::winapi::HANDLE_ hSourceProcessHandle, 26 boost::winapi::HANDLE_ hSourceHandle, 27 boost::winapi::HANDLE_ hTargetProcessHandle, 28 boost::winapi::HANDLE_* lpTargetHandle, 29 boost::winapi::DWORD_ dwDesiredAccess, 30 boost::winapi::BOOL_ bInheritHandle, 31 boost::winapi::DWORD_ dwOptions); 32 33 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN10 34 BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC 35 CompareObjectHandles( 36 boost::winapi::HANDLE_ hFirstObjectHandle, 37 boost::winapi::HANDLE_ hSecondObjectHandle); 38 #endif 39 } // extern "C" 40 #endif 41 42 namespace boost { 43 namespace winapi { 44 45 using ::CloseHandle; 46 using ::DuplicateHandle; 47 48 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN10 49 using ::CompareObjectHandles; 50 #endif 51 52 // Note: MSVC-14.1 does not interpret INVALID_HANDLE_VALUE_ initializer as a constant expression 53 #if defined( BOOST_USE_WINDOWS_H ) 54 BOOST_CONSTEXPR_OR_CONST DWORD_ DUPLICATE_CLOSE_SOURCE_ = DUPLICATE_CLOSE_SOURCE; 55 BOOST_CONSTEXPR_OR_CONST DWORD_ DUPLICATE_SAME_ACCESS_ = DUPLICATE_SAME_ACCESS; 56 const HANDLE_ INVALID_HANDLE_VALUE_ = INVALID_HANDLE_VALUE; 57 #else 58 BOOST_CONSTEXPR_OR_CONST DWORD_ DUPLICATE_CLOSE_SOURCE_ = 1; 59 BOOST_CONSTEXPR_OR_CONST DWORD_ DUPLICATE_SAME_ACCESS_ = 2; 60 const HANDLE_ INVALID_HANDLE_VALUE_ = (HANDLE_)(-1); 61 #endif 62 63 BOOST_CONSTEXPR_OR_CONST DWORD_ duplicate_close_source = DUPLICATE_CLOSE_SOURCE_; 64 BOOST_CONSTEXPR_OR_CONST DWORD_ duplicate_same_access = DUPLICATE_SAME_ACCESS_; 65 // Note: The "unused" attribute here should not be necessary because the variable is a constant. 66 // However, MinGW gcc 5.3 spams warnings about this particular constant. 67 const HANDLE_ invalid_handle_value BOOST_ATTRIBUTE_UNUSED = INVALID_HANDLE_VALUE_; 68 69 } 70 } 71 72 #endif // BOOST_WINAPI_HANDLES_HPP_INCLUDED_