カタバミさんのプログラミングノート

日曜プログラマーがプログラミング関係のメモを記録するブログです。

特定機能を提供するCOMクラスの登録情報をGoogle検索とレジストリ エディターから特定する方法

背景と目的

Windowsの機能をWSHC#VBなどから使用するとき、Windowsの提供するCOMクラスの利用が便利な場合があります。COMクラスの呼び出しにはCLSIDまたはCOMクラス識別名が必要になりますが、MSDNからこれらが検索しにくい場合があります。

この文章では、Windows Update Agentに関する情報を提供するクラス(以下、WindowsUpdateAgentInfo COMクラス)をGoogle検索とレジストリエディタから特定する方法を解説します。

方法

WindowsUpdateに関する機能を提供するクラスを特定する方法としてGoogle検索とWindows 10標準のレジストリ エディター(regedit.exe)を使用します。ここでは順に説明します。

WindowsUpdateAgentInfo COMクラスの存在の疑い方

  1. Google検索で「WindowsUpdate MSDN」を検索
  2. 検索結果からMSDNの該当するページを開く
  3. WindowsUpdateに関するAPIリファレンスを開く
  4. 最初のセクションUsing the Windows Update Agent APIを開く
  5. WUAのバージョンを確認する方法(Determining the Current Version of WUA)を開く
  6. リンクとして強調表示されているIWindowsUpdateAgentInfoインターフェイスでバージョン情報を取得できることを確認
  7. IWindowsUpdateAgentInfoのCOMクラス(WindowsUpdateAgentInfo)の存在を疑う

WindowsUpdateAgentInfo COMクラスの存在の確かめ方

  1. レジストリ エディター(regedit.exe)を実行
  2. メニューから編集→検索とクリック
  3. 「WindowsUpdateAgentInfo」を含むキーまたは値を検索
  4. {C2E88C2F-6F5B-4AAA-894B-55C847AD3A2D}キー(コンピューター\HKEY_CLASSES_ROOT\CLSID\{C2E88C2F-6F5B-4AAA-894B-55C847AD3A2D})がヒット
  5. 既定値が"WindowsUpdateAgentInfo Class"で、サブキーにProgID、VersionIndependentProgIDが存在することを確認
  6. VersionIndependentProgID値の既定値が"Microsoft.Update.AgentInfo"であることを確認
  7. WindowsUpdateAgentInfo COMクラスの識別名を"Microsoft.Update.AgentInfo"と判断

結果

WindowsUpdateAgentInfo COMクラス

  • ProgID(バージョン非依存):"Microsoft.Update.AgentInfo"
  • CLSID:"{C2E88C2F-6F5B-4AAA-894B-55C847AD3A2D}"

参考

レジストリ エディターを使用する意味

Windows 10ではWindows全体で共有される多くの情報がレジストリに保存されており、特にCOMに関する情報はほとんどがレジストリのHKEY_CLASSES_ROOT以下に保存されています。レジストリを参照する基本的な方法はレジストリ エディターであるため、基本的にはこれを使用することとなります。なお、便利なフリーソフトウェアも多数あります。

ProgIDの情報を取得

ProgIDはHKEY_CLASSES_ROOTキー以下に登録されるため、レジストリ エディターであればアドレスバーに「コンピューター\HKEY_CLASSES_ROOT\(ProgID)」と入力することでさらなる情報を取得することができます。WindowsUpdateAgentInfo COMクラスの場合は「コンピューター\HKEY_CLASSES_ROOT\Microsoft.Update.AgentInfo」となります。