#define PNG_VERSION_INFO_ONLY

#include <windows.h>
#include "png.h"

#define _QUOTE(x) # x
#define QUOTE(x) _QUOTE(x)

#define PNG_LIBPNG_DLLFNAME "LIBPNG"

#if defined(DLLFNAME_POSTFIX) && !defined(PRIVATEBUILD) && !defined(SPECIALBUILD)
#  error PRIVATEBUILD or SPECIALBUILD must be defined as a string describing the type of change brought to the standard library
#endif /* defined(DLLFNAME_POSTFIX)... */

#if defined(PNG_DEBUG) && (PNG_DEBUG > 0)
#  define VS_DEBUG VS_FF_DEBUG
#  ifndef DLLFNAME_POSTFIX
#    define DLLFNAME_POSTFIX "D"
#  endif /* DLLFNAME_POSTFIX */
#  ifndef COMMENTS 
#    define COMMENTS "PNG_DEBUG=" QUOTE(PNG_DEBUG)
#  endif /* COMMENTS */
#else
#  define VS_DEBUG 0
#  define DLLFNAME_POSTFIX
#endif /* defined(DEBUG)... */

#ifdef PRIVATEBUILD
#  define VS_PRIVATEBUILD VS_FF_PRIVATEBUILD
#else
#  define VS_PRIVATEBUILD 0
#endif /* PRIVATEBUILD */

#ifdef SPECIALBUILD
#  define VS_SPECIALBUILD VS_FF_SPECIALBUILD
#else
#  define VS_SPECIALBUILD 0
#endif /* SPECIALBUILD */

VS_VERSION_INFO VERSIONINFO 
FILEVERSION PNG_LIBPNG_VER_MAJOR, PNG_LIBPNG_VER_MINOR, PNG_LIBPNG_VER_RELEASE, PNG_LIBPNG_VER_BUILD
PRODUCTVERSION PNG_LIBPNG_VER_MAJOR, PNG_LIBPNG_VER_MINOR, PNG_LIBPNG_VER_RELEASE, PNG_LIBPNG_VER_BUILD
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS VS_DEBUG | VS_PRIVATEBUILD | VS_SPECIALBUILD
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
BEGIN
  BLOCK "StringFileInfo"
  BEGIN BLOCK "040904E4" /* Language type = U.S English(0x0409) and Character Set = Windows, Multilingual(0x04E4) */
    BEGIN
#ifdef COMMENTS
      VALUE "Comments", COMMENTS "\000"
#endif /* COMMENTS */
      VALUE "FileDescription", "PNG image compression library\000"
      VALUE "FileVersion", PNG_LIBPNG_VER_STRING "\000"
      VALUE "InternalName", PNG_LIBPNG_DLLFNAME QUOTE(PNG_LIBPNG_VER_MAJOR) DLLFNAME_POSTFIX " (Windows 32 bit)\000"
      VALUE "LegalCopyright", "\251 1998-2000 Glenn Randers-Pehrson\000"
      VALUE "OriginalFilename", PNG_LIBPNG_DLLFNAME QUOTE(PNG_LIBPNG_VER_MAJOR) DLLFNAME_POSTFIX ".DLL\000"
#ifdef PRIVATEBUILD
      VALUE "PrivateBuild", PRIVATEBUILD
#endif /* PRIVATEBUILD */
      VALUE "ProductName", "LibPNG\000"
      VALUE "ProductVersion", "1\000"
#ifdef SPECIALBUILD
      VALUE "SpecialBuild", SPECIALBUILD
#endif /* SPECIALBUILD */
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x0409, 0x04E4
  END
END
