豊田 孝

 前回は補助プログラムを起動し,Windows 2000とWindows XPの内部フォルダ情報を表示させました。表示された情報に含まれる名前空間は,「コントロールパネル」をはじめとするグラフィカル・ユーザー・インタフェース(GUI)そのものであり,Windows 2000からWindows XPへの変化を端的に語っていました。また前回は,名前空間という用語を次のように定義しました。

“有効名前空間というのは,Windowsシステムが現在内部で使用している,特殊なフォルダである”

 本日はこの名前空間の定義を次のように変更します。

“有効名前空間というのは,特殊なフォルダ・オブジェクトを管理するために用意された空間である”

 前回と本日の2つの名前空間定義文を比較すると,「特殊なフォルダ」が「特殊なフォルダ・オブジェクト」に変更されていることが分かると思います。「オブジェクト」という用語が追加されているわけですが,ここでは,「フォルダ・オブジェクト」を次のように考えておいてください。

“フォルダ・オブジェクトとは,「パス情報」などの動きを伴わない属性情報だけではなく,「開く」などをはじめとする具体的な動きを伴う操作情報も同時に提供するフォルダである”

 この定義文を一読しただけでは,実感を持って理解できない人もいるかと思います。現時点では,「動きを伴わない情報」と「動きを伴う情報」という表現に注目しておいてください。本稿を最後まで読めば,具体的に理解できます。

3つもあるデスクトップ・オブジェクト

 前回紹介した補助プログラム「No12ListNameSpaces.exe」を実行すると,多数の特殊フォルダ情報が表示されました。本日は,デスクトップ・フォルダに的を絞り,デスクトップ・オブジェクト(デスクトップ・フォルダではないことに注意してください)という視点から,Windows 2000からWindows XPへの変化を探って見たいと思います。

 補助プログラム「No12ListNameSpaces.exe」をWindows 2000とWindows XP両環境で実行すると,デスクトップ・オブジェクトは1つではなく,リスト1(a),(b)のように3つ存在することが分かります。また,(a)と(b)の個々の情報を比較してみると,次のようなことが分かります。

  • ・数値16と数値25を持つデスクトップ・オブジェクトは基本的に変更されていない
  • ・数値16と数値25を持つデスクトップ・オブジェクトは「親フォルダ」欄情報を持っているが,数値0を持つデスクトップ・オブジェクトは持っていない
  • ・Windows XPの数値0を持つデスクトップ・オブジェクトは「メソッド数」欄情報を持っているが,対応するWindows 2000のデスクトップ・オブジェクトは持っていない

 ところで皆さん,なぜデスクトップ・オブジェクトは3種類用意されているのか気になりませんか? 実は,この疑問への回答を効率的に用意してくれるのがWindows XPで追加された「メソッド数」欄情報なのです。

 ここで一部の人は,メソッドとは何か?,という疑問を持たれるでしょうが,便宜上,次のように考えておいてください。

“メソッドとは,オブジェクトが行うことができる具体的な行動を示す情報である”

デスクトップ・オブジェクトのメソッドを動かしてみる

 ここでは,数値0を持つデスクトップ・オブジェクトのメソッド(具体的な行動内容)を実際に実行し,なぜデスクトップ・オブジェクトが3種類用意されているのか調べてみましょう。

図1●補助プログラム「No13RunMethods.exe」の初期画面
図2●図1の初期画面で「0」を入力した結果
図3●数値「0(開く)」を選択する
 本日用意した補助プログラム「No13RunMethods.exe」(こちらからダウンロードできます)をWindows XP環境で起動すると,図1[拡大表示]のような初期画面が表示されます。この補助プログラムは,Windows 2000環境では残念ながら利用できません。Windows 2000環境の数値0を持つデスクトップ・オブジェクトはメソッドを持っていないからです。

 ここでは数値「0」を入力し,OKボタンをクリックします。すると,図2[拡大表示]のような情報が返されます。私たちはこの画面情報から,数値「0」を持つデスクトップ・オブジェクトが「開く」「エクスプローラ」「プロパティ」の3種類の行動を取ることが分かります。まず数値0を入力し,OKボタンをクリックしてみましょう。図3[拡大表示]のような画面が表示されてきます。

 ステータスバーに「59個のオブジェクト」という文字列が表示されていますね。この数値はリスト1(a)で示した次の数と一致しています。

