MCPcopy Create free account
hub / github.com/OpenSteam001/OpenSteamTool / DirectoryFromQuery

Function DirectoryFromQuery

src/OSTPlatform/Windows/DynamicLibrary.cpp:42–60  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40}
41
42std::string DirectoryFromQuery(DWORD (*query)(DWORD, wchar_t*), const char* operation) {
43 for (DWORD capacity = MAX_PATH; capacity <= kMaxWin32PathBuffer; capacity *= 2) {
44 std::vector<wchar_t> buffer(capacity);
45 const DWORD len = query(capacity, buffer.data());
46 if (len == 0) {
47 OSTP_LOG_WARN("{} failed (error={})", operation, GetLastError());
48 return {};
49 }
50 if (len < capacity) {
51 return WidePathToUtf8(std::wstring_view(buffer.data(), len), operation);
52 }
53 if (len > capacity) {
54 capacity = len;
55 }
56 }
57
58 OSTP_LOG_WARN("{} path exceeds {} wchars", operation, kMaxWin32PathBuffer);
59 return {};
60}
61
62DWORD GetCurrentDirectoryThunk(DWORD capacity, wchar_t* buffer) {
63 return GetCurrentDirectoryW(capacity, buffer);

Callers 2

GetCurrentDirectoryPathFunction · 0.85
GetSystemDirectoryPathFunction · 0.85

Calls 2

WidePathToUtf8Function · 0.85
dataMethod · 0.80

Tested by

no test coverage detected