예제 #1
0
 internal VersionInfo(VersionResource versionResource, uint languageId, FixedFileInfo fixedInfo, StringFileInfo stringInfo, VarFileInfo varInfo)
 {
     resource = versionResource;
     language_id = languageId;
     fixed_file_info = fixedInfo;
     string_file_info = stringInfo;
     var_file_info = varInfo;
 }
예제 #2
0
        public VersionInfo GetInfo(uint languageId)
        {
            byte[] data = GetBytes(languageId);

            using (MemoryStream mem = new MemoryStream(data))
            {
                ushort len = Utils.ReadUInt16(mem);
                ushort val_len = Utils.ReadUInt16(mem);
                ushort type = Utils.ReadUInt16(mem);
                string key = Utils.ReadUnicodeString(mem);

                if (mem.Position % 4 != 0)
                    Utils.ReadUInt16(mem);

                FixedFileInfo fixed_file_info = new FixedFileInfo(mem);

                if (mem.Position % 4 != 0)
                    Utils.ReadUInt16(mem);

                StringFileInfo string_file_info = new StringFileInfo(this, mem);

                if (mem.Position % 4 != 0)
                    Utils.ReadUInt16(mem);

                VarFileInfo var_file_info = new VarFileInfo(this, mem);

                VersionInfo info = new VersionInfo(this, languageId, fixed_file_info, string_file_info, var_file_info);

                return info;
            }
        }