Silverlight をインストールするには、ここをクリックします*
Japan変更|すべてのMicrosoft のサイト|サインイン
MSDN*
マイクロソフト サイトの検索:
|MSDN ライブラリ|デベロッパー センター|ダウンロード情報|開発ツール製品|コミュニティ|ご意見・ご要望|サイトマップ
MSDN Home  
MSDN Home > モバイル開発 > 技術資料 > Windows Mobile 5.0 の開発者向け新機能

Windows Mobile 5.0 の開発者向け新機能

Jim Wilson
JW Hedgehog, Inc.

May 2005
日本語版最終更新日 2006 年 9 月

適用対象:
Windows Mobile Version 5.0
Windows Mobile ベースのデバイス
Visual Studio 2005
Windows Media Player
Direct3D
DirectDraw
DirectShow
.NET Compact Framework
ActiveSync
Pocket Outlook
Exchange

概要:開発者にとって役立つ Windows Mobile Version 5.0 の新機能について説明します。

目次

はじめに
Windows Mobile 5.0 の API
ツールおよびテクノロジ
開発者に関連する、Windows Mobile 5.0 のその他の変更点
まとめ

はじめに

Windows Mobile ベースのデバイスである、Pocket PC や Smartphone は、世界中で利用されています。 これらの高機能なポータブル デバイスが広く利用されている主な理由は、ハードウェア機能の迅速な発展性にあります。 これらのデバイスは、高品質な表示機能やカメラ、および容量の大きいメモリ サイズを備えています。また、これまでは想像もしなかった強力な通信機能も装備しています。 Windows Mobile 5.0 を使用すると、開発者は、これらの強力なデバイスが持つさまざまな機能を簡単に利用することが可能になります。

Windows Mobile 5.0 には、新世代のプラットフォーム アプリケーション プログラミング インターフェイス (API) が導入されています。この API によって、豊富なマルチメディア サポートや 2 次元/3 次元描画機能が実現されます。また、デバイス ハードウェア (カメラや全地球測位システム (GPS) など) との情報のやり取りが簡単になり、Pocket Outlook との直接的な情報のやり取りや統合も可能になります。さらに、通信機能の向上も図られています。 これらの API は高度なアプリケーション機能を提供するだけでなく、API を使用することによって、開発者の生産性も向上します。生産性の向上は、プラットフォームでのアプリケーション機能の詳細をカプセル化することによって実現されます。このカプセル化により、開発者はアプリケーション独自のニーズに集中して開発を行うことができます。

Windows Mobile 5.0 は、プラットフォーム API のネイティブ バージョンとマネージ バージョンの両方が機能可能な最初のプラットフォームです。これにより、開発者は、自らのスキルとアプリケーションの適合性を考慮して、最適な開発モデルを選択できます。 また Windows Mobile 5.0 には、多くの API 拡張機能が組み込まれており、Windows Mobile デバイス、Windows デスクトップ、およびサーバー コンピュータ プラットフォーム間における開発の共通性が向上しています。このため、開発者は、すべての Windows プラットフォームで必要となる共通のスキルを利用して開発を行うことができます。

この記事では、Windows Mobile 5.0 の開発者向けの新機能、および Windows Mobile 5.0 ソリューションの作成で使用できるツールについて説明します。 次のセクションでは、Windows Mobile 5.0 の代表的な機能のいくつかの概要について説明します。

生産性の向上

Windows Mobile 5.0 では、開発の生産性を次のように向上します。

  • モバイル デバイスの開発に見られる多くの共通の課題に対処する新しい API。これらの課題には、画像管理、連絡先管理、GPS などが含まれます。また、ユーザーにとって使いやすいアプリケーションの構築に、開発者が集中できるようにする必要もあります。
  • Pocket PC 用 Windows Mobile ソフトウェアと Smartphone 用 Windows Mobile ソフトウェアとの共通性の向上。デバイス間で、コードとアプリケーションに対するより高い移植性が実現されます。
  • 状態や通知を処理するための新しい API。この API を使用すると、アプリケーションでシステム アクティビティ (ネットワーク状態の変更、ショート メッセージ サービス (SMS) のメッセージの受信、電話通話の着信など) を簡単に追跡できます。
  • Visual Studio 2005 によるデバイス開発の簡素化。データ デザイナ、高速なデバッガ、機能が向上されたユーザー インターフェイス デザイナなどの生産性の高いツールを利用することにより、開発者は、さまざまな画面の向き、解像度、デバイスを介してアプリケーションの外観を確認できます。
  • 新しい ARM エミュレータなどの機能向上したエミュレータ。これらのエミュレータでは、デバイス環境を適切に示すことにより、アプリケーションを簡単にテストできます。このため、デバイス上で直接実行する必要のあるテストの回数を減少させたりレベルを下げることができます。

マルチメディア サポート

Windows Mobile 5.0 の豊富なマルチメディア サポートは、次のとおりです。

  • 統合されたカメラ API。開発者は、カメラ、画像、およびビデオの機能をアプリケーションに直接組み込むことができます。
  • Windows Media Player 10 Mobile。開発者は、Media Player の機能 (ライブラリ管理や再生など) をアプリケーションに組み込むことができます。
  • Direct3D を使用して、高機能な 3 次元ゲーム環境を構築できます。
  • DirectDraw によって、2 次元グラフィックの高速なレンダリングにおいて、高い制御性と柔軟性を活用できます。

マネージ コードのサポート

Windows Mobile 5.0 では、マネージ コードの開発者に対して最高レベルのサポートを提供します。 Windows Mobile 5.0 でのマネージ コードのサポートは、次のとおりです。

  • Windows Mobile 5.0 のすべてのデバイスでは、.NET Compact Framework 1.0 Service Pack 3 が ROM にインストールされています。 これにより、マネージ コードによるアプリケーション開発に対して一貫したターゲット プラットフォームが提供されます。
  • デバイスが持つ主要な機能 (メッセージング、テレフォニー、Outlook Mobile など) の多くは、マネージ API を公開するため、マネージ コードからこれらの機能へ直接アクセスすることが可能になります。
  • さまざまなオペレーティング システム機能がマネージ API として直接公開されます。これを利用すると、マネージ コードの開発者は、.NET Compact Framework のすべてのバージョンへアクセスできます。

Windows Mobile 5.0 の API

Windows Mobile 5.0 では、多くの新しい API が提供されます。 新しい API はさまざまなサービスに対応していますが、これらすべての API は、開発者の生産性向上を共通の目的としています。 オペレーティング システムで実行される共通のタスクを API に組み込むことにより、アプリケーション開発者は、各アプリケーション独自のニーズに集中して開発を行うことができます。

Windows Mobile 5.0 では、初めてオペレーティング システム機能をマネージ コードの開発者に公開しました。 これらの新しいマネージ API では、新しく追加されたオペレーティング システム機能を利用できます。また、既存のオペレーティング システム機能に対するマネージ クラスも提供されます。

Windows Mobile 5.0 での API は、3 つのグループに分類できます。それらのグループとは、ネイティブ コードの開発者のみを対象とした新しい API、マネージ コードの開発者に対して現在公開されている既存のネイティブ API、およびネイティブ コードの開発者とマネージ コードの開発者の両方が使用できる新しい API です。

新しく追加された API

ここでは、ネイティブ コードの開発者のみを対象とした新しい API について説明します。

Direct3D Mobile

  • Windows Mobile デバイスは、非常に高機能な表示機能を備えています。また、3 次元のデスクトップ コンピュータ ゲームの人気が高まっていることを考えると、モバイル デバイス用 3 次元ゲームのさまざまな製品への対応が、Windows Mobile の次の目標になります。 Direct3D Mobile がこれを実現可能にしました。
  • Direct3D Mobile は、デスクトップ コンピュータの Direct3D API をモバイル デバイス用に実装したものです。 Direct3D Mobile を使用すると、開発者が持っているデスクトップ コンピュータの Direct3D に関する既存のスキルと Direct3D のコードを利用して、Windows Mobile デバイス用の優れた 3 次元ゲーム環境を構築できます。
  • Direct3D Mobile は、グラフィック ハードウェアのサポートを十分に活用して、パフォーマンスに優れた 3 次元レンダリングをモバイル デバイス上で実現します。 Direct3D Mobile を利用することにより、開発者は強力な 3 次元ゲーム環境を構築できます。また、独創的な 3 次元ユーザー インターフェイスを組み込むこともできます。

DirectDraw

  • Windows Mobile 5.0 では DirectDraw API を利用して、ディスプレイ メモリを直接操作する必要のあるアプリケーションに対して、高速な 2 次元グラフィック機能を提供したり、デジタル ビデオを組み込むことができます。 デバイスのディスプレイ ハードウェアに関する共通の抽象化を行うことにより、アプリケーション開発者は DirectDraw を使用して、デバイスのディスプレイ ハードウェアを、デバイスの影響を受けずに直接操作することが可能になります。
  • モバイル アプリケーションの開発者にとって、DirectDraw は Game API (GAPI) に代わる強力な API です。この API によって、アプリケーションはハードウェアの持つ機能とパフォーマンスを十分に活用できます。またこの API ではサーフェイスの描画もサポートしており、これにより、開発者は簡単にクエリを実行できます。
  • DirectDraw は、デスクトップ コンピュータの DirectDraw API をモバイル デバイス用に実装したものです。 デスクトップ コンピュータの開発者は DirectDraw API に関する既存のスキルを活用できます。また、既存の DirectDraw のコードとライブラリを、Windows Mobile 5.0 デバイスで利用することもできます。

DirectShow

  • 現在、カメラを備えたモバイル デバイスが急速に普及しています。 カメラを使用できるデバイスに組み込むアプリケーションを作成する場合、DirectShow API を利用できます。 DirectShow を使用すると、アプリケーション開発者はカメラを管理したり、カメラへアクセスすることが可能になり、高品質な画像のキャプチャや再生、およびビデオのストリーミングを実行できます。 DirectShow では各カメラのハードウェアに関する詳細が抽象化され、アプリケーション開発者は、共通した操作が可能な一貫性のあるプログラミング インターフェイスを利用できます。
  • DirectShow はさまざまなファイル形式をサポートしており、開発者はこれらのファイル形式のカスタマイズや拡張を行って、新しいまたは特別なファイル形式をサポートできます。 Direct3D や DirectDraw と同様に、DirectShow はデスクトップ コンピュータの API をモバイル デバイス用に実装したものです。このため、デスクトップ コンピュータの開発者は、DirectShow に関する既存のスキルを利用することにより、既に作成されているコード資産を直ちに活用できます。

全地球測位システム (GPS)

多くのモバイル デバイスでは、GPS を内部的な機能として、またはアタッチメントを使用して利用できます。 従来、GPS デバイスが返す情報にアクセスするアプリケーションでは、シリアル API を使用して、直接 GPS デバイスをオープンするアプリケーションが必要でした。 この方法には、2 つの問題点があります。 最初の問題点は、シリアル API を利用した場合、さまざまなコードが使用されることがあり、アプリケーション開発者はシリアル デバイスのプログラミングに関する中級者レベルの知識が最低限必要になるという点です。 第 2 の問題点は、このアーキテクチャでは、GPS データの受信が、現在接続されている単一のアプリケーションにのみ限定されているという点です。 Windows Mobile 5.0 では、GPS Intermediate Driver の採用によって、これらの問題を解決しました。

GPS Intermediate Driver は、簡単に使用できる API を提供して、GPS データへの共有アクセスを可能にします。 Windows Mobile で GPS Intermediate Driver を使用すると、GPS デバイスとのやり取りに必要なコードが大幅に削減され、複数のアプリケーションが GPS デバイスに設定情報と位置情報を同時に問い合わせることができます。 表 1 に、GPS Intermediate Driver へのアクセスで使用される 4 つの関数を示します。

表 1: GPS Intermediate Driver 関数

関数 説明
GPSOpenDevice GPS Intermediate Driver へ接続します。
GPSCloseDevice GPS Intermediate Driver への接続を解除します。
GPSGetPosition GPS の位置情報を取得します。
GPSGetDeviceState GPS ハードウェアの現在の状態に関する情報を取得します。

デバイスの一意の識別

個々のデバイスを一意に識別する必要があるアプリケーションのために、Windows Mobile 5.0 では GetDeviceUniqueID メソッドが追加されました。 GetDeviceUniqueID を使用すると、独立系ソフトウェア ベンダ (ISV) は、特定のデバイスに対してソフトウェア ライセンスを関連付けることにより簡単に知的所有権を保護できます。 特定のデバイスに対するデータとアプリケーションの配布を追跡できる機能は、社内開発者にとって役立つ機能です。

デジタル著作権管理 (DRM)