含まれるオブジェクト数=>59

巨大な数値0のデスクトップ・オブジェクト

 “59個のオブジェクト”とは,いったいどのようなオブジェクトなのでしょうか?さらに調査を進めましょう。右側のウィンドウ画面を見ると,「マイ コンピュータ」,「マイ ネットワーク」,「ゴミ箱」,「Internet Explorer」などのアイコンが見えます。これらは補助プログラム「No12ListNameSpaces.exe」を実行して表示される特殊フォルダ情報に対応するアイコンです。

数値=>1
対応名前空間=>Internet Explorer

数値=>10
対応名前空間=>ごみ箱

数値=>17
対応名前空間=>マイ コンピュータ

数値=>18
対応名前空間=>マイ ネットワーク

 ご覧になると分かるように,デスクトップ・オブジェクトに含まれる59個のオブジェクトのうちの4個は「Internet Explorer」,「ごみ箱」,「マイ コンピュータ」,「マイ ネットワーク」という,「デスクトップ」ではない別の名前空間です。59から4を差し引いた残りは,55個になります。55個のオブジェクトはなんでしょう?以下の情報がこの疑問への回答を用意してくれています。

数値=>16
対応名前空間=>デスクトップ
含まれるオブジェクト数=>54

数値=>25
対応名前空間=>デスクトップ
含まれるオブジェクト数=>1

 これら2つのデスクトップ・オブジェクトの「含まれるオブジェクト数」欄の数値を合計すると,55(=54+1)になりますね。55個のオブジェクトとは,他のデスクトップ・オブジェクトが管理している“ショートカット・オブジェクトの合計数”なのです。それではこれまでの説明内容を整理しておきましょう。

“数値0を持つデスクトップ・オブジェクトは,「マイ コンピュータ」,「マイ ネットワーク」,「ゴミ箱」,「Internet Explorer」,そして,数値16と25を持つデスクトップ・オブジェクトを一括管理している,重要かつ巨大なオブジェクトである”

 デスクトップ・オブジェクトの世界をさらに知りたい方は,前回の補助プログラムと本日の補助プログラムを併用して,さらに調査を進めてください。

図4●「プロパティ」メソッドを実行すると「画面のプロパティ」ダイアログが表示される

「Resources」の中に「Luna」が見える

 それでは次に,「プロパティ」という名称を持つメソッドを実行してみましょう(図4[拡大表示])。これは多くの人には見慣れた画面かと思いますが、次のような意味を持っています。

“数値0を持つデスクトップオブジェクトの「プロパティ」とは、「画面のプロパティ」の「デスクトップ」タブ画面ではなく、「テーマ」タブ画面である”

 この文章で注意していただきたいのは,「テーマ」タブ画面という表現です。この「テーマ」画面タブは次のような,Windows XPから追加された名前空間に対応しているのです。

数値=>56
対応名前空間=>Resources
メソッド数=>14
含まれるオブジェクト数=>2
親フォルダ=>WINNT
名前=>Resources
パス=>C:\WINNT\Resources
最新更新日=>2001/09/12 23:02:08
フォルダ?=>True
ファイルシステム?=>True
タイプ=>ファイル フォルダ

 この「Resources」名前空間のフォルダ構成を,前回紹介した補助プログラム「No12ListNSFolderTree.exe」を実行して調べてみてください。Windows XPの“売り”の一つであるデスクトップ・テーマ「Luna」などの存在をはっきり確認できます。この意味からいえば,Windows 2000にはなかった「メソッド欄」情報がWindows XPに追加された最大の理由は,この「Luna」の新規導入にあったといってよいと思います。

 次回は次のよう視点から,Windows 2000,Windows XP,そして,.NET環境をも眺めてみたいと思います。

“特殊フォルダ・オブジェクトは,他のオブジェクトを管理するために用意されたオブジェクトである”

 管理される“他のオブジェクト”とはいったい何なのでしょう?お楽しみに!