Нужно сделать враппер для chm-просмотрщика, который отрабатывал бы при попытке открыть файл для просмотра.
chmviewer, зарегистрированный в реестре, и вызывающий kchmviewer kchm gnochm xchm давно готов. kchmviewer в приоритете.