1 #pragma once 2 3 #include <vector> 4 #include <string> 5 #include <sstream> 6 #ifndef __REACTOS__ 7 #include <string_view> 8 #else 9 #define string_view string 10 #define wstring_view wstring 11 #endif 12 #include <iostream> 13 #include <iomanip> 14 15 class mountmgr_point { 16 public: 17 mountmgr_point(const std::wstring_view& symlink, const std::string_view& unique_id, const std::wstring_view& device_name) : symlink(symlink), device_name(device_name), unique_id(unique_id) { 18 } 19 20 std::wstring symlink, device_name; 21 std::string unique_id; 22 }; 23 24 class mountmgr { 25 public: 26 mountmgr(); 27 ~mountmgr(); 28 void create_point(const std::wstring_view& symlink, const std::wstring_view& device) const; 29 void delete_points(const std::wstring_view& symlink, const std::wstring_view& unique_id = L"", const std::wstring_view& device_name = L"") const; 30 std::vector<mountmgr_point> query_points(const std::wstring_view& symlink = L"", const std::wstring_view& unique_id = L"", const std::wstring_view& device_name = L"") const; 31 32 private: 33 HANDLE h; 34 }; 35