MS Help 2.x‎ > ‎

H2 FAQ

Contents

  1. 1 Q. Does VS 2010 use MS Help 2.x?
  2. 2 Q. Where has HxConv.exe and other Hx*.exe SDK files gone?
  3. 3 Q. Why wont HxConv.exe convert my .CHM files? [2006-07-29, VS 2005 SDK]
  4. 4 Q. How do I plug into VS 2005/2008 Express? [2006-06-24, VS 2005]
  5. 5 Q. Where is the Help Integration Wizard for VS 2005? [2005-11-30, VS 2005]
  6. 6 Q. How do I install VS SDK without VS 2005?    [2005-7-29, VS SDK 2.5, VS 8.0]
  7. 7 Q. Additional Notes - Feb 2007 v4 VS SDK without VS 2005? [2007-06-29, VS 2005]
  8. 8 Q. Where is VSHIK Help SDK? [2005-06-25, VS 2005 Beta 2]
  9. 9 Compile Warning HXC6048 with VS v8 Beta 2 [2005-07-02, VS 2005 Beta 2]
  10. 10 Plug into MS.VSIPCC.v80 not MS.VSCC.v80 [2005-06-25, VS 2005 Beta 2]
  11. 11 Q. Can I control Plug-in Order? [2004-11-26, VSHIK 2.5, VS 2005]
  12. 12 Q. What is the Collection Manager Page? [2005-06-25, VS 2005 Beta 2]
  13. 13 Q. Why wont DExplore detect/auto-merge my registration? [2005-06-25, VS 2005 Beta 2]
  14. 14 Q. Fatal Error HXC2064: Unable to initialize the full-text index engine [2005-02-22]
  15. 15 Q. How do I fix a broken MS Help 2 Installation? [2005-03-14]
  16. 16 Q. Help Services Locked [2004-08-06, VSHIK 2.2, VS 7.1]
  17. 17 Q. How do I unregister files have been removed from disk? [2004-1-23, VSHIK 2.2, VS 7.1]
  18. 18 Q. Can I access XLM Data Islands via IE5 DOM? [2004-1-23, VSHIK 2.2, VS 7.1]
  19. 19 Q. How do I write help for .NET application? [2003-10-17, VSHIK 2.2, VS 7.1]
  20. 20 Q. How to add Dynamic Help for a tool window? [2003-10-17, VSHIK 2.2, VS 7.1]
  21. 21 Q. Why does my TOC not show? [2003-9-4, VSHIK 2.2, VS 7.1]
  22. 22 Q. My VS IDE is reset after installing VSHIK? [2003-9-4, VSHIK 2.2, VS 7.1]
  23. 23 Q. How do I find the VS Lang, Current MSDN NSpace  [2003-8-27, VSHIK 2.2, VS 7.1]
  24. 24 Q. Weird Errors [2003-3-10, VSHIK 2.1, VS 7.0]
  25. 25 Q. Alternate Development and Installation Tools? [2002-12-5, VSHIK 2.1, VS 7.0]
  26. 26 Q. How can I get the TOC icon strip? [2002-11-01, VSHIK 2.1, VS 7.0]
  27. 27 Q. Why change MS.VSCC namespace name?    [2002-9-20, VSHIK 2.1, VS 7.0]
  28. 28 Q. Where can I download MS Help 2.x SDK?    [2002-4-11, VSHIK 2.1, VS 7.0]
  29. 29 Q. Where is the VSHIK Documentation?    [2002-4-14, VSHIK 2.1, VS 7.0]
  30. 30 Q. How do I get VS .NET Dynamic Help to work?    [2002-5-16, VSHIK 2.1, VS 7.0]
  31. 31 Q. How do I find the Path to the VS .NET Folders?    [2002-10-29, VSHIK 2.1, VS 7.0]
  32. 32 Q. How to make links that wont break?   [2003-3-17, VSHIK 2.1, VS 7.0]
  33. 33 Q. How can I speed up first time open?   [2002-6-3, VSHIK 2.1, VS 7.0]
  34. 34 Q. How do I install VSHIK without VS .NET?    [2002-7-24, VSHIK 2.1, VS 7.0]
  35. 35 Q. What platforms support MS Help 2?    [2001-11-17, H2 Preview 2.0.9064.0]
  36. 36 How do I fix missing DTD compile error?     [2001-11-17, H2 Preview 2.0.9064.0]
  37. 37 Q. Collection-level files do not contain the DTD references?    [2001-11-17]
  38. 38 Q. Umlauts cause XML errors when compiling?   [2001-12-18, H2 Preview 2.0.9064.0]
  39. 39 Jot Notes:

Top

Q. Does VS 2010 use MS Help 2.x?

No. Starting with VS 2010, there is a new help system called MS Help Viewer 1.0. You will need to tweak your Help 2.x projects to make them compatible and integrate into VS 2010 help.

Information on MS Help Viewer 1.0

Top

Q. Where has HxConv.exe and other Hx*.exe SDK files gone?

The H2 utilities were accidently removed from VS 2008 SDK (including  hxcomp.exe, hxconv.exe, hxcsrv.exe, HxMerge.exe, hxreg.exe).

Ed Dore [MS] posted this in the MS forums:

