forked from TeamTofuShop/segatools
util/lib.c: Add module file path utility
This commit is contained in:
29
util/lib.c
Normal file
29
util/lib.c
Normal file
@ -0,0 +1,29 @@
|
||||
#include <windows.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
wchar_t *module_file_name(HMODULE module)
|
||||
{
|
||||
size_t buf_len;
|
||||
DWORD len;
|
||||
wchar_t *buf;
|
||||
|
||||
buf_len = MAX_PATH;
|
||||
buf = malloc(buf_len * sizeof(*buf));
|
||||
|
||||
while (true) {
|
||||
len = GetModuleFileNameW(module, buf, buf_len);
|
||||
|
||||
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
|
||||
buf_len = len;
|
||||
buf = realloc(buf, buf_len * sizeof(*buf));
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
buf_len *= 2;
|
||||
buf = realloc(buf, buf_len * sizeof(*buf));
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
Reference in New Issue
Block a user