summaryrefslogtreecommitdiff
path: root/boost/winapi/directory_management.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/winapi/directory_management.hpp')
-rw-r--r--boost/winapi/directory_management.hpp103
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_