"Maarten Lankhorst" <[EMAIL PROTECTED]> 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
[EMAIL PROTECTED]


Reply via email to