[SHELLEXT][MYDOCS][INF] Add mydocs.dll and .mydocs file extension (#2624)
[reactos.git] / dll / shellext / shellbtrfs / mountmgr_local.h
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 };