add version info to Windows launcher
[idea/community.git] / tools / launcher-generator / src / com / pme / exe / res / vi / StringTableReader.java
1 /*
2  * Copyright 2006 ProductiveMe Inc.
3  * Copyright 2013 JetBrains s.r.o.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 package com.pme.exe.res.vi;
19
20 import com.pme.exe.Bin;
21
22 import java.io.DataInput;
23 import java.io.IOException;
24
25 /**
26  * Date: May 10, 2006
27  * Time: 8:09:42 PM
28  */
29 public class StringTableReader extends Bin.Structure{
30
31   public StringTableReader() {
32     super("StringTable");
33     addMember( new Word( "wLength" ) );
34     addMember( new Word( "wValueLength" ) );
35     addMember( new Word( "wType" ) );
36     addMember( new Bytes( "Bytes", 18 ) );
37   }
38   public void readWithPadding( DataInput stream, long offset ) throws IOException {
39     read(stream);
40     StringTableEntry stringTableEntry = new StringTableEntry("CompanyName");
41     stringTableEntry.readWithPadding( stream, offset + sizeInBytes() );
42     addMember( stringTableEntry );
43
44     StringTableEntry desc = new StringTableEntry("FileDescription");
45     desc.readWithPadding( stream, offset + sizeInBytes() + stringTableEntry.sizeInBytes() );
46     addMember( desc );
47
48     StringTableEntry fileVersion = new StringTableEntry("FileVersion");
49     fileVersion.readWithPadding( stream, offset + sizeInBytes() + stringTableEntry.sizeInBytes() + desc.sizeInBytes() );
50     addMember( fileVersion );
51
52     StringTableEntry internalName = new StringTableEntry("InternalName");
53     internalName.readWithPadding( stream, offset + sizeInBytes() + stringTableEntry.sizeInBytes() + desc.sizeInBytes() + fileVersion.sizeInBytes() );
54     addMember( internalName );
55
56   }
57 }