The HxConv.exe and HxMerge.exe utilities were inadvertently removed when the development team pulled the Archive sample folder out of the SDK. Unfortunately, the Help 2.0 utilities were inappropriately contained in the old Help Integration sample, and were not moved to a more appropriate location. The components can still be retrieved from the older V4 SDK (for VS 2005). There is a bug logged against this, but the Help experience for VS 2010 will be updated to MS Help Viewer 1.0, so the tools may not appear in the next version of the SDK either.

Workaround? Find a machine with VS 2005 and install the VS 2005 SDK. Copy and paste the missing utilities into the VS 2008 SDK directory?

     Usually  C:\Program Files\Common Files\microsoft shared\Help 2.0 Compiler\

Top

Q. Why wont HxConv.exe convert my .CHM files? [2006-07-29, VS 2005 SDK]

VS 2005 no longer converts .CHM files (to an MS Help 2.x project). If you try to you will get the following error message...

Error HXCONV2011: Unrecognized file type '...\somefile.chm'. Must be one of hhp, hhc, hhk, html, or col.

MS had to drop the functionality from VS 2005 (long story). VS 2005 SDK HxConv.exe still converts .HHP projects.

If you do have a .CHM without source your options are:

  • Download the free KeyTools from the Keyworks website. Unlike most decompilers this one will generate a .HHP file for you.
  • Install VS 2003 & VSHIK 2003. This version still converts .CHM files.

Top

Q. How do I plug into VS 2005/2008 Express? [2006-06-24, VS 2005]

VS Express is a cut-down version of VS. Plugging into the express version is the same as other versions. Simply plug into ms.vsipcc.v80 as usual (ms.vsipcc.v90 for VS 2008).
However products such as our H2Reg.exe which register collections and perform a pre-merge, need to merge the collection "ms.vsexpresscc.v80" (normally ms.vscc.v80).

28-June-2006

MS did not plan on 3rd party plug-ins in VS 2005/2008 Express. If you want your plug-ins to appear in Express then an extra attribute "DocSet=ExpressLibVS" is required in the XML data Island of all HTML files. See thread in MSHelp2 Yahoo Group.

<xml>
<MSHelp:Attr Name="DocSet" Value="ExpressLibVS" />
...
</xml>

Top

Q. Where is the Help Integration Wizard for VS 2005? [2005-11-30, VS 2005]

Go to http://msdn2.microsoft.com/en-us/vstudio/aa700819.aspx. You should also download the VS 2005 SDK since it contains some documentation (last time I checked) on Help Integration Wizard as well as the usual MS H2 authoring tools and documentation. VS 2005 SDK also contains an updated MS Help 2 Authoring tool, HelpStudio Lite by Innovasys

Note: To find out what version of Help Integration Wizard is installed, examine the assemblies which you’ll find in the "\Program Files\Microsoft\Help Integration Wizard\bin" folder (assuming a default install). The most recent version (30-Nov-2005) is 2.0.51109.0. Setup will uninstall older versions before installing the new one, so users can just run the RTM setup to replace any Beta version on their machine.

Top

Q. How do I install VS SDK without VS 2005?    [2005-7-29, VS SDK 2.5, VS 8.0]

Unblocking VS 2005 SDK (contains Help 2.x SDK for VS v8.0 2005)

31-Jul-2005 - Update: Added Martin's new patch for VS 2005 SDK APRIL 2006 release (so now we have a patch for the original OCT 2005 SDK & the APR 2006 SDK).

Rob Chandler: 
Martin Sojdr has once again come through with a great fix to unblocking the latest VS 2005 Help SDK install (ie. how to install VS 2005 Help SDK without having to first install VS 2005). Reader please note that VSHIK is no longer available as a separate download. The Help SDK is now part of the VS 2005 SDK (formally known as VSIP). Many thanks Martin. Also many thanks to James Chaldecott who tweaked Martins Beta solution and made it work with the official RTM version of the VS October SDK.

Note that for older VSHIK unblocking under VS 7.x see How do I install VSHIK without VS .NET? below.

Why do we want this? Because VS is very expensive and authors can write and compile help using FAR and other authoring tools without the need for purchasing VS. Also if you are integrating help into a 3rd party systems such as Borland's Delphi 2005+ then purchasing VS not required and a waste of money.

Instructions

  1. Download VS 2005 SDK (formally VSIP) from http://msdn2.microsoft.com/en-us/vstudio/aa700819.aspx
  2. Unzip the download (a file name like VsSDKOctober2005.exe) to a local folder (we used winzip which worked well).
  3. Download Martin's patch (download the patch the matches your SDK version)
    * For VS 2005 SDK (OCT 2005 v1 RTM) - NET2_patch_vshik_setup.msi.zip (or from Helpware site here) $$$
    * For VS 2005 SDK (APR 2006 v2 RTM) - NET2April2006_patch_vssdk_setup.msi.zip (or from Helpware site here $$$)
    * For VS 2005 SDK (FEB 2007 v4 RTM) - No neat solution yet. However, Wieland Scholz emailed me a nice solution today. See Additional Notes below.
  4. Unzip the patch (.vbs file) into the same directory as the SDK's MSI database (vssdk.msi).
  5. Run the patch (.vbs file). An OK message box should appear if successful, otherwise there will be some error message.
  6. Finally run Setup.exe to install the VS 2005 SDK (see James note below).

James: It's worth mentioning that users now only need to install 'vssdk.msi' to get the help compiler, not run 'setup.exe' (which installs some extra stuff such as Help Studio Lite).

