MCPcopy Create free account
hub / github.com/apitrace/apitrace / MyGetModuleFileNameW

Function MyGetModuleFileNameW

retrace/process_name.cpp:192–224  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

190}
191
192static DWORD WINAPI
193MyGetModuleFileNameW(HMODULE hModule, LPWSTR lpFilename, DWORD nSize)
194{
195 if (hModule == nullptr) {
196 if (0) {
197 void *pCallerAddr = ReturnAddress();
198 HMODULE hCallerModule = GetModuleFromAddress(pCallerAddr);
199 WCHAR szCaller[MAX_PATH];
200 DWORD dwRet = pfnGetModuleFileNameW(hCallerModule, szCaller, sizeof szCaller);
201 assert(dwRet > 0);
202
203 std::cerr << "GetModuleFileNameW(" << hModule << ") from " << szCaller << "\n";
204 }
205
206 assert(*g_processName);
207 assert(nSize != 0);
208
209 size_t len = strlen(g_processName);
210 if (len < nSize) {
211 ::MultiByteToWideChar(CP_UTF8, 0, g_processName, -1, lpFilename, len);
212 lpFilename[len] = 0;
213 SetLastError(ERROR_SUCCESS);
214 return len;
215 } else {
216 ::MultiByteToWideChar(CP_UTF8, 0, g_processName, -1, lpFilename, nSize - 1);
217 lpFilename[nSize - 1] = L'\0';
218 SetLastError(ERROR_INSUFFICIENT_BUFFER);
219 return nSize;
220 }
221 }
222
223 return pfnGetModuleFileNameW(hModule, lpFilename, nSize);
224}
225
226void
227setProcessName(const char *processName)

Callers

nothing calls this directly

Calls 1

GetModuleFromAddressFunction · 0.70

Tested by

no test coverage detected