This has been bugging me for a good while, and I note from various forum posts and Google searches that it is a fairly common problem. Microsoft seem to have brushed the whole thing under the carpet; now, this may or may not be sinister, but there are a lot of search results that give links to pages on the MS website, but when you click on them you get a generic "page cannot be found" type message.
The primary symptom is that your MSDN collection comes up with a blank table of contents, an empty index, and a "This program cannot display the webpage" message on the MSDN start page.
Other people who have gone looking for help have been sent round in circles, with no clear solution that works for all.
Today I fixed it. No, it doesn't require reinstallation, no, it doesn't require re-registering of DLLs. Quick, clean and simple.
- Search for NameSpaceSharp on the web; this is an MS tool that lets you view and edit the namespaces registered with the help system used by MSDN (and others). Download and install it.
- Open MSDN, go to the "Search" page, and type something; I used CreateWindow.
- You'll get a "Namespace not specified" message, followed by something beginning with ms-help:// - take a note of everything after that (in my case it was MS.MSDNQTR.2005APR.1033)
- Open NamespaceSharp, and expand "Registered Havana Namespaces"; it will be blank so right-click and select "Register a new namespace".
- Enter the name from above, the description is optional, and browse to where you have MSDN installed and select the msdn.HxC file, then hit the "Register" button.
- Now right-click on the new namespace and select "Register Help Files", browse to where you have MSDN installed again, and do a Ctrl-A to select all files.
- This will take a minute or two to register; when done just open MSDN one more time and you should see the magical "Help is updating..." message pop up - bingo, fixed!