Jinoh Kang (@iamahuman) commented about dlls/ntdll/misc.c:
+ +/****************************************************************************** + * NtdllDefWindowProc_A (NTDLL.@) + */ +LRESULT WINAPI NtdllDefWindowProc_A( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) +{ + static LPARAM (WINAPI *pDefWindowProcA)(HWND,UINT,WPARAM,LPARAM); /* DefWindowProcA */ + + UNICODE_STRING name; + NTSTATUS status; + HMODULE module; + + if (pDefWindowProcA) return pDefWindowProcA( hwnd, msg, wParam, lParam ); + + RtlCreateUnicodeString( &name, L"user32.dll" ); + if (( status = LdrLoadDll( NULL, 0, &name, &module ))) Don't keep reference to implicitly loaded DLL, which is effectively a memory leak.
Use `LdrGetDllHandle` instead, assuming user32.dll is already loaded (this should be guaranteed by the application). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5236#note_65564