Martin: The new Whidbey IDE comes along with the .NET 2.0 and its new SDK does not reflect the structure of the former VSHIK. I have made the investigation on the Visual Studio .NET 2005 Beta 2 SDK installation and created the new patch for the use with this new SDK, containing the material for the Help 2 authoring. Just follow Robs instructions above.
Good luck with help authoring,
Martin

Robert: Note that the VS 2005 SDK documentation is now on-line here.

Top

Q. Additional Notes - Feb 2007 v4 VS SDK without VS 2005? [2007-06-29, VS 2005]

Carrying on from How do I install VS SDK without VS 2005? above...

VS 2005, Feb 2007 VS8 v4 SDK can be installed without VS 2005 if you follow these instructions from Wieland Scholz.
Thanks Weiland.

----

Hi all,
I've got the same problem as reported at your website and have found a solution:
 

  1. Download the setup program for WinSDK from MS Web Site.
  2. Run Setup. Select only "Developer tools/Windows development tools/Win32 Development tools". Install it.
  3. Download VsSDKFebruary2007.EXE - http://msdn2.microsoft.com/en-us/vstudio/aa700819.aspx
  4. Unpack it
  5. Run \Microsoft SDKs\Windows\v6.0\Bin\MsiDB.EXE and load VSSDK.msi that was extracted from VsSDKFebruary2007.EXE
  6. Define a text directory to hold some text files
  7. Press the Export radio button and select the "LaunchCondition" line, press OK
  8. Open the file LaunchCondition.idt with a text editor and remove the following two lines:
    - (DEVENV_DIR <> "") OR Installed Visual Studio 2005 SDK can only be installed on machines with Visual Studio 2005 installed.
    - DEXPLORE_DIR [ProductName] requires MSHelp 2.0 to be installed. You can get it from Visual Studio and MSDN Library.
  9. Save the changed text file
  10. In MSIDB.EXE import the changed IDT file

You're done. Hope that helps also other people
Best regards
Wieland Scholz

Top

Q. Where is VSHIK Help SDK? [2005-06-25, VS 2005 Beta 2]

Help 2.0 SDK is no longer a separate download. It is now part of the VS SDK (formerly VSIP SDK).

A free download from: http://msdn2.microsoft.com/en-us/vstudio/aa700819.aspx

Top

Compile Warning HXC6048 with VS v8 Beta 2 [2005-07-02, VS 2005 Beta 2]

I can't remember my collection giving this warning under previous versions.

Warning: HXC6048: File D:\..\h2reg.HxK, Line 0, Char 0: No Term defined in tag <Keyword ...>. Ignored.

Mark Brandjord [MS Help team] kindly steered me right. My HxK contained an empty attribute Term="". According to the .HxK DTD the Term attribute is required and after I filled this in the warning went away. I could have ignored the warning since the result was ok. The difficult thing here was the Warning message was completely misleading. It said Line 0, Char 0 however the problem was on the last element of my .HxK file <Keyword Term="">.

Top

Plug into MS.VSIPCC.v80 not MS.VSCC.v80 [2005-06-25, VS 2005 Beta 2]

MS now recommend you plug into MS.VSIPCC.v80 and not MS.VSCC.v80 (MS.VSIPCC.v80 is plugged into MS.VSCC.v80). It is designed to keep 3rd party help grouped together and out of way of the MS collections. And in the event that something goes terribly wrong, you can simply unplug MS.VSIPCC.v80 to unplug all third party collections.

Additional: Microsoft MSI registration does more than simply register/plug-in your collection. In VS 2003 it also regenerated the base MS.VSCC collections. So now by plugging into MS.VSIPCC.v80 there a little less risk involved.

Top

Q. Can I control Plug-in Order? [2004-11-26, VSHIK 2.5, VS 2005]

Only MS Help 2.5.x and greater supports plug-in order. MS Help 2.5.x is installed with VS 2005, as well as later versions of MSDN etc. Plug-in order is achieved by adding IDs to your Master TOC and to the TOCs of collections that plug into that. Thus you can control the order when plugging into your own collections but not when plugging into say MS.VSCC (since you do not control the source and its TOC IDs).

14/April/2007 - This documentation is now in online in MSDN.  Or search you VS SDK for a topic labelled "Inserting the TOC of a Child Collection into a Parent Collection".

Top

Q. What is the Collection Manager Page? [2005-06-25, VS 2005 Beta 2]

VS 2003 and VS 2005 collections contain a built-in "Collection Manager" page where you can plug/unplug collections. Very useful if you or your customer has a corrupted VS Collection and need to unplug a suspect 3rd party collection. Also useful if you want to use a different MSDN Quarterly Library.

Note: In earlier versions of VS users could go to the "Tools > Options > Environment > Help > Preferred Collection", and swap out MS.VSCC for a MSDN Quarterly Library. This of course broke all 3rd party help integrated into VS. Thankfully MS appear to have removed this option from VS 2005.

How to find the Collection manager page:

For VS 2003 open the home page, and click on the link "Visual Studio .NET Combined Help Collection Manager". The Collection Manager will show you the list of collections plugged into VS 2003 collection. Uncheck collections that you want to remove from VS 2003 and click Update VSCC. After that you have to close and restart VS and the doc viewer. It will take several minutes to remerge the VS .NET 2003 combined collection.

Alternatively you can open the Collection Manager page in Explorer by pasting the following URL into IE address bar:
ms-help://MS.VSCC.2003/VSCCCommon/cm/CollectionManager.htm