デジタル著作権管理 (DRM) は、知的所有権の保護や知的所有物の配布に関して重要な役割を担っています。 ただし、さまざまな DRM エンジン API 間の相違点に対応するためのサポートをアプリケーション開発者に提供することにより、アプリケーション開発に時間がかかったり、コードの移植性が低くなる場合があります。

これらの問題を回避するために、Windows Mobile 5.0 は、ファイルに基づいたデジタル著作権管理 (FDRM) API を提供します。 FDRM では、異なる DRM エンジン間で共通のプログラミング インターフェイスを利用できます。 この共通のプログラミング インターフェイスによって、開発者の生産性とコードの移植性が向上します。 開発者は、FDRM を使用すると、各デバイスが使用する特定の DRM エンジンを考慮する必要がなくなります。

ActiveSync の対話処理

開発者は ActiveSyncStartActiveSyncStop メソッドを使用して、デバイスから ActiveSync の同期プロセスを開始または停止できるようになりました。

Windows Mobile 5.0 での補足の関数

表 2 に、このセクションでは説明されていない、Windows Mobile 5.0 での補足の関数を示します。

表 2: Windows Mobile 5.0 での補足の関数

関数 内容
QueryPolicy DMProcessConfigXML に代わる簡略化された機能を提供します。開発者はこれを個別のポリシーの設定値を取得するために使用できます。
ExitWindowsEx アプリケーションからデバイスをシャットダウンできるようにします。 Pocket PC では、アプリケーションから ExitWindowsEx を使用すると、デバイスの再起動だけを行います。 Smartphone では、アプリケーションで ExitWindowsEx を使用して、デバイスをオフにするか、再起動します。
DrawFocusRectColor 現在選ばれているテーマの色とスタイルを使用して、フォーカスがあるときと同様に指定された四角形を描画します。

現在マネージ API として公開されている、既存のオペレーティング システム機能

ここに示す機能は、Windows Mobile プラットフォームの新機能ではありません。 Windows Mobile 5.0 で新しく提供されるマネージ API について説明します。 Windows Mobile 5.0 では、これらのマネージ API を利用することにより、マネージ コードの開発者は API が提供する機能に直接アクセスできます。これらの機能へのアクセスでは、ネイティブ コードのサポートは必要ありません。また、アプリケーションが使用する .NET Compact Framework のバージョンに関係なくアクセスできます。

テレフォニー

Windows Mobile 5.0 は、Microsoft.WindowsMobile.Telephony.Phone クラスを介して基本的な電話の動作を公開します。 新しい Phone クラスの Talk メソッドを使用すると、電話通話を開始するアプリケーションをプログラミングできます。また必要に応じて、呼び出しを実行する前に電話番号を確認するメッセージを表示することもできます。 Phone クラスでは、Microsoft.WindowsMobile.Telephony アセンブリへの参照が必要になります。

次のコードに、Phone.Talk メソッドの 2 つの形式を示します。

using Microsoft.WindowsMobile.Telephony; 
// ...
Phone thePhone = new Phone();

// 特定の番号に電話をかける
thePhone.Talk("4255551212");

// 番号確認メッセージの表示後、
// 特定の番号に電話をかける
thePhone.Talk("4255551212", true);

Outlook Mobile

個人情報管理 (PIM) データは、さまざまなモバイル デバイス アプリケーションで重要度の高い情報です。Windows Mobile では、Pocket Outlook 用の優れた PIM システムを長年にわたり提供してきました。 Windows Mobile 5.0 は、"Microsoft.WindowsMobile.PocketOutlook" 名前空間内のクラス、および同じ名前のアセンブリを介して、マネージ コードの開発者に直接 Pocket Outlook を公開するようになりました。 新しいマネージ Pocket Outlook API を使用すると、PIM データをアプリケーションの一部として簡単に組み込むことができます。 表 3 に、共通に使用されるクラスのいくつかを示します。

表 3: 共通に使用される Pocket Outlook マネージ クラス

クラス 説明
OutlookSession 予定、連絡先、仕事に関するプロパティ、および電子メールと SMS のアカウントを公開する、Pocket Outlook アプリケーションを表します。
Appointment スケジュールされた時間の範囲を表します。 このクラスには、予定の詳細に関するプロパティや、予定のリマインダがどのように通知を行うかを示すプロパティが含まれています。 また、このクラスで公開されるイベントをアプリケーションで処理することにより、予定の変更が発生した場合に通知を行うことができます。
Contact 個人または組織の情報レコードを表します。 連絡先情報および対応するイベントの追跡に利用できる、60 個以上の個別のプロパティが含まれています。これらのプロパティを使用すると、ユーザーやアプリケーションが連絡先のデータに対して行った変更を、アプリケーションで容易に追跡できます。
Task 実施可能な ToDO 項目を表します。 このクラスには、進捗状況などの仕事の詳細に関するプロパティや、仕事のリマインダがどのように通知を行うかを示すプロパティが含まれています。 また、このクラスで公開されるイベントをアプリケーションで処理することにより、仕事の変更が発生した場合に通知を行うことができます。

新しい Pocket Outlook マネージ オブジェクト モデルによって、アプリケーションと Pocket Outlook との統合が簡素化されます。 次のコードに、新しい予定を簡単に追加する方法を示します。

using Microsoft.WindowsMobile.PocketOutlook;
// ...
// 予定を作成し、詳細を設定する
Appointment theAppointment = new Appointment();
// 件名を設定する
theAppointment.Subject = "MEDC 2005 Precon";
// 予定の開始を 2005 年 5 月 9 日、午前 9:00 に設定する
theAppointment.Start  = new DateTime(2005, 05, 09, 09, 00, 00);
// 予定は 8 時間で終了する
theAppointment.Duration = new TimeSpan(08, 00, 00);
// デバイスの振動を使用してリマインダを発行する
theAppointment.ReminderVibrate = true;
// ユーザーが解除するまでリマインダを繰り返す
theAppointment.ReminderRepeat = true;

// Outlook セッションを作成し、
//  予定を Outlook の予定表フォルダに追加する
using (OutlookSession session = new OutlookSession())
{
  session.Appointments.Items.Add(theAppointment);
}

図 1 に、デバイスが前述のコードを実行した場合の Pocket Outlook の予定表を示します。

図 1: Pocket Outlook に新しく作成された予定

メッセージング

Pocket Outlook オブジェクト モデルは、PIM データへのアクセスを提供するだけでなく、電子メールと SMS メッセージ用のマネージ サポートを、それぞれに対応する "Microsoft.WindowsMobile.PocketOutlook.EmailAccount" 名前空間と "Microsoft.WindowsMobile.PocketOutlook.SmsAccount" 名前空間を介して提供します。 これらの名前空間内のクラスを使用すると、マネージ コードの開発者はメッセージングとアプリケーションを簡単に統合できます。

電子メールの統合が必要なマネージ アプリケーションの開発者の場合、EmailAccount クラスによって、添付ファイルのサポートを含む、すべての電子メール機能を使用できます。 以下のコードに、電子メール メッセージを簡単に送信する方法を示します。 この例では ChooseContactDialog を使用して、電子メール メッセージの送信対象となる連絡先を選択するためのメッセージを表示します。 その後で、電子メール メッセージを作成し、Pocket Excel ブックを添付してから、デバイスのプライマリ電子メール アカウントを使用して、メッセージを選択した連絡先に送信します。

using Microsoft.WindowsMobile.PocketOutlook;
using Microsoft.WindowsMobile.Forms;
// ...
ChooseContactDialog contactDialog = new ChooseContactDialog();
contactDialog.Title = "メッセージの送信先を選択してください";
if (contactDialog.ShowDialog() == DialogResult.OK)
{
  EmailMessage message = new EmailMessage();
  message.To.Add(
      new Recipient(contactDialog.SelectedContact.Email1Address));
  message.Subject = "MEDC セッション リスト";
  message.BodyText = 
      "MEDC セッションのリストを添付しました。お会いできるのを楽しみにしています。";
  message.Attachments.Add(new Attachment(@"\My Documents\Sessions.xls"));
 
  using (OutlookSession session = new OutlookSession())
  {
    session.EmailAccounts[0].Send(message);
  }
}

SMS は、利用者が非常に多い、効果的な通信メカニズムです。 Windows Mobile 5.0 のマネージ アプリケーション開発者は、SMS メッセージに関する送受信の両方の機能をアプリケーションに完全に統合できます。

以下のコードは、ChooseContactDialog を使用して、連絡先を選択するためのメッセージを表示します。 その後で、デバイスの構成済み SMS アカウントを使用し、メッセージをユーザーが選択した連絡先に送信してから、配信確認を要求します。

using Microsoft.WindowsMobile.PocketOutlook;
using Microsoft.WindowsMobile.Forms;
// ...
ChooseContactDialog contactDialog = new ChooseContactDialog();
contactDialog.Title = "メッセージの送信先を選択してください";
if (contactDialog.ShowDialog() == DialogResult.OK)
{
  // 配信確認を要求するメッセージを作成する
  SmsMessage message = new SmsMessage(
      contactDialog.SelectedContact.MobileTelephoneNumber, 
      "R U は Keynote へ行きますか?");
  SmsMessage message.RequestDeliveryReport = true;
  // メッセージを送信する
  message.Send();
}

Windows Mobile 5.0 では、SMS メッセージの取得や処理を簡単に行うことができます。 開発者は、"Microsoft.WindowsMobile.PocketOutlook.MessageInterception" 名前空間内のクラス (および Microsoft.WindowsMobile.PocketOutlook アセンブリ内にあるクラス) を使用して、.NET Compact Framework アプリケーションを作成することにより、デバイスに送信された SMS メッセージの取得や処理を実行できます。

メッセージの取得メカニズムはさまざまな構成を行うことが可能です。このメカニズムをアプリケーションで利用することにより、コンテンツベースの重要情報を SMS メッセージに登録できます。 開発者はデバイスをプログラムし、送信者、受信者またはメッセージ コンテンツに基づいて、アプリケーションに対してメッセージに関する通知を行うことができます。 また、メッセージの取得システムをプログラムすることにより、アプリケーションがまだ実行されていない場合でも、通知を要求したアプリケーションを起動できます。 表 4 に、メッセージ取得クラスのいくつかを示します。

表 4: 共通に使用される SMS メッセージ取得のマネージ クラス

クラス 説明
MessageInteceptor 指定された条件を満たすメッセージが到着した場合に、イベントを発行します。 またこのクラスは、アプリケーションがまだ実行されていない場合でも、通知を要求したアプリケーションを起動できます。
MessageCondition 照合するメッセージ条件を示します。
MessageInteceptorEventHandler 受信メッセージ通知への登録を行うクラスによって実装されるデリゲート型のクラスです。

構成マネージャ

Windows Mobile 2003 で構成マネージャが導入されました。構成マネージャによって、Windows Mobile デバイスの構成と展開が飛躍的に簡素化されました。これは、XML を使用することにより、デバイスの事実上すべての構成可能な特性を設定できるようになったためです。 マネージ コードの開発者は、Microsoft.WindowsMobile.Configuration.ConfigurationManager クラスを使用して、構成マネージャのすべての機能を活用することができるようになりました。

ConfigurationManager クラスには 2 つの静的メソッド (ProcessConfiguration および TestConfiguration) が含まれています。 マネージ コードの開発者は、ProcessConfiguration を使用して、電子メール、セキュリティ ポリシー、ローカリゼーション、ホーム画面、仮想プライベート ネットワーク (VPN) 設定、ファイル システムなどを構成できます。 このクラスは、すべてのデバイス構成で利用できるワンストップ ショップとして機能します。 TestConfiguration を使用すると、マネージ コードの開発者は、構成 XML が有効であり、デバイス設定に影響を与えないことを確認できます。 次の例に、ProcessConfiguration を使用して、MSDN Mobility Web サイトをデバイス ブラウザのお気に入りに追加する方法を示します。

using System.Xml;
using Microsoft.WindowsMobile.Configuration;
// ...
string configurationXml =
  @"<wap-provisioningdoc>
      <characteristic type='BrowserFavorite'>
        <characteristic type='MSDN Mobility'>
          <parm name='URL' value='http://msdn.microsoft.com/mobility'/>
        </characteristic>
      </characteristic>
    </wap-provisioningdoc>";

// XML を DOM に読み込む
XmlDocument configurationXmlDoc = new XmlDocument();
configurationXmlDoc.LoadXml(configurationXml);
// 構成マネージャへ送信する
ConfigurationManager.ProcessConfiguration(configurationXmlDoc, false);

ネイティブ コードの開発者とマネージ コードの開発者の両方が使用できる新しい API

