The best approach to implement Help feature in Windows Desktop Application, below are the list of the options I have come across:
Ref: https://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help#cite_note-2
- Microsoft Compiled HTML Help is a Microsoft proprietary online help format
- Can be Decompiled(Tools 7-Zip,Sumatra etc)
- Predecessor Microsoft WinHelp / Successor Microsoft Help 2
- Support Win 10
Ref: https://en.wikipedia.org/wiki/WinHelp
- .hlp Microsoft WinHelp is a proprietary format for online help files that can be displayed by the Microsoft Help browser winhelp.exe or winhlp32.exe. -decompile a WinHelp file into its source documents: HPJ, CNT, RTF, BMP, and SHG -WinHelp file opens in a separate window(The Help author can control whether the Help file stores the user's settings between sessions or always opens in the default size and position.)
- HAs Title, a row of Menu(File, Edit, Bookmark, Options, and Help) Typical buttons include Contents, Index, Back, and Print, along with << and >> buttons to browse through the file. Help authors can also create custom buttons to jump to specific topics or perform other actions. -End of support - The open-source version of winhlp32 from Wine also works on Windows 10. It is included as part of WineVDM.
Ref: https://en.wikipedia.org/wiki/Microsoft_Help_2
- Microsoft_Help_2 is a proprietary format for online help files, developed by Microsoft and first released in 2001 as a help system for Visual Studio .NET (2002) and MSDN Library. Microsoft Help 2.x is the help engine used in Microsoft Visual Studio 2002/2003/2005/2008 and Office 2007 and Office 2010
- Microsoft Help 2.x file has a ".hxs" extension
- An open-source "convertlit" tool can be used to decompile the hxs file.
Ref: https://en.wikipedia.org/wiki/Microsoft_Help_Viewer
- Microsoft Help Viewer (HV) is the offline help system (local help) developed by Microsoft that ships with Visual Studio 2010 and its associated MSDN Library.
All the above approaches have the limitation that the compiled Help file can be decompiled and further redistributed which I want to restrict. I want to allow access to the Knowledge-base to an only authorized users, and authorized users should also not be able to further copy or decompile the knowledge base and share it further with unauthorized users.