For VS 2005 paste this URL into IE address bar:
ms-help://MS.VSCC.v80/dv_vscccommon/local/CollectionManager.htm

The VS 2005 Collection manager covers plug-ins for MS.VSCC.V80, MS.MSDN.V80, MS.MSDNARCHIVE and MS.VSIPCC.V80 (I simply did a view source). Unfortunately the page does not list these collection names. It simply lists the namespaces (with checkboxes) that plug into these collections.

Top

Q. Why wont DExplore detect/auto-merge my registration? [2005-06-25, VS 2005 Beta 2]

For VS v8 Beta 2 MS decided to disable the DExplore detect/auto-merge feature. Thus under Beta2 you will register and plug-in your collection but it will never merge or show unless you performed a merge at registration time (which is what they wanted to encourage). This decision has now been reversed and the RTM (release to manufacturing) version has gone back to the old way (thankyou!).

In beta 2 then how do you force a merge so I can see my plug-ins?

The easiest way is to view ms.vscc.v8 in the FAR H2 viewer or our H2Viewer. Third-party viewers still detect and auto-merge. Only MS DExplore beta 2 inhibits the detect/auto-merge feature.

Update: 18-Aug-2005 -- thanks to Mark Brandjord [MS] and Jeremy Jones [MS].

With VS 2005 Beta 2, the VSIP CC merge module (VSIPCC_Collection_Files_RTL_---_---.msm) contained only 1 custom action, which performed a merge on the ms.vsip.v80 collection. Thus developers don't see their collections merged. With VS 2005 RTM the issue will be fixed and the VSIP CC merge module performs 2 custom actions - a merging both ms.vscc.v80 & ms.vsexpress.cc. When available, under VS 2005 RTM you should update VSIPCC_Collection_Files_RTL_---_---.msm to fix the merge issue.

One solution for VS 2005 Beta 2 is to adding the same custom action used by VSIP install
CA_HxMerge_VSCC_v80.B0BDEC1E_A22E_404B_8F47_1BB125A1FA05 3650 BIN_File_60377 ms-help://MS.VSCC.v80

Top

Q. Fatal Error HXC2064: Unable to initialize the full-text index engine [2005-02-22]

Earl Seugling contacted me after his compiles all started failing on the build machine with error HXC2064. I contacted the MS help team who very kindly checked the code and suggested two possible situations that could cause this compiler error.
 
  1. The system has become corrupted and requires a reinstall or repair. In all probability, one or more of the IT DLLs is no longer registered (ITCC.dll, MSITSS.dll or ITIRCL.dll). Either re-register the DLLs, or re-install the VSIP or VSHIK to fix this.
  2. The user has run out of temporary file system space (the partition is the one that the environment variable %TEMP% points to). Free up some TEMP space and re-try.

We discovered that every time you compile a HxS file there is a file TMP*.tmp created (approx 100K with a ITOLITLS signiture) in the %TEMP% folder. In Earl's case their build machine had produced 7.6GB of .tmp files completely filling the drive. Removing the .tmp files fixed the problem.

Top

Q. How do I fix a broken MS Help 2 Installation? [2005-03-14]

Stuff happens under Windows. MS Help 2 documentation like everything is dependant on services from a number of DLLs and ActiveX controls. If these become unregistered or corrupted then MS Help 2 documentation can fail or misbehave.

If you are having big problems then one resource you can try is 
http://mshelpwiki.helpmvp.com/mshelp/ms-help-2/help2msiwontuninstall
http://mshelpwiki.helpmvp.com/mshelp/ms-help-2/fixh2

Top

Q. Help Services Locked [2004-08-06, VSHIK 2.2, VS 7.1]

A user in the MSHelp2 Yahoo group reported registration attempts were failing. H2Reg giving a message: "MS Help 2.x services have been locked by another process. If this error persists restart Windows to release the lock."

Normally a reboot would clear the lock but in this case it didn't. Mark Brandjord [MS] (Marc now looks after the H2 API for the Help team) posted this helpful reply:

See also: H2 Posts

In <MSHelp2@yahoogroups.com>, "Mark Brandjord" <markbran@m...> wrote:

It sound like you started a help installation that has not completed, for one reason or another.

Check for the presence of the file: C:\Documents and Settings\All Users\Application Data\Microsoft Help\Rgstrtn.lck
or C:\Documents and Settings\All Users.WINDOWS\Application Data\Microsoft Help\Rgstrtn.lck

If that file is on the system, it prevents another help install process from running until the one that is currently running completes.

Rebooting the system should clear that file.

If the file is still there after reboot, you can manually delete the file to clear the lock; however this means that one of help systems you installed recently did not complete its installation correctly. When the lock file is created, a directory in the Microsoft Help folder is also created to back up the HxN/HxL files that get changed during a transaction. On Commit, this folder is thrown away, on Revert/Rollback, the backups are restored. The name of this folder is the GUID representing the product key that created the transaction.

I hope that this helps. 
Mark Brandjord

In <MSHelp2@yahoogroups.com>, "earlseug" <earl@a...>  wrote:

Mark,

After doing some more digging I finally found a mention of Rgstrtn.lck in another group. Deleting it did the trick.

Thanks for the explanation of exactly what this .lck files purpose is. As they say knowledge is power.
Best Regards,
Earl

Top

Q. How do I unregister files have been removed from disk? [2004-1-23, VSHIK 2.2, VS 7.1]

