diff --git a/modules/juce_core/native/juce_win32_Threads.cpp b/modules/juce_core/native/juce_win32_Threads.cpp index 62c7b76643..1eaa837317 100644 --- a/modules/juce_core/native/juce_win32_Threads.cpp +++ b/modules/juce_core/native/juce_win32_Threads.cpp @@ -241,7 +241,14 @@ static void* currentModuleHandle = nullptr; void* JUCE_CALLTYPE Process::getCurrentModuleInstanceHandle() noexcept { if (currentModuleHandle == nullptr) - currentModuleHandle = GetModuleHandleA (nullptr); + { + auto status = GetModuleHandleEx (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, + (LPCTSTR) ¤tModuleHandle, + (HMODULE*) ¤tModuleHandle); + + if (status == 0 || currentModuleHandle == nullptr) + currentModuleHandle = GetModuleHandleA (nullptr); + } return currentModuleHandle; }