I'm going to reply to my own question. It drives me nuts when people just say: never mind, I figured it out and leave it at that. Here's what I ended up doing: In my CXXXApp (CWinApp derived class), I override WinHelp() and replace WinHelp() with the following: //CWinApp::WinHelp(dwData,nCmd); CString szFile(m_pszHelpFilePath); char drive[_MAX_DRIVE]; char dir[_MAX_DIR]; char fname[_MAX_FNAME]; char ext[_MAX_EXT]; _splitpath(szFile,drive,dir,fname,ext); CString szChm; szChm.Format("%s%s%s.chm",drive,dir,fname); nCmd = HH_HELP_CONTEXT; ::HtmlHelp(AfxGetMainWnd()->m_hWnd,szChm,nCmd,dwData); I needed to have the platform SDK installed to get the htmlhelp.h and .lib files. With those added to my project, the help seems to work identically to the way it did with WinHelp (jumps to the right topic,...). If you see something that I may have overlooked or could be doing better, please let me know.