diff options
Diffstat (limited to 'boost/winapi/directory_management.hpp')
-rw-r--r-- | boost/winapi/directory_management.hpp | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/boost/winapi/directory_management.hpp b/boost/winapi/directory_management.hpp new file mode 100644 index 0000000000..8801b249fb --- /dev/null +++ b/boost/winapi/directory_management.hpp @@ -0,0 +1,103 @@ +/* + * Copyright 2010 Vicente J. Botet Escriba + * Copyright 2015 Andrey Semashev + * + * Distributed under the Boost Software License, Version 1.0. + * See http://www.boost.org/LICENSE_1_0.txt + */ + +#ifndef BOOST_WINAPI_DIRECTORY_MANAGEMENT_HPP_INCLUDED_ +#define BOOST_WINAPI_DIRECTORY_MANAGEMENT_HPP_INCLUDED_ + +#include <boost/winapi/basic_types.hpp> +#include <boost/winapi/get_system_directory.hpp> + +#ifdef BOOST_HAS_PRAGMA_ONCE +#pragma once +#endif + +#if !defined( BOOST_USE_WINDOWS_H ) +extern "C" { +#if !defined( BOOST_NO_ANSI_APIS ) +BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI + CreateDirectoryA(boost::winapi::LPCSTR_, ::_SECURITY_ATTRIBUTES*); +#if BOOST_WINAPI_PARTITION_APP_SYSTEM +BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI + GetTempPathA(boost::winapi::DWORD_ length, boost::winapi::LPSTR_ buffer); +#endif +BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI + RemoveDirectoryA(boost::winapi::LPCSTR_); +#endif +BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI + CreateDirectoryW(boost::winapi::LPCWSTR_, ::_SECURITY_ATTRIBUTES*); +#if BOOST_WINAPI_PARTITION_APP_SYSTEM +BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI + GetTempPathW(boost::winapi::DWORD_ length, boost::winapi::LPWSTR_ buffer); +#endif +BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI + RemoveDirectoryW(boost::winapi::LPCWSTR_); +} // extern "C" +#endif + +namespace boost { +namespace winapi { + +#if !defined( BOOST_NO_ANSI_APIS ) +#if BOOST_WINAPI_PARTITION_APP_SYSTEM +using ::GetTempPathA; +#endif +using ::RemoveDirectoryA; +#endif +#if BOOST_WINAPI_PARTITION_APP_SYSTEM +using ::GetTempPathW; +#endif +using ::RemoveDirectoryW; + +#if !defined( BOOST_NO_ANSI_APIS ) +BOOST_FORCEINLINE BOOL_ CreateDirectoryA(LPCSTR_ pPathName, PSECURITY_ATTRIBUTES_ pSecurityAttributes) +{ + return ::CreateDirectoryA(pPathName, reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(pSecurityAttributes)); +} +#endif + +BOOST_FORCEINLINE BOOL_ CreateDirectoryW(LPCWSTR_ pPathName, PSECURITY_ATTRIBUTES_ pSecurityAttributes) +{ + return ::CreateDirectoryW(pPathName, reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(pSecurityAttributes)); +} + +#if !defined( BOOST_NO_ANSI_APIS ) +BOOST_FORCEINLINE BOOL_ create_directory(LPCSTR_ pPathName, PSECURITY_ATTRIBUTES_ pSecurityAttributes) +{ + return ::CreateDirectoryA(pPathName, reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(pSecurityAttributes)); +} +#if BOOST_WINAPI_PARTITION_APP_SYSTEM +BOOST_FORCEINLINE DWORD_ get_temp_path(DWORD_ length, LPSTR_ buffer) +{ + return ::GetTempPathA(length, buffer); +} +#endif +BOOST_FORCEINLINE BOOL_ remove_directory(LPCSTR_ pPathName) +{ + return ::RemoveDirectoryA(pPathName); +} +#endif + +BOOST_FORCEINLINE BOOL_ create_directory(LPCWSTR_ pPathName, PSECURITY_ATTRIBUTES_ pSecurityAttributes) +{ + return ::CreateDirectoryW(pPathName, reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(pSecurityAttributes)); +} +#if BOOST_WINAPI_PARTITION_APP_SYSTEM +BOOST_FORCEINLINE DWORD_ get_temp_path(DWORD_ length, LPWSTR_ buffer) +{ + return ::GetTempPathW(length, buffer); +} +#endif +BOOST_FORCEINLINE BOOL_ remove_directory(LPCWSTR_ pPathName) +{ + return ::RemoveDirectoryW(pPathName); +} + +} // namespace winapi +} // namespace boost + +#endif // BOOST_WINAPI_DIRECTORY_MANAGEMENT_HPP_INCLUDED_ |