icoextract.types

icoextract common types.

See https://devblogs.microsoft.com/oldnewthing/20120720-00/?p=7083 for a reference on ICO structures.

BYTE = <class 'ctypes.c_ubyte'>
WORD = <class 'ctypes.c_ushort'>
DWORD = <class 'ctypes.c_uint'>
class ResourceID:

Resource ID wrapper.

For resources with a string ID, str() will return its string value (e.g. "IDI_MAIN_ICON") and int() will return its underlying numeric ID.

Numerical icon resource IDs can be accessed via int(), and str() will return the number casted to a string.

ResourceID(raw_id: int | None = None, name: str | None = None)
raw_id
name
class GroupIconDirEntry(_ctypes.Structure):

ICO GRPICONDIRENTRY / RESDIR structure

Width

Structure/Union member

Height

Structure/Union member

ColorCount

Structure/Union member

Reserved

Structure/Union member

Planes

Structure/Union member

BitCount

Structure/Union member

BytesInRes

Structure/Union member

ID

Structure/Union member

class GroupIconDir(_ctypes.Structure):

ICO GRPICONDIR / NEWHEADER structure

Reserved

Structure/Union member

Type

Structure/Union member

Count

Structure/Union member

ExtractedGroupIcon = list[tuple[GroupIconDirEntry, bytes]]
GroupIconWithIconOffsets = list[tuple[GroupIconDirEntry, int, int]]