"Maarten Lankhorst" <m.b.lankhorst(a)gmail.com> writes:
> @@ -3121,9 +3133,21 @@ UINT WINAPI GetWindowModuleFileNameA( HWND hwnd, LPSTR lpszFileName, UINT cchFil
> */
> UINT WINAPI GetWindowModuleFileNameW( HWND hwnd, LPWSTR lpszFileName, UINT cchFileNameMax)
> {
> - FIXME("GetWindowModuleFileNameW(hwnd %p, lpszFileName %p, cchFileNameMax %u) stub!\n",
> - hwnd, lpszFileName, cchFileNameMax);
> - return 0;
> + HINSTANCE hInst;
> + UINT ret;
> + TRACE("hwnd %p, lpszFileName %p, cchFileNameMax %u\n", hwnd, lpszFileName, cchFileNameMax);
> +
> + hInst = (HINSTANCE)GetWindowLongPtrW(hwnd, GWLP_HINSTANCE);
> + if (!hInst)
> + {
> + if (hwnd == GetDesktopWindow() || !IsWindow(hwnd))
> + return 0;
> + hInst = GetModuleHandleW(0);
> + }
> +
> + ret = GetModuleFileNameW(hInst, lpszFileName, cchFileNameMax);
> + TRACE("--> %d %s\n", ret, debugstr_wn(lpszFileName, ret));
> + return ret;
This won't work across processes.
--
Alexandre Julliard
julliard(a)winehq.org