#899 WINVER macro error


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.


  • Earnie Boyd

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

    Earnie Boyd - 2006-01-31

    Logged In: YES

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

  • Earnie Boyd

    Earnie Boyd - 2006-01-31

    Logged In: YES

    Following up, based on MSDN documentation

    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.

    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.

  • SourceForge Robot

    • status: pending --> closed
  • SourceForge Robot

    Logged In: YES

    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).

  • Dimitri Papadopoulos

    • status: closed --> closed-fixed
  • Dimitri Papadopoulos

    Logged In: YES

    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.


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks