public void Write(BinaryWriter w)
        {
            // write the block info
            long headerPos = w.BaseStream.Position;

            // wLength
            w.Write((UInt16)_header.wLength);
            // wValueLength
            w.Write((UInt16)_header.wValueLength);
            // wType
            w.Write((UInt16)_header.wType);
            // szKey
            w.Write(Encoding.Unicode.GetBytes(_key));
            // null terminator
            w.Write((UInt16)0);
            // pad fixed info
            ResourceUtil.PadToDWORD(w);
            long valuePos = w.BaseStream.Position;

            if (_value != null)
            {
                // Value
                w.Write(Encoding.Unicode.GetBytes(_value));
            }
            ResourceUtil.WriteAt(w, (w.BaseStream.Position - valuePos) / 2, headerPos + 2);
            ResourceUtil.PadToDWORD(w);
            ResourceUtil.WriteAt(w, w.BaseStream.Position - headerPos, headerPos);
        }
Beispiel #2
0
 public virtual void Write(BinaryWriter w)
 {
     // wLength
     w.Write((UInt16)_header.wLength);
     // wValueLength
     w.Write((UInt16)_header.wValueLength);
     // wType
     w.Write((UInt16)_header.wType);
     // write key
     w.Write(Encoding.Unicode.GetBytes(_key));
     // null-terminator
     w.Write((UInt16)0);
     // pad fixed info
     ResourceUtil.PadToDWORD(w);
 }
Beispiel #3
0
        public override void Write(BinaryWriter w)
        {
            long headerPos = w.BaseStream.Position;

            base.Write(w);

            Dictionary <string, StringResource> .Enumerator stringsEnum = _strings.GetEnumerator();
            while (stringsEnum.MoveNext())
            {
                stringsEnum.Current.Value.Write(w);
            }

            ResourceUtil.PadToDWORD(w);
            ResourceUtil.WriteAt(w, w.BaseStream.Position - headerPos, headerPos);
        }
Beispiel #4
0
        public override void Write(BinaryWriter w)
        {
            long headerPos = w.BaseStream.Position;

            _header.Write(w);

            w.Write(ResourceUtil.GetBytes <Kernel32.VS_FIXEDFILEINFO>(_fixedfileinfo));
            ResourceUtil.PadToDWORD(w);

            Dictionary <string, ResourceTable> .Enumerator resourceEnum = _resources.GetEnumerator();
            while (resourceEnum.MoveNext())
            {
                resourceEnum.Current.Value.Write(w);
            }

            ResourceUtil.WriteAt(w, w.BaseStream.Position - headerPos, headerPos);
        }
Beispiel #5
0
        public override void Write(BinaryWriter w)
        {
            long headerPos = w.BaseStream.Position;

            base.Write(w);

            Dictionary <UInt16, UInt16> .Enumerator languagesEnum = _languages.GetEnumerator();
            long valuePos = w.BaseStream.Position;

            while (languagesEnum.MoveNext())
            {
                // id
                w.Write((UInt16)languagesEnum.Current.Key);
                // code page
                w.Write((UInt16)languagesEnum.Current.Value);
            }

            ResourceUtil.WriteAt(w, w.BaseStream.Position - valuePos, headerPos + 2);
            ResourceUtil.PadToDWORD(w);
            ResourceUtil.WriteAt(w, w.BaseStream.Position - headerPos, headerPos);
        }