Windows Mobile プラットフォームの発展と共に、ネイティブ コードの開発者およびマネージ コードの開発者の数も増え、機能豊富で洗練されたアプリケーションの開発が行われてきました。 これら両方の開発者に共通するニーズに対応するため、Windows Mobile 5.0 の新機能の多くは、ネイティブ API およびマネージ API を直接公開しています。 マネージ API を Windows Mobile 5.0 プラットフォームの一部として導入することにより、すべてのマネージ コードの開発者は、アプリケーションが使用する .NET Compact Framework のバージョンに関係なく、これらの API を使用できます。

状態および通知ブローカー API

Windows Mobile 5.0 は、状態および通知ブローカー API と呼ばれる強力な新機能を導入しました。 状態および通知ブローカー API は、デバイス情報、アプリケーション情報、およびシステム状態情報を保存するための統合メカニズムを提供します。 この API は、統合されたシンプルな保存機能を提供するだけでなく、通知を集中管理するアーキテクチャも提供します。このアーキテクチャをアプリケーションで利用することにより、通知の登録を簡単に実行できます。また、重要な値を変更するイベントに対して、アプリケーションを起動することもできます。 モデルを使用すると、アプリケーションは、アプリケーション自体の状態情報を簡単に共有できます。

Windows Mobile 5.0 デバイスには、状態を示す値が 100 種類以上組み込まれています。これらの値は、状態および通知ブローカー API を介して使用できます。 これらの値によって、デバイスおよび標準的な Windows Mobile 5.0 アプリケーションに関するさまざまな情報が提供されます。 状態および通知ブローカーを介して使用できる情報の例を、次に示します。

  • アクティブなアプリケーション
  • デバイスの ActiveSync の状態
  • 現在のバッテリ レベル
  • カメラがデバイスに接続されているかどうか
  • ヘッドフォンが接続されているかどうか
  • Media Player で再生中の楽曲のタイトル
  • 未読の SMS メッセージの数
  • 未読の電子メール メッセージの数
  • 電話通話を現在行っているかどうか
  • 会議通話を現在行っているかどうか
  • GPRS 接続が現在有効であるかどうか
  • デバイスが VPN に接続されているかどうか
  • 電話通話に出なかった回数
  • 電話のモバイル オペレータの名前
  • 今日行う仕事の件数

これらの情報だけでなく、デバイスの製造元 (OEM) やアプリケーション開発者に応じて、その他の情報を追加できます。 開発者はアプリケーションをプログラムして、状態および通知ブローカー API によって保存された値を簡単に取得できます。また必要に応じて、アプリケーションをプログラムして、1 つまたは複数の値を監視し、その変化を調べることも可能です。

状態および通知ブローカーの基本的な実装は、レジストリに依存します。 各プロバイダはレジストリ キーを作成し、状態を示す値に対応するキーへ値を追加します。 プロバイダがレジストリ キーを作成した後で、状態および通知ブローカーは値の変更を監視し、その値が示す情報に関連するすべてのグループに対して自動的に通知を行います。 すべてのシステム状態のプロパティは、HKEY_CURRENT_USER\System\State または HKEY_LOCAL_MACHINE\System\State のいずれかに保存されます。 これらのキーは安全に保護されており、信頼できないアプリケーションは読み取り専用のアクセスしか許可されません。 アプリケーションは、アプリケーション自体の状態を示す値を HKEY_CURRENT_USER\Software\State および HKEY_LOCAL_MACHINE\Software\State に追加できます。

ネイティブ コードの開発者が通知の受信を必要としている場合、Windows メッセージ、コールバック関数、メッセージ キューに関連するオプションを使用できます。 通知プロバイダを作成する開発者は、適切なレジストリの場所のいずれかにキーを作成し、RegistrySetDWORD または RegistrySetString 関数を使用して、そのキーに属している値の作成や変更を行うことができます。 表 5 に、共通に使用される、状態および通知ブローカーのネイティブ関数を示します。

表 5: 共通に使用される、状態および通知ブローカー API のネイティブ関数

関数 説明
RegistryNotifyApp 指定された状態を示す値の変更について、アプリケーションに通知します。この通知は、Windows メッセージをアプリケーション ウィンドウに送信することにより実行されます。 アプリケーションが実行されていない場合は、状態および通知ブローカー API によってアプリケーションが起動します。
RegistryNotifyWindow 指定された状態を示す値の変更について、アプリケーションに通知します。この通知は、Windows メッセージをアプリケーション ウィンドウに送信することにより実行されます。
RegistryNotifyMsgQueue 指定された状態を示す値の変更について、アプリケーションに通知します。この通知は、指定されたッセージ キューに通知を送信することにより実行されます。
RegistryNotifyCallback 指定された状態を示す値の変更について、アプリケーションに通知します。この通知は、コールバック関数を呼び出すことにより実行されます。
RegistryGetDWORD / RegistryGetString 現在の状態を示す値を取得します。
RegistrySetDWORD / RegistrySetString 状態を示す値の作成や変更を行うときに、状態および通知ブローカー API プロバイダで使用される関数です。
RegistryTestExchangeDWORD 単一のアトミック操作としてテストや更新を実行する場合、状態を示す値を条件付きで変更するときに、状態および通知ブローカー API プロバイダで使用される関数です。

マネージ コードの開発者は、"Microsoft.WindowsMobile.Status" 名前空間に属しているクラス、および同じ名前のアセンブリを使用することで、状態および通知ブローカーを操作します。 状態変更の通知をマネージ クラスに送信する場合は、標準的な委任メカニズムが使用されます。 表 6 に、共通に使用されるマネージ クラスを示します。

表 6: 共通に使用される、状態および通知ブローカー API のマネージ クラス

関数 説明
RegistryState 監視対象となる状態を示す値をカプセル化します。このカプセル化では、値の取得や値の変更の監視が対象となります。またオプションで、値が変更された場合のアプリケーションの起動も対象とすることができます。
SystemState 共通のシステム状態を示す値に関する抽象化を提供し、プロパティを介してこれらの値へアクセスできます。

画像の選択ダイアログ

アプリケーションで写真とグラフィックを統合して扱うことが増えてきており、これらのアプリケーションでは、画像の一覧を簡単にユーザーに表示して選択させる方法が必要になります。 このニーズに対応するために、Windows Mobile 5.0 は画像の選択ダイアログを提供します。 ネイティブ コードの開発者は GetFileNameEx 関数を介して、このダイアログを使用できます。また、マネージ コードの開発者に対しては、Microsoft.WindowsMobile.Forms.SelectPictureDialog クラスを介して、このダイアログが公開されます。 図 2 に、画像の選択ダイアログを示します。

画像を拡大するには、ここをクリックしてください。

図 2: 画像の選択ダイアログ。 画像を拡大するには、サムネイルをクリックします。

画像の選択ダイアログは、さまざまな構成を行うことが可能です。このダイアログを使用すると、アプリケーション開発者は、ダイアログの動作を多様な方法で制御できます。たとえば、ユーザーが画像を参照できる場所を制限したり、外付けのカメラ (カメラが接続されている場合) を使用した画像の参照の許可を制御したり、DRM 保護されたフィールドの処理方法を設定できます。

カメラ キャプチャ API/SHCameraCapture

カメラを使用できるデバイスの人気が高まっています。 これらのデバイスの普及と共に、アプリケーション開発者は、静止画像とビデオ画像のキャプチャを直接アプリケーションに統合して、より優れたユーザー エクスペリエンスを提供できるようになりました。 こういった機能をアプリケーション開発者が簡単に利用できるようにするために、Windows Mobile 5.0 では、カメラ キャプチャ ダイアログが提供されます。

カメラ キャプチャ ダイアログを使用すると、デバイスに依存しない方法で、写真、ビデオ、および音声付ビデオのキャプチャをアプリケーションに統合できます。 このダイアログでは、キャプチャのタイプ、画質、および最大長 (ビデオの場合) など、カメラ キャプチャ プロセスで必要となる情報をすべて制御できます。 カメラ キャプチャ ダイアログを利用する場合、ネイティブ コードの開発者は SHCameraCapture 関数を使用し、マネージ コードの開発者は Microsoft.WindowsMobile.Forms.CameraCaptureDialog を使用します。

Pocket Outlook の拡張機能

Pocket Outlook は、ユーザーとアプリケーション開発者の両方にとって使いやすい PIM システムです。 Pocket Outlook をアプリケーションに統合すると、アプリケーションとそのユーザーの両方に対してメリットがもたらされます。 ユーザーは、統一された PIM エクスペリエンスを利用できるようになり、Pocket Outlook と直接またはアプリケーションを介してデータをやり取りすることが可能になります。 またアプリケーションは、ユーザーの完全な PIM データを簡単に取り込むことができるようになります。

アプリケーションと Pocket Outlook 間の情報の交換方法を大幅に簡略化し、Pocket Outlook の豊富な機能をアプリケーションに組み込むために、Pocket Outlook はネイティブ コードの開発者とマネージ コードの開発者の両方に対して、いくつかの新機能を提供します。

連絡先の選択ダイアログ

ダイアログの名前が示すように、連絡先の選択ダイアログをアプリケーションで使用すると、Pocket Outlook とまったく同じ機能を持つ連絡先の選択ダイアログを表示できます。 このダイアログはフィルタ機能を備えており、ユーザーは、すべての連絡先を選択したり、連絡先の個別のプロパティ (電話番号や電子メール アドレスなど) を選択できます。 ダイアログが表示されたら、連絡先を直接選択するか、連絡先の名前の一部を入力します。連絡先の名前を入力すると、自動的にフィルタ処理され、名前が一致する連絡先だけが表示されます。 このダイアログでは、新しい連絡先の追加も行うことができます。 連絡先の選択ダイアログを利用するには、ネイティブ コードの開発者は ChooseContact 関数を使用し、マネージ コードの開発者は、ChooseContactDialog クラスを使用します。

以下の例に、C++ および C# から連絡先の選択ダイアログを使用する方法を示します。 どちらの場合も、既存の連絡先を選択するためのダイアログが表示されます。 この簡単な例では、連絡先を選択した後で、その連絡先の名前がメッセージ ボックスに表示されます。

次のコードに、C++ での連絡先の選択ダイアログを示します。

#include <pimstore.h>
// ...
HRESULT hr = E_FAIL;
CHOOSECONTACT cc = {0};
cc.cbSize = sizeof (cc);
cc.dwFlags = CCF_RETURNCONTACTNAME | CCF_HIDENEW;
// 連絡先の選択ダイアログを表示する
hr = ChooseContact(&cc);
// 選択した名前を表示する
MessageBox(NULL, cc.bstrContactName, TEXT("Selected Contact"), MB_OK); 
// メモリを解放する
SysFreeString(cc.bstrContactName);

次のコードに、C# での連絡先の選択ダイアログを示します。

using Microsoft.WindowsMobile.PocketOutlook;
using Microsoft.WindowsMobile.Forms;
// ...
ChooseContactDialog contactDialog = new ChooseContactDialog();
contactDialog.HideNew = true;
contactDialog.ShowDialog();
// 選択した名前を表示する
MessageBox.Show(contactDialog.SelectedContactName, "Selected Contact");

図 3 に、表示されるダイアログを示します。

図 3: 新しい ChooseContactDialog 連絡先選択クラス

イベント通知

Windows Mobile 5.0 ではイベント通知が導入されたため、アプリケーションと Pocket Outlook との連携がこれまで以上に強化されました。 イベント通知を使用すると、ネイティブ アプリケーションおよびマネージ アプリケーションは、Pocket Outlook フォルダ内のメンバの追加、削除、変更を監視できます。

これらの通知を受信できるように登録する場合、ネイティブ アプリケーションは、対象となる Folder オブジェクトの IItem インターフェイスにアクセスしてから、IItem.SetProp メソッドを呼び出して、PIMPR_FOLDERNOTIFICATION プロパティを表 7 のいずれかの値に設定します。

表 7: Pocket Outlook フォルダの通知フラグ

通知フラグ 説明
PIMFOLDERNOTIFICATION_LOCAL 現在のプロセスから変更が行われた場合、通知をアプリケーションに送信します。
PIMFOLDERNOTIFICATION_REMOTE 他のプロセスから変更が行われた場合、通知をアプリケーションに送信します。
PIMFOLDERNOTIFICATION_ALL どのプロセスから変更が行われた場合でも、通知をアプリケーションに送信します。

変更が行われると、IPOutlookApp.Logon の呼び出しで登録されたウィンドウにメッセージが送信されます。 表 8 に、表示されるメッセージを示します。

表 8: Pocket Outlook の通知メッセージ

通知メッセージ 説明
PIM_ITEM_CREATED_LOCAL このプロセスで、PIM 項目が作成されました。
PIM_ITEM_DELETED_LOCAL このプロセスで、PIM 項目が削除されました。
PIM_ITEM_CHANGED_LOCAL このプロセスで、PIM 項目が変更されました。
PIM_ITEM_CREATED_REMOTE 別のプロセスで、PIM 項目が作成されました。
PIM_ITEM_DELETED_REMOTE 別のプロセスで、PIM 項目が削除されました。
PIM_ITEM_CHANGED_REMOTE 別のプロセスで、PIM 項目が変更されました。

