COMとコントラクトの違いとは?
だがWindowsにはすでに、「COM」と呼ばれるコンポーネントを利用する仕組みがある。これは、さまざまな機能を持つコンポーネントをWindowsに登録しておくと、あとからインストールしたアプリケーションでも、該当の機能を使えるという仕組みだ。COMとコントラクトは似た部分があるが、COMでは利用する側が、最初からコンポーネントの機能や名前などを知っている必要がある点が大きく異なる。
COMではコンポーネントを最新版に置き換えると、過去に作られたアプリケーションでも、最新のコンポーネントを利用できるようになるが、アプリケーションはあらかじめ、利用するコンポーネントを指定する情報を組み込んでおく必要がある(図2)。また、実行時に呼び出されるコンポーネントはひとつだけで、複数から選択することはできない。ただし特定のアプリケーションに対して、古いバージョンのコンポーネントを使わせるといった指定は可能だ(主として互換性維持のために)。
これに対して、コントラクトは最初から機能が指定されているため、これを利用するアプリケーションは、相手の名前などを知る必要もない。同様の機能を持つモジュールが複数あってもかまわない。
コントラクトは、機能を提供するMetro Styleアプリケーション(提供側アプリ)が、自身が内部に持つモジュールをWindowsへと登録することで利用可能となる。コントラクトを利用する側のアプリケーション(利用側アプリ)は、必要に応じてコントラクトAPIを使って機能を呼び出す(図3)。
場合によっては、ユーザーから情報を指定させる必要もある。図3の共有の例ならば、共有先のサービスを選ぶといった場合だ。このような場合は提供側アプリが指定に必要な画面表示を行ない、ユーザーからの指示を受けてから、適切なデータを利用側アプリに引き渡す。
コントラクトの動作の実際
コントラクトを利用する際には、提供側アプリが全画面を占有する独立したアプリとして動く場合と、利用側アプリの画面の一部に、ユーザーインターフェースを表示させる場合の2種類がある。
検索コントラクトの場合は、提供側アプリが起動して、アプリ独自データの検索結果などを表示する。このような形態を「メインビューアクティベーション」(Main View Activation)という。
この連載の記事
-
第34回
PC
Windows 8の狙いは、UIの変化よりもAPIの変化が本質 -
第33回
PC
Windows 8が動作しなくなった? 新しくなった修復機能 -
第32回
PC
Windows 8でIMEに求められる新しい要素とはなにか? -
第31回
PC
Windows 8の無線LANをコマンドラインで細かく制御 -
第30回
PC
Windows 8をマウスで使いやすくするレジストリの小技 -
第29回
PC
周辺機器・アプリがWindows 8/RTで動くか確認する方法 -
第28回
PC
Windows 8のキーボードショートカットを全公開 -
第27回
PC
Windows 8が使いにくい? マウスを変えると印象も変わる -
第26回
PC
実はNFCに対応しているWindows 8 ただしアプリは不足 -
第25回
PC
実は扱いがまったく異なるWindows 8でのタッチパネル -
第24回
PC
Surfaceから見えるWindows RTの実像と、将来PCへの影響 - この連載の一覧へ