Module:    Win32-version
Copyright:    Original Code is Copyright (c) 1995-2004 Functional Objects, Inc.
              All rights reserved.
License:      See License.txt in this distribution for details.
Warranty:     Distributed WITHOUT WARRANTY OF ANY KIND

// This file is automatically generated from "winver.h"; do not edit.


// Adapted from:
/*****************************************************************************\
*                                                                             *
* winver.h -    Version management functions, types, and definitions          *
*                                                                             *
*               Include file for VER.DLL.  This library is                    *
*               designed to allow version stamping of Windows executable files*
*               and of special .VER files for DOS executable files.           *
*                                                                             *
*          
*                                                                             *
\*****************************************************************************/
define inline-only constant $VS-VERSION-INFO            =    1;
define inline-only constant $VS-USER-DEFINED            =  100;
define inline-only constant $VS-FFI-SIGNATURE           =
	as(<machine-word>, #xFEEF04BD);
define inline-only constant $VS-FFI-STRUCVERSION        = #x00010000;
define inline-only constant $VS-FFI-FILEFLAGSMASK       = #x0000003F;
define inline-only constant $VS-FF-PRERELEASE           = #x00000002;
define inline-only constant $VS-FF-PATCHED              = #x00000004;
define inline-only constant $VS-FF-PRIVATEBUILD         = #x00000008;
define inline-only constant $VS-FF-INFOINFERRED         = #x00000010;
define inline-only constant $VS-FF-SPECIALBUILD         = #x00000020;
define inline-only constant $VOS-UNKNOWN                = #x00000000;
define inline-only constant $VOS-DOS                    = #x00010000;
define inline-only constant $VOS-OS216                  = #x00020000;
define inline-only constant $VOS-OS232                  = #x00030000;
define inline-only constant $VOS-NT                     = #x00040000;
define inline-only constant $VOS--BASE                  = #x00000000;
define inline-only constant $VOS--WINDOWS16             = #x00000001;
define inline-only constant $VOS--PM16                  = #x00000002;
define inline-only constant $VOS--PM32                  = #x00000003;
define inline-only constant $VOS--WINDOWS32             = #x00000004;
define inline-only constant $VOS-DOS-WINDOWS16          = #x00010001;
define inline-only constant $VOS-DOS-WINDOWS32          = #x00010004;
define inline-only constant $VOS-OS216-PM16             = #x00020002;
define inline-only constant $VOS-OS232-PM32             = #x00030003;
define inline-only constant $VOS-NT-WINDOWS32           = #x00040004;
define inline-only constant $VFT-UNKNOWN                = #x00000000;
define inline-only constant $VFT-APP                    = #x00000001;
define inline-only constant $VFT-DLL                    = #x00000002;
define inline-only constant $VFT-DRV                    = #x00000003;
define inline-only constant $VFT-FONT                   = #x00000004;
define inline-only constant $VFT-VXD                    = #x00000005;
define inline-only constant $VFT-STATIC-LIB             = #x00000007;
define inline-only constant $VFT2-UNKNOWN               = #x00000000;
define inline-only constant $VFT2-DRV-PRINTER           = #x00000001;
define inline-only constant $VFT2-DRV-KEYBOARD          = #x00000002;
define inline-only constant $VFT2-DRV-LANGUAGE          = #x00000003;
define inline-only constant $VFT2-DRV-DISPLAY           = #x00000004;
define inline-only constant $VFT2-DRV-MOUSE             = #x00000005;
define inline-only constant $VFT2-DRV-NETWORK           = #x00000006;
define inline-only constant $VFT2-DRV-SYSTEM            = #x00000007;
define inline-only constant $VFT2-DRV-INSTALLABLE       = #x00000008;
define inline-only constant $VFT2-DRV-SOUND             = #x00000009;
define inline-only constant $VFT2-DRV-COMM              = #x0000000A;
define inline-only constant $VFT2-DRV-INPUTMETHOD       = #x0000000B;
define inline-only constant $VFT2-FONT-RASTER           = #x00000001;
define inline-only constant $VFT2-FONT-VECTOR           = #x00000002;
define inline-only constant $VFT2-FONT-TRUETYPE         = #x00000003;
define inline-only constant $VFFF-ISSHAREDFILE          = #x0001;
define inline-only constant $VFF-CURNEDEST              = #x0001;
define inline-only constant $VFF-FILEINUSE              = #x0002;
define inline-only constant $VFF-BUFFTOOSMALL           = #x0004;
define inline-only constant $VIFF-FORCEINSTALL          = #x0001;
define inline-only constant $VIFF-DONTDELETEOLD         = #x0002;
define inline-only constant $VIF-TEMPFILE               = #x00000001;
define inline-only constant $VIF-MISMATCH               = #x00000002;
define inline-only constant $VIF-SRCOLD                 = #x00000004;
define inline-only constant $VIF-DIFFLANG               = #x00000008;
define inline-only constant $VIF-DIFFCODEPG             = #x00000010;
define inline-only constant $VIF-DIFFTYPE               = #x00000020;
define inline-only constant $VIF-WRITEPROT              = #x00000040;
define inline-only constant $VIF-FILEINUSE              = #x00000080;
define inline-only constant $VIF-OUTOFSPACE             = #x00000100;
define inline-only constant $VIF-ACCESSVIOLATION        = #x00000200;
define inline-only constant $VIF-SHARINGVIOLATION       = #x00000400;
define inline-only constant $VIF-CANNOTCREATE           = #x00000800;
define inline-only constant $VIF-CANNOTDELETE           = #x00001000;
define inline-only constant $VIF-CANNOTRENAME           = #x00002000;
define inline-only constant $VIF-CANNOTDELETECUR        = #x00004000;
define inline-only constant $VIF-OUTOFMEMORY            = #x00008000;
define inline-only constant $VIF-CANNOTREADSRC          = #x00010000;
define inline-only constant $VIF-CANNOTREADDST          = #x00020000;
define inline-only constant $VIF-BUFFTOOSMALL           = #x00040000;

define C-struct <VS-FIXEDFILEINFO>
  inline-only slot dwSignature-value :: <DWORD>;
  inline-only slot dwStrucVersion-value :: <DWORD>;
  inline-only slot dwFileVersionMS-value :: <DWORD>;
  inline-only slot dwFileVersionLS-value :: <DWORD>;
  inline-only slot dwProductVersionMS-value :: <DWORD>;
  inline-only slot dwProductVersionLS-value :: <DWORD>;
  inline-only slot dwFileFlagsMask-value :: <DWORD>;
  inline-only slot dwFileFlags-value :: <DWORD>;
  inline-only slot dwFileOS-value  :: <DWORD>;
  inline-only slot dwFileType-value :: <DWORD>;
  inline-only slot dwFileSubtype-value :: <DWORD>;
  inline-only slot dwFileDateMS-value :: <DWORD>;
  inline-only slot dwFileDateLS-value :: <DWORD>;
  pointer-type-name: <LPVS-FIXEDFILEINFO>;
  c-name: "struct tagVS_FIXEDFILEINFO";
end C-struct <VS-FIXEDFILEINFO>;

define inline-only C-function VerFindFile
  parameter uFlags     :: <DWORD>;
  parameter szFileName :: <LPSTR>;
  parameter szWinDir   :: <LPSTR>;
  parameter szAppDir   :: <LPSTR>;
  parameter szCurDir   :: <LPSTR>;
  parameter lpuCurDirLen :: <PUINT>;
  parameter szDestDir  :: <LPSTR>;
  parameter lpuDestDirLen :: <PUINT>;
  result value :: <DWORD>;
  c-name: "VerFindFileA", c-modifiers: "__stdcall";
end;

define inline-only C-function VerInstallFile
  parameter uFlags     :: <DWORD>;
  parameter szSrcFileName :: <LPSTR>;
  parameter szDestFileName :: <LPSTR>;
  parameter szSrcDir   :: <LPSTR>;
  parameter szDestDir  :: <LPSTR>;
  parameter szCurDir   :: <LPSTR>;
  parameter szTmpFile  :: <LPSTR>;
  parameter lpuTmpFileLen :: <PUINT>;
  result value :: <DWORD>;
  c-name: "VerInstallFileA", c-modifiers: "__stdcall";
end;

define inline-only C-function GetFileVersionInfoSize
  parameter lptstrFilename :: <LPSTR>;
  output parameter lpdwHandle :: <LPDWORD>;
  result value :: <DWORD>;
  c-name: "GetFileVersionInfoSizeA", c-modifiers: "__stdcall";
end;

define inline-only C-function GetFileVersionInfo
  parameter lptstrFilename :: <LPSTR>;
  parameter dwHandle   :: <DWORD>;
  parameter dwLen      :: <DWORD>;
  parameter lpData     :: <LPVOID>;
  result value :: <BOOL>;
  c-name: "GetFileVersionInfoA", c-modifiers: "__stdcall";
end;

define inline-only C-function VerLanguageName
  parameter wLang      :: <DWORD>;
  parameter szLang     :: <LPSTR>;
  parameter nSize      :: <DWORD>;
  result value :: <DWORD>;
  c-name: "VerLanguageNameA", c-modifiers: "__stdcall";
end;

define inline-only C-function VerQueryValue
  parameter pBlock     ::  /* const */ <LPVOID>;
  parameter lpSubBlock :: <LPSTR>;
  output parameter lplpBuffer :: <LPLPVOID>;
  output parameter puLen :: <PUINT>;
  result value :: <BOOL>;
  c-name: "VerQueryValueA", c-modifiers: "__stdcall";
end;