マネージ アプリケーションでは、標準的な委任メカニズムを使用して、ListChanged イベントを処理します。このイベントは、AppointmentCollectionContactCollectionTaskCollection によって公開されます。 これらのコレクションには、対応するフォルダの Items プロパティを使用することにより、簡単にアクセスできます。 次の例に、予定コレクションに対する変更を処理するために委任を登録する方法を示します。

using Microsoft.WindowsMobile.PocketOutlook;
// ...
OutlookSession session = new OutlookSession();
session.Appointments.Items.ListChanged +=
    new ListChangedEventHandler(Items_ListChanged);

// ListChanged イベント ハンドラ
void Items_ListChanged(object sender, ListChangedEventArgs eventArgs)
{
  // 変更の詳細が eventArgs で検索される
}

フォルダ内のすべてのオブジェクトに対する変更を追跡するだけでなく、マネージ コードの開発者は、特定の Appointment (予定)、Contact (連絡先)、Task (仕事) に対する変更の通知を受信することもできます。 これらのクラス内の各プロパティは、対応するイベントを持っています。 たとえば、AppointmentStart プロパティに対する変更が通知される場合、Appointment.StartChanged イベントが処理されます。 また、ContactBusinessTelephoneNumber プロパティに対する変更が通知される場合は、Contact.BusinessTelephoneNumberChanged イベントが処理されます。

カスタム プロパティ

多くのアプリケーションでは、Pocket Outlook が提供するデータを使用するだけでなく、その他のデータを追跡するために、標準の Pocket Outlook オブジェクト モデルを拡張する必要があります。 従来、これらの拡張をアプリケーションで行う必要のある開発者は、拡張されたデータとそのコレクションの記憶域を、Pocket Outlook オブジェクトとして明示的に管理する必要がありました。 Windows Mobile 5.0 ではカスタム プロパティが導入されたため、拡張されたコンテンツを手動で管理する必要がなくなりました。

カスタム プロパティを使用すると、ネイティブ アプリケーションおよびマネージ アプリケーションは、カスタム データを AppointmentContactTask オブジェクトに直接関連付けることができます。 Pocket Outlook は、関連付けられたデータをデータ ストアに自動的に保存します。これらデータへは、関連付けられた AppointmentContactTask オブジェクトを介して、直接アクセスできます。 カスタム プロパティは、int などの簡単な型から、複雑なカスタム オブジェクトまで、どのような型にも対応できます。 カスタム プロパティを利用するには、ネイティブ コードの開発者は IItem.GetProps/IItem.SetProps 使用し、マネージ コードの開発者は Appointment.PropertiesContact.Properties、および Task.Properties によって公開される PimPropertySet プロパティを使用します。

メール アプリケーション管理

SMS および電子メールのメッセージングは、個人的な会話や詳細なビジネス プロセス情報などを伴なう現代の通信における主要なテクノロジです。 多くのアプリケーションは、メッセージングを強固に統合することによって、ユーザーにメリットを与えることができます。これらの統合を行うと、アプリケーションとの情報交換、およびアプリケーションに関連する SMS や電子メール メッセージとの情報交換の間で、シームレスなユーザー エクスペリエンスが実現されます。 Windows Mobile 5.0 では新しいメッセージング API がいくつか導入されたため、これらのシームレスなエクスペリエンスを容易に提供することが可能になりました。

新しいメッセージ API を使用すると、ネイティブ コードの開発者およびマネージ コードの開発者は、デバイス メッセージング プログラムが持ついくつかの機能に簡単にアクセスできます。 これらの機能を使用すると、既存の電子メール メッセージを表示したり、メッセージング システムの SMS や電子メール フォームを使用して新しいメッセージを作成したり、メッセージング システムで現在アクティブなアカウントを制御できます。 新しいメッセージング API を使用して開発することにより、使い慣れた、一貫したメッセージング エクスペリエンスが提供され、ユーザーは、アプリケーションとデバイス メッセージング プログラムの間でスムーズな移行を実現できます。 表 9 に、ネイティブ メッセージング システムの関数を示します。表 10 には、マネージ メッセージング システムの関数を示します。

表 9: ネイティブ メール アプリケーション管理の関数

関数 説明
MailComposeMessage コンテンツや添付ファイルが含まれた、メッセージ作成フォームが表示されます。
MailDisplayMessage 標準のメッセージ表示フォームを使用して、既存のメッセージが表示されます。
MailSwitchToAccount メッセージング プログラムにフォーカスを移動し、指定されたアカウントに切り替えます。
MailSwitchToFolder メッセージング プログラムにフォーカスを移動し、指定されたフォルダに切り替えます。
MailSyncMessages 指定されたアカウントとメール サーバーの同期をとります。

表 10: マネージ メール アプリケーション管理の関数

関数 説明
MessagingApplication.DisplayComposeForm コンテンツや添付ファイルが含まれた、メッセージ作成フォームが表示されます。
MessagingApplication.DisplayMessage 既存のメッセージが表示されます。
MessagingApplication.SwitchToAccount メッセージング プログラムにフォーカスを移動し、指定されたアカウントに切り替えます。
MessagingApplication.Synchronize 指定されたアカウントとメール サーバーの同期をとります。

ツールおよびテクノロジ

Microsoft では、Windows Mobile 5.0 プラットフォームを対象としたアプリケーションを作成する開発者に対して、多くのツールとテクノロジを提供しています。 これらのツールによって、開発プロセスが簡素化され、開発の生産性が向上します。 ここでは、これらのツールとテクノロジについて説明します。

Visual Studio 2005

Visual Studio 2005 は、Windows Mobile 5.0 での開発を支援するツールです。生産性の高い開発エクスペリエンスを提供し、Windows Mobile 5.0 プラットフォームとの完全な統合を可能にします。 現在のアプリケーション開発では、開発者はさまざまなスキルを要求されます。これは、サーバー、デスクトップ コンピュータ、およびデバイス コンポーネントが混在した状況に対応するアプリケーションが必要とされるためです。 多くの場合、これらの状況に完全に対応するソリューションでは、ネイティブ コードとマネージ コードの両方が考慮されています。 Visual Studio 2005 は、これらの状況におけるアプリケーションの構築、デバッグ、および展開を、1 つのツールで可能にする、最初の開発プラットフォームです。 Visual Studio 2005 は、すべての種類のアプリケーションに対応した単一の開発ツールです。統一され、使い慣れた開発エクスペリエンスが提供されるため、開発者は、開発者トレーニングで得た既存のスキルや既存のコード ライブラリを活用できるだけなく、より効果的な作業を行うこともできます。

統合されたネイティブ コード開発

Visual Studio 2005 は、C/C++ を使用したデバイス アプリケーションの開発を完全にサポートします。 このサポートは、eMbedded Visual C++ 4.0 後継となる機能です。 Visual Studio 2005 は、C/C++ デバイス開発者に対して完全なツールセットを提供します。また、eMbedded Visual C++ 4.0 で使用されていたものと同じウィザードとツールもサポートされます。 Visual Studio 2005 には使いやすいアプリケーション ウィザードが含まれており、これを使用して、MFC、ATL、Win32 プロジェクトを作成できます。 Visual Studio 2005 では、ATL、MFC、C++ 用のクラス ウィザードがすべて提供されるため、これらを使用して、クラスをプロジェクトに追加できます。 これらのウィザード以外にも、Visual Studio 2005 には、デバイス向けクロスコンパイラ、リソース エディタ、デバッガ、エミュレータなどの使いやすいツールが含まれています。 また Visual Studio 2005 は、デバイス SDK を完全に統合します。

C/C++ 開発者に使いやすい機能を提供するだけでなく、Visual Studio 2005 には、多くの新しい機能が導入されています。これらの機能には、Intellisense や統合テストなどがあり、また Team System 機能のさまざまなセットへのアクセスも可能です。 Visual Studio 2005 を使用すると、C/C++ によるデバイス開発者は、Visual Studio 2005 が持つ生産性の高いさまざまな開発者向け機能に自動的にアクセスできます。

C/C++ によるデバイス開発と Visual Studio 2005 を統合することによって、開発者は、サーバー、デスクトップ コンピュータ、およびデバイス アプリケーションに関するスキルを総合的に活用できるようになりました。 開発者は、サーバーやデスクトップ コンピュータ アプリケーション用のツールと、デバイス アプリケーション用のツールを別々に学習する必要はありません。 つまり、C/C++ でデバイス アプリケーションを開発する場合、デスクトップ コンピュータの開発者であっても、Visual Studio 2005 で使用可能な、豊富な機能セットやサード パーティのツールを十分に利用することができるということです。

1 つのツールだけで開発ができるということは、ネイティブ コードとマネージ コードの両方でデバイス開発を行う場合に非常に便利なツールと言えます。 1 つのアプリケーションの一部としてネイティブ プロジェクトとマネージ プロジェクトの両方を作成する開発者は、Visual Studio 2005 を使用するだけで、ネイティブ プロジェクトとマネージ プロジェクトに関する問題を解決できます。

C/C++ によるモバイル デバイスの開発者は、Visual Studio 2005 を使用した場合、Windows Mobile 5.0 アプリケーションだけでなく、その他のモバイル デバイス アプリケーションの開発も可能になります。 Visual Studio 2005 は、Windows Mobile 2003 以降のすべての Windows Mobile プラットフォームを対象としたネイティブ モバイル デバイス アプリケーションの開発をサポートしているためです。 つまり、Windows Mobile 2003、Windows Mobile 2003 Second Edition、および Windows Mobile 5.0 が実行されている Pocket PC や Smartphone デバイスを対象としてる開発者は、Visual Studio 2005 を活用できます。

Windows Mobile 5.0 では、eMbedded Visual C++ 3.0 および eMbedded Visual C++ 4.0 で開発されたアプリケーションを引き続き実行できます。 ただし、これらのツールを使用している開発者は、Windows Mobile 5.0 に基づいてアプリケーションをデバッグしたり、展開することはできなくなります。 Windows Mobile 5.0 に基づいたアプリケーションの展開やデバッグをサポートしているのは、Visual Studio 2005 だけです。

統合されたマネージ コード開発

マネージ コードを使用するモバイル デバイス開発者にとって、Visual Studio 2005 は、Visual Studio .NET 2003 に代わるツールとなります。 Visual Studio .NET 2003 に精通している開発者であれば、Visual Studio 2005 がとても使いやすく、一貫したエクスペリエンスを提供していることに気付くでしょう。

Visual Studio 2005 では .NET Compact Framework 2.0 が導入されており、マネージ コードの開発者は、多くの新しいクラスやメソッドを利用できます。 また、ランタイムに対してさまざまな機能拡張が行われています。たとえば、パフォーマンスの向上や、Generics 関数および Anonymous 関数などの上級プログラミング機能のサポートなどです。 既存の .NET Compact Framework 1.0 アプリケーションのサポートを必要とする開発者、および Windows Mobile デバイスの ROM でさまざまな応用可能な .NET Compact Framework 1.0 を継続して使用する開発者に対して、Visual Studio 2005 は、Pocket PC と Smartphone の開発における .NET Compact Framework 1.0 のサポートを継続して行います。

.NET Compact Framework 1.0 アプリケーションを開発する場合でも、.NET Compact Framework 2.0 アプリケーションを開発する場合でも、マネージ コードの開発者は、Visual Studio 2005 の強力なデバイス開発環境を活用できます。 .NET Compact Framework 1.0 および 2.0 は、どちらも、この記事で前述した Windows Mobile 5.0 のマネージ API にアクセスできます。 これらのマネージ API は Windows Mobile 5.0 オペレーティング システムの一部として組み込まれており、.NET Compact Framework のバージョンに関係なく使用できます。

注: Visual Studio 2005 で利用できる新しいデバイス開発機能の詳細については、次のセクション「Visual Studio 2005 を使用したデバイス開発」を参照してください。

Windows Mobile 5.0 では、Visual Studio 2003 で開発したアプリケーションを引き続き実行できます。 ただし、Windows Mobile 5.0 に基づいてアプリケーションのデバッグや展開を行う開発者は、Visual Studio 2005 を使用する必要があります。 これは、Windows Mobile 5.0 に基づいた展開やデバッグをサポートしているのは、Visual Studio 2005 だけであるためです。

Visual Studio 2005 を使用したデバイス開発

Visual Studio 2005 が提供する開発環境は、eMbedded Visual C++ または Visual Studio .NET 2003 を利用した作業の経験をもつ開発者とって、一貫性があり、使いやすいものとなっています。 Visual Studio 2005 開発環境が使いやすい環境であるため、開発者は、自身が持つ eMbedded Visual C++ または Visual Studio .NET 2003 のスキルを直ちに活かすことができ、効率的な作業で、高品質なデバイス アプリケーションを作成できます。

