【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 

Insider's Eye

新世代Windows、Windows XPを初体験(4)

デジタルアドバンテージ 小川 誉久
2001/02/21

開発者から見たWindows XP

 前編で述べたとおり、Windows XPでは、テーマによるデスクトップのカスタマイズ機能が強化されている。ここでは、Windows XPのグラフィカル・スタイルを系統的・統一的に管理可能にする内部的なしくみについて解説しよう。

 周知のとおりWindowsのグラフィカル・スタイルは、ウィンドウ・デザイン(タイトル・バーやウィンドウの枠など)に加え、プッシュ・ボタンやエディット・コントロールなどのコントロール(ユーザー・インターフェイスの部品)などによって決定付けられている。従来のWindows(Windows Me/Windows 2000)では、これらはWindowsのユーザー・インターフェイスを司るカーネル・モジュールの1つであるUSER32.DLLと、コントロールを制御するCOMCTL32.DLLという2つのDLL(Dynamic Link Library)によって描画・制御されていた。具体的にUSER32.DLLは、ウィンドウの枠やタイトル・バー、メニュー領域などの非クライアント領域の描画に加え、プッシュ・ボタンやリスト・ボックス、エディット・コントロールなどといった基本的なコントロールの描画と制御を担当する(クライアント領域は、アプリケーションが描画を受け持つ領域)。これに対しCOMCTL32.DLLは、リスト・ビューやタブ・コントロール、ツール・バー、ツール・ヒント、ツリー・ビューなど、主にWindows 95以降に追加されたコントロールの描画と制御を担当する。つまり従来は、Windowsのグラフィカル・スタイルを司るコンポーネントが、主に歴史的な事情から分散されていたわけだ。

 これに対しWindows XPでは、過去との互換性を維持しながら、スタイルを集中的に管理・描画できるように内部機構が改良された。具体的には、これまでは渾然一体となっていたコントロールの制御と描画を明確に分け、またコントロールによって分散していたDLLの処理を1つにまとめた。コントロールの描画を集中的に行うために、Windows XPでは、「テーマ・マネージャ」(UXTHEME.DLL。「UX」はUser eXperienceの略だと思われる)と呼ばれるコンポーネントが新たに追加された。またすべてのコントロールの制御は、COMCTL32.DLLにまとめられた。ただし互換性を維持するために、従来どおり、USER32.DLLにもコントロールの制御と描画を行うコードは残されており、旧来のアプリケーションは、USER32.DLLのコードで従来どおりにコントロールを操作できるようにしている。

 このようにWindows XPでは、コントロールの制御と描画がそれぞれCOMCTL32.DLLとUXTHEME.DLLに一元化されているため、テーマの系統的・統一的な管理と運用が可能になっている。

side-by-sideコンポーネント共有

 伝統的にWindowsアプリケーションは、Windowsシステムが提供する各種のDLLを呼び出すことで、さまざまな処理を行うようになっている。これらのDLLは、Windows OSのバージョン・アップや、サービス・リリースの公開に伴って、新しいバージョンに置き換えられる。問題は、DLLのバージョン・アップによって、古いアプリケーションが正常に機能しなくなるケースがあることだ。こうした互換性問題を回避する最も簡単な方法は、従来のDLLはそのまま残して、新しいDLLを並行して提供することだ。しかし同一のファイル名で新しいDLLを提供すると、古いDLLが上書きされてしまい、従来のアプリケーションが動かなくなる場合がある(Windows MeやWindows 2000では、システム用のDLLが不用意に上書きされないようにする機能が追加されている)。このような状態を指してWindowsプログラマは、「DLL地獄(DLL HELL)」と呼んでいる。

 このDLL地獄を解決するために導入されたのがside-by-sideコンポーネント共有である(side-by-side component sharing。“side-by-side”は「並んで」という意味)。これと同等の機能は、すでにWindows 2000やWindows 98 SE、Windows Meでも導入されているが、Windows XPではさらにそれが強調されている。

 例えば、従来のWindowsで使用されていたCOMCTL32.DLLのバージョンはVersion.5だが、Windows XPではこれがVersion.6にバージョン・アップされる。ただし、従来のCOMCTL32.DLL Version.5も残されており、旧来のアプリケーション(Windows XPにネイティブに対応していないアプリケーション)はこちらを使い続けることが可能だ。そしてVersion.5を呼び出す古いアプリケーションと、Version.6を呼び出す新しいWindows XP対応アプリケーションは同時に実行することが可能である(2つのDLLを同時に実行することが可能である)。

2つのCOMCTL32.DLL
Windows XP環境では、COMCTL32.DLLがVersion.6にバージョン・アップされるが、従来と同じVersion.5のCOMCTL32も並行して提供される。これら双方のDLLを呼び出すアプリケーションを同時に実行することが可能である(2つのDLLを同時に実行することが可能である)。

 アプリケーションが古いCOMCTL32.DLLを使用するか、新しいCOMCTL32.DLLを使用するかは、そのアプリケーション用のマニフェスト・ファイル(manifest file)が存在するかどうかで決まる。マニフェスト・ファイルは、アプリケーションが使用するコンポーネントなどの情報を記述したXMLファイルである(必要なら、アプリケーションのコンパイル時に、マニフェスト情報をアプリケーション自身に埋め込むことも可能なようだ)。ちなみに、次世代のWindowsアプリケーション環境である.NET Frameworkでは、すべての実行ファイルとDLLファイルの内部にマニフェストが組み込まれ、DLL地獄からの脱却が図られている。

さらなる大衆化に一歩を踏み出すWindows

 以上、マイクロソフトが現時点で公式に提供している情報から、Windows XPのほんの一部分をかいま見た。残念ながら現時点では、公式に得られる情報は極めて限定的である。正直なところ、現Windows 2000のヘビー・ユーザーである筆者にとっては、Whistlerスタイルの新しいユーザー・インターフェイスはピンとこない。しかしWindowsが、さらなる大衆化に向かって1歩を踏み出そうとしていることは間違いないだろう。

 Windows XPが、私と読者の皆さんにもたらすインパクトを知るには、ベータ2の登場を待つ必要がありそうだ。End of Article

関連記事
  Insider's Eye:マイクロソフト、Windows XP日本語版ベータ2を報道関係者に披露(Windows Server Insider)
   
  関連リンク
  ビル・ゲイツ、新しいWindowsであるWindows XPを披露(米リリースの参考訳)(マイクロソフト)
  Windows XPの発表デモンストレーションのスピーチ内容(英文)(米Microsoft)
  開発者にとってのWindows XP(MSDNオンラインの記事、英文)(米Microsoft)
  Windows XPのスクリーン・ショットが公開された米MicrosoftのWindows XPのホームページ (米Microsoft)
     
 

 INDEX
  [Insider's Eye]
    1.新世代Windows、Windows XPを初体験(1)
    2.新世代Windows、Windows XPを初体験(2)
    3.新世代Windows、Windows XPを初体験(3)
  4.新世代Windows、Windows XPを初体験(4)
 
「Insider's Eye」

ホワイトペーパーTechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています