Class: Cabriolet::HLP::WinHelp::Parser
- Inherits:
-
Object
- Object
- Cabriolet::HLP::WinHelp::Parser
- Defined in:
- lib/cabriolet/hlp/winhelp/parser.rb
Overview
Parser for Windows Help (WinHelp) files
Parses Windows Help files (3.x and 4.x formats) used in Windows 3.0+ through Windows XP.
Format structure:
-
File Header (28 or 32 bytes depending on version)
-
Internal File Directory
-
File Data Blocks (|SYSTEM, |TOPIC, etc.)
Magic numbers:
-
WinHelp 3.x (16-bit): 0x35F3
-
WinHelp 4.x (32-bit): 0x3F5F0000 (varies)
Instance Attribute Summary collapse
-
#io_system ⇒ Object
readonly
Returns the value of attribute io_system.
Instance Method Summary collapse
-
#initialize(io_system = nil) ⇒ Parser
constructor
Initialize parser.
-
#parse(filename) ⇒ Models::WinHelpHeader
Parse a WinHelp file.
Constructor Details
Instance Attribute Details
#io_system ⇒ Object (readonly)
Returns the value of attribute io_system.
26 27 28 |
# File 'lib/cabriolet/hlp/winhelp/parser.rb', line 26 def io_system @io_system end |
Instance Method Details
#parse(filename) ⇒ Models::WinHelpHeader
Parse a WinHelp file
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/cabriolet/hlp/winhelp/parser.rb', line 40 def parse(filename) handle = @io_system.open(filename, Constants::MODE_READ) begin header = parse_file(handle) header.filename = filename header ensure @io_system.close(handle) end end |