| 226 | } |
| 227 | |
| 228 | std::string GetModulePath(HMODULE module) { |
| 229 | std::wstring buffer(MAX_PATH, L'\0'); |
| 230 | for (;;) { |
| 231 | DWORD copied = |
| 232 | GetModuleFileNameW(module, buffer.data(), static_cast<DWORD>(buffer.size())); |
| 233 | if (copied == 0) { |
| 234 | return ""; |
| 235 | } |
| 236 | if (copied < buffer.size() - 1) { |
| 237 | buffer.resize(copied); |
| 238 | return NormalizeModulePath(Utf8FromWide(buffer)); |
| 239 | } |
| 240 | buffer.resize(buffer.size() * 2); |
| 241 | } |
| 242 | } |
| 243 | |
| 244 | std::string GetCurrentProcessModulePath() { |
| 245 | return GetModulePath(nullptr); |
no test coverage detected