Documentation ¶
Overview ¶
Package goversioninfo creates a syso file which contains Microsoft Version Information and an optional icon.
Index ¶
- Constants
- type CharsetID
- type FileVersion
- type FixedFileInfo
- type LangID
- type SizedReader
- type StringFileInfo
- type Translation
- type VSFixedFileInfo
- type VSString
- type VSStringFileInfo
- type VSStringTable
- type VSVar
- type VSVarFileInfo
- type VSVersionInfo
- type VarFileInfo
- type VersionInfo
- func (v *VersionInfo) Build()
- func (vi *VersionInfo) ParseJSON(jsonBytes []byte) error
- func (vi *VersionInfo) Walk()
- func (vi *VersionInfo) WriteGo(filename, packageName string) error
- func (vi *VersionInfo) WriteHex(filename string) error
- func (vi *VersionInfo) WriteSyso(filename string, arch string) error
Examples ¶
Constants ¶
const ( Cs7ASCII = CharsetID(0) // Cs7ASCII: 0 0000 7-bit ASCII CsJIS = CharsetID(932) // CsJIS: 932 03A4 Japan (Shift ? JIS X-0208) CsKSC = CharsetID(949) // CsKSC: 949 03B5 Korea (Shift ? KSC 5601) CsBig5 = CharsetID(950) // CsBig5: 950 03B6 Taiwan (Big5) CsUnicode = CharsetID(1200) // CsUnicode: 1200 04B0 Unicode CsLatin2 = CharsetID(1250) // CsLatin2: 1250 04E2 Latin-2 (Eastern European) CsCyrillic = CharsetID(1251) // CsCyrillic: 1251 04E3 Cyrillic CsMultilingual = CharsetID(1252) // CsMultilingual: 1252 04E4 Multilingual CsGreek = CharsetID(1253) // CsGreek: 1253 04E5 Greek CsTurkish = CharsetID(1254) // CsTurkish: 1254 04E6 Turkish CsHebrew = CharsetID(1255) // CsHebrew: 1255 04E7 Hebrew CsArabic = CharsetID(1256) // CsArabic: 1256 04E8 Arabic )
CharsetID constants
const ( LngArabic = LangID(0x0401) // LngArabic: 0x0401 Arabic LngBulgarian = LangID(0x0402) // LngBulgarian: 0x0402 Bulgarian LngCatalan = LangID(0x0403) // LngCatalan: 0x0403 Catalan LngTraditionalChinese = LangID(0x0404) // LngTraditionalChinese: 0x0404 Traditional Chinese LngCzech = LangID(0x0405) // LngCzech: 0x0405 Czech LngDanish = LangID(0x0406) // LngDanish: 0x0406 Danish LngGerman = LangID(0x0407) // LngGerman: 0x0407 German LngGreek = LangID(0x0408) // LngGreek: 0x0408 Greek LngUSEnglish = LangID(0x0409) // LngUSEnglish: 0x0409 U.S. English LngCastilianSpanish = LangID(0x040A) // LngCastilianSpanish: 0x040A Castilian Spanish LngFinnish = LangID(0x040B) // LngFinnish: 0x040B Finnish LngFrench = LangID(0x040C) // LngFrench: 0x040C French LngHebrew = LangID(0x040D) // LngHebrew: 0x040D Hebrew LngHungarian = LangID(0x040E) // LngHungarian: 0x040E Hungarian LngIcelandic = LangID(0x040F) // LngIcelandic: 0x040F Icelandic LngItalian = LangID(0x0410) // LngItalian: 0x0410 Italian LngJapanese = LangID(0x0411) // LngJapanese: 0x0411 Japanese LngKorean = LangID(0x0412) // LngKorean: 0x0412 Korean LngDutch = LangID(0x0413) // LngDutch: 0x0413 Dutch LngNorwegianBokmal = LangID(0x0414) // LngNorwegianBokmal: 0x0414 Norwegian ? Bokmal LngPolish = LangID(0x0415) // LngPolish: 0x0415 Polish LngPortugueseBrazil = LangID(0x0416) // LngPortugueseBrazil: 0x0416 Portuguese (Brazil) LngRhaetoRomanic = LangID(0x0417) // LngRhaetoRomanic: 0x0417 Rhaeto-Romanic LngRomanian = LangID(0x0418) // LngRomanian: 0x0418 Romanian LngRussian = LangID(0x0419) // LngRussian: 0x0419 Russian LngCroatoSerbianLatin = LangID(0x041A) // LngCroatoSerbianLatin: 0x041A Croato-Serbian (Latin) LngSlovak = LangID(0x041B) // LngSlovak: 0x041B Slovak LngAlbanian = LangID(0x041C) // LngAlbanian: 0x041C Albanian LngSwedish = LangID(0x041D) // LngSwedish: 0x041D Swedish LngThai = LangID(0x041E) // LngThai: 0x041E Thai LngTurkish = LangID(0x041F) // LngTurkish: 0x041F Turkish LngUrdu = LangID(0x0420) // LngUrdu: 0x0420 Urdu LngBahasa = LangID(0x0421) // LngBahasa: 0x0421 Bahasa LngSimplifiedChinese = LangID(0x0804) // LngSimplifiedChinese: 0x0804 Simplified Chinese LngSwissGerman = LangID(0x0807) // LngSwiss German: 0x0807 Swiss German LngUKEnglish = LangID(0x0809) // LngUKEnglish: 0x0809 U.K. English LngSpanishMexico = LangID(0x080A) // LngSpanishMexico: 0x080A Spanish (Mexico) LngBelgianFrench = LangID(0x080C) // LngBelgian French: 0x080C Belgian French LngSwissItalian = LangID(0x0810) // LngSwiss Italian: 0x0810 Swiss Italian LngBelgianDutch = LangID(0x0813) // LngBelgian Dutch: 0x0813 Belgian Dutch LngNorwegianNynorsk = LangID(0x0814) // LngNorwegianNynorsk: 0x0814 Norwegian ? Nynorsk LngPortuguesePortugal = LangID(0x0816) // LngPortuguese (Portugal): 0x0816 Portuguese (Portugal) LngSerboCroatianCyrillic = LangID(0x081A) // LngSerboCroatianCyrillic: 0x081A Serbo-Croatian (Cyrillic) LngCanadianFrench = LangID(0x0C0C) // LngCanadian French: 0x0C0C Canadian French LngSwissFrench = LangID(0x100C) // LngSwiss French: 0x100C Swiss French )
LangID constants
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CharsetID ¶
type CharsetID uint16
CharsetID must use be a character-set identifier from: https://msdn.microsoft.com/en-us/library/windows/desktop/aa381058(v=vs.85).aspx#charsetID
func (*CharsetID) UnmarshalJSON ¶
UnmarshalJSON converts the string to a CharsetID
type FileVersion ¶
FileVersion with 3 parts.
func (FileVersion) GetVersionString ¶
func (f FileVersion) GetVersionString() string
GetVersionString returns a string representation of the version
type FixedFileInfo ¶
type FixedFileInfo struct { FileVersion `json:"FileVersion"` ProductVersion FileVersion FileFlagsMask string FileFlags string FileOS string FileType string FileSubType string }
FixedFileInfo contains file characteristics - leave most of them at the defaults.
type LangID ¶
type LangID uint16
LangID must use be a character-set identifier from: https://msdn.microsoft.com/en-us/library/windows/desktop/aa381058(v=vs.85).aspx#langID
func (*LangID) UnmarshalJSON ¶
UnmarshalJSON converts the string to a LangID
type SizedReader ¶
SizedReader is a *bytes.Buffer.
type StringFileInfo ¶
type StringFileInfo struct { Comments string CompanyName string FileDescription string FileVersion string InternalName string LegalCopyright string LegalTrademarks string OriginalFilename string PrivateBuild string ProductName string ProductVersion string SpecialBuild string }
StringFileInfo is what you want to change.
type Translation ¶
Translation with langid and charsetid.
type VSFixedFileInfo ¶
type VSFixedFileInfo struct { DwSignature uint32 DwStrucVersion uint32 DwFileVersionMS uint32 DwFileVersionLS uint32 DwProductVersionMS uint32 DwProductVersionLS uint32 DwFileFlagsMask uint32 DwFileFlags uint32 DwFileOS uint32 DwFileType uint32 DwFileSubtype uint32 DwFileDateMS uint32 DwFileDateLS uint32 }
VSFixedFileInfo - most of these should be left at the defaults.
type VSString ¶
type VSString struct { WLength uint16 WValueLength uint16 WType uint16 SzKey []byte Padding []byte Value []byte }
VSString holds the keys and values.
type VSStringFileInfo ¶
type VSStringFileInfo struct { WLength uint16 WValueLength uint16 WType uint16 SzKey []byte Padding []byte Children VSStringTable }
VSStringFileInfo holds multiple collections of keys and values, only allows for 1 collection in this package.
type VSStringTable ¶
type VSStringTable struct { WLength uint16 WValueLength uint16 WType uint16 SzKey []byte Padding []byte Children []VSString }
VSStringTable holds a collection of string keys and values.
type VSVar ¶
type VSVar struct { WLength uint16 WValueLength uint16 WType uint16 SzKey []byte Padding []byte Value uint32 }
VSVar holds the translation key.
type VSVarFileInfo ¶
type VSVarFileInfo struct { WLength uint16 WValueLength uint16 WType uint16 SzKey []byte Padding []byte Value VSVar }
VSVarFileInfo holds the translation collection of 1.
type VSVersionInfo ¶
type VSVersionInfo struct { WLength uint16 WValueLength uint16 WType uint16 SzKey []byte Padding1 []byte Value VSFixedFileInfo Padding2 []byte Children VSStringFileInfo Children2 VSVarFileInfo }
VSVersionInfo is the top level version container.
type VarFileInfo ¶
type VarFileInfo struct {
Translation `json:"Translation"`
}
VarFileInfo is the translation container.
type VersionInfo ¶
type VersionInfo struct { FixedFileInfo `json:"FixedFileInfo"` StringFileInfo `json:"StringFileInfo"` VarFileInfo `json:"VarFileInfo"` Timestamp bool Buffer bytes.Buffer Structure VSVersionInfo IconPath string `json:"IconPath"` ManifestPath string `json:"ManifestPath"` }
VersionInfo data container
func (*VersionInfo) Build ¶
func (v *VersionInfo) Build()
Build fills the structs with data from the config file
func (*VersionInfo) ParseJSON ¶
func (vi *VersionInfo) ParseJSON(jsonBytes []byte) error
ParseJSON parses the given bytes as a VersionInfo JSON.
func (*VersionInfo) Walk ¶
func (vi *VersionInfo) Walk()
Walk writes the data buffer with hexadecimal data from the structs
func (*VersionInfo) WriteGo ¶ added in v1.2.0
func (vi *VersionInfo) WriteGo(filename, packageName string) error
WriteGo creates a Go file that contains the version info so you can access it in the application
func (*VersionInfo) WriteHex ¶
func (vi *VersionInfo) WriteHex(filename string) error
WriteHex creates a hex file for debugging version info