Exemplo n.º 1
0
        public byte[] GetResDirectoryData()
        {
            // recreate the Icon Directory resource data

            var ms = new MemoryStream();

            var wtr = new BinaryWriter(ms);

            var dir = new IconDirectory
            {
                wReserved = 0,
                wType     = (ushort)(Type == IconType.Icon ? 1u : 2u),
                wCount    = (ushort)_images.Count
            };

            dir.Write(wtr);

            foreach (var directoryMember in _images)
            {
                var image = (IconImage)directoryMember;
                var entry = new ResIconDirectoryEntry
                {
                    bWidth       = (byte)image.Size.Width,
                    bHeight      = (byte)image.Size.Height,
                    bColorCount  = image.ColorCount,
                    bReserved    = 0,
                    wPlanes      = image.Planes,
                    wBitCount    = image.BitCount,
                    dwBytesInRes = (uint)image.ImageData.Length,
                    wId          = (ushort)image.ResourceData.Lang.Name.Identifier.NativeId.ToInt32()
                };


                // gotta love the load of dereferencing going on here

                entry.Write(wtr);
            }

            return(ms.ToArray());
        }
Exemplo n.º 2
0
        public Byte[] GetResDirectoryData()
        {
            // recreate the Icon Directory resource data

            MemoryStream ms = new MemoryStream();

            BinaryWriter wtr = new BinaryWriter(ms);

            IconDirectory dir = new IconDirectory();

            dir.wReserved = 0;
            dir.wType     = (ushort)(Type == IconType.Icon ? 1u : 2u);
            dir.wCount    = (ushort)_images.Count;

            dir.Write(wtr);

            foreach (IconImage image in _images)
            {
                ResIconDirectoryEntry entry = new ResIconDirectoryEntry();
                entry.bWidth  = (byte)image.Size.Width;
                entry.bHeight = (byte)image.Size.Height;

                entry.bColorCount = image.ColorCount;
                entry.bReserved   = 0;

                entry.wPlanes   = image.Planes;
                entry.wBitCount = image.BitCount;

                entry.dwBytesInRes = (uint)image.ImageData.Length;
                entry.wId          = (ushort)image.ResourceData.Lang.Name.Identifier.NativeId.ToInt32();                 // gotta love the load of dereferencing going on here

                entry.Write(wtr);
            }

            return(ms.ToArray());
        }