All User registration info is kept in this folder.
c:\Documents and Settings\All Users\Application Data\Microsoft Help
or c:\Documents and Settings\All Users.WINDOWS\Application Data\Microsoft Help
 

User restricted registration info is kept in a similar folder. From memory... 
c:\Documents and Settings\<UserName>\Application Data\Microsoft Help

nslist.hxl - Contains list of all registered namespaces.

A collection registration under Namespace = XYZ, Locale 3081 = English (Australia).

XYZ.hxn -- Namespace info for XYZ.
XYZ_3081_MKWD_A.HxW HxW - Merged Associated Index. 
XYZ_3081_MKWD_F.HxW HxW - Merged Context Index. 
XYZ_3081_MKWD_K.HxW HxW - Merged Keywords Index. 
XYZ_3081_MKWD_NamedUrlIndex.HxW HxW - Merged Named URL Index. 
XYZ_3081_MValidator.Lck Lock file 
XYZ_3081_MValidator.HxD ?
XYZ_3081_CValidator.HxD ? 
XYZ_3081_FiltersCache.HxG Filter Cache ?
XYZ_3081_MTOC_NS.HxH Merged TOC file

Maybe you need to delete some registration info files. However the safest way to unregister files is to use a tool like Namespace.exe (comes with VSHIK) or FAR (shareware from http://helpwaregroups.com/products/far/ ).

Problem if you remove files before they are first unregistered the H2 API is not happy and will fail to unregister. FAR on the other hand will successfully unregister collections even if files have been removed.

Top

Q. Can I access XLM Data Islands via IE5 DOM? [2004-1-23, VSHIK 2.2, VS 7.1]

A. Yes. See http://msdn2.microsoft.com/en-us/library/ms763742.aspx

Top

Q. How do I write help for .NET application? [2003-10-17, VSHIK 2.2, VS 7.1]

MS Help 2 help was designed for the VS .NET environment only (and now also for Borland .NET online help). The applications you create with VS .NET ordinarily use HTML Help 1.x (chm files). Notice that VS .NET applications no longer support Context IDs. Instead use an index to store the mapping info (A or K). Alternatively keep "Context ID to URL" mapping information on the application side (in an INI file or maybe in code defined in a switch statement).

Top

Q. How to add Dynamic Help for a tool window? [2003-10-17, VSHIK 2.2, VS 7.1]

Marc Young [MSFT] discusses how to manage dynamic help when there is a tool window up that may or may not have focus. Read Marc's Newsgroup reply $$$.

Top

Q. Why does my TOC not show? [2003-9-4, VSHIK 2.2, VS 7.1]

The most common problem with plugging into another collection is that the collection-level HxT file is not setup correctly. You must include each TOC by using its HxS's TitleID.
Example: If you have a collection with 2x HxS files registered as "MyTitle1" and "MyTitle2" then you most reference the TOCs using these Titles IDs. The collection-level HxC would look like this:

<?xml version="1.0"?>
<!DOCTYPE HelpTOC SYSTEM "ms-help://hx/resources/HelpTOC.DTD">
<HelpTOC DTDVersion="1.0" PluginStyle="Flat">
   <HelpTOCNode NodeType="TOC" Url="MyTitle1"/>
   <HelpTOCNode NodeType="TOC" Url="MyTitle2"/>
</HelpTOC>

Top

Q. My VS IDE is reset after installing VSHIK? [2003-9-4, VSHIK 2.2, VS 7.1]

2003-9-3: Post by Marc H. Young [MSFT]

I spoke with one of our devs who explained that the VSHIK installer *does* call devenv.exe with the /setup switch, which resets the IDE to its default state. This isn't a bug, but a necessary (albeit inconvenient) part of the VSHIK installation.

Top

Q. How do I find the VS Lang, Current MSDN NSpace  [2003-8-27, VSHIK 2.2, VS 7.1]

2003-8-27: Post by Marc Islam [Program Manager, Microsoft NUI Help]

Visual Studio.NET uses several keys in the registry to keep track of the default help system.  The example below only applies if the user explicitly sets VS to use the MSDN namespace.  By default, the namespace used by VS is MS.VSCC.2003 and the MSDN namespace is "plugged into" MS.VSCC.2003 through a different mechanism.  Unfortunately, there are no supported interfaces for discovering plug-in relationships among namespaces.

  1. Get the default language:
    [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.1\Help]
    "Language"="0x0409"
     
  2. Look for the language value as a sub-key under 
    [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.1\Help]

    and get the Collection GUID:
    [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.1\Help\0x0409]
    "Collection"="{32AF11EA-A804-47bd-BDAE-31653BD0CDD9}"
     
  3. Use the Language and Collection GUID, you'll find the registered collections under 
    HKLM\Software\Microsoft\VisualStudio\7.1\Help\<language>\<GUID>

For example:
  
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Help\0x0409\{32AF11E
A-A804-47bd-BDAE-31653BD0CDD9}]
  "VS_Docs"="7.1"
  "Filename"="ms-help://MS.MSDNQTR.2003FEB.1033"
  @="MSDN Library for Visual Studio .NET 2003"

Marc Islam
Program Manager, Microsoft NUI Help

See also: How do I find the Path to the VS .NET Folders (below)

Top

Q. Weird Errors [2003-3-10, VSHIK 2.1, VS 7.0]

  • I cannot view source.
  • Topic pages open in viewer but images and CSS don't show correctly until I hit F5.
  • Error HXC4001 File file/??, Line 2, Char 73 XML syntax error Unable to instantiate the object.Error processing resource 'MS-Help//Hx/Resources/HelpFileList.DTD'.

All these weird errors were fixed by deleting the Internet Explorer temporary internet files.

Top

Q. Alternate Development and Installation Tools? [2002-12-5, VSHIK 2.1, VS 7.0]

You can avoid Visual Studio and MSI Installation completely.

Shareware FAR HTML fully supports MS Help 2.x authoring outside the VS environment. It offers a numerous time saving tools including Import/Export of all Namespace info from/to a H2Reg Script file. FAR Home Page: http://helpwaregroup.com/products/far/

Shareware H2Reg can register namespaces, titles, filters, plug-ins without the aid of MSI. H2Reg Home Page: http://helpwaregroup.com/products/h2reg/

VSHIK normally requires VS .NET to be installed.

Top

Q. How can I get the TOC icon strip? [2002-11-01, VSHIK 2.1, VS 7.0]

H2 allows you to add your own custom icon to your TOC. You supply a BMP file containing an alternative strip of 16x16 icon images to use. The file must be in the same folder as the project (.Hx?) files. The BMP must be 16 pixels high and 16*n pixels wide. 
Important: You must add the BMP file to your projects .HxF include file.

Tip: Start with a copy of the original H2 image file and extend this with your own 16x16 images. The original icon strip can be extracted from hxvz.dll (Typically located at:
c:\Program Files\Common Files\Microsoft Shared\Help\hxvz.dll). If you don't own a resource extraction tool you can download the image here.

Top

Q. Why change MS.VSCC namespace name?    [2002-9-20, VSHIK 2.1, VS 7.0]

Early 2003 we should see the release of Visual Studio .NET Version 7.1 (code named Everett). Because of the the many new changes, MS have decided to change the 7.1 general VS namespace name to VS.VSCC.2003. This allows users to install 7.0 and 7.1 side by side.

H2Reg Tip: If you have content appropriate for both MS.VSCC and MS.VSCC.2003 then I suggest you alter your H2Reg registration script file (for plug and unplug) to include both possibilities. If one of the VS Namespaces does not exist then that registration will fail gracefully with not error message (provided that H2Reg error checking is disabled).

[Reg_Plugin]
;<nsName_Parent>|<HxT_Parent>|<nsName_Child>|<HxT_Child>|<HxA_Child>
MS.VSCC|_DEFAULT|ACME.MyProduct.Help|_DEFAULT|MyAttribs.HxA
MS.VSCC.2003|_DEFAULT|ACME.MyProduct.Help|_DEFAULT|MyAttribs.HxA

[UnReg_Plugin]
;<nsName_Parent>|<HxT_Parent>|<nsName_Child>|<HxT_Child>|<HxA_Child>
MS.VSCC|_DEFAULT|ACME.MyProduct.Help|_DEFAULT|MyAttribs.HxA
MS.VSCC.2003|_DEFAULT|ACME.MyProduct.Help|_DEFAULT|MyAttribs.HxA

2002/12/5: Note that H2Reg version 1.2.1 now supports a trailing "+".
Example: MS.VSCC+|_DEFAULT|ACME.MyProduct.Help|_DEFAULT|MyAttribs.HxA
will plug ACME.MyProduct.Help into MS.VSCC or any namespace starting with "MS.VSCC."

H2Reg Home Page: http://helpwaregroup.com/products/h2reg/

Top

Q. Where can I download MS Help 2.x SDK?    [2002-4-11, VSHIK 2.1, VS 7.0]

The H2 SDK is now available on the MS website. It is available as the new VSHIK (Visual Studio .NET Help Integration Kit). See H2 Info Page for details.

Top

Q. Where is the VSHIK Documentation?    [2002-4-14, VSHIK 2.1, VS 7.0]

After installing VSHIK you will find the online documentation under the namespace of MS.VSHIK (vshik 2.1) or MS.VSHIK.2003 (vshik 2003). For some reason VSHIK 2.1 does not setup a shortcut link to Help, you need to do this yourself.

MVP David Liske: Create a shortcut to the docs, use the following "c:\program files\common files\microsoft shared\help\dexplore.exe" /helpcol ms-help://ms.vshik
(DExplore.exe is the Visual Studio .NET, MS Help 2 document viewer).

You can also open MS.VSHIK or MS.VSHIK.2003 using David's H2 viewerHelpware H2Viewer or using the built-in viewer in FAR.

Top

Q. How do I get VS .NET Dynamic Help to work?    [2002-5-16, VSHIK 2.1, VS 7.0]

The information in the VSHIK White Paper on required attributes is incorrect. MS has acknowledged the following bug:

Appendix B in the DH integration guide is incorrect. The only required attributes are TopicType and Locale (The white paper forgot to mention TopicType). Also you should *not* use the HelpPriority attribute unless you absolutely need it for disambiguation.

We (Michael) have written our own tutorial to help clarify this confusing Beta document: 
Dynamic Help Tutorial by Michael Waltuch

Top

Q. How do I find the Path to the VS .NET Folders?    [2002-10-29, VSHIK 2.1, VS 7.0]

Here is the recommended way to find the location of the VS .NET Environment Dir:
 

for VS 2002 - HKLM\SOFTWARE\Microsoft\VisualStudio\7.0} value InstallDir
for VS 2003 - HKLM\SOFTWARE\Microsoft\VisualStudio\7.1} value InstallDir
for VS 2005 - HKLM\SOFTWARE\Microsoft\VisualStudio\8.0} value InstallDir

EG: InstallDir = c:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\
Note: VS 7.0 (2002), VS 7.1 (2003), VS 8.0 (2005) are different installs that coexist on the same PC. Document namespace names are also different across installations.

A more handy path is at Key:
   HKLM\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS


Microsoft's VS .NET Dynamic Help code apparently finds the Link Group path like this:

InstallDir + "html\xmllinks\" + LCID
(LCID is Locale ID used, EG. 1033  for English).

Example:
c:\program files\Microsoft Visual Studio .NET\Common7\IDE\HTML\XMLLinks\1033


What VS.NET language is install?

HKLM\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS\BuildNumber, 
has a value: 1033 = 7.0.9466 
(ie. check the LCID value)

Note: Next VS .NET version 2003 will be 7.1 rather than 7.0


What are the current LCIDs being used by VS .NET 7.0

1028   Traditional Chinese
1031   German
1033   English
1034   Spanish
1036   French
1040   Italian
1041   Japanese
1042   Korean
2052   Simplified Chinese


Further discussion:

Foreign language install is a tricky area. MS themselves are currently looking at the best way to advise customers. If you look in Visual Studio help options (Tools > Options > Environment (folder) > Help) you can see the user can select both the help language and preferred collection. Now 99.99% of the time you can go with the VS studio language, but what if the user prefers MSDN Quarterly Library help (normally in English) on a German PC.

My advice at this time for those installing several help language options is 
1. Install the language matching VS .NET, OR give the user a choice dialog.
2. Always plug into MS.VSCC (normally only one on a PC), if 2 or more MS VSCC.* are
    found then give them a choice dialog.
All easier said than done. See H2Reg.exe  -- It allows you to plug into MS.VSCC+. Optionally create your own custom solution and use our H2Reg.DLL which gives you full programming flexibility.

See also: How to find the VS Lang, Current MSDN Namespace (above)
See also: How to make links that wont break?  (below)

Top

Q. How to make links that wont break?   [2003-3-17, VSHIK 2.1, VS 7.0]

The VS 7.1 release now has Namespace MS.VSCC.2003 (was MS.VSCC). The following path represents Spanish VS 7.1. ms-help://MS.VSCC.2003/MS.MSDNVS.3082/etc

How do we make links in this changing environment?

Firstly if possible keep links in your help relative. Instead of using the Namespace names in your path, use ms-help:/../.. type notation. For example:
   ms-help:/../../commoner/scripts/dtue_ie5.js.
The first /.. takes you up to the current Namespace (your help plugged into MS.VSCC). The second /.. takes you up again to the parent Namespace (in this case MS.VSCC). "Commoner" is a title of MS.VSCC.

The next best advice when linking to MS topics is to use Keyword Links like MS do rather than a hard coded path link. MS use XLinks which are simply links to A Keywords using the format <MSHelp:link ...>text</MSHelp:link>

The ALink keyword for an MS topic is often identical to the file name of the topic minus the '.htm' portion. For information on creating an XLink see your VSHIK documentation. 
ms-help://ms.vshik/mshlpwrk/html/hxlrfindexmonikerattribute.htm
ms-help://MS.VSCC/ms.vshik/mshlpwrk/html/hxlrfmicrosofthelplinkmarkup.htm

Example:

