2012/10/24 Dmitry Timoshkov <dmitry@baikal.ru>
Christian Costa <titan.costa@gmail.com> wrote:

>  BOOL WINAPI ClientToScreen( HWND hwnd, LPPOINT lppnt )
>  {
> +    DWORD error = GetLastError();
> +
> +    if (!hwnd)
> +    {
> +        SetLastError( ERROR_INVALID_WINDOW_HANDLE );
> +        return FALSE;
> +    }
> +
> +    SetLastError( 0xdeadbeef );
>      MapWindowPoints( hwnd, 0, lppnt, 1 );
> +
> +    if (GetLastError() != 0xdeadbeef)
> +        return FALSE;
> +
> +    SetLastError(error);
>      return TRUE;
>  }

As been said before these games with saving/restoring last error value
are broken.


Last time you said wrong so what do you mean by wrong or broken?
The only way to know if MapWindowPoints fails is to set last error first and check it
after. If I don't restore the previous value, the tests will not pass. Of course I can
arrange the tests but hey. And I can check windows handle here as Alexandre said.