MSDN for VS6 *.COL集合文件解读

来源:互联网 发布:linux c 过去系统时间 编辑:程序博客网 时间:2024/05/22 01:59
 
2011/10/27 4:41 A.M.

 上接:  关于MSDN for VB6和VC6 

 

在网上搜了半天关于微软帮助文档集合, hhcolreg.dat ,*.col 文件 都没搜到点有用的.

于是自己分析了一下这两个文件.

(目的是为了把XP系统中的SQL80.col帮助集复制到WIN7系统来,结果也实现了,略.)

_________________________________________________________________________________________________

MSDN for VS6  *.COL 帮助文档集合 文件解读
            
                                                                  2:39 2011/10/27   yurenchen
_________________________________________________________________________________________________

*.chm 是帮助文档.
*.chw 是帮助文档索引缓存文件.
*.chi 是帮助文档目录文件(多数*.chm文档是集成了目录的,有的是分类开的)

*.COL 文件是微软帮助文档的集合(内容为XML). 可以用hh.exe 打开,里面定义了集合中包括了哪些书目,和集合的树形结构.

hhcolreg.dat (内容为XML)存在于 %windir%\help\ 和 %AllUsersProfile%\Microsoft\HTML Help\ 文件夹内.
文件随便放在这两个文件夹中任意一个都可以,效果相同.

*.COL文件中定义了文档集合包含哪些书目,但没有定义每一本书的具体路径,所以没有安装帮助文档的时候,直接打开
*.COL文件会出现无法打开文件的情况.

*.COL中引用的书目的具体信息定义就定义在了hhcolreg.dat 文件中.


____________________________________
①  *.COL 文件结构.

假设文件名为XXXX.COL

<XML>
<HTMLHelpCollection>
<collectionnum value=CCCC1/>    集合编号
<Folders>
<Folder>
    <TitleString value="DDDD"/>    目录的标题
    <FolderOrder value=EEEE/>    目录的序号
</Folder>
</Folders>
</HTMLHelpCollection>
</XML>

(一些非必要元素(删除后文档仍能打开的元素,下同)有删减)


____________________________________
② hhcolreg.dat 文件结构

<XML>
<HTMLHelpDocInfo>
<Collections>        打开过的*.col文件都会列在这里(可以删除此段,打开*.col文件时自动生成)
    <Collection>
        <ColNum value=cccc3/>        集合编号
        <ColName value="xxxx.COL"/>    *.col文件路径
    </Collection>
</Collections>

<DocCompilations>    图书集合的定义(图书的路径,编号 以及 所属集合)
    <DocCompilation>
        <DocCompId value="dddd"/>    书目编号
        <LocationHistory>
            <ColNum value=cccc2/>        集合编号
            <TitleLocation value="ffff.chm"/>    图书内容文件路径
            <IndexLocation value="gggg.chi"/>    图书目录文件路径
        </LocationHistory>
    </DocCompilation>
</DocCompilations>
</HTMLHelpDocInfo>
</XML>

(一些非必要元素有删减)

_____________________________________

*.col 文件可以放在任意目录内,
*.chm,*.chi等帮助文档也可以放在任意目录内,但要与hhcolreg.dat 文件内定义的一致.
前面两个都到处乱跑,找起来肯定不容易,所以 hhcolreg.dat 就必须老老实实的呆在那几个固定的文件夹里面了,
以方便hh.exe 找到它,并通过它找到散落在世界不同角落的...
              ----龙珠?
             ----难道这是龙珠雷达?
             .
            
是不同角落的 帮助文档(*.chm 和 *.chi) .
______________________________________

 


同一本图书 对应的 集合编号,和在*.col文件的集合编号一致.
*.col文件打开后,在hhcolreg.dat 中的记录 的集合编号也一致.
即 同一图书 CCCC1=cccc2=cccc3,否则无法打开.


*.COL中DDDD可以是非'='开头的自定义字符串,表示目录的名称,
也可以是 '=书目编号',例如 '=dddd' 表示此出目录是 集合中定义的书目编号为dddd的这本图书.


图书内容文件 和 图书目录文件 名称一般是一致的,即ffff=gggg,指出文件的所在.

 

 

实例

    ① "C:\Users\Phoenix\Desktop\VC6.col" 文件内容


    ②"C:\Users\Phoenix\Desktop\VC6.col"打开效果

 

    ③ "C:\Users\All Users\Microsoft\HTML Help\hhcolreg.dat" 文件内容

 

    ④"C:\Users\All Users\Microsoft\HTML Help\hhcolreg.dat" 打开效果




上面4幅图片已经很明了了吧.

 

帮助文档集合有什么用?
比如你要查某个函数,又不确定它在哪个chm里面,就只有一个一个打开找了,或者直接在帮助文档集合里面查找.

 

ps: 有时间用hta写个小工具来整理电脑上所有的chm文档.

原创粉丝点击