Visual Studio 2005 では、開発者の生産性向上や全体的な開発者エクスペリエンスに着目した多くの機能拡張が行われています。 Visual Studio 2005 は、eMbedded Visual C++ と Visual Studio .NET 2003 の優れた機能を取り込み、1 つのパッケージにまとめた製品です。

デバイス開発者向けの新機能

eMbedded Visual C++ や Visual Studio .NET 2003 の使い慣れた多くの機能が取り込まれているだけでなく、Visual Studio 2005 には、多くの新機能が導入されています。 これらの新機能は、eMbedded Visual C++ や Visual Studio .NET 2003 で提供されていた優れた開発環境に基づいて構築されており、より効果的で生産性の高い開発者エクスペリエンスが作成されます。 ここでは、これらの新機能の概要について説明します。

改善されたユーザー インターフェイス デザイン

最近まで、すべての Pocket PC デバイスや Smartphone デバイスの画面サイズは同じでした。 また、どちらの場合も縦長の表示でした。 Windows Mobile 2003 Second Edition の導入や、その後の Windows Mobile 5.0 の利用によって、さまざまなデバイスが異なる画面解像度をサポートするようになりました。 たとえば、現在 Pocket PC で利用可能な画面解像度は、240 x 320、240 x 240、480 x 640、480 x 480 です。 デバイスによっては、縦長や横長、正方形の画面を備えているものもあります。また、縦長と横長の画面を動的に切り替えることができるデバイスもあります。 これらのさまざまな表示オプションを対象としたアプリケーションの設計プロセスを簡素化するために、Visual Studio 2005 では、UI デザイナ向けの新機能をいくつか導入しました。

Visual Studio 2005 で管理される UI デザイナは、「見たものが、手に入るもの (WYSIWYG)」と表すことができます。インタラクティブなデザイン エクスペリエンスをサポートすることにより、開発者は、利用可能なすべての Windows Mobile の画面サイズや画面の向きに応じて、アプリケーション フォームを確認できます。 図 4 に、縦長のフォームと [右に回転] メニュー オプションを表示している UI デザイナを示してます。このメニュー オプションを使用すると、UI 表示が横長になります。 図 5 は、図 4 と同じフォームですが、ユーザーが [右に回転] をクリックした後のフォームです。

画像を拡大するには、ここをクリックしてください。

図 4: Visual Studio 2005 で管理される UI デザイナ (縦長)。 画像を拡大するには、サムネイルをクリックします。

画像を拡大するには、ここをクリックしてください。

図 5: Visual Studio 2005 で管理される UI デザイナ (横方向に回転後)。 画像を拡大するには、サムネイルをクリックします。

複数の画面解像度をサポートするアプリケーションの開発を簡素化するために、すべてのマネージ コントロールは、画面表示をさらに意識したものになっており、アンカー設定やドッキングをサポートします。 アンカー設定とは、コントロールを使用してフォームの端から一定の間隔を残すことです。 フォームのサイズや向きが変わっても、コントロールによって位置が調整され、フォームの端からの間隔は変更されません。 1 つまたは複数の端に対して、コントロールをアンカー設定できます。

ドッキングとは、コントロールをフォームの端に直接配置して、コントロールによって端全体を固定することです。 同じ端に対して複数のコントロールをドッキングして、積み重ね表示の効果を出すことができます。 画面を回転させると、ドッキングされたコントロールによって自動的に調整が行われ、設定された端は常に固定されます。 図 5 では、UI を横長表示したとき、フォームの下にあるリスト ボックスの表示が不完全になっています。 ドッキングとアンカー設定によって、この問題が解決されます。 図 6 と 7 に、同じフォームをそれぞれ縦長と横長表示で示します。 これらの図では、テキスト ボックスとラベルがフォームの左上隅にアンカー設定されており、リスト ボックスがフォームの下端にドッキングされています。

画像を拡大するには、ここをクリックしてください。

図 6: ドッキングとアンカー設定のコントロールを使用して、縦長に表示されたフォーム。 画像を拡大するには、サムネイルをクリックします。

画像を拡大するには、ここをクリックしてください。

図 7: 図 6 のフォームを横長に表示。 画像を拡大するには、サムネイルをクリックします。

Pocket PC と Smartphone の両方を対象としたマネージ アプリケーションの場合、Visual Studio 2005 UI デザイナは、デバイスを考慮し、Pocket PC と Smartphone のデバイス間の画面やコントロールに関する機能の相違点を判別できるようになっています。 デザイナのツールボックスは自動的に調整されるため、現在選択しているデバイスで機能するコントロールだけが利用可能になります。 また Visual Studio 2005 は、次のようなさらに便利な機能も備えています。 開発者は、本来 Pocket PC 用にデザインされているフォームを、Pocket PC デザイナから Smartphone デザイナにドラッグできます。このとき、Visual Studio 2005 は、フォームを Smartphone 用に自動的に更新します。 また Visual Studio 2005 は、コントロールのサイズを調整し、フォーム コントロールが SmartPhone でサポートされていない場合は、適切な代替コントロールを提供します。

エミュレータ

  • Windows Mobile 5.0 と同様に、Visual Studio 2005 の目的は開発者の生産性の向上です。 開発時間を削減するための主要なツールが、デバイス エミュレータです。 デバイス エミュレータを使用すると、デバイスにアクセスすることなく、更新の開発やデバッグを行うことができます。 Visual Studio 2005 は、さらに多くの機能を備えた多数のエミュレータを提供します。 図 8 に、Windows Mobile 5.0 Pocket PC エミュレータを示します。 図 9 には、Windows Mobile 5.0 Smartphone エミュレータを示します。

画像を拡大するには、ここをクリックしてください。

図 8: Windows Mobile 5.0 Pocket PC エミュレータ。 画像を拡大するには、サムネイルをクリックします。

画像を拡大するには、ここをクリックしてください。

図 9: Windows Mobile 5.0 Smartphone エミュレータ。 画像を拡大するには、サムネイルをクリックします。

ARM エミュレータ

Visual Studio 2005 では、優れた ARM エミュレータを導入しました。 この ARM エミュレータは、より正確で完全なアプリケーション テスト機能を備えており、これまで不可能であったデバイスとエミュレータ間の一貫性したレベルが確保されています。 ARM エミュレータでは、ARM コンピュータと同じ操作を実行でき、メモリ レイアウトも同じです。さらに、ARM デバイスと同じドライバも使用します。 すべてのデバイス開発者は、これらの機能が重要であることに気付くでしょう。また、ARM エミュレータはデバイスと同じバイナリを使用するため、ネイティブ コードの開発者にとっては、さらにメリットのあるツールとなっています。 エミュレータ用のバイナリ セットとデバイス用のバイナリ セットを別々にコンパイルする必要はありません。 エミュレータとデバイスで同じバイナリを使用することにより、開発者は、開発時間を削減し、より正確なテストを実施できます。

ActiveSync のサポート

  • ActiveSync のサポートが導入されたことにより、エミュレータとデバイス間の一貫性がさらに向上しました。 すべての Visual Studio 2005 エミュレータは、「クレイドル」にドッキングされ、ActiveSync を介して接続されます。 接続されると、エミュレータをデスクトップ コンピュータとして扱うことができます。ここでは、デバイスが ActiveSync によってクレイドルにドッキングされているかのような状態で操作を行うことができます。 エミュレータでは ActiveSync を使用して、Exchange との電子メール、予定表、連絡先、仕事の同期、およびデスクトップ コンピュータとのフォルダの同期をとり、すべての ActiveSync プログラミング機能をサポートします。また、エミュレータを使用した ActiveSync ベースのプログラムの作成とテストを、開発者に対して許可します。

共有フォルダのサポート

  • デスクトップ コンピュータとエミュレータ間のファイルの共有を簡単に行うために、エミュレータは共有フォルダをサポートします。 共有フォルダを使用すると、エミュレータはデスクトップ コンピュータ上のフォルダやネットワーク上の任意の場所にアクセスできます。 共有フォルダは、エミュレータでは SD カードとして表示されます。 共有フォルダによって、エミュレータからデスクトップ コンピュータのコンテンツへのアクセスが容易になります。また共有フォルダは、エミュレータ間でのファイル共有にも利用できます。

機能豊富な表示とシリアル ポート

  • Windows Mobile デバイスの機能の進化に合わせるため、エミュレータは多くの新機能を備えています。 エミュレータは、Windows Mobile がサポートするすべての画面解像度に対応しており、縦長と横長表示の動的な切り替えをサポートしています。 また、複数のシリアル接続のデバイスと通信するアプリケーションに対して、エミュレータは 4 つのシリアル ポートをサポートしています。

デバイス エミュレータ マネージャ

  • Visual Studio 2005 と Windows Mobile 5.0 SDK を合わせると、合計で 15 種類のデバイス エミュレータが提供されます。 図 10 に示す新しいデバイス エミュレータ マネージャは、これらのエミュレータおよび追加される可能性のあるその他のエミュレータを集中管理するためのユーティリティを提供します。 デバイス エミュレータ マネージャを使用すると、エミュレータとのやり取りを行う時間を削減できます。デバイス エミュレータ マネージャだけで、インストールされているエミュレータの検索、接続、シャットダウンを行うことができるためです。 また、デバイス エミュレータ マネージャは、エミュレータでの ActiveSync サポートに対しても重要な役割を果たします。それは、デバイス エミュレータ マネージャを使用して、デバイス エミュレータのクレードルへのドッキングやドッキング解除が行われ、それに応じて、エミュレータの接続や ActiveSync からの切断が行われるためです。

図 10: デバイス エミュレータ マネージャ

データ デザイナ

デバイス アプリケーションがより高度なものになってきており、それに合わせて、より高度なデータ管理が必要とされています。 モバイル デバイス データベースの設計と保守を簡素化するために、Visual Studio 2005 は新しいデータ デザイナを提供します。 これらのデザイナでは、スキーマ デザイン、テーブル制約管理、データ生成など、デバイス データベースに関するすべての管理を行うことができます。 開発者は、すべてのデータベース管理をデスクトップ コンピュータから実行できるようになりました。

図 11 に、テーブル作成データ デザイナを使用した、新しいデータベース テーブルの作成を示します。 このデザイナを使用すると、データ型、スケール、精度、および NULL のサポートなどの情報が設定された列を追加できます。 また、ID 列や rowguid 列などの特殊な値を含む列を作成したり、テーブルの主キーを構成する列を定義できます。 スキーマの変更、インデックスの作成、およびデータベースのデータ生成に使用できる、同様なデザイナもあります。 図 12 に示す、データベース作図ツールを使用すると、データベースのリレーションシップや制約を定義できます。 また、デザイナを使用して、厳密に型指定されたデータセットを作成することもできます。

画像を拡大するには、ここをクリックしてください。

図 11: "テーブル作成" データ デザイナを使用した、デバイス データベースへのテーブルの追加。 画像を拡大するには、サムネイルをクリックします。

画像を拡大するには、ここをクリックしてください。

図 12: データベース作図ツールを使用した、テーブル リレーションシップの定義。 画像を拡大するには、サムネイルをクリックします。

データ デザイナは、データベースの作成や管理で必要となるすべてのツールを提供します。 既に説明した機能以外にも、デザイナを使用して、データベースの圧縮やデータベース コンテンツの暗号化などの基本的な管理操作を実行できます。 データ デザイナのもう 1 つの重要な機能として、データベース接続のサポートがあります。 データ デザイナは、データベースがデスクトップ コンピュータ上にある場合も、エミュレータに含まれている場合も、また実際のデバイス上にある場合も、適切に機能します。 この接続のサポートによって、新しいデータベースをデスクトップ コンピュータで作成し、数百のデバイスへ展開する場合でも、または単一のデバイスに含まれているデータベースのコンテンツを管理する場合でも、同じように効果的な作業を実行できます。

データ デザイナは、デスクトップ コンピュータのファイル システム上にあるデータベースや、デバイス上に直接格納されているデータベースの管理をサポートするだけでなく、サーバーベースのデータ管理ツールについても一貫したエクスペリエンスを提供します。 SQL Server Enterprise Manager や Visual Studio .NET 2003 Server Tools を使用したことのある開発者にとって、データ デザイナは非常に使いやすいものになっています。 開発者は、物理的な場所に関係なく、すべてのデータベースに対して、1 つのスキルだけで対応することが可能になりました。

複数プラットフォームの開発

