|
|
|
開発者から見た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の登場を待つ必要がありそうだ。![]()
| 関連記事 | ||
| 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ジャパン)
- WindowsTIPS (2010/3/12)
− 不要なアドオンを無効化してIE8の起動を高速化する
− IE8のソース表示エディタを変更する
− RRASのNATでポートマッピングを定義する - PowerShell 2.0で始めるWindowsシステム管理 (2010/3/11)
コマンド・プロンプトやWSHスクリプトはもう古い!? これからのWindowsシステム管理はPowerShellでスマートに片付けよう - Hyper-Vライブ・マイグレーションの運用ノウハウ (2010/3/10)
ライブ・マイグレーションの運用フェイズで役立つノウハウを解説。実用的なPowerShellスクリプトなども紹介する - 第211話 あとで読む (2010/3/9)
おっ、これいいねぇ。ああこっちも。いやあインターネットは情報の宝庫だね。いまは忙しいから、「あとで読む」ってことでメモメモ
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 New! |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |

| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |

| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |
| ◆ | 直属上司が海外にいるのエンジニアに見る 【実例】場所に捉われないワークスタイル |

| ◆ | 「仮想化工房」のマイスターが選んだのは VMware、Hyper-V、そしてVirtageだった! |
| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |




Insider's Eye