I went to a random page in MS.VSCC collection.
(ms-help://MS.VSCC.2003/MS.MSDNQTR.2004OCT.1033/vsintro7/html/vxtskSearchingObjectsS.htm)
and searched for the ALink associated with that page...
 

<xml>
...

<MSHelp:Keyword Index="A" Term="vxtskSearchingObjectsS"/>
...
</xml>

Here's the link code...
...<P>You can also use the Object Browser. See <MSHelp:link keywords="vxtskSearchingObjectsS" TABINDEX="0">Searching for Symbols: Objects, Definitions and References</MSHelp:link> for more information.

More Info:

Top

Q. How can I speed up first time open?   [2002-6-3, VSHIK 2.1, VS 7.0]

When a collection is made up of multiple .HxS files, Help merges the keyword indexes and TOCs in each of those files.  This is why after registering say a plug-in there is a long delay experienced when you next open the collection.

Merging a namespace creates the combined keyword indexes (.HxW files) and combined TOC files (.HxH files).  You can find .HxW and .HxH files in the same directory as .HxN/.HxL files.  They are created by the Help runtime and cannot be pre-built (in the way that you can pre-build HxI, HxQ and HxR files to optimize Index and Attribute lookup time).

There is no way to eliminate the namespace merge. What you can do, is make the namespace merge part of setup.  Users are much less likely to notice it as part of setup then when they are watching the "Help is updating..." dialog the first time you launch VS.

The VSHIK MSI install performs the Namespace Merge automatically if the collection is MS.VSCC. The Helpware H2Reg Utility performs the Merge only if you specify a -M switch on the command line.

In the whitepaper it mentions which msm this "Merge" custom action is in. If you open that in Orca you can see the custom action and that it has a parameter "MS.VSCC". If you edit this to some other parent collection then the custom action will perform the merge on that namespace.

(Thanks Kipper York of MS for helping out with this explanation)

Top

Q. How do I install VSHIK without VS .NET?    [2002-7-24, VSHIK 2.1, VS 7.0]

Unblocking VSHIK 2002 (V2.1 for VS .NET v7.0 2002) 
& VSHIK 2003 (V2.2 for VS .NET v7.1 2003)

For the newer How do I install VS SDK without VS 2005? please see above.

Officially you must have VS .NET to install the VSHIK Beta. However Development Guru Martin Sojdr posted this excellent fix to get around the VS .NET dependency to the MSHelp2 list:

  1. Download the VSHIK installer VSHIK.exe (for VS 7.x authoring).
  2. Expand the install file VSHIK.exe to a local folder (using say winzip).
  3. Download the file patch_vshik_setup.msi.zip and unzip its contents (patch_vshik_setup.msi.vbs) to the same folder as the VSHIK installation.
  4. Run the VBS file (patch_vshik_setup.msi.vbs).
  5. Finally run Setup.exe to install VSHIK.

Martin adds: 
This (VBS file) will unblock the installation of VSHIK on the systems where VS.NET is not installed. The SQL query "DELETE FROM LaunchCondition WHERE Condition='DEVENV_COMP'" is applied to the MSI database. I hope this will help many HTML Help / MS Help 2 fans having the access only to the public downloads of MSDN. Full functionality of patched installation isn't guaranteed, but after the first trials I found that at least command-line tools (compiler, converter) work fine.

Rob Chandler:
Before proceeding first installed MS Help 2 runtime. Installing either: MSDN Library, .NET Framework SDK, and Microsoft Office Developer. All of these install the MS Help 2 runtime. Note that .NET Framework is free.

Rick Wagner:
I downloaded VSHIK2003.exe and could not get it to unzip. However, I ran it "as is" and, at the end, when the dialogue says that it cannot install and to close the installer, I left that window open and looked in C:\Documents and Settings\rwagner\Local Settings\Temp. I don't know if it would be the same for everyone or not but I found the VSHIK2003 files (unzipped) in "IXP000.TMP." I copied these files into the directory created by unzipping patch_vshik_setup.msi and then closed the installer window. Closing the installer window causes the installer to remove the temporary files so you MUST leave the window open to locate the files.

Rob Chandler:
Thanks Rick. I had no trouble unzipping VSHIK2003.exe using WinZip Version 8.0.

Top

Q. What platforms support MS Help 2?    [2001-11-17, H2 Preview 2.0.9064.0]

27-Aug-2003: MS Help 2 Runtime obviously installs on any machine that can install MSDN or VS .NET (ie. most platforms). MS Help 2 SDK (VSHIK) download page clearly states:
Supported Operating Systems: Windows 2000, Windows Server 2003, Windows XP

Top

How do I fix missing DTD compile error?     [2001-11-17, H2 Preview 2.0.9064.0]

Error HXC4001 File xyz.hxc, Line 2, Char 77 XML Syntax Error No data is available for the requested resource. Error processing resource 'ms-help//Hx/Resources/HelpCollection.DTD'.
The compiler cannot find the specified XML DTD file. When installing the H2 SDK you may have had a newer version of H2 runtime installed (eg. VS.NET or MSDN). This can cause the "Hx" collection to not updated correctly.

You can fix this problem by adding Resources.HxS by hand to the Hx collection. I'll describe how to do this using FAR 3.0.2.

  1. Open the FAR H2 Utilities window.
  2. Right-click the "Hx" collection and select "Register..."
  3. Go to the Titles page of the Registration dialog. If Resources.HxS is already in the list then you have some other problem (do not continue).
  4. Right click the top list and select "Add Title...".
  5. Fill in the form and press OK to add Resources.HxS to Hx collection:
       FileID: Resources
       Lang: 1033 EnUS
       Help File:  c:\Program Files\Microsoft Help 2.0 SDK\Resources.HxS
       All other fields should be left blank
    Note: Your Resources.HxS may be in a different location. You may need to search for it.
  6. Now that Resources.HxS is registered you should be able to compile your project.

Background: H2 runtime contains a collection called "Hx" containing a single help file called HxRuntime.HxS. The SDK install adds to this collection another help file called Resources.HxS, which contains all the DTD files used when compiling.

Top

Q. Collection-level files do not contain the DTD references?    [2001-11-17]

Look inside your help project Hx? source files. All files that need to be compiled into a target .HxS help file contain a reference on line 2 to a DTD file.

<?xml version="1.0"?>
<!DOCTYPE HelpTOC SYSTEM "ms-help://hx/resources/HelpTOC.DTD">
<HelpTOC ...

Uncompiled "collection-level" Hx? files, should _not_ contain the DTD reference line. To do so will cause a problems on your customers machine. Only machines with VSHIK will have the DTD files installed. Collection-level files should look like this...

<?xml version="1.0"?>
<!DOCTYPE HelpTOC>
<HelpTOC ...

Top

Q. Umlauts cause XML errors when compiling?   [2001-12-18, H2 Preview 2.0.9064.0]

Looks like escaped umlauts (eg. Ü -> &Uuml;) can cause compile errors. This is a known issue with the current version of the compiler.

Marc Islam (MS) reports: I'm able to use umlauts as long as my source file is saved as UTF-8.  If it's ANSI, then I also hit the XML parse error.  Try opening your file in notepad and saving as UTF-8.

Top

Jot Notes:

  1. There is more Help 2 Info on our Help 2 Wiki 
    http://mshelpwiki.helpmvp.com/mshelp/ms-help-2
    and also our MS Help 2 Info Page

 

Top