Differences From Artifact [e2bb31df25854a97]:
- File        
src/win32/winver.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
 
 
To Artifact [4fd71adb18fd2e65]:
- File        
src/win32/winver.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
 
 
            1  +/***********************************************************************\
            2  +*                                winver.d                               *
            3  +*                                                                       *
            4  +*                       Windows API header module                       *
            5  +*                                                                       *
            6  +*                 Translated from MinGW Windows headers                 *
            7  +*                           by Stewart Gordon                           *
            8  +*                                                                       *
            9  +*                       Placed into public domain                       *
           10  +\***********************************************************************/
     1     11   module win32.winver;
     2     12   
     3         -// Translated from Microsoft Platform SDK August 2001 Edition
     4         -// by Y.Tomino
           13  +private import win32.windef;
           14  +
           15  +// FIXME: type weirdness
           16  +enum {
           17  + VS_FILE_INFO    =  16,
           18  + VS_VERSION_INFO =   1,
           19  + VS_USER_DEFINED = 100
           20  +}
           21  +
           22  +enum {
           23  + VS_FFI_SIGNATURE     = 0xFEEF04BD,
           24  + VS_FFI_STRUCVERSION  =    0x10000,
           25  + VS_FFI_FILEFLAGSMASK =       0x3F
           26  +}
     5     27   
     6         -import win32.winuser;
           28  +enum {
           29  + VS_FF_DEBUG        =  1,
           30  + VS_FF_PRERELEASE   =  2,
           31  + VS_FF_PATCHED      =  4,
           32  + VS_FF_PRIVATEBUILD =  8,
           33  + VS_FF_INFOINFERRED = 16,
           34  + VS_FF_SPECIALBUILD = 32
           35  +}
     7     36   
     8         -// #ifndef VER_H
     9         -// #define VER_H
           37  +enum {
           38  + VOS_UNKNOWN       =       0,
           39  + VOS_DOS           = 0x10000,
           40  + VOS_OS216         = 0x20000,
           41  + VOS_OS232         = 0x30000,
           42  + VOS_NT            = 0x40000,
           43  + VOS__BASE         =       0,
           44  + VOS__WINDOWS16    =       1,
           45  + VOS__PM16         =       2,
           46  + VOS__PM32         =       3,
           47  + VOS__WINDOWS32    =       4,
           48  + VOS_DOS_WINDOWS16 = 0x10001,
           49  + VOS_DOS_WINDOWS32 = 0x10004,
           50  + VOS_OS216_PM16    = 0x20002,
           51  + VOS_OS232_PM32    = 0x30003,
           52  + VOS_NT_WINDOWS32  = 0x40004
           53  +}
    10     54   
    11         -// #ifdef __cplusplus
    12         -// extern "C" {
    13         -// #endif
           55  +enum {
           56  + VFT_UNKNOWN    = 0,
           57  + VFT_APP        = 1,
           58  + VFT_DLL        = 2,
           59  + VFT_DRV        = 3,
           60  + VFT_FONT       = 4,
           61  + VFT_VXD        = 5,
           62  + VFT_STATIC_LIB = 7
           63  +}
    14     64   
    15         -alias RT_VERSION VS_FILE_INFO;
    16         -enum : uint { VS_VERSION_INFO = 1 }
    17         -enum : uint { VS_USER_DEFINED = 100 }
           65  +enum {
           66  + VFT2_UNKNOWN         =  0,
           67  + VFT2_DRV_PRINTER     =  1,
           68  + VFT2_DRV_KEYBOARD    =  2,
           69  + VFT2_DRV_LANGUAGE    =  3,
           70  + VFT2_DRV_DISPLAY     =  4,
           71  + VFT2_DRV_MOUSE       =  5,
           72  + VFT2_DRV_NETWORK     =  6,
           73  + VFT2_DRV_SYSTEM      =  7,
           74  + VFT2_DRV_INSTALLABLE =  8,
           75  + VFT2_DRV_SOUND       =  9,
           76  + VFT2_DRV_COMM        = 10,
           77  + VFT2_DRV_INPUTMETHOD = 11,
           78  + VFT2_FONT_RASTER     =  1,
           79  + VFT2_FONT_VECTOR     =  2,
           80  + VFT2_FONT_TRUETYPE   =  3
           81  +}
    18     82   
    19         -// #ifndef _MAC
    20         -enum : uint { VS_FFI_SIGNATURE = 0xFEEF04BD }
    21         -// #else
    22         -// #...
    23         -// #endif
    24         -enum : uint { VS_FFI_STRUCVERSION = 0x00010000 }
    25         -enum : uint { VS_FFI_FILEFLAGSMASK = 0x0000003F }
           83  +enum : DWORD {
           84  + VFFF_ISSHAREDFILE = 1
           85  +}
    26     86   
    27         -enum : uint { VS_FF_DEBUG = 0x00000001 }
    28         -enum : uint { VS_FF_PRERELEASE = 0x00000002 }
    29         -enum : uint { VS_FF_PATCHED = 0x00000004 }
    30         -enum : uint { VS_FF_PRIVATEBUILD = 0x00000008 }
    31         -enum : uint { VS_FF_INFOINFERRED = 0x00000010 }
    32         -enum : uint { VS_FF_SPECIALBUILD = 0x00000020 }
    33         -
    34         -enum : uint { VOS_UNKNOWN = 0x00000000 }
    35         -enum : uint { VOS_DOS = 0x00010000 }
    36         -enum : uint { VOS_OS216 = 0x00020000 }
    37         -enum : uint { VOS_OS232 = 0x00030000 }
    38         -enum : uint { VOS_NT = 0x00040000 }
           87  +enum : DWORD {
           88  + VFF_CURNEDEST    = 1,
           89  + VFF_FILEINUSE    = 2,
           90  + VFF_BUFFTOOSMALL = 4
           91  +}
    39     92   
    40         -enum : uint { VOS__BASE = 0x00000000 }
    41         -enum : uint { VOS__WINDOWS16 = 0x00000001 }
    42         -enum : uint { VOS__PM16 = 0x00000002 }
    43         -enum : uint { VOS__PM32 = 0x00000003 }
    44         -enum : uint { VOS__WINDOWS32 = 0x00000004 }
    45         -
    46         -enum : uint { VOS_DOS_WINDOWS16 = 0x00010001 }
    47         -enum : uint { VOS_DOS_WINDOWS32 = 0x00010004 }
    48         -enum : uint { VOS_OS216_PM16 = 0x00020002 }
    49         -enum : uint { VOS_OS232_PM32 = 0x00030003 }
    50         -enum : uint { VOS_NT_WINDOWS32 = 0x00040004 }
           93  +enum : DWORD {
           94  + VIFF_FORCEINSTALL  = 1,
           95  + VIFF_DONTDELETEOLD
           96  +}
    51     97   
    52         -enum : uint { VFT_UNKNOWN = 0x00000000 }
    53         -enum : uint { VFT_APP = 0x00000001 }
    54         -enum : uint { VFT_DLL = 0x00000002 }
    55         -enum : uint { VFT_DRV = 0x00000003 }
    56         -enum : uint { VFT_FONT = 0x00000004 }
    57         -enum : uint { VFT_VXD = 0x00000005 }
    58         -enum : uint { VFT_STATIC_LIB = 0x00000007 }
           98  +enum {
           99  + VIF_TEMPFILE         = 0x00001,
          100  + VIF_MISMATCH         = 0x00002,
          101  + VIF_SRCOLD           = 0x00004,
          102  + VIF_DIFFLANG         = 0x00008,
          103  + VIF_DIFFCODEPG       = 0x00010,
          104  + VIF_DIFFTYPE         = 0x00020,
          105  + VIF_WRITEPROT        = 0x00040,
          106  + VIF_FILEINUSE        = 0x00080,
          107  + VIF_OUTOFSPACE       = 0x00100,
          108  + VIF_ACCESSVIOLATION  = 0x00200,
          109  + VIF_SHARINGVIOLATION = 0x00400,
          110  + VIF_CANNOTCREATE     = 0x00800,
          111  + VIF_CANNOTDELETE     = 0x01000,
          112  + VIF_CANNOTRENAME     = 0x02000,
          113  + VIF_CANNOTDELETECUR  = 0x04000,
          114  + VIF_OUTOFMEMORY      = 0x08000,
          115  + VIF_CANNOTREADSRC    = 0x10000,
          116  + VIF_CANNOTREADDST    = 0x20000,
          117  + VIF_BUFFTOOSMALL     = 0x40000
          118  +}
    59    119   
    60         -enum : uint { VFT2_UNKNOWN = 0x00000000 }
    61         -enum : uint { VFT2_DRV_PRINTER = 0x00000001 }
    62         -enum : uint { VFT2_DRV_KEYBOARD = 0x00000002 }
    63         -enum : uint { VFT2_DRV_LANGUAGE = 0x00000003 }
    64         -enum : uint { VFT2_DRV_DISPLAY = 0x00000004 }
    65         -enum : uint { VFT2_DRV_MOUSE = 0x00000005 }
    66         -enum : uint { VFT2_DRV_NETWORK = 0x00000006 }
    67         -enum : uint { VFT2_DRV_SYSTEM = 0x00000007 }
    68         -enum : uint { VFT2_DRV_INSTALLABLE = 0x00000008 }
    69         -enum : uint { VFT2_DRV_SOUND = 0x00000009 }
    70         -enum : uint { VFT2_DRV_COMM = 0x0000000A }
    71         -enum : uint { VFT2_DRV_INPUTMETHOD = 0x0000000B }
    72         -enum : uint { VFT2_DRV_VERSIONED_PRINTER = 0x0000000C }
    73         -
    74         -enum : uint { VFT2_FONT_RASTER = 0x00000001 }
    75         -enum : uint { VFT2_FONT_VECTOR = 0x00000002 }
    76         -enum : uint { VFT2_FONT_TRUETYPE = 0x00000003 }
    77         -
    78         -enum : uint { VFFF_ISSHAREDFILE = 0x0001 }
    79         -
    80         -enum : uint { VFF_CURNEDEST = 0x0001 }
    81         -enum : uint { VFF_FILEINUSE = 0x0002 }
    82         -enum : uint { VFF_BUFFTOOSMALL = 0x0004 }
    83         -
    84         -enum : uint { VIFF_FORCEINSTALL = 0x0001 }
    85         -enum : uint { VIFF_DONTDELETEOLD = 0x0002 }
    86         -
    87         -enum : uint { VIF_TEMPFILE = 0x00000001 }
    88         -enum : uint { VIF_MISMATCH = 0x00000002 }
    89         -enum : uint { VIF_SRCOLD = 0x00000004 }
    90         -
    91         -enum : uint { VIF_DIFFLANG = 0x00000008 }
    92         -enum : uint { VIF_DIFFCODEPG = 0x00000010 }
    93         -enum : uint { VIF_DIFFTYPE = 0x00000020 }
    94         -
    95         -enum : uint { VIF_WRITEPROT = 0x00000040 }
    96         -enum : uint { VIF_FILEINUSE = 0x00000080 }
    97         -enum : uint { VIF_OUTOFSPACE = 0x00000100 }
    98         -enum : uint { VIF_ACCESSVIOLATION = 0x00000200 }
    99         -enum : uint { VIF_SHARINGVIOLATION = 0x00000400 }
   100         -enum : uint { VIF_CANNOTCREATE = 0x00000800 }
   101         -enum : uint { VIF_CANNOTDELETE = 0x00001000 }
   102         -enum : uint { VIF_CANNOTRENAME = 0x00002000 }
   103         -enum : uint { VIF_CANNOTDELETECUR = 0x00004000 }
   104         -enum : uint { VIF_OUTOFMEMORY = 0x00008000 }
   105         -
   106         -enum : uint { VIF_CANNOTREADSRC = 0x00010000 }
   107         -enum : uint { VIF_CANNOTREADDST = 0x00020000 }
   108         -
   109         -enum : uint { VIF_BUFFTOOSMALL = 0x00040000 }
   110         -enum : uint { VIF_CANNOTLOADLZ32 = 0x00080000 }
   111         -enum : uint { VIF_CANNOTLOADCABINET = 0x00100000 }
          120  +struct VS_FIXEDFILEINFO {
          121  + DWORD dwSignature;
          122  + DWORD dwStrucVersion;
          123  + DWORD dwFileVersionMS;
          124  + DWORD dwFileVersionLS;
          125  + DWORD dwProductVersionMS;
          126  + DWORD dwProductVersionLS;
          127  + DWORD dwFileFlagsMask;
          128  + DWORD dwFileFlags;
          129  + DWORD dwFileOS;
          130  + DWORD dwFileType;
          131  + DWORD dwFileSubtype;
          132  + DWORD dwFileDateMS;
          133  + DWORD dwFileDateLS;
          134  +}
   112    135   
   113         -// #ifndef RC_INVOKED              /* RC doesn't need to see the rest of this */
   114         -
   115         -struct tagVS_FIXEDFILEINFO {
   116         -  DWORD dwSignature;
   117         -  DWORD dwStrucVersion;
   118         -  DWORD dwFileVersionMS;
   119         -  DWORD dwFileVersionLS;
   120         -  DWORD dwProductVersionMS;
   121         -  DWORD dwProductVersionLS;
   122         -  DWORD dwFileFlagsMask;
   123         -  DWORD dwFileFlags;
   124         -  DWORD dwFileOS;
   125         -  DWORD dwFileType;
   126         -  DWORD dwFileSubtype;
   127         -  DWORD dwFileDateMS;
   128         -  DWORD dwFileDateLS;
          136  +extern (Windows) {
          137  + DWORD VerFindFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPSTR, PUINT, LPSTR,
          138  +   PUINT);
          139  + DWORD VerFindFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, PUINT, LPWSTR,
          140  +   PUINT);
          141  + DWORD VerInstallFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPSTR,
          142  +   PUINT);
          143  + DWORD VerInstallFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR,
          144  +   LPWSTR, PUINT);
          145  + DWORD GetFileVersionInfoSizeA(LPCSTR, PDWORD);
          146  + DWORD GetFileVersionInfoSizeW(LPCWSTR, PDWORD);
          147  + BOOL GetFileVersionInfoA(LPCSTR, DWORD, DWORD, PVOID);
          148  + BOOL GetFileVersionInfoW(LPCWSTR, DWORD, DWORD, PVOID);
          149  + DWORD VerLanguageNameA(DWORD, LPSTR, DWORD);
          150  + DWORD VerLanguageNameW(DWORD, LPWSTR, DWORD);
          151  + BOOL VerQueryValueA(LPCVOID, LPCSTR, LPVOID*, PUINT);
          152  + BOOL VerQueryValueW(LPCVOID, LPCWSTR, LPVOID*, PUINT);
   129    153   }
   130         -alias tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO;
   131    154   
   132         -extern(Windows) export DWORD VerFindFileA(
   133         -        DWORD uFlags,
   134         -        LPSTR szFileName,
   135         -        LPSTR szWinDir,
   136         -        LPSTR szAppDir,
   137         -        LPSTR szCurDir,
   138         -        PUINT lpuCurDirLen,
   139         -        LPSTR szDestDir,
   140         -        PUINT lpuDestDirLen
   141         -        );
   142         -extern(Windows) export DWORD VerFindFileW(
   143         -        DWORD uFlags,
   144         -        LPWSTR szFileName,
   145         -        LPWSTR szWinDir,
   146         -        LPWSTR szAppDir,
   147         -        LPWSTR szCurDir,
   148         -        PUINT lpuCurDirLen,
   149         -        LPWSTR szDestDir,
   150         -        PUINT lpuDestDirLen
   151         -        );
   152         -// #ifdef UNICODE
   153         -alias VerFindFileW VerFindFile;
   154         -// #else
   155         -// #...
   156         -// #endif // !UNICODE
   157         -
   158         -extern(Windows) export DWORD VerInstallFileA(
   159         -        DWORD uFlags,
   160         -        LPSTR szSrcFileName,
   161         -        LPSTR szDestFileName,
   162         -        LPSTR szSrcDir,
   163         -        LPSTR szDestDir,
   164         -        LPSTR szCurDir,
   165         -        LPSTR szTmpFile,
   166         -        PUINT lpuTmpFileLen
   167         -        );
   168         -extern(Windows) export DWORD VerInstallFileW(
   169         -        DWORD uFlags,
   170         -        LPWSTR szSrcFileName,
   171         -        LPWSTR szDestFileName,
   172         -        LPWSTR szSrcDir,
   173         -        LPWSTR szDestDir,
   174         -        LPWSTR szCurDir,
   175         -        LPWSTR szTmpFile,
   176         -        PUINT lpuTmpFileLen
   177         -        );
   178         -// #ifdef UNICODE
   179         -alias VerInstallFileW VerInstallFile;
   180         -// #else
   181         -// #...
   182         -// #endif // !UNICODE
   183         -
   184         -extern(Windows) export DWORD GetFileVersionInfoSizeA(
   185         -        LPSTR lptstrFilename,
   186         -        LPDWORD lpdwHandle
   187         -        );
   188         -
   189         -extern(Windows) export DWORD GetFileVersionInfoSizeW(
   190         -        LPWSTR lptstrFilename,
   191         -        LPDWORD lpdwHandle
   192         -        );
   193         -// #ifdef UNICODE
   194         -alias GetFileVersionInfoSizeW GetFileVersionInfoSize;
   195         -// #else
   196         -// #...
   197         -// #endif // !UNICODE
   198         -
   199         -extern(Windows) export BOOL GetFileVersionInfoA(
   200         -        LPSTR lptstrFilename,
   201         -        DWORD dwHandle,
   202         -        DWORD dwLen,
   203         -        LPVOID lpData
   204         -        );
   205         -
   206         -extern(Windows) export BOOL GetFileVersionInfoW(
   207         -        LPWSTR lptstrFilename,
   208         -        DWORD dwHandle,
   209         -        DWORD dwLen,
   210         -        LPVOID lpData
   211         -        );
   212         -// #ifdef UNICODE
   213         -alias GetFileVersionInfoW GetFileVersionInfo;
   214         -// #else
   215         -// #...
   216         -// #endif // !UNICODE
   217         -
   218         -extern(Windows) export DWORD VerLanguageNameA(
   219         -        DWORD wLang,
   220         -        LPSTR szLang,
   221         -        DWORD nSize
   222         -        );
   223         -extern(Windows) export DWORD VerLanguageNameW(
   224         -        DWORD wLang,
   225         -        LPWSTR szLang,
   226         -        DWORD nSize
   227         -        );
   228         -// #ifdef UNICODE
   229         -alias VerLanguageNameW VerLanguageName;
   230         -// #else
   231         -// #...
   232         -// #endif // !UNICODE
   233         -
   234         -extern(Windows) export BOOL VerQueryValueA(
   235         -         LPVOID pBlock,
   236         -        LPSTR lpSubBlock,
   237         -        LPVOID * lplpBuffer,
   238         -        PUINT puLen
   239         -        );
   240         -extern(Windows) export BOOL VerQueryValueW(
   241         -         LPVOID pBlock,
   242         -        LPWSTR lpSubBlock,
   243         -        LPVOID * lplpBuffer,
   244         -        PUINT puLen
   245         -        );
   246         -// #ifdef UNICODE
   247         -alias VerQueryValueW VerQueryValue;
   248         -// #else
   249         -// #...
   250         -// #endif // !UNICODE
   251         -
   252         -// #endif  /* !RC_INVOKED */
   253         -
   254         -// #ifdef __cplusplus
   255         -// }
   256         -// #endif
   257         -
   258         -// #endif  /* !VER_H */
   259         -
          155  +version (Unicode) {
          156  + alias VerFindFileW VerFindFile;
          157  + alias VerQueryValueW VerQueryValue;
          158  + alias VerInstallFileW VerInstallFile;
          159  + alias GetFileVersionInfoSizeW GetFileVersionInfoSize;
          160  + alias GetFileVersionInfoW GetFileVersionInfo;
          161  + alias VerLanguageNameW VerLanguageName;
          162  + alias VerQueryValueW VerQueryValue;
          163  +} else {
          164  + alias VerQueryValueA VerQueryValue;
          165  + alias VerFindFileA VerFindFile;
          166  + alias VerInstallFileA VerInstallFile;
          167  + alias GetFileVersionInfoSizeA GetFileVersionInfoSize;
          168  + alias GetFileVersionInfoA GetFileVersionInfo;
          169  + alias VerLanguageNameA VerLanguageName;
          170  + alias VerQueryValueA VerQueryValue;
          171  +}