class INFO2Item(LERecord): name_asc = raw(260) id = DWORD # DcXX (this is the XX) drive_num = DWORD # 0 = A, 1 = B, 2 = C, ... dtime = FILETIME_LE file_size = DWORD name_uni = raw(520)
class ShellLinkHeader(LERecord): size = DWORD clsid = CLSID_LE flags = LinkFlags attrs = FileAttributes btime = FILETIME_LE atime = FILETIME_LE mtime = FILETIME_LE target_size = DWORD icon_index = DWORD show_cmd = DWORD hotkey = HotKey reserved1 = raw(2) reserved2 = raw(4) reserved3 = raw(4)
class PropertySetStreamHeader(LERecord): byte_order = WORD version = WORD sys_id = raw(4) clsid = CLSID_LE property_set_count = DWORD fmtid0 = FMTID offset0 = DWORD
class Header(LERecord): sig = raw(8) clsid = CLSID_LE ver_minor = USHORT ver_major = USHORT byte_order = USHORT sect_shift = USHORT mini_sect_shift = USHORT rsvd = raw(6) dir_sect_count = FSINDEX fat_sect_count = FSINDEX dir_sect_offset = SECT trans_num = DFSIGNATURE mini_stream_cutoff = ULONG mini_fat_sect_offset = SECT mini_fat_sect_count = FSINDEX di_fat_sect_offset = SECT di_fat_sect_count = FSINDEX di_fat = [SECT] * 109
class DirEntry(LERecord): name = raw(64) name_size = WORD type = BYTE color = BYTE left_sid = SID right_sid = SID child_sid = SID clsid = CLSID_LE state = DWORD btime = FILETIME_LE mtime = FILETIME_LE stream_sect_offset = SECT stream_size = ULONGLONG
class ConsoleDataBlock(DataBlockHeader): fill_attributes = WORD popup_fill_attributes = WORD screen_buffer_size = COORD_LE window_size = COORD_LE window_origin = COORD_LE font = DWORD input_buf_size = DWORD font_size = DWORD font_family = DWORD font_weight = DWORD face_name = raw(64) cursor_size = DWORD full_screen = DWORD quick_edit = DWORD insert_mode = DWORD auto_position = DWORD history_buf_size = DWORD history_buf_count = DWORD history_no_dup = DWORD color_table = [COLORREF] * 16
class ExpandableStringsDataBlock(DataBlockHeader): target_ansi = raw(260) target_uni = raw(520)
class DarwinDataBlock(DataBlockHeader): darwin_data_ansi = raw(260) darwin_data_uni = raw(520)
class TypedPropertyValue_VT_I2(TypedPropertyValueHeader): value = INT16 value_pad = raw(2)
class TypedPropertyValueHeader(LERecord): type = UINT16 pad = raw(2)
class TypedPropertyValue_VT_UI1(TypedPropertyValueHeader): value = UINT8 value_pad = raw(3)
class TypedPropertyValue_VT_BOOL(TypedPropertyValueHeader): value = VARIANT_BOOL value_pad = raw(2)
class EntryHeaderOld(LERecord): unknown1 = raw(4) # identifier? size = UINT32 unknown2 = raw(4) # width? unknown3 = raw(4) # height?
class EntryHeader(LERecord): unknown1 = raw(4) # header length? unknown2 = raw(4) # identifier? size = UINT32 # Size of the data
class CatalogHeader(LERecord): unknown1 = raw(2) # Header Size? Identifier? unknown2 = raw(2) # Appears to be a version number? item_count = UINT32 width = UINT32 height = UINT32