Visual Studio 2005 では複数プラットフォーム プロジェクトをサポートしているため、複数のデバイス プラットフォームへの対応が、より簡単になりました。 ネイティブ プロジェクトおよびマネージ プロジェクトは、どちらも、Pocket PC と Smartphone デバイスの両方を対象とすることができます。 これらのプロジェクトでは、両方のデバイスでそれぞれ異なるユーザー インターフェイスを保守する場合に、同じコードを使用できます。 またこれらのプロジェクトは、さまざまな Windows Mobile のバージョンに対応できます。 ネイティブ コードの開発者の場合、Visual Studio 2005 を使用すると、複数の CPU タイプを対象として開発できます。

強化されたデバッガ

アプリケーションのデバッグは、開発エクスペリエンスでは重要な意味を持ちます。 Visual Studio 2005 ではデバイス デバッガは完全に再設計され、デバイス開発者は、完成度の非常に高いデバッグ機能のセットを使用できるようになりました。このデバッガは、これまでにない高いパフォーマンスを発揮します。

向上したデバッガ パフォーマンス

デバッガの使用で長い時間がかかることは、当然のことと考えられてきました。 また、開発者の生産性のほとんどは、デバッガのパフォーマンスによって直接影響を受ける場合があります。 このため、Visual Studio 2005 のデバッガは完全に再設計され、これまでにない優れたパフォーマンスが実現されました。

デバッガ全体のコントロールや通信モデルが再作成され、デバイスとデスクトップ コンピュータ間の負荷分散がさらに効果的に行われ、CPU ベースのパフォーマンス ボトルネックが軽減されました。 新しいデバッガでは、デスクトップ コンピュータとデバイス間の通信量が激減したため、パフォーマンスが大幅に向上しています。 ほとんどの開発者は USB 2.0 接続を使用してデバッグするため、デバッガも USB 2.0 接続向けに最適化されました。

プロセスへのアタッチ

Visual Studio 2005 では、実行中のプロセスへアタッチして、デバッグできます。 この機能を使用すると、デバイス開発者は、デバッガによって起動されるアプリケーションだけでなく、その他のアプリケーションもデバッグできるようになります。 つまり、ユーザー、システム、または別のプロセスによって既に実行されているプロセスをデバッグできます。 また、この機能は、デバッガによって起動されなかったアプリケーションで発生する問題を特定することにより、開発者の生産性を向上させます。 開発者は、問題が特定された時点の状態でアプリケーションをデバッグできるようになり、デバッガでアプリケーションを再起動してから、特定された問題を再度発生させる必要がなくなりました。

複数プロセスのデバッグ

デバイス開発者は、複数のアプリケーションを同時にデバッグできます。 複数プロセスのデバッグがサポートされたため、連動する複数のデバイス アプリケーションや他のアプリケーションに依存して動作するデバイス アプリケーションを同時にデバッグできます。このとき、アプリケーションが同じデバイス上で実行されているのか、異なるデバイス上で実行されているのかは問題となりません。 この機能は、エミュレータ上で実行されているアプリケーションをデバッグする場合も、適切に動作します。

ネイティブ ソリューションとマネージ ソリューションの混在に対するサポート

ネイティブ コードとマネージ コードには、それぞれ独自のメリットがあります。 複雑なデバイス アプリケーションを構築する場合、ネイティブ コードとマネージ コードの両方のメリットを利用するために、これらの 2 つのコードを混在させることは一般的に行われることです。 Visual Studio 2005 では、ネイティブ プロジェクトとマネージ プロジェクトの両方を含む、1 つのソリューションを作成できます。 これらのサポートによって、アプリケーション コンポーネントの管理とテストに関する作業が大幅に簡素化されました。これは、開発者がアプリケーションのすべての部分を 1 つのユニットとして管理できるためです。

CAB デザイナ プロジェクト タイプの追加

アプリケーションが成功するかどうかは、デザインやプログラミングだけでなく、適切な展開も重要な要素となります。 デバイス用の CAB インストール ファイルを作成するときに、開発者の時間と労力を減らすために、Visual Studio 2005 は CAB デザイナ プロジェクトを導入しました。 図 13 に示すように、CAB デザイナ プロジェクトを使用すると、CAB ファイルをグラフィカルにデザインできます。 このグラフィック モデルを使用すると、開発者は、展開ファイルを特定のフォルダを関連付け、必要なレジストリを変更するだけで済みます。実際の CAB ファイルの構築は、Visual Studio 2005 が実行します。 コード署名を必要とするアプリケーションの場合、Authenticode 署名は、1 つのプロジェクト プロパティを設定することによって適用します。

画像を拡大するには、ここをクリックしてください。

図 13: Visual Studio 2005 の CAB デザイナ プロジェクト。 画像を拡大するには、サムネイルをクリックします。

強化された Intellisense

長い間、Intellisense は、Visual Studio ファミリの中で最も効果的で生産性の高いツールとして利用されてきました。Intellisense によって入力の手間が省け、メソッド パラメータ リストを検索する必要がなくなります。 これらの利点があるため、Visual Studio 2005 でも Intellisense は採用されています。Visual Studio 2005 での Intellisense は、さらに状況の把握が向上されており、対象となるプラットフォームの種類とメンバだけが表示されます。

この機能は、特定のプラットフォームが、利用可能なコントロールの一部のみをサポートしている場合に、特に役立ちます。 たとえば、Smartphone を対象とするプロジェクトの場合、Smartphone で有効なコントロールだけが Intellisense に表示されますが、Pocket PC を対象とするプロジェクトで同じライブラリを使用する場合、Intellisense では、Pocket PC 用にサポートされる追加のコントロールが自動的に取り込まれます。

Windows Mobile 5.0 SDK

Windows Mobile 5.0 SDK は無料でダウンロードできます。Windows Mobile 5.0 SDK では、Windows Mobile 5.0 開発者ツールが Visual Studio 2005 に統合されます。 Windows Mobile 5.0 SDK によって、必要なエミュレータ、ヘルプ ファイル、ヘッダー、ライブラリが提供されるため、Windows Mobile 5.0 を対象とするアプリケーションの開発者は、プラットフォームを活用できます。 表 11 に、Windows Mobile 5.0 SDK のインストールによって得られるメリットをまとめたものを示します。

表 11: Windows Mobile 5.0 SDK の機能

機能 説明
Windows Mobile 5.0 のエミュレータ Windows Mobile 5.0 Pocket PC および Smartphone エミュレータのイメージをすべてインストールすると、これらのエミュレータを Visual Studio 2005 で直接使用できます。
Windows Mobile 5.0 のドキュメント Windows Mobile 5.0 のドキュメント セットをすべてインストールすると、これらのドキュメントが Visual Studio 2005 のヘルプ システムに完全に統合されます。
Windows Mobile 5.0 のネイティブ ヘッダーおよびライブラリ C/C++ 開発者が必要とするすべてのヘッダーとライブラリをインストールすると、Windows Mobile 5.0 の機能を活用したアプリケーションを作成できます。
Windows Mobile 5.0 のマネージ アセンブリ C# および Visual Basic .NET 開発者が必要とするすべてのマネージ アセンブリをインストールすると、Windows Mobile 5.0 のマネージ API を活用したアプリケーションを作成できます。 これらの API の機能は、.NET Compact Framework 1.0 および .NET Compact Framework 2.0 の両方のアプリケーションで使用できます。
Windows Mobile 5.0 のプロジェクト Windows Mobile 5.0 のプロジェクト タイプは、Visual Studio 2005 にインストールし、登録します。

Visual Studio 2005 への移行

Windows Mobile 5.0 では、開発者は、eMbedded Visual C++ 3.0、eMbedded Visual C++ 4.0、Visual Studio .NET 2003 で作成したアプリケーションを Visual Studio 2005 にアップグレードする必要はありません。 これらのツールで作成したアプリケーションは、引き続き Windows Mobile 5.0 で実行できます。 Windows Mobile 5.0 では、これらのアップグレードを "レガシ (従来の)" アプリケーションと見なします。 これらのアプリケーションが解像度を考慮してデザインされていない場合、この記事の「解像度と向きの考慮」で説明されている表示に合わせて実行時に変更される場合があります。 また、レガシ アプリケーションはライブラリや API に依存しており、開発者は注意する必要があります。レガシ アプリケーションを Windows Mobile 5.0 デバイスに展開するときは、厳密なセキュリティ要件の設定が必要になる場合があります。

注: Windows Mobile 5.0 には、インストール ライブラリやセキュリティ モデルの変更など、以前のバージョンの Windows Mobile プラットフォームからの重要な変更が行われています。 既存のアプリケーションを Windows Mobile 5.0 へ展開または移行することを予定している開発者は、「Windows Mobile プラットフォームの移行についてよく寄せられる質問 (開発者向け)」を参照してください。

eMbedded Visual C++ 3.0、eMbedded Visual C++ 4.0、Visual Studio .NET 2003 で作成されたアプリケーションは、引き続き Windows Mobile 5.0 デバイスでも実行できますが、Windows Mobile 5.0 デバイスやエミュレータに基づいてアプリケーションのデバッグや展開を行えるのは、Visual Studio 2005 だけです。

埋め込み Visual C/C++ プロジェクトを Visual Studio 2005 に移行する

Visual Studio 2005 では、eMbedded Visual C++ 3.0 および 4.0 で提供されたコンパイラやライブラリが強化された、デバイス開発ツールの完全なセットを利用できます。 これらのコンパイラやライブラリの変更点、および eMbedded Visual C++ と Visual Studio 2005 プロジェクト ファイルの相違点に対応するために、既存の eMbedded Visual C++ プロジェクトを Visual Studio 2005 に移行するときに、いくつかの変更を行う必要があります。

この変更では、Visual Studio 2005 で新しいプロジェクト ファイルを作成したり (可能であれば eMbedded Visual C++ プロジェクト ファイルを基準にする)、プロジェクト ヘッダーやソース ファイルを新しいプロジェクトへ追加します。 変更作業が終わったら、コンパイラやライブラリの相違点に対応するために、プロジェクト プロパティの変更が必要になる場合があります。また場合によっては、ソース コード自体の変更も必要になります。 多くの場合、ソース コードを変更すると、新しいコンパイラによって、機能向上した C++ 準拠のファイルが生成されます。

移行を簡素化するために、Visual Studio 2005 はアップグレード ウィザードを提供します。 開発者はこのウィザードを使用して、個別のプロジェクトまたは eMbedded Visual C++ ワークスペース全体を、Visual Studio 2005 ソリューションに変換します。 Visual Studio 2005 でプロジェクトを開くための標準的な機能を使用して、元の eMbedded Visual プロジェクトまたはワークスペースを開くと、このアップグレード ウィザードが自動的に起動されます。

Visual Studio 2005 でプロジェクトを開く機能を使用するには

  • [ファイル] メニューの [開く] をポイントし、[プロジェクト/ソリューション] をクリックします。
注: Visual Studio 2005 では、プロジェクトのインプレース アップグレードが実行され、元のヘッダーとソース ファイルが新しいプロジェクトに追加されます。 アップグレード操作を実行する前に、すべての関連ファイルを含む、eMbedded Visual C++ プロジェクトまたはワークスペースのバックアップを作成しておくことをお勧めします。

アップグレード ウィザードは、次のタスクを実行します。

  • Visual Studio 2005 プロジェクトを作成します。ワークスペースの移行の場合は、新しい Visual Studio 2005 ソリューションを作成します。
  • ウィザードがワークスペースを変換する場合、すべてのワークスペース プロジェクトは Visual Studio 2005 プロジェクトとして新しいソリューションに追加されます。
  • すべてのプロジェクト ファイルを、対応する個別のプロジェクトに追加します。
  • すべてのプロジェクト プロパティと設定を、対応する Visual Studio 2005 のプロパティと設定にマップします。
  • 元のプロジェクトが対象としているプラットフォームやアーキテクチャで未使用となるものを、同等のプラットフォームやアーキテクチャにマップします。

アップグレード ウィザードでは、プロジェクトやワークスペースのアップグレードが主要な機能となっており、ソース コードは変更しません。 アップグレード ウィザードが完了したら、コードのコンパイルとコンパイルで発生する問題の修正を行います。

注: 移行に関する一般的な問題、および移行プロセスの詳細については、「Microsoft eMbedded Visual C++ プロジェクトを Visual Studio 2005 に移行する (英語)」を参照してください。 eMbedded Visual C++ から Visual Studio 2005 へのアップグレードを初めて行う場合は、その前に、このドキュメントを参照することをお勧めします。

Visual Studio 2003 プロジェクトを Visual Studio 2005 に移行する

