OLD | NEW |
(Empty) | |
| 1 // Copyright 2014 The Crashpad Authors. All rights reserved. |
| 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at |
| 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 // See the License for the specific language governing permissions and |
| 13 // limitations under the License. |
| 14 |
| 15 #ifndef CRASHPAD_COMPAT_NON_WIN_VERRSRC_H_ |
| 16 #define CRASHPAD_COMPAT_NON_WIN_VERRSRC_H_ |
| 17 |
| 18 #include <stdint.h> |
| 19 |
| 20 //! \file |
| 21 |
| 22 //! \brief The magic number for a VS_FIXEDFILEINFO structure, stored in |
| 23 //! VS_FIXEDFILEINFO::dwSignature. |
| 24 #define VS_FFI_SIGNATURE 0xfeef04bd |
| 25 |
| 26 //! \brief The version of a VS_FIXEDFILEINFO structure, stored in |
| 27 //! VS_FIXEDFILEINFO::dwStrucVersion. |
| 28 #define VS_FFI_STRUCVERSION 0x00010000 |
| 29 |
| 30 //! \anchor VS_FF_x |
| 31 //! \name VS_FF_* |
| 32 //! |
| 33 //! \brief File attribute values for VS_FIXEDFILEINFO::dwFileFlags and |
| 34 //! VS_FIXEDFILEINFO::dwFileFlagsMask. |
| 35 //! \{ |
| 36 #define VS_FF_DEBUG 0x00000001 |
| 37 #define VS_FF_PRERELEASE 0x00000002 |
| 38 #define VS_FF_PATCHED 0x00000004 |
| 39 #define VS_FF_PRIVATEBUILD 0x00000008 |
| 40 #define VS_FF_INFOINFERRED 0x00000010 |
| 41 #define VS_FF_SPECIALBUILD 0x00000020 |
| 42 //! \} |
| 43 |
| 44 //! \anchor VOS_x |
| 45 //! \name VOS_* |
| 46 //! |
| 47 //! \brief Operating system values for VS_FIXEDFILEINFO::dwFileOS. |
| 48 //! \{ |
| 49 #define VOS_UNKNOWN 0x00000000 |
| 50 #define VOS_DOS 0x00010000 |
| 51 #define VOS_OS216 0x00020000 |
| 52 #define VOS_OS232 0x00030000 |
| 53 #define VOS_NT 0x00040000 |
| 54 #define VOS_WINCE 0x00050000 |
| 55 #define VOS__BASE 0x00000000 |
| 56 #define VOS__WINDOWS16 0x00000001 |
| 57 #define VOS__PM16 0x00000002 |
| 58 #define VOS__PM32 0x00000003 |
| 59 #define VOS__WINDOWS32 0x00000004 |
| 60 #define VOS_DOS_WINDOWS16 0x00010001 |
| 61 #define VOS_DOS_WINDOWS32 0x00010004 |
| 62 #define VOS_OS216_PM16 0x00020002 |
| 63 #define VOS_OS232_PM32 0x00030003 |
| 64 #define VOS_NT_WINDOWS32 0x00040004 |
| 65 //! \} |
| 66 |
| 67 //! \anchor VFT_x |
| 68 //! \name VFT_* |
| 69 //! |
| 70 //! \brief File type values for VS_FIXEDFILEINFO::dwFileType. |
| 71 //! \{ |
| 72 #define VFT_UNKNOWN 0x00000000 |
| 73 #define VFT_APP 0x00000001 |
| 74 #define VFT_DLL 0x00000002 |
| 75 #define VFT_DRV 0x00000003 |
| 76 #define VFT_FONT 0x00000004 |
| 77 #define VFT_VXD 0x00000005 |
| 78 #define VFT_STATIC_LIB 0x00000007 |
| 79 //! \} |
| 80 |
| 81 //! \anchor VFT2_x |
| 82 //! \name VFT2_* |
| 83 //! |
| 84 //! \brief File subtype values for VS_FIXEDFILEINFO::dwFileSubtype. |
| 85 //! \{ |
| 86 #define VFT2_UNKNOWN 0x00000000 |
| 87 #define VFT2_DRV_PRINTER 0x00000001 |
| 88 #define VFT2_DRV_KEYBOARD 0x00000002 |
| 89 #define VFT2_DRV_LANGUAGE 0x00000003 |
| 90 #define VFT2_DRV_DISPLAY 0x00000004 |
| 91 #define VFT2_DRV_MOUSE 0x00000005 |
| 92 #define VFT2_DRV_NETWORK 0x00000006 |
| 93 #define VFT2_DRV_SYSTEM 0x00000007 |
| 94 #define VFT2_DRV_INSTALLABLE 0x00000008 |
| 95 #define VFT2_DRV_SOUND 0x00000009 |
| 96 #define VFT2_DRV_COMM 0x0000000A |
| 97 #define VFT2_DRV_INPUTMETHOD 0x0000000B |
| 98 #define VFT2_DRV_VERSIONED_PRINTER 0x0000000C |
| 99 #define VFT2_FONT_RASTER 0x00000001 |
| 100 #define VFT2_FONT_VECTOR 0x00000002 |
| 101 #define VFT2_FONT_TRUETYPE 0x00000003 |
| 102 //! \} |
| 103 |
| 104 //! \brief Version information for a file. |
| 105 //! |
| 106 //! On Windows, this information is derived from a file’s version information |
| 107 //! resource, and is obtained by calling `VerQueryValue()` with an `lpSubBlock` |
| 108 //! argument of `"\"` (a single backslash). |
| 109 struct VS_FIXEDFILEINFO { |
| 110 //! \brief The structure’s magic number, ::VS_FFI_SIGNATURE. |
| 111 uint32_t dwSignature; |
| 112 |
| 113 //! \brief The structure’s version, ::VS_FFI_STRUCVERSION. |
| 114 uint32_t dwStrucVersion; |
| 115 |
| 116 //! \brief The more-significant portion of the file’s version number. |
| 117 //! |
| 118 //! This field contains the first two components of a four-component version |
| 119 //! number. For a file whose version is 1.2.3.4, this field would be |
| 120 //! `0x00010002`. |
| 121 //! |
| 122 //! \sa dwFileVersionLS |
| 123 uint32_t dwFileVersionMS; |
| 124 |
| 125 //! \brief The less-significant portion of the file’s version number. |
| 126 //! |
| 127 //! This field contains the last two components of a four-component version |
| 128 //! number. For a file whose version is 1.2.3.4, this field would be |
| 129 //! `0x00030004`. |
| 130 //! |
| 131 //! \sa dwFileVersionMS |
| 132 uint32_t dwFileVersionLS; |
| 133 |
| 134 //! \brief The more-significant portion of the product’s version number. |
| 135 //! |
| 136 //! This field contains the first two components of a four-component version |
| 137 //! number. For a product whose version is 1.2.3.4, this field would be |
| 138 //! `0x00010002`. |
| 139 //! |
| 140 //! \sa dwProductVersionLS |
| 141 uint32_t dwProductVersionMS; |
| 142 |
| 143 //! \brief The less-significant portion of the product’s version number. |
| 144 //! |
| 145 //! This field contains the last two components of a four-component version |
| 146 //! number. For a product whose version is 1.2.3.4, this field would be |
| 147 //! `0x00030004`. |
| 148 //! |
| 149 //! \sa dwProductVersionMS |
| 150 uint32_t dwProductVersionLS; |
| 151 |
| 152 //! \brief A bitmask of \ref VS_FF_x "VS_FF_*" values indicating which bits in |
| 153 //! #dwFileFlags are valid. |
| 154 uint32_t dwFileFlagsMask; |
| 155 |
| 156 //! \brief A bitmask of \ref VS_FF_x "VS_FF_*" values identifying attributes |
| 157 //! of the file. Only bits present in #dwFileFlagsMask are valid. |
| 158 uint32_t dwFileFlags; |
| 159 |
| 160 //! \brief The file’s intended operating system, a value of \ref VOS_x |
| 161 //! "VOS_*". |
| 162 uint32_t dwFileOS; |
| 163 |
| 164 //! \brief The file’s type, a value of \ref VFT_x "VFT_*". |
| 165 uint32_t dwFileType; |
| 166 |
| 167 //! \brief The file’s subtype, a value of \ref VFT2_x "VFT2_*" corresponding |
| 168 //! to its #dwFileType, if the file type has subtypes. |
| 169 uint32_t dwFileSubtype; |
| 170 |
| 171 //! \brief The more-significant portion of the file’s creation date. |
| 172 //! |
| 173 //! The intended encoding of this field is unknown. This field is unused and |
| 174 //! always has the value `0`. |
| 175 uint32_t dwFileDateMS; |
| 176 |
| 177 //! \brief The less-significant portion of the file’s creation date. |
| 178 //! |
| 179 //! The intended encoding of this field is unknown. This field is unused and |
| 180 //! always has the value `0`. |
| 181 uint32_t dwFileDateLS; |
| 182 }; |
| 183 |
| 184 #endif // CRASHPAD_COMPAT_NON_WIN_VERRSRC_H_ |
OLD | NEW |