Rizin
unix-like reverse engineering framework and cli tools
mschmd_header Struct Reference

#include <mspack.h>

Public Attributes

unsigned int version
 
unsigned int timestamp
 
unsigned int language
 
const char * filename
 
off_t length
 
struct mschmd_filefiles
 
struct mschmd_filesysfiles
 
struct mschmd_sec_uncompressed sec0
 
struct mschmd_sec_mscompressed sec1
 
off_t dir_offset
 
unsigned int num_chunks
 
unsigned int chunk_size
 
unsigned int density
 
unsigned int depth
 
unsigned int index_root
 
unsigned int first_pmgl
 
unsigned int last_pmgl
 
unsigned char ** chunk_cache
 

Detailed Description

A structure which represents a CHM helpfile.

All fields are READ ONLY.

Definition at line 1272 of file mspack.h.

Member Data Documentation

◆ chunk_cache

unsigned char ** mschmd_header::chunk_cache

A cache of loaded chunks, filled in by mschm_decoder::fast_find(). Available only in CHM decoder version 2 and above.

Definition at line 1362 of file mspack.h.

Referenced by chmd_close(), chmd_read_headers(), and read_chunk().

◆ chunk_size

unsigned int mschmd_header::chunk_size

The size of each PMGL/PMGI chunk, in bytes.

Definition at line 1324 of file mspack.h.

Referenced by chmd_read_headers(), read_chunk(), and search_chunk().

◆ density

unsigned int mschmd_header::density

The "density" of the quick-reference section in PMGL/PMGI chunks.

Definition at line 1327 of file mspack.h.

Referenced by chmd_read_headers(), and search_chunk().

◆ depth

unsigned int mschmd_header::depth

The depth of the index tree.

  • if 1, there are no PMGI chunks, only PMGL chunks.
  • if 2, there is 1 PMGI chunk. All chunk indices point to PMGL chunks.
  • if 3, the root PMGI chunk points to secondary PMGI chunks, which in turn point to PMGL chunks.
  • and so on...

Definition at line 1337 of file mspack.h.

Referenced by chmd_read_headers().

◆ dir_offset

off_t mschmd_header::dir_offset

The file offset of the first PMGL/PMGI directory chunk.

Definition at line 1318 of file mspack.h.

Referenced by chmd_read_headers(), and read_chunk().

◆ filename

const char * mschmd_header::filename

The filename of the CHM helpfile. This is given by the library user and may be in any format.

Definition at line 1295 of file mspack.h.

Referenced by chmd_extract(), chmd_fast_find(), and chmd_real_open().

◆ files

struct mschmd_file * mschmd_header::files

A list of all non-system files in the CHM helpfile.

Definition at line 1301 of file mspack.h.

Referenced by chmd_close(), chmd_read_headers(), chmd_real_open(), and main().

◆ first_pmgl

unsigned int mschmd_header::first_pmgl

The number of the first PMGL chunk. Usually zero. Available only in CHM decoder version 2 and above.

Definition at line 1350 of file mspack.h.

Referenced by chmd_fast_find(), and chmd_read_headers().

◆ index_root

unsigned int mschmd_header::index_root

The number of the root PMGI chunk.

If there is no index in the CHM helpfile, this will be 0xFFFFFFFF.

Definition at line 1344 of file mspack.h.

Referenced by chmd_fast_find(), and chmd_read_headers().

◆ language

unsigned int mschmd_header::language

The default Language and Country ID (LCID) of the user who ran the HTMLHelp Compiler. This is not the language of the CHM file itself.

Definition at line 1289 of file mspack.h.

Referenced by chmd_read_headers().

◆ last_pmgl

unsigned int mschmd_header::last_pmgl

The number of the last PMGL chunk. Usually num_chunks-1. Available only in CHM decoder version 2 and above.

Definition at line 1356 of file mspack.h.

Referenced by chmd_read_headers().

◆ length

off_t mschmd_header::length

The length of the CHM helpfile, in bytes.

Definition at line 1298 of file mspack.h.

Referenced by chmd_read_headers().

◆ num_chunks

unsigned int mschmd_header::num_chunks

The number of PMGL/PMGI directory chunks in this CHM helpfile.

Definition at line 1321 of file mspack.h.

Referenced by chmd_close(), chmd_fast_find(), chmd_read_headers(), and read_chunk().

◆ sec0

struct mschmd_sec_uncompressed mschmd_header::sec0

The section 0 (uncompressed) data in this CHM helpfile.

Definition at line 1309 of file mspack.h.

Referenced by chmd_fast_find(), and chmd_read_headers().

◆ sec1

struct mschmd_sec_mscompressed mschmd_header::sec1

The section 1 (MSCompressed) data in this CHM helpfile.

Definition at line 1309 of file mspack.h.

Referenced by chmd_fast_find(), and chmd_read_headers().

◆ sysfiles

struct mschmd_file * mschmd_header::sysfiles

A list of all system files in the CHM helpfile.

System files are files which begin with "::". They are meta-files generated by the CHM creation process.

Definition at line 1309 of file mspack.h.

Referenced by chmd_close(), chmd_read_headers(), chmd_real_open(), and find_sys_file().

◆ timestamp

unsigned int mschmd_header::timestamp

The "timestamp" of the CHM helpfile.

It is the lower 32 bits of a 64-bit value representing the number of centiseconds since 1601-01-01 00:00:00 UTC, plus 42. It is not useful as a timestamp, but it is useful as a semi-unique ID.

Definition at line 1283 of file mspack.h.

Referenced by chmd_read_headers().

◆ version

unsigned int mschmd_header::version

The version of the CHM file format used in this file.

Definition at line 1274 of file mspack.h.

Referenced by chmd_read_headers().


The documentation for this struct was generated from the following file: