階層 / 関連
Visual Studio .NET 2003
Visual Studio .NET 共通
Visual Studio 6.0
広告
このサイトについて
 

DirectX全バージョンのSDKヘルプをMSDNに統合する

Visual Studio 6.0/MSDN (Windows 9x/2000)

Up ↑

  1. 概要
  2. 準備
  3. hhcolreg.datの編集
  4. MSDN???.COLの編集
  5. 関連リンク(ここで紹介した方法を試して失敗した場合にも参考になります)
  6. ちょっとしたTips
  7. 追伸1(Windows 2000)
  8. 追伸2(DirectX9のヘルプ)(2003/05/29追記)

【改訂第二版】2001/06/26
環境によっては、うまく統合できない部分がありました。また、Windows 2000クリーンインストール環境でも実験しましたので、加筆修正しました。
複数のMSDNライブラリをインストールしている場合の説明を追記しました。

【改訂第三版】2001/10/24
古い版を削除し、2001年10月リリース版のMSDN Libraryをインストールし直したので、このページの古い情報も見直しました。

【情報】2002/04/03
関連リンクで紹介しているサイトにて、2002年1月リリース以降のMSDNライブラリに関する統合情報が紹介されています。

以下は各自の責任で作業して下さい!

概要

DirectXの新版も登場し、ますますゲームプログラムが作りやすくなってきましたね。ヘルプもバージョンを重ねる度に読みやすく、わかりやすくなってきています。

ところで、Visual C++(Visual Studio) と一緒にMSDNライブラリも一緒にインストールしたことと思います。これにはDirectXのヘルプも含まれています。購入した時期によっても違うと思いますが、現行のバージョンより古いヘルプがインストールされている方がほとんどだと思います。そこで新しくリリースされたヘルプをダウンロードしてくるわけですが…、これって、みなさんどのように見ていますか?

ヘルプへのショートカットをデスクトップに並べて、複数のヘルプを立ち上げても構わないのですが、ここはやはりMSDNに統合したいところです。また、MSDNサブスクリプションの会員であれば、三ヶ月に一度、新しいMSDN Libraryが届きますが、時には前のバージョンのヘルプを参照することもあるでしょう。他にも、新しい情報で上書きされては困ることもあります。

そこで、手動で統合/分離する方法を調べて実験してみましたので紹介します。

統合後の目次は図のようになります。

Visual Studio .NETの場合

通常は「MSDNライブラリ」フォルダの下にすべてのツリーがぶらさがっていますが、「DirectX」や「プラットフォームSDK」など、頻繁に使用するものは一番上位のレイヤに出して、閲覧しやすくしました。このように、並べる順番も*.COLファイルの記述次第で自由に入れ換えることができます。

[UP]

準備

まず、それぞれのDirectXヘルプ(拡張子が.chi.chmの二種類)が置いてある場所を調べます。私の場合、古いDirectXヘルプのバックアップをドライブI:に残してあるため、直接この場所へのパスを指定することにします。残しておく時のファイル名は適当に変えてしまっても構いません。

私の場合のヘルプ置き場

I:\MSDN Backup\JPDX5SDK.CHM
I:\MSDN Backup\JPDX5SDK.CHI
I:\MSDN Backup\directx6.chm
I:\MSDN Backup\directx6.chi
I:\MSDN Backup\directx7.chm
I:\MSDN Backup\directx7.chi

[UP]

hhcolreg.datの編集

次に、MSDNの索引とも言うべきhhcolreg.datを修正します。

Windows 9xの場合は、次のパスにあると思います。

C:\WINDOWS\HELP\hhcolreg.dat

Windows 2000をクリーンインストールした場合は、次のパスにあると思います。見つからなければ、<hhcolreg.dat> というキーワードでファイル検索してください。

C:\Documents and Settings\All Users\Application Data\Microsoft\HTML Help\hhcolreg.dat

上記ファイルをテキストエディタで開きます。万が一の事も考えて、オリジナルはリネームして残しておきましょう。

このファイルの一番最後に移動し、「</DocCompilations>」の前に次のフォーマットを使って新しい情報を追加します。「</DocCompilation>」ではなく、最後に「s」がついている方です。

パスは各自の環境に合わせて書き換えてください。「Version value」は適当でも構わないようです。

