mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 15:33:07 +00:00
Import TechBot
svn path=/trunk/; revision=13064
This commit is contained in:
parent
568b27baeb
commit
9dab4509fa
94 changed files with 24386 additions and 0 deletions
478
irc/TechBot/CHMLibrary/ChmFileInfo.cs
Normal file
478
irc/TechBot/CHMLibrary/ChmFileInfo.cs
Normal file
|
@ -0,0 +1,478 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Globalization;
|
||||
using System.Diagnostics;
|
||||
using System.ComponentModel;
|
||||
|
||||
using HtmlHelp.ChmDecoding;
|
||||
// using HtmlHelp.Storage;
|
||||
|
||||
namespace HtmlHelp
|
||||
{
|
||||
/// <summary>
|
||||
/// The class <c>ChmFileInfo</c> only extracts system information from a CHM file.
|
||||
/// It doesn't build the index and table of contents.
|
||||
/// </summary>
|
||||
public class ChmFileInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// Internal member storing the full filename
|
||||
/// </summary>
|
||||
private string _chmFileName = "";
|
||||
/// <summary>
|
||||
/// Internal member storing the associated chmfile object
|
||||
/// </summary>
|
||||
private CHMFile _associatedFile = null;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for extrating the file information of the provided file.
|
||||
/// The constructor opens the chm-file and reads its system data.
|
||||
/// </summary>
|
||||
/// <param name="chmFile">full file name which information should be extracted</param>
|
||||
public ChmFileInfo(string chmFile)
|
||||
{
|
||||
if(!File.Exists(chmFile))
|
||||
throw new ArgumentException("Chm file must exist on disk !", "chmFileName");
|
||||
|
||||
if( ! chmFile.ToLower().EndsWith(".chm") )
|
||||
throw new ArgumentException("HtmlHelp file must have the extension .chm !", "chmFile");
|
||||
|
||||
_chmFileName = chmFile;
|
||||
_associatedFile = new CHMFile(null, chmFile, true); // only load system data of chm
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Internal constructor used in the class <see cref="HtmlHelp.ChmDecoding.CHMFile">CHMFile</see>.
|
||||
/// </summary>
|
||||
/// <param name="associatedFile">associated chm file</param>
|
||||
internal ChmFileInfo(CHMFile associatedFile)
|
||||
{
|
||||
_associatedFile = associatedFile;
|
||||
|
||||
if( _associatedFile == null)
|
||||
throw new ArgumentException("Associated CHMFile instance must not be null !", "associatedFile");
|
||||
}
|
||||
|
||||
#region default info properties
|
||||
/// <summary>
|
||||
/// Gets the full filename of the chm file
|
||||
/// </summary>
|
||||
public string ChmFileName
|
||||
{
|
||||
get
|
||||
{
|
||||
return _associatedFile.ChmFilePath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a <see cref="System.IO.FileInfo">FileInfo</see> instance for the chm file.
|
||||
/// </summary>
|
||||
public FileInfo FileInfo
|
||||
{
|
||||
get { return new FileInfo(_associatedFile.ChmFilePath); }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region #SYSTEM properties
|
||||
/// <summary>
|
||||
/// Gets the file version of the chm file.
|
||||
/// 2 for Compatibility=1.0, 3 for Compatibility=1.1
|
||||
/// </summary>
|
||||
public int FileVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.FileVersion;
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the contents file name
|
||||
/// </summary>
|
||||
|
||||
public string ContentsFile
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.ContentsFile;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the index file name
|
||||
/// </summary>
|
||||
|
||||
public string IndexFile
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.IndexFile;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the default help topic
|
||||
/// </summary>
|
||||
|
||||
public string DefaultTopic
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.DefaultTopic;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the title of the help window
|
||||
/// </summary>
|
||||
|
||||
public string HelpWindowTitle
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.HelpWindowTitle;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the flag if DBCS is in use
|
||||
/// </summary>
|
||||
|
||||
public bool DBCS
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.DBCS;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the flag if full-text-search is available
|
||||
/// </summary>
|
||||
|
||||
public bool FullTextSearch
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.FullTextSearch;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the flag if the file has ALinks
|
||||
/// </summary>
|
||||
|
||||
public bool HasALinks
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.HasALinks;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the flag if the file has KLinks
|
||||
/// </summary>
|
||||
|
||||
public bool HasKLinks
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.HasKLinks;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the default window name
|
||||
/// </summary>
|
||||
|
||||
public string DefaultWindow
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.DefaultWindow;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the file name of the compile file
|
||||
/// </summary>
|
||||
|
||||
public string CompileFile
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.CompileFile;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the flag if the chm has a binary index file
|
||||
/// </summary>
|
||||
|
||||
public bool BinaryIndex
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.BinaryIndex;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the flag if the chm has a binary index file
|
||||
/// </summary>
|
||||
|
||||
public string CompilerVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.CompilerVersion;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the flag if the chm has a binary toc file
|
||||
/// </summary>
|
||||
|
||||
public bool BinaryTOC
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.BinaryTOC;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the font face of the read font property.
|
||||
/// Empty string for default font.
|
||||
/// </summary>
|
||||
|
||||
public string FontFace
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.FontFace;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the font size of the read font property.
|
||||
/// 0 for default font size
|
||||
/// </summary>
|
||||
|
||||
public double FontSize
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.FontSize;
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the character set of the read font property
|
||||
/// 1 for default
|
||||
/// </summary>
|
||||
|
||||
public int CharacterSet
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.CharacterSet;
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the codepage depending on the read font property
|
||||
/// </summary>
|
||||
|
||||
public int CodePage
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.CodePage;
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the assiciated culture info
|
||||
/// </summary>
|
||||
public CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.Culture;
|
||||
|
||||
return CultureInfo.CurrentCulture;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region #IDXHDR properties
|
||||
/// <summary>
|
||||
/// Gets the number of topic nodes including the contents and index files
|
||||
/// </summary>
|
||||
|
||||
public int NumberOfTopicNodes
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.NumberOfTopicNodes;
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the ImageList string specyfied in the #IDXHDR file.
|
||||
/// </summary>
|
||||
/// <remarks>This property uses the #STRINGS file to extract the string at a given offset.</remarks>
|
||||
|
||||
public string ImageList
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.ImageList;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the background setting
|
||||
/// </summary>
|
||||
|
||||
public int Background
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.Background;
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the foreground setting
|
||||
/// </summary>
|
||||
|
||||
public int Foreground
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.Foreground;
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the FrameName string specyfied in the #IDXHDR file.
|
||||
/// </summary>
|
||||
/// <remarks>This property uses the #STRINGS file to extract the string at a given offset.</remarks>
|
||||
|
||||
public string FrameName
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.FrameName;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the WindowName string specyfied in the #IDXHDR file.
|
||||
/// </summary>
|
||||
/// <remarks>This property uses the #STRINGS file to extract the string at a given offset.</remarks>
|
||||
|
||||
public string WindowName
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.WindowName;
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a string array containing the merged file names
|
||||
/// </summary>
|
||||
public string[] MergedFiles
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_associatedFile != null)
|
||||
return _associatedFile.MergedFiles;
|
||||
|
||||
return new string[0];
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue