/// <summary>
 /// Convert into an icon resource that can be written into a .dll or .exe.
 /// </summary>
 public IconResource ConvertToIconResource(UInt16 id)
 {
     IconResource iconResource = new IconResource();
     Kernel32.GRPICONDIRENTRY header = new Kernel32.GRPICONDIRENTRY();
     header.bColors = _header.bColors;
     header.bHeight = _header.bHeight;
     header.bReserved = _header.bReserved;
     header.bWidth = _header.bWidth;
     header.dwImageSize = _header.dwImageSize;
     header.wBitsPerPixel = _header.wBitsPerPixel;
     header.wPlanes = _header.wPlanes;
     header.nID = id;
     iconResource.Header = header;
     iconResource.Image = _image;
     return iconResource;
 }
        /// <summary>
        /// Convert into an icon resource that can be written into a .dll or .exe.
        /// </summary>
        public IconResource ConvertToIconResource(UInt16 id)
        {
            IconResource iconResource = new IconResource();

            Kernel32.GRPICONDIRENTRY header = new Kernel32.GRPICONDIRENTRY();
            header.bColors       = _header.bColors;
            header.bHeight       = _header.bHeight;
            header.bReserved     = _header.bReserved;
            header.bWidth        = _header.bWidth;
            header.dwImageSize   = _header.dwImageSize;
            header.wBitsPerPixel = _header.wBitsPerPixel;
            header.wPlanes       = _header.wPlanes;
            header.nID           = id;
            iconResource.Header  = header;
            iconResource.Image   = _image;
            return(iconResource);
        }
        public override IntPtr Read(IntPtr hModule, IntPtr lpRes)
        {
            _icons.Clear();

            _header = (Kernel32.GRPICONDIR)Marshal.PtrToStructure(
                lpRes, typeof(Kernel32.GRPICONDIR));

            IntPtr pEntry = new IntPtr(lpRes.ToInt32() + Marshal.SizeOf(_header));

            for (int i = 0; i < _header.wImageCount; i++)
            {
                IconResource iconResource = new IconResource();
                pEntry = iconResource.Read(hModule, pEntry);
                _icons.Add(iconResource);
            }

            return(pEntry);
        }
Example #4
0
        public GroupIconResource ConvertToGroupIconResource()
        {
            GroupIconResource groupIconResource = new GroupIconResource();

            switch (Type)
            {
            case GroupType.Icon:
                groupIconResource.GroupIconResourceType = GroupIconResource.GroupType.Icon;
                break;

            case GroupType.Cursor:
                groupIconResource.GroupIconResourceType = GroupIconResource.GroupType.Cursor;
                break;
            }

            for (int id = 0; id < Icons.Count; id++)
            {
                IconResource iconResource = Icons[id].ConvertToIconResource((UInt16)id);
                groupIconResource.Icons.Add(iconResource);
            }

            return(groupIconResource);
        }
        public override IntPtr Read(IntPtr hModule, IntPtr lpRes)
        {
            _icons.Clear();

            _header = (Kernel32.GRPICONDIR) Marshal.PtrToStructure(
                lpRes, typeof(Kernel32.GRPICONDIR));

            IntPtr pEntry = new IntPtr(lpRes.ToInt32() + Marshal.SizeOf(_header));

            for (int i = 0; i < _header.wImageCount; i++)
            {
                IconResource iconResource = new IconResource();
                pEntry = iconResource.Read(hModule, pEntry);
                _icons.Add(iconResource);
            }

            return pEntry;
        }