ColNum value」は、インストールした環境によって値が異なりますので、他の項目に合わせてコピーして下さい。複数のMSDNをインストールすると、その都度カウントされるようです。

<DocCompilation>
    <DocCompId value="jpdx5"/>
    <DocCompLanguage value=1041/>
    <LocationHistory>
        <ColNum value=10006/>
        <TitleLocation value="I:\MSDN Backup\JPDX5SDK.CHM"/>
        <IndexLocation value="I:\MSDN Backup\JPDX5SDK.CHI"/>
        <QueryLocation value="e:\MSDN\2001OCT\1041\MSDNLOCL.CHQ"/>
        <LocationRef value="2001OCT-1041-Local"/>
        <Version value=29411285/>
        <LastPromptedVersion value=0/>
        <TitleSampleLocation value=""/>
        <TitleQueryLocation value="2001OCT-1041-Local"/>
        <SupportsMerge value=0/>
    </LocationHistory>
</DocCompilation>
<DocCompilation>
    <DocCompId value="dx6"/>
    <DocCompLanguage value=1041/>
    <LocationHistory>
        <ColNum value=10006/>
        <TitleLocation value="I:\MSDN Backup\directx6.chm"/>
        <IndexLocation value="I:\MSDN Backup\directx6.chi"/>
        <QueryLocation value="e:\MSDN\2001OCT\1041\MSDNLOCL.CHQ"/>
        <LocationRef value="2001OCT-1041-Local"/>
        <Version value=29411285/>
        <LastPromptedVersion value=0/>
        <TitleSampleLocation value=""/>
        <TitleQueryLocation value="2001OCT-1041-Local"/>
        <SupportsMerge value=0/>
    </LocationHistory>
</DocCompilation>
<DocCompilation>
    <DocCompId value="jpdx7_c"/>
    <DocCompLanguage value=1041/>
    <LocationHistory>
        <ColNum value=10006/>
        <TitleLocation value="I:\MSDN Backup\directx7.chm"/>
        <IndexLocation value="I:\MSDN Backup\directx7.chi"/>
        <QueryLocation value="e:\MSDN\2001OCT\1041\MSDNLOCL.CHQ"/>
        <LocationRef value="2001OCT-1041-Local"/>
        <Version value=29411285/>
        <LastPromptedVersion value=0/>
        <TitleSampleLocation value=""/>
        <TitleQueryLocation value="2001OCT-1041-Local"/>
        <SupportsMerge value=0/>
    </LocationHistory>
</DocCompilation>

【複数のMSDNをインストールしている場合は…】2001/06/26追記)

複数のMSDNをインストールした場合は、下のように『コレクションID』が増えるため、組み込みたいコレクションIDに合わせる必要があるようです。

(私のWin2K環境の場合:hhcolreg.datの先頭部分です)

<XML>
<HTMLHelpDocInfo>
<NextCollectionId value=10007/>
<Collections>
<Collection>
    <ColNum value=10001/>
    <ColName value="C:\DOCUME~1\ユーザー名\LOCALS~1\Temp\devmgmt.col"/>
</Collection>
<Collection>
    <ColNum value=10002/>
    <ColName value="h:\MSDN98\98VS\1041\msdnvs98.col"/>
</Collection>
<Collection>
    <ColNum value=10006/>
    <ColName value="e:\MSDN\2001OCT\1041\MSDN130.COL"/>
</Collection>
</Collections>
      :

[UP]

MSDN???.COL の編集

最後に、MSDNヘルプのディレクトリの中の「*.col」ファイルを書き換えます。このファイル名は環境によって異なります。

colファイルの例

H:\MSDN98\98VS\1041\MSDNVS98.COL
E:\MSDN\2001OCT\1041\MSDN130.COL

おそらくコレクションという意味だと思いますが、これが実際の目次レイアウトになります。

上でも書いたように、DirectXの見出しを「プラットフォームSDK」のサブ項目から一番上位のレイヤに出すので、元のDirectXの記述を削除して、一番下に移動しました。レイヤを移動する必要がない場合は、単に置き換えだけでO.K.です。

FolderOrder」は、適当でもO.K.のようです。

TitleString value」の識別子は、上で編集したhhcolreg.datに合わせておかないと認識しません。

      :
      :
<Folder>
    <TitleString value="DirectX 5 日本語マニュアル"/>
    <FolderOrder value=1/>
    <Folder>
        <TitleString value="=jpdx5"/>
        <FolderOrder value=1/>
        <LangId value=1041/>
    </Folder>
