Windows Mobile 2003 Second Edition のプログラミングをつくる REV1.0 2004 年 4 月 7 日 REV1.1 2004 年 4 月 10 日 0 はじめに PocketPC の 開 発 環 境 は Microsoft 社 から 無 償 で 提 供 されています 統 合 開 発 環 境 /Platform Manager C++ アセンブラ Linker やデバッガ SDK(Software Development Kit)さらに PC で 動 作 するエミュレータ すべて 無 料 で 手 に 入 ります つまり PC さえあれば PocketPC のソフトウェアを 開 発 できるのです ただし ダウンロードするプログラムのサイズは 相 当 に 大 きいため ブロードバンド 回 線 が 必 須 です 雑 記 その1 Microsoft としては 太 っ 腹 です PC の 世 界 では 当 然 VisualBasic も VisualC++も 購 入 するのがあたり まえですが WindowsCE の 世 界 では 後 発 だったためか 事 情 が 違 うようです 1 マイクロソフトの 開 発 者 向 けの 情 報 ページ マイクロソフトのモバイル 向 け 開 発 者 のページです(4 月 7 日 現 在 ) http://www.microsoft.com/windowsmobile/resources/downloads/developer/default.mspx
たいしたことは 書 かれていませんが FAQ があります http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/devmobfaq.asp 2 開 発 に 必 要 な PC の 性 能 まず 開 発 に 必 要 な PC への 要 求 事 項 をまとめると 下 のとおりです 注 意 すべきは OS とメモリ 容 量 HDD の 空 き 容 量 と 表 示 解 像 度 です OS は Windows 2000,または Windows XP CPU は Pentium2 クラスで450MHz 以 上 メモリ 容 量 は96MB 以 上 推 奨 は128MB 以 上 ディスクの 空 き 容 量 は200MB 以 上 光 ディスクは CD-ROM ドライブ 表 示 モニタは VGA 以 上 推 奨 は SVGA 以 上 ポインティングデバイスはマウス 以 上 の 環 境 を 満 たすことを 確 認 した 後 各 モジュールをダウンロードします 雑 記 その2 CD-ROM ドライブはなぜ 必 須 なのでしょう? ナローバンドのときはインストールモジュールの 容 量 が 膨 大 なため CD-ROM を Microsoft から 購 入 して インストールするのが 当 たり 前 でしたが ブロードバンド 時 代 の 今 は CD-ROM は 不 要 なのでは? いままで 通 り CD-ROM での 有 償 配 布 を 計 画 しているのでしょうか? 3 ダウンロード 3-1 embedded Visual C++ 4.0 のダウンロード(221MB) これは 日 本 語 版 があります ページは 以 下 の 通 りです 右 上 のダウンロードボタンをクリック 後 に 現 れるダイアログボックスで 保 存 を 選 択 し たとえば evc4 などとディレクトリ 名 を 付 けて 自 分 の PC にダウンロードしてください http://www.microsoft.com/downloads/details.aspx?displaylang=ja&familyid=1dacdb3d-50d1-41b2-a1 07-FA75AE960856 3-2 embedded Visual C++ 4.0 SP3 のダウンロード(57.7MB) 次 は evc4 の SP3 をダウンロードします これは 日 本 語 版 はありません 下 記 ページから たとえば evc4sp3 などとディレクトリ 名 を 付 けて 自 分 の PC にダウンロードしてください http://www.microsoft.com/downloads/details.aspx?familyid=5bb36f3e-5b3d-419a-9610-2fe53815ae3b&dis playlang=en 3-3 Windows Mobile 2003 software for Pocket PC 日 本 語 版 ソフトウェア 開 発 キット(SDK)のダウンロ ード(98.3MB) 次 は Windows Mobile 2003 の SDK をダウンロードします これは 日 本 語 版 があります たとえば
PPC2003SDK などとディレクトリ 名 を 付 けて 自 分 の PC にダウンロードしてください http://www.microsoft.com/downloads/details.aspx?displaylang=ja&familyid=9996b314-0364-4623-9ed E-0B5FBB133652 3-4 ActiveSync のダウンロード(3.5MB) ActiveSyncVer3.7.1 以 上 が 必 要 です これは 日 本 語 版 があります たとえば ActiveSync などとディレク トリ 名 を 付 けて 自 分 の PC にダウンロードしてください http://www.microsoft.com/windowsmobile/resources/downloads/pocketpc/activesync37.mspx 3-5 Developer Resources for Windows Mobile 2003 Second Edition のダウンロード(2.01MB) Second Edition 用 モジュールです これは 日 本 語 版 はありません たとえば PPC2003SE などとディレ クトリ 名 を 付 けて 自 分 の PC にダウンロードしてください http://www.microsoft.com/downloads/details.aspx?familyid=6a34dc83-c3ce-4a4c-ab83-491fd572955 1&displaylang=en 3-6 Emulator Images for Windows Mobile 2003 Second Edition software for Pocket PC のダウンロード (54.7MB) Second Edition 用 エミューレータです これは 日 本 語 版 はありません たとえば Emulater などとディレ クトリ 名 を 付 けて 自 分 の PC にダウンロードしてください http://www.microsoft.com/downloads/details.aspx?familyid=5c53e3b5-f2a2-47d7-a41d-825fd68ebb6 C&displaylang=en 4 インストール 4-1 ActiveSync のインストール ダウンロードしたファイル MSASYNC.exe を 実 行 します 4-2 embedded Visual C++ 4.0 のインストール ダウンロードしたファイル JA_eVC4.exe を 実 行 します ファイルを 解 凍 するメニューが 現 れ 回 答 する 場 所 の 入 力 を 要 求 してきます ダウンロードしたディレクト リに TEMP などというディレクトリを 作 り そこを 解 凍 エリアに 指 定 して 解 凍 します 解 凍 が 終 わると 指 定 したディレクトリ(TEMP) 下 に SETUP.EXE ができます それを 実 行 し 指 示 に 従 いインストールを 開 始 します まず インストールキーの 入 力 を 求 められます このとき 次 の 番 号 を 入 力 します TRT7H-KD36T-FRH8D-6QH8P-VFJHQ インストール 先 のディレクトリを 変 えることができます 必 要 に 応 じて 変 更 してください また Platform Manager の 最 新 バージョンが 必 要 ですと 表 示 されます このとき はい を 選 択 してく ださい PlatformManager embedded Visual C++ 4.0 Standard SDK for WindowsCE.NET のインストー ルが 順 次 行 われます
4-3 embedded Visual C++ 4.0 SP3 のインストール ダウンロードしたファイル evc4sp3.exe を 実 行 します ファイルを 解 凍 するメニューが 現 れ 回 答 する 場 所 の 入 力 を 要 求 してきます ダウンロードしたディレクト リに TEMP などというディレクトリを 作 り そこを 解 凍 エリアに 指 定 して 解 凍 します 解 凍 が 終 わると 指 定 したディレクトリ(TEMP) 下 の DISK1 ディレクトリの 下 に SETUP.EXE ができま す それを 実 行 し 指 示 に 従 います 4-4 Windows Mobile 2003 software for Pocket PC 日 本 語 版 ソフトウェア 開 発 キット(SDK)のインスト ール ダウンロードしたファイル Microsoft POCKETPC 2003 SDK.msi を 実 行 し 指 示 に 従 います 4-5 Developer Resources for Windows Mobile 2003 Second Edition のインストール ダウンロードしたファイル Windows Mobile 2003 Second Edition developer Resources.msi を 実 行 し 指 示 に 従 います 4-6 Emulator Images for Windows Mobile 2003 Second Edition software for Pocket PC のインストール Windows Mobile 2003 Second Edition Emulator Imager for Pocket PC WWE.msi を 実 行 し 指 示 に 従 い ます 4-7 Header と Library Files の 参 照 位 置 の 変 更 インストールしただけでは Second Edition のために 必 要 な 設 定 がされていません 手 作 業 で 下 記 手 順 を 実 施 してください スタート > ファイル 名 を 指 定 して 実 行 で evc4(enter)で embedded Visual C++を 実 行 します Tools>Options を 選 択 Directories タブを 選 択 Platform コンボボックスから PocketPC2003 を 選 択 CPUsコンボボックスから Win32(WCE Emulator)を 選 択 Show Directories for コンボボックスから Include files を 選 択 Add アイコンをクリックして 4-5でインストールして Second Edition のインクルードファイル (inc PocketPC)を 登 録 UP アイコンで 最 上 位 に 移 動 する CPUsコンボボックスから Win32(WCE ARMV4)を 選 択 Add アイコンをクリックして 4-5でインストールして Second Edition のインクルードファイル (inc PocketPC)を 登 録 UP アイコンで 最 上 位 に 移 動 する CPUsコンボボックスから Win32(WCE Emulator)を 選 択 Show Directories for コンボボックスから Library files を 選 択 Add アイコンをクリックして 4-5でインストールして Second Edition のインクルードファイル (lib PocketPC x86)を 登 録 UP アイコンで 最 上 位 に 移 動 する CPUsコンボボックスから Win32(WCE ARMV4)を 選 択
Add アイコンをクリックして 4-5でインストールして Second Edition のインクルードファイル (lib PocketPC arm)を 登 録 UP アイコンで 最 上 位 に 移 動 する 4-8 エミュレータの 登 録 次 はエミュレータを 登 録 します これもインストールしただけでは 使 えず 手 作 業 での 登 録 が 必 要 です スタート > ファイル 名 を 指 定 して 実 行 で evc4(enter)で embedded Visual C++を 実 行 します Tools>Configure Platform Manager を 選 択 PocketPC2003 を 選 択 し Add Device をクリック New Device で 名 前 をつける たとえば POCKET PC SE VGA Portrait Properties をクリック Transport コンボボックスは TCP/IP Transport for WindowsCE を 選 択 Startup Server コンボボックスでは Emulator Startup Server を 選 択 Startup Server コンボボックス 横 の Configure ボタンをクリック Device エリアの Images コンボボックスから 該 当 するものを 選 択 たとえば WWE PPC 2003 SE VGA OK をクリック 必 要 なものを 登 録 してください WWE PPC 2003 SE VGA(Virtual radio) WWE PPC 2003 SE VGA Landscape などがあります Virtual Radio は Bluetooth などのアイコンの 確 認 に 使 えるようです SE のエミュレータはボタン 2 で 動 的 な Landscape Portrait 変 換 に 対 応 しています 5 プログラミング 5-1 White Paper Second Edition をインストールしたディレクトリの 下 に WhitePapares というディレクトリがあり その 下 に 次 の 文 書 があります Second Edition で 追 加 された 機 能 の 使 い 方 が 書 かれています 以 下 は Microsoft 社 の 資 料 からの 抜 粋 です VGA アプリを 書 くには これらの 資 料 を 熟 読 する 必 要 があり ます Name File Name Comments What's New for Developers in Windows Mobile 2003 Second Edition What's New for Developers in Windows Mobile 2003 Second Edition.doc Lists the set of new features that Windows Mobile 2003 Second Edition brings to Pocket PC and Smartphone Developing Orientation and dpi Aware Applications for the.net Compact Framework Developing_Orientation_and_Resolution_Aware_Apps.doc Describes the techniques for creating orientation and dpi aware applications with the.net Compact Framework. Developing DPI-Aware Applications DPI_Awareness.doc Describes how to code your application to determine the device s screen resolution, and render UI elements in either high or
Developing Screen Orientation-Aware Applications Installation with DPI-Specific Resources Orientation_Awareness.doc Installation_with_DPI-Specific_Resources.doc high DPI in native code. Provides information on developing mobile applications for portrait and landscape screens, presents new developer guidelines, and includes suggestions and examples. Explains how to create an install package that deploys different resources for high and low-resolution devices. Enhancements to the ActiveSync Programming Model in Windows Mobile 2003 Second Edition Enhancements_ActiveSync_Prog_Model.doc Provides details about the new set of interfaces that provide access to the Sync Service Provider (SSP). Today Screen Selection API Supporting the QVGA Smartphone Home Screen Today_Screen_Selection_API.doc qvga_smartphone_home_screen.doc Describes how to code Today Screen plug-ins to take advantage of the new navigation feature that lets users navigate Today Screen items with the hardware keypad. Learn about how a QVGA Smartphone 2003 Second Edition supports home screens including QVGA backgrounds, and changes to the Smartphone Home Screen XML 5-2 サンプルプログラム インストールしたディレクトリの 下 に samples というディレクトリがあり サンプルプログラムが 20 個 あ ります しかし 上 の WhitePapers とリンクしているのは 下 の 3 つだけです WebCrawler samples Pocket PC CS WebCrawler は Developing Orientation and dpi Aware Applications for the.net Compact Framework でのサンプルプログラム Crossword samples PocketPC Win32 Crossword は Developing DPI-Aware Applications Developing Screen Orientation-Aware Applications でのサンプルプログラム
ResDll samples PocketPC Win32 ResDll は Installation with DPI-Specific Resources のサンプルプログラム 5-3 サンプルプログラム Crossword を 動 かしてみる 実 際 にサンプルプログラムを 動 かしてみます スタート > ファイル 名 を 指 定 して 実 行 で evc4(enter)で embedded Visual C++を 実 行 します File>ワークスペースを 開 く で Crossword を 開 きます ディレクトリは HidpaAware 内 のワークスペー スを 選 択 Select Active WCE Configuration を POCKET PC 2003 に Select Active Configuration を Win32 (WCE emulator) Release に Select Default Device を 追 加 した VGA エミュレータを 選 択 F5 を 押 すと Build が 行 われ エミュレータも 起 動 します
雑 記 3 サンプルプログラムを Build するとエラーが 発 生 します ですので 若 干 ソースの 変 更 をしました shguim.h を 開 き include 文 を 追 加 ある typedef 文 をコメントにします マイクロソフトは 真 剣 にデバックしてないのかな? 追 加 した include 文 #include <aygshell.h> コメントにした typedef 文 //typedef enum tagshuimetric //{ // SHUIM_INVALID = 0, // Illegal // SHUIM_FONTSIZE_POINT, // Application font size (hundredths of a point) -- buffer is pointer to DWORD // SHUIM_FONTSIZE_PIXEL, // Application font size (in pixels) -- buffer is pointer to DWORD // SHUIM_FONTSIZE_PERCENTAGE, // Application font size as percentage of normal -- buffer is pointer to DWORD //} SHUIMETRIC; 6 プログラミングに 関 する 参 考 資 料 6-1 書 籍 WindowsCE PocketPC に 関 する 書 籍 は 現 在 入 手 できる 日 本 語 のものは 次 の 1 冊 くらいです CD に embedded Visual Tools 3.0 日 本 語 版 が 付 属 しています WindowsCE3.0 アプリケーションプログラミング ISBN4-89471-472-8 本 体 価 格 5200 円 基 本 的 に WindowsCE PocketPC は Windows のサブセットなので Windows のプログラミングの 本 も 役 に 立 ちます わたしの 場 合 次 の 本 を 参 考 にしています Win32 API 完 璧 マスター ISBN4-7898-3690-8 本 体 価 格 2600 円 6-2 インターネット 英 語 のサイトですが 次 のサイトをたまにチェックしています FAQ 的 なことがまとめられています たと えば ソフトウェアでソフトウェアリセットしたい バックライトやフロントライトの 輝 度 を 変 えたいなど 一 読 することをお 勧 めします CeGadgets.com http://www.cegadgets.com/wincedevfaq.htm#5.34%20how%20can%20i%20write%20or%20read%20a%20 physical%20memory%20location? Pocket PC Developer Network http://www.pocketpcdn.com/articles/index.html