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  module win32.winver;                                                                  11  module win32.winver;
    2                                                                                        12  
    3  // Translated from Microsoft Platform SDK August 2001 Edition                    |    13  private import win32.windef;
    4  // by Y.Tomino                                                                   <
                                                                                        >    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                                                                 |    37  enum {
    9  // #define VER_H                                                                 |    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                                                            |    55  enum {
   12  // extern "C" {                                                                  |    56          VFT_UNKNOWN    = 0,
   13  // #endif                                                                        |    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;                                                   |    65  enum {
   16  enum : uint { VS_VERSION_INFO = 1 }                                              |    66          VFT2_UNKNOWN         =  0,
   17  enum : uint { VS_USER_DEFINED = 100 }                                            |    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                                                                  |    83  enum : DWORD {
   20  enum : uint { VS_FFI_SIGNATURE = 0xFEEF04BD }                                    |    84          VFFF_ISSHAREDFILE = 1
   21  // #else                                                                         <
   22  // #...                                                                          <
   23  // #endif                                                                        <
   24  enum : uint { VS_FFI_STRUCVERSION = 0x00010000 }                                 <
   25  enum : uint { VS_FFI_FILEFLAGSMASK = 0x0000003F }                                <
                                                                                        >    85  }
   26                                                                                        86  
   27  enum : uint { VS_FF_DEBUG = 0x00000001 }                                         |    87  enum : DWORD {
   28  enum : uint { VS_FF_PRERELEASE = 0x00000002 }                                    |    88          VFF_CURNEDEST    = 1,
   29  enum : uint { VS_FF_PATCHED = 0x00000004 }                                       |    89          VFF_FILEINUSE    = 2,
   30  enum : uint { VS_FF_PRIVATEBUILD = 0x00000008 }                                  |    90          VFF_BUFFTOOSMALL = 4
   31  enum : uint { VS_FF_INFOINFERRED = 0x00000010 }                                  <
   32  enum : uint { VS_FF_SPECIALBUILD = 0x00000020 }                                  <
   33                                                                                   |    91  }
   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 }                                              <
   39                                                                                        92  
   40  enum : uint { VOS__BASE = 0x00000000 }                                           |    93  enum : DWORD {
   41  enum : uint { VOS__WINDOWS16 = 0x00000001 }                                      |    94          VIFF_FORCEINSTALL  = 1,
   42  enum : uint { VOS__PM16 = 0x00000002 }                                           |    95          VIFF_DONTDELETEOLD
   43  enum : uint { VOS__PM32 = 0x00000003 }                                           <
   44  enum : uint { VOS__WINDOWS32 = 0x00000004 }                                      <
   45                                                                                   |    96  }
   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 }                                    <
   51                                                                                        97  
   52  enum : uint { VFT_UNKNOWN = 0x00000000 }                                         |    98  enum {
   53  enum : uint { VFT_APP = 0x00000001 }                                             |    99          VIF_TEMPFILE         = 0x00001,
   54  enum : uint { VFT_DLL = 0x00000002 }                                             |   100          VIF_MISMATCH         = 0x00002,
   55  enum : uint { VFT_DRV = 0x00000003 }                                             |   101          VIF_SRCOLD           = 0x00004,
   56  enum : uint { VFT_FONT = 0x00000004 }                                            |   102          VIF_DIFFLANG         = 0x00008,
   57  enum : uint { VFT_VXD = 0x00000005 }                                             |   103          VIF_DIFFCODEPG       = 0x00010,
   58  enum : uint { VFT_STATIC_LIB = 0x00000007 }                                      |   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 }                                        |   120  struct VS_FIXEDFILEINFO {
   61  enum : uint { VFT2_DRV_PRINTER = 0x00000001 }                                    |   121          DWORD dwSignature;
   62  enum : uint { VFT2_DRV_KEYBOARD = 0x00000002 }                                   |   122          DWORD dwStrucVersion;
   63  enum : uint { VFT2_DRV_LANGUAGE = 0x00000003 }                                   |   123          DWORD dwFileVersionMS;
   64  enum : uint { VFT2_DRV_DISPLAY = 0x00000004 }                                    |   124          DWORD dwFileVersionLS;
   65  enum : uint { VFT2_DRV_MOUSE = 0x00000005 }                                      |   125          DWORD dwProductVersionMS;
   66  enum : uint { VFT2_DRV_NETWORK = 0x00000006 }                                    |   126          DWORD dwProductVersionLS;
   67  enum : uint { VFT2_DRV_SYSTEM = 0x00000007 }                                     |   127          DWORD dwFileFlagsMask;
   68  enum : uint { VFT2_DRV_INSTALLABLE = 0x00000008 }                                |   128          DWORD dwFileFlags;
   69  enum : uint { VFT2_DRV_SOUND = 0x00000009 }                                      |   129          DWORD dwFileOS;
   70  enum : uint { VFT2_DRV_COMM = 0x0000000A }                                       |   130          DWORD dwFileType;
   71  enum : uint { VFT2_DRV_INPUTMETHOD = 0x0000000B }                                |   131          DWORD dwFileSubtype;
   72  enum : uint { VFT2_DRV_VERSIONED_PRINTER = 0x0000000C }                          |   132          DWORD dwFileDateMS;
                                                                                        >   133          DWORD dwFileDateLS;
   73                                                                                   |   134  }
   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 }                               <
  112                                                                                       135  
  113  // #ifndef RC_INVOKED              /* RC doesn't need to see the rest of this */ |   136  extern (Windows) {
  114                                                                                   <
                                                                                        >   137          DWORD VerFindFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPSTR, PUINT, LPSTR,
  115  struct tagVS_FIXEDFILEINFO {                                                     |   138            PUINT);
  116    DWORD dwSignature;                                                             |   139          DWORD VerFindFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, PUINT, LPWS
  117    DWORD dwStrucVersion;                                                          <
                                                                                        >   140            PUINT);
  118    DWORD dwFileVersionMS;                                                         |   141          DWORD VerInstallFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPS
  119    DWORD dwFileVersionLS;                                                         <
                                                                                        >   142            PUINT);
  120    DWORD dwProductVersionMS;                                                      |   143          DWORD VerInstallFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR
  121    DWORD dwProductVersionLS;                                                      |   144            LPWSTR, PUINT);
  122    DWORD dwFileFlagsMask;                                                         |   145          DWORD GetFileVersionInfoSizeA(LPCSTR, PDWORD);
  123    DWORD dwFileFlags;                                                             |   146          DWORD GetFileVersionInfoSizeW(LPCWSTR, PDWORD);
  124    DWORD dwFileOS;                                                                |   147          BOOL GetFileVersionInfoA(LPCSTR, DWORD, DWORD, PVOID);
  125    DWORD dwFileType;                                                              |   148          BOOL GetFileVersionInfoW(LPCWSTR, DWORD, DWORD, PVOID);
  126    DWORD dwFileSubtype;                                                           |   149          DWORD VerLanguageNameA(DWORD, LPSTR, DWORD);
  127    DWORD dwFileDateMS;                                                            |   150          DWORD VerLanguageNameW(DWORD, LPWSTR, DWORD);
  128    DWORD dwFileDateLS;                                                            |   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(                                       |   155  version (Unicode) {
  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;                                                  |   156          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                                                                <
                                                                                        >   157          alias VerQueryValueW VerQueryValue;
  179  alias VerInstallFileW VerInstallFile;                                            |   158          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;                            |   159          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;                                    |   160          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;                                          |   161          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;                                              |   162          alias VerQueryValueW VerQueryValue;
  248  // #else                                                                         |   163  } else {
  249  // #...                                                                          <
  250  // #endif // !UNICODE                                                            <
                                                                                        >   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;
  251                                                                                   |   171  }
  252  // #endif  /* !RC_INVOKED */                                                     <
  253                                                                                   <
  254  // #ifdef __cplusplus                                                            <
  255  // }                                                                             <
  256  // #endif                                                                        <
  257                                                                                   <
  258  // #endif  /* !VER_H */                                                          <
  259                                                                                   <