プロジェクトやソリューションを Visual Studio .NET 2003 から Visual Studio 2005 へ移行する、マネージ コードの開発者は、移行プロセスがスムースに実行されることを確認できます。 Visual Studio 2005 が提供するアップグレード ウィザードは、プロジェクトの設定を、Visual Studio 2005 での同等な値に自動的に変換します。 また、プロジェクト ソース ファイルを新しく作成されたプロジェクトに自動的に追加します。 ただしアップグレード ウィザードは、ソース コード ファイルを変更しません。 アップグレードを実行する前に、すべての関連ファイルを含む、プロジェクトまたはソリューション全体のバックアップを作成しておくことをお勧めします。

Visual Studio .NET 2003 プロジェクトを Visual Studio 2005 へ移行し、Windows Mobile 5.0 を対象としている開発者は、「Windows Mobile プラットフォームの移行についてよく寄せられる質問 (開発者向け)」を参照することをお勧めします。プラットフォームを変更すると、Windows Mobile 5.0 デバイスに対するアプリケーションのインストールや実行機能に影響が出る場合があるためです。

リモート ツール

デバイス アプリケーションを効率的に開発するには、対象となるデバイスと頻繁に情報のやり取りを行う必要があります。 アプリケーションの開発で一般的に実行されるタスク (ファイル システムの表示やレジストリの変更など) の多くは、デバイス上で直接実行するのが難しい場合があります。 これらのタスク、およびその他のデバイス管理や監視タスクを簡素化するために、Visual Studio 2005 はリモート ツールを提供します。

Visual Studio 2005 のリモート ツールは、一般的なデバイス監視機能やデバイス管理機能を実行できる、デスクトップ コンピュータ ユーティリティをまとめたものです。 表 12 に、Visual Studio 2005 のリモート ツールを示します。 これらのツールを使用すると、デバイスやエミュレータの監視と管理を実行できます。これは、デスクトップ コンピュータとやり取りを行う場合と同じくらい、簡単かつ効率的に操作できます。 これらのツールは、eMbedded Visual C++ に含まれているリモート ツールと類似しています。 ただし、ネイティブ コードの開発者とマネージ コードの開発者の両方が使用できるユーティリティを提供するのは、Visual Studio 2005 が最初の製品となります。

表 12: Visual Studio 2005 のリモート ツール

リモート ツール 説明
リモート ファイル ビューア デバイスやエミュレータのファイル システムを表示したり、これらのファイル システムと情報のやり取りを行います。デバイスとデスクトップ コンピュータ間でファイルをコピーすることもできます (図 14 を参照)。
リモート ヒープ ウォーカ デバイスやエミュレータ プロセスのヒープ レイアウトおよびメモリ コンテンツを調べる場合に使用します。
リモート プロセス ビューア デバイスやエミュレータ プロセスに関するスレッドの詳細情報および DLL 情報を表示します (図 15 を参照)。 デバイスやエミュレータ プロセスを終了する場合にも使用できます。
リモート レジストリ エディタ デバイスやエミュレータのレジストリを表示したり、変更したりします。
リモート スパイ デバイスやエミュレータ上で実行されているプロセスが所有するウィンドウのリストを表示します。ウィンドウ ハンドルや受信したウィンドウ メッセージの詳細も表示されます。
リモート ズームイン デバイスやエミュレータのスクリーンショットをキャプチャします (スクリーンショットを拡大したり、ビットマップとして保存できます)。

図 14: Visual Studio 2005 のリモート ファイル ビューア

画像を拡大するには、ここをクリックしてください。

図 15: Visual Studio 2005 のリモート プロセス ビューア。 画像を拡大するには、サムネイルをクリックします。

ネイティブ コンパイラおよびライブラリ

Visual Studio 2005 は、ネイティブ コードの開発者に対して、数多くの大幅な拡張機能を提供します。 これらの拡張機能には、コンパイラ、標準の C ライブラリ、MFC、および ATL などがあります。 これらの拡張機能は、アプリケーションの質を向上させるだけでなく、デスクトップ コンピュータのコンパイラやライブラリなどと同等またはそれ以上のメリットをもたらします。また、デスクトップ コンピュータとデバイス アプリケーション開発の間でのコードやスキルの共有がさらに容易になっています。

コンパイラ

Visual Studio 2005 は、ネイティブ デバイス開発者に対して、まったく新しいデバイス向けクロスコンパイラのセットを提供します。これらのコンパイラは、ARM、MIPS、SH、および x86 プラットフォームをサポートします。 また、これらのコンパイラは、最新のデスクトップ コンピュータ向けコンパイラに基づいた新しいコンパイラ フロントエンドを使用して、完全に再設計されました。

共通のフロントエンドを使用することにより、デスクトップ コンピュータとデバイス間におけるコンパイラの動作の一貫性がさらに高まりました。これにより、開発者はアプリケーション コードやスキルを簡単に共有することが可能になります。 これからデバイス開発を行う開発者は、既存のコード資産を維持し、学習に要する時間を最小限にすることができます。 新しいコンパイラのフロントエンドはデスクトップ コンピュータ向けコンパイラに基づいているため、多くのデスクトップ コンピュータ向けコンパイラの機能がデバイス向けコンパイラに組み込まれています。

デスクトップ コンピュータ向けコンパイラの機能が組み込まれたため、デバイス向けコンパイラでは、これまで不可能であったさまざまな最適化を実現することができるようになりました。 コンパイラの最適化だけでなく、デバイス開発者は、リンク時のコード生成に関しても多くのメリットを得ることができます。 リンク時のコード生成によって、コンパイラの最適化よりもさらに優れた最適化をアプリケーションに対して行うことが可能になりました。これは、アプリケーションの最適化が、コンパイル モジュール (*.bin ファイル) 間で実行され、プログラム全体が最適化されるためです。

コンパイラの機能向上は、コードの最適化だけではありません。 デバイス向けコンパイラはデスクトップ コンピュータ向けコンパイラの機能を利用できるため、これまではデスクトップ コンピュータだけで可能であった多くの機能を取り込むことができるようになりました。 たとえば、デバイス向けコンパイラによって、レベルの高い多くの C/C++ 準拠のファイルが生成されます。 同様に、デバイス向けコンパイラは、大幅に拡張された Unicode のサポートも提供できます。

ライブラリ

更新されたコンパイラだけでなく、Visual Studio 2005 は、ネイティブ ライブラリの更新バージョンも提供します。これらのライブラリには、Standard C++ Library 8.0 (SCL)、Standard Template Library 8.0 (STL)、Microsoft Foundation Classes 8.0 (MFC)、および Active Template Library 8.0 (ATL) があります。 コンパイラと同様に、これらすべてのライブラリは、デスクトップ コンピュータのライブラリに基づいて更新されています。 対応するデスクトップ コンピュータのライブラリを基準にはしていますが、各デバイスの実装は、デスクトップ コンピュータの実装のサブセットになっています。 サブセットでは、サイズやパフォーマンスが考慮されています。また、基礎となるオペレーティング システムの機能やプラットフォームの適合性も、サブセットの背景となっています。

新しいネイティブ ライブラリがデスクトップ コンピュータのライブラリに基づいているため、デバイス開発者は多くのメリットを得ることができます。 最も代表的なメリットは、アプリケーション コードの移植性が高まったことです。これは、デスクトップ コンピュータのライブラリとデバイスのライブラリの互換性が増したためです。 この移植性は、開発者のスキルに関しても同様です。 これまでは、デスクトップ コンピュータのライブラリのいくつかは、対応するデバイスの実装よりも安定していました。 更新されたライブラリ使用すると、デバイス開発者は、最高品質の実装を利用できます。

MFC や ATL を使用する開発者の場合、Windows Mobile 5.0 のデバイスの ROM に MFC 3.0 および ATL 4.0 がインストールされていることが重要となります。 更新された新しいライブラリ (MFC 8.0 および ATL 8.0) を使用する開発者は、バージョン 8.0 のライブラリをアプリケーションに静的にリンクする、またはバージョン 8.0 の DLL をアプリケーションのインストールに組み込む必要があります。

注: Visual Studio 2005 を使用したネイティブ アプリケーションの開発の詳細については、「Visual Studio 2005 の新機能 (ネイティブ開発者向け) (英語)」を参照してください。

開発者に関連する、Windows Mobile 5.0 のその他の変更点

Windows Mobile 5.0 では、これまで説明してきたツールや API だけでなく、さまざま点が改善されました。 Windows Mobile 5.0 で追加された機能のいくつかの概要について説明します。

ROM で使用できるソフトウェア

表 13 に、すべての Windows Mobile 5.0 デバイスの ROM で使用できる、主要な開発者向けライブラリ、コントロール、およびランタイムのいくつかを示します。 アプリケーションで必要となるライブラリ、コントロール、およびランタイムのうち、この表に掲載されていないものは、対象となるデバイスに明示的にインストールする必要があります。 Windows Mobile 5.0 の ROM では、.NET Compact Framework 2.0、SQL Mobile 2005、MFC 8.0、および ATL 8.0 は使用できないことに注意してください。したがって、これらは別途インストールする必要があります (ただし、MFC 8.0 および ATL 8.0 はプログラムに静的にリンクしている場合があります)。

表 13: Windows Mobile 5.0 デバイスの ROM で使用できるライブラリ、コントロール、およびランタイム

.NET Compact Framework 1.0 SP3 連絡先の選択ダイアログ
MFC 3.0 および ATL 4.0 Windows Media 10 OCX
状態および通知ブローカー マネージ テレフォニー
DirectShow マネージ Outlook Mobile
Direct3D Mobile マネージ メッセージング
DirectDraw マネージ構成マネージャ
画像の選択ダイアログ GPS API

解像度と向きの考慮

Windows Mobile 5.0 デバイスでは、縦長や横長、または正方形など、さまざまな画面サイズや向きをサポートします。 Windows Mobile 5.0 を対象とするすべてのアプリケーションには、画面解像度や画面の向きを考慮しているという特徴があります。したがって、開発者は、アプリケーションがさまざまな画面解像度や向きに対して適切に機能するように設計し、検証することが重要となります。 さまざまな画面解像度や向きへの対応を検証するだけでなく、開発者は、デバイスの向きの変更に対応できるアプリケーションを作成する必要があります。これは、多くの Windows Mobile 5.0 デバイスが、縦長と横長の画面の動的な切り替えをサポートしているためです。

マネージ コードの開発者の場合、さまざまな画面解像度や向きへ対応するために一般的に利用される最適な方法は、マネージ コントロールの Dock プロパティや Anchor プロパティを使用することです。 マネージ アプリケーションでは、現在のデバイスの画面レイアウトに合うように、各アプリケーション フォームのサイズが自動的に調整されます。 アプリケーションの実行時にユーザーがデバイスの画面の向きを変更した場合、新しい画面レイアウトに合うように、どのアプリケーション フォームも自動的に向きが調整されます。 Dock プロパティおよび Anchor プロパティを使用すると、すべてのフォーム コントロールは、フォーム レイアウトの変更に伴なって、自動的に位置が調整されます。

ネイティブ コードの開発者の場合、Visual Studio 2005 を利用すると、DeviceResolutionAware.h に含まれているさまざまなサポート機能を使用して、解像度や向きを考慮したアプリケーションの作成プロセスを簡素化できます。 これらのサポート機能を使用してアプリケーションを設計することにより、現在の向きを問い合わせたり、グラフィック リソースを拡大縮小したり、現在の画面レイアウトに適合するように、ダイアログ リソースに基づいてダイアログのレイアウトを変更することが可能になります。 表 14 に、これらの機能のいくつかを示します。

表 14: 画面解像度および向きの管理をサポートするネイティブ関数

関数 説明
DRA::GetDisplayMode 現在の表示の構成が縦長、横長、または正方形のいずれであるかを特定します。
DRA::RelayoutDialog 指定されたダイアログ リソースに対応するダイアログのレイアウトを変更します。
DRA::StretchIcon / DRA::StretchBitmap アイコンやビットマップを指定されたサイズに伸縮します。
DRA::ImageList_LoadImage 指定されたビットマップからイメージ リストを作成します。ビットマップの dpi 値と画面の dpi 値の差に応じてイメージを拡大縮小します。

マネージ開発ツールまたはネイティブ開発ツールを使用する場合、サポートされているすべての画面サイズと向きに対応するために、すべてのアプリケーションは Windows Mobile 5.0 を対象とする必要があります。 Windows Mobile 5.0 SDK で提供されるエミュレータを使用すると、アプリケーションの外観と動作を簡単に確認できます。これは、エミュレータでは、Windows Mobile 5.0 で使用可能なすべての画面レイアウトを表現できるためです。

また Windows Mobile 5.0 では、画面の問題を考慮していない既存のアプリケーションを実行することもできます。 デバイスがサポートする解像度よりも低い解像度をアプリケーションが対象としている場合、Windows Mobile 5.0 では、自動的にピクセル ダブリングを実行し、デバイスの表示に合うように拡大縮小を行います。 デバイスの向きによってアプリケーションの表示の一部が画面外に隠れてしまう場合、Windows Mobile 5.0 では、自動的にスクロールバーを追加して、画面に表示されていない部分をスクロールして表示できるようにします。