</Folder>
<Folder>
    <TitleString value="DirectX 6 英語マニュアル"/>
    <FolderOrder value=1/>
    <Folder>
        <TitleString value="=dx6"/>
        <FolderOrder value=1/>
        <LangId value=1041/>
    </Folder>
</Folder>
<Folder>
    <TitleString value="DirectX 7 日本語マニュアル"/>
    <FolderOrder value=1/>
    <Folder>
        <TitleString value="=jpdx7_c"/>
        <FolderOrder value=1/>
        <LangId value=1041/>
    </Folder>
</Folder>
<Folder>
    <TitleString value="DirectX 8.0 日本語マニュアル"/>
    <FolderOrder value=1/>
    <Folder>
        <TitleString value="=jpdx8_c"/>
        <FolderOrder value=1/>
        <LangId value=1041/>
    </Folder>
</Folder>
<Folder>
    <TitleString value="DirectX 8.1 (C++) Pre-Release"/>
    <FolderOrder value=1/>
    <Folder>
        <TitleString value="=dx8_c"/>
        <FolderOrder value=1/>
        <LangId value=1033/>
    </Folder>
    <Folder>
        <TitleString value="=dxmredir"/>
        <FolderOrder value=3/>
        <LangId value=1033/>
    </Folder>
</Folder>
      :
      :

作業は以上です。Visual Studioのヘルプからでも直接でも構いませんので、MSDNライブラリを起動します。

「キーワード」をクリックした場合は、自動的にキーワードの再構築をしてくれます。修正後の初回キーワード検索だけは、ものすごく時間がかかりますので、一服して待ちましょう。

これを自動でやってMSDN以外の全.chm/.chiを統合するツールが作れそうですね。

[UP]

関連リンク

2001年6月17日:リンク追加

MSDNの改造

馬場 基彰さんのサイト:ご連絡ありがとうございました。お役に立てて嬉しいです。

HTMLファイルや、ヘルプファイルをMSDNに統合する方法が紹介されています。プラットフォームSDKの関数一覧サンプルもダウンロードできます。他にも…

「ここで紹介した方法を試してみたが、失敗してしまった!」

「MSDN自体が起動できなくなってしまった! どうしてくれるんだ〜!」

という方にも、参考になる復旧方法などが紹介されています。

でも、こうならないためにも、作業前には必ずバックアップしておきましょう!

[UP]

ちょっとしたTips

MSDNライブラリを含み、IEコンポーネントを使ったWindowsのHTMLヘルプは、文字サイズの設定がIEと共用です。これは無茶苦茶不便ですが、現在のところヘルプ別にフォントサイズの指定はできないようです。

ALTVTでフォントを切り替えても良いのですが、ホイール付きマウスをお持ちでしたらCtrl+[ホイールくるくる]でフォントサイズを切り替えることができます。いったん、ヘルプの右ペイン(目次ではない方)をクリックしてから試して見てください。F6を押しても左右のペインが切り替わります。フォントサイズの変更オプションが存在しないヘルプにも有効です。

(IEでご覧の方は、当然このページでも有効です)

この場合でも、すべてのIEコンポーネントを使うブラウザが影響されることには変わりませんが、少しでもわずらわしさが減るのではないかと思います。

[UP]

追伸1(Windows 2000)

2001/1/28

私は、上記設定をWindows 98SEで行い、Windows 2000にアップグレードしましたが、ディレクトリの位置や設定は引き継がれているようです。

2001/4/13

Windows 2000クリーンインストールでも確認できました。少々間違った(勘違いしていた)記述がありましたので、修正しました。

[UP]

追伸2(DirectX9のヘルプ統合)

2003/1/10

DirectX9のドキュメントも.chmでしたら上記の方法で統合できます。

msiでインストールする方は、そのまま普通にVisual Studio .NETのヘルプ(MSDN)に統合されることを確認しました。

 

2003/5/29

DirectX9ドキュメント中のリンクをクリックすると、言語の選択を促すメニューが表示される環境があります。これは、次のように「コントロールパネル」→「プログラムの追加と削除」から「DirectX9 SDK」の「変更」を選択し、「DirectX Documentation」を無効にすることで回避できます。

こんな感じです。

 

Up ↑

(2001/01/14)

 

[UP]