如何检查* .chm文件中是否存在特定主题?

时间:2011-12-06 15:37:10

标签: c# chm

我正在以这种方式运行我的帮助文件:

Help.ShowHelp(null, @"help.chm", topicKeyword);

topicKeyword是主题的通用名称,在某些情况下,help.chm文件中可能不存在此主题。我想首先检查这个主题是否存在,否则用户将获得chm-file但错误页面/主题。

1 个答案:

答案 0 :(得分:0)

您可以使用jedwing CHMLib枚举CHM文件中的主题。例如:

static int CallBack( struct chmFile *h, struct chmUnitInfo *pUI, void *context )
{
    printf( "%s\n", pUI->path );

    return CHM_ENUMERATOR_CONTINUE;
}

int main()
{
    chmFile *pFile = chm_open( "<Path to your CHM file>" );
    if ( pFile )
    {
        chm_enumerate( pFile, CHM_ENUMERATE_NORMAL, CallBack, 0 );

        chm_close( pFile );
    }

    return 0;
}

列举完主题后,您可以根据枚举情况检查候选网址。