#899 WINVER macro error

closed-fixed
nobody
2006-04-07
2006-01-31
No

In file wingdi.h of w32api version 3.2, functions like
AlphaBlend(), TransparentBlt() and GradientFill() are
guarded by an #if #endif block that requires WINVER >=
0x0500. This is not right. Those functions are
available since WINVER = 0x0400. You can see this on
MSDN or Windows SDK.

Discussion

  • Earnie Boyd
    Earnie Boyd
    2006-01-31

    • status: open --> pending
     
  • Earnie Boyd
    Earnie Boyd
    2006-01-31

    Logged In: YES
    user_id=15438

    Do you find a link to documentation that you can give us?

     
  • Earnie Boyd
    Earnie Boyd
    2006-01-31

    Logged In: YES
    user_id=15438

    Following up, based on MSDN documentation

    <excerpt
    cite"http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6ig4.asp">
    Windows NT/2000/XP: Included in Windows 2000 and later.
    Windows 95/98/Me: Included in Windows 98 and later.
    Header: Declared in Wingdi.h; include Windows.h.
    Library: Included as a resource in Msimg32.dll.
    </excerpt>

    We find that WINVER = 0x0500 is correct for AlphaBlend() for
    the NT OS family. If you wish to use these functions you
    need to define the minimum windows environment you wish to
    support. I.E. You need to ``#define WINVER 0x0500'' before
    you ``#include <windows.h>''. The caveat to that is it
    won't be valid to execute on anything less than Windows ME.

    Hmm... However, looking at _WIN32_WINDOWS value and
    _WIN32_WINNT value we see that AlphaBlend should be allowed
    for _WIN32_WINDOWS >= 0x0410 or _WIN32_WINNT >= 0x0500. So
    the guard should be changed ot allow for that scenario.

    Please submit a patch to the patch tracker giving a proper
    ChangeLog entry.

     
    • status: pending --> closed
     
  • Logged In: YES
    user_id=1312539

    This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 30 days (the time period specified by
    the administrator of this Tracker).

     
    • status: closed --> closed-fixed
     
  • Logged In: YES
    user_id=52414

    The problem you report has caused modification in some fashion in the official CVS for the given package. The w32api and
    mingw-runtime official CVS reside in the winsup CVS directory tree for Cygwin. Those package CVS trees are periodically
    merged into the MinGW CVS tree. If you still find problems then please open a new report.