Pocket PC ソフト キー

Windows Mobile 5.0 では、Pocket PC 向けのソフト キーを導入しました。 図 16 に示すように、ソフト キーは画面下部に表示され、アプリケーションによる変更が可能なキーです。ソフト キーは、画面下にあるハードウェア キーと関連付けられます。 リリース時以来、ソフト キーは Smartphone 用のものであり、生産性を高める便利なツールでした。 Pocket PC では、ソフト キーの導入によって、スタイラスを使わなくても、片手でアプリケーションを操作できるようになりました。

画像を拡大するには、ここをクリックしてください。

図 16: Windows Mobile 5.0 Pocket PC のソフト キー。 画像を拡大するには、サムネイルをクリックします。

アプリケーションにスマート キーを追加するのは、メニューの設計と同じくらい簡単です。 アプリケーションを設計するときに、2 つの項目を含んだメニューを作成するだけです。 アプリケーションを実行すると、Windows Mobile 5.0 は各項目をソフト キーにマップします。 Windows Mobile 5.0 では、アプリケーションのメニューが 1 つまたは 2 つの項目を含んでいる場合、この処理を自動的に実行します。 3 つ以上の項目を含んでいるメニューは、従来のメニューとして表示されます。

固定ストア

Windows Mobile 5.0 は、電源切れから、すべてのデータとアプリケーションを保護します。 Windows Mobile 5.0 は、ファイル システム全体およびレジストリを固定ストア内にマウントするため (RAM を使用しない)、Windows Mobile 5.0 デバイスでは、ユーザーとアプリケーションは、電源が切れた場合でも信頼性の高いストレージ プラットフォームを利用できます。

アプリケーション開発者は固定ストアを利用することで、標準のファイル システムとレジストリ API 全体で、信頼性の高いストレージ システムを使用できるようになります。 固定ストアは大規模な読み込みや書き込み用に最適化されています。このため、サイズの大きなデータ ブロックの読み込みや書き込みを実行するアプリケーションは、サイズの小さなデータ ブロックの読み込みや書き込みを実行するアプリケーションよりもパフォーマンスが上回る場合があります。

EDB

アプリケーションのパフォーマンスおよび長期にわたる移植性を向上させるために、CEDB オブジェクト ストアが EDB に変更されました。 EDB では、ストレージ サブシステムとして SQL Mobile を使用しているため、CEDB よりも大幅にパフォーマンスが向上しています。これは、固定ストアを使用するときに特に顕著です。 アプリケーションを CEDB から EDB へ移植する場合、影響は最小限に抑えられます。これは、CEDB が EDB と同じ関数セットを使用しているためです。すべての関数の名前とパラメータ リストは同じです。

Pocket PC のアプリケーション セキュリティ

ユーザーや企業が Pocket PC デバイスの完全性を保証できるようにするために、Windows Mobile 5.0 では、Smartphone で使用されている認証ベースのアプリケーション セキュリティ モデルを、Pocket PC に対して適用しています。 これらのアプリケーション セキュリティ モデルが採用されているため、Windows Mobile 5.0 デバイスでは、デバイスにインストールするすべてのアプリケーションが確実にアプリケーションの作成元からのものであることを保証し、デバイスへのインストール前に改ざんが行われていないことを検証するために、デジタル コード署名が必要となります。

既定では、新しいアプリケーションのインストールは、実際のインストールの実行前に、Windows Mobile 5.0 Pocket PC 上で開始されます。このとき、デバイスは、信頼できる作成元からの証明書に基づいて、アプリケーションがデジタル署名されているかどうかをチェックします。 アプリケーションが信頼できる作成元からのものであると判断された場合に、アプリケーションがインストールされます。 アプリケーションが署名されていない場合、またはアプリケーションの署名が、信頼できる既知の作成元からの証明書に基づいていない場合は、インストールを続けるかどうかのプロンプトが表示されます。 これらのアプリケーション セキュリティ モデルによって、ユーザーは、デバイスにインストールするアプリケーションを完全に制御することが可能になります。

企業で使用するデバイスにインストールするアプリケーションを制御する場合は、この既定のモデルを変更できます。 この場合、企業は信頼できる作成元に関する既定のリストを削除して、企業独自のリストをインストールできます。 さらに、アプリケーションの署名がなかったり、不明な作成元からのアプリケーションである場合にメッセージを表示するオプションを、無効にすることもできます。 このオプションを無効にすると、企業で信頼できると見なされている作成元が署名したアプリケーションだけを、インストールできるようになります。 これらのセキュリティ モデルを使用すると、企業で使用するデバイスの安定性と信頼性が大幅に向上します。このセキュリティ モデルでは、ユーザーが個人的なソフトウェアをインストールするのを防止したり、個人的なソフトウェアのインストールに関係する問題解決をサポートをすることができるためです。

Pocket PC と Smartphone で使用される共通の CAB 形式

Pocket PC と Smartphone 用の Windows Mobile 5.0 ソフトウェアでは、共通の CAB 形式を使用します。 共通の CAB ファイル形式を使用するため、CAB ファイルの作成にかかる時間が大幅に短縮されます。また、すべてのデバイスのインストールが単一の CAB ファイルを介して処理されるため、インストール プロセスのサポートにかかる時間も短縮されます。

ActiveSync

すべてのモバイル デバイス アプリケーションで考慮する必要のある主要な課題の 1 つが、デバイス上のデータと、デスクトップ コンピュータまたはバックエンド サーバー上のデータとの同期方法です。 多くのアプリケーションでは、ActiveSync が適切な同期方法となります。ActiveSync によって、Windows Mobile デバイス向けのエンド ツー エンドの同期ソリューションが提供されるためです。 Windows Mobile 5.0 では、ActiveSync には多くの拡張機能が組み込まれており、品質に優れ、信頼性の高い同期エクスペリエンスが実現されます。

改善された USB 2.0 のサポート

ActiveSync ではさまざまな接続オプション (Bluetooth、赤外線、シリアルなど) が使用できますが、一般的に使用されるのは USB 2.0 です。 開発者が USB 2.0 で接続する場合の ActiveSync エクスペリエンスを改善するために、ActiveSync USB ドライバは完全に再設計されました。 これらの新しいドライバでは、USB 2.0 ハードウェアが持つ機能とパフォーマンスをすべて利用できるようになりました。 また、デスクトップ コンピュータのネットワーク サービスとより効果的に連動するようになりました。 新しいドライバの機能とデスクトップ ネットワーク サービスとの連動性が組み合わさることにより、同期のスループットが向上しました。

改善された複数パートナーシップの管理

ActiveSync は、複数のデスクトップ コンピュータに基づくパートナーシップを維持するデバイスをサポートしていますが、さらに、パートナーシップ管理の処理方法が改善されました。 ActiveSync は、デスクトップ コンピュータとサーバーの両方について、パートナーシップの同時管理をサポートするようになりました。 また ActiveSync では、パートナーシップ間の競合を検出するためのロジックが新しく設計されました。 この新しいロジックによって競合の検出がさらに効果的に行われるようになり、パートナーシップ間の重複した情報に関する問題が大幅に減少します。

改善された Exchange 同期

ActiveSync の重要な更新の 1 つに、デバイスと Exchange との同期をとるときの全体的なユーザー エクスペリエンスの向上があります。 ActiveSync の更新と共に、いくつかの重要な機能改善がありました。 その 1 つは、Exchange と同期をとるときの接続の信頼性の向上です。 接続の信頼性が向上したことにより、初期接続の成功率が高まり、接続の中断や不完全な接続が減少しました。 また、同期の継続性が向上し、Exchange との直接同期とデスクトップ コンピュータを介した Exchange との同期化が、スムーズに継続されるようになりました。 これらの改善により、統一のとれた同期の動作と結果を実現することが可能になりました。

ActiveSync での Exchange 同期エクスペリエンスは、さらに完全なものになりました。 ActiveSync は、予定、連絡先、および予定表の同期に関する従来のサポートだけでなく、仕事の同期化もサポートします。 完全なエクスペリエンスの一部として、ActiveSync では、追加の Outlook プロパティとの同期化も可能になりました。 最も注目すべき点は、連絡先の一部として格納されている写真との同期化が可能になったことです。

改善されたセキュリティ

機能の改善だけでなく、ActiveSync では多くのセキュリティに関する改善も行われました。 この改善により、セキュリティの確認が厳密になり、ユーザー、デバイス、データおよびデスクトップ コンピュータがさらに強固に保護されるようになりました。 主要なセキュリティ改善の 1 つは、リモート同期の廃止です。 以前のバージョンでは、リモート同期によって、WiFi 接続でのデバイスの同期が許可されていました。 その後の検証により、この機能は適切なセキュリティを実施しないと判断されたため、廃止されました。

RAPI

Windows Mobile Remote API (RAPI) は、接続されたデバイスをデスクトップ コンピュータから管理、情報のやり取り、および制御するための関数をまとめたものです。 C スタイルの RAPI に関する従来のサポートだけでなく、Windows Mobile 5.0 では、新しい COM ベースの実装も提供します。 新しい COM ベースの RAPI では、既存の C スタイルの実装と比べると、重要な設計上の変更がありました。 デスクトップ コンピュータに接続されているのが 1 台の Windows Mobile デバイスだけであることを前提とした C スタイルの RAPI とは異なり、COM ベースの RAPI は、デスクトップ コンピュータに同時に接続されている複数のデバイスとのやり取りやサポートを行うことができるように設計されています。

Windows Mobile 5.0 でサポートされるのは、デスクトップ コンピュータに接続されている 1 台のデバイスであることに注意してください。同時に接続されている複数のデバイスはサポートされません。 ただし、1 台のデスクトップ コンピュータに同時に接続されている複数の Windows Mobile デバイスに対するサポートは、将来の Windows Mobile の実装で対応される予定の機能です。

新しい COM ベースの RAPI を使用するアプリケーションを作成する場合、接続されている 1 台の Windows Mobile 5.0 デバイスとやり取りするように制限されますが、これらのアプリケーションは、将来の Windows Mobile デバイスにサポート機能が追加された場合は、複数のデバイスとやり取りすることが可能になります。 Windows Mobile 5.0 を対象として新しく RAPI アプリケーションを作成する場合は、COM ベースの RAPI を使用することをお勧めします。 表 15 に、3 つの主要な RAPI COM インターフェイスを示します。

表 15: 主要な RAPI COM インターフェイス

インターフェイス 説明
IRAPIDesktop 現在のデスクトップ コンピュータを表します。 接続されているデバイスのリストの列挙、特定のデバイスの検索、および新しい接続の監視を実行できます。
IRAPIDevice 接続されているデバイスを表します。 デバイスに対する問い合わせ、デバイスの接続タイプの識別、およびデバイスでの RAPI セッションの開始を実行できます。
IRAPISession 接続されている特定のデバイスでの RAPI セッションを表します。 このインターフェイスは、デバイスの実際のやり取りを実行する場合に使用します。

Windows Media Player 10

Windows Media Player 10 は、ユーザーに対して、オーディオやビデオ再生に関する優れたサポートを実現する、機能豊富なマルチメディア エクスペリエンスを提供します。 Windows Mobile 5.0 では、アプリケーション開発者は Media Player の機能を利用できます。Windows Media Player 10 を OCX として公開することにより、マルチメディアの再生機能をアプリケーションに組み込むことができます。 Windows Media OCX を使用すると、再生リストの管理、コンテンツの列挙、コンテンツのストリーム再生、再生品質の制御などを実行できます。 図 17 に、Windows Media Player 10 のライブラリと音楽再生画面を示します。

画像を拡大するには、ここをクリックしてください。

図 17: Windows Media Player 10 のライブラリと音楽再生画面。 画像を拡大するには、サムネイルをクリックします。

まとめ

Windows Mobile 5.0 を使用すると、開発者は、最新のデバイスが持つ強力な機能を簡単に利用することが可能になります。 強力なネイティブ API とマネージ API を組み合わせることにより、使いやすく、効果的な開発プラットフォームが開発者に提供されます。 デスクトップ コンピュータのクラスやライブラリを引き続き利用し、さらに Visual Studio 2005 が提供する統合開発プラットフォームを使用することにより、開発者の生産性が向上します。また開発者は、既に持っているスキルや既存のコード資産を効果的に活用できます。

Windows Mobile 5.0 は、最も強力なモバイル デバイス プラットフォームです。 Windows Mobile 5.0 と Visual Studio 2005 を組み合わせて使用することにより、強力で使いやすいアプリケーションを簡単に作成できます。また開発者はアプリケーション開発に集中することができ、自分の持つスキルを最大限に利用できます。


Microsoft