![]()
Windows Vistaで利用できるガジェットはhtmlとxmlファイルで構成される。htmlファイルではjavascriptなどが利用できるため、それなりに凝った動作を実装できる。とは言うもののスクリプトには限界がある。ActiveXコンポーネントなどを利用すればより自由な実装ができる。
ガジェットから使えるActiveXコンポーネントを作成しよう。Visual Studio 2005の「ファイル」メニューの「新規作成」から「プロジェクト」を選択する。
![]()
左側のプロジェクトの種類にある「Visual C++」以下の「ATL」を選択する。そしてテンプレートとして「ATLプロジェクト」を指定する。ここではプロジェクト名を「Test54」とした。
![]()
プロジェクトが自動生成したら「プロジェクト」メニューから「クラスの追加」を選択する。
![]()
そしてカテゴリ「ATL」にある「ATLコントロール」を追加する。
![]()
ここでは短い名前として「TestButton」を指定した。ほかの入力欄は自動的に埋まる。
![]()
次に「表示」タブにあるコントロールの追加から「Button」を選択する。これでコントロールの設定が終わったので「完了」ボタンを押す。
![]()
コントロールが追加されたら生成したソースファイルの中から「TestButton.h」をダブルクリックする。そしてソースコードの中から「OnBNClicked」関数を探す。
LRESULT OnBNClicked(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
// TODO : ユーザーのコードをここに追加してください。
::MessageBox(NULL,_T("ボタンが押されました!"),_T(""),MB_OK);
return 0;
}
![]()
次に作成したコントロールをWindows Vistaにセットアップするためのインストーラーを作成する。
「ファイル」メニューの「追加」から「新しいプロジェクト」を選択する。「追加」であることに注意すること。「新規作成」を利用してはいけない。
![]()
プロジェクトの種類として「セットアップと配置」を、テンプレートは「セットアップウィザード」を選択する。
![]()
そして含めるプロジェクト出力の選択では「Test54のぷらいパリ出力」にチェックを入れる。これで「完了」ボタンを押す。
![]()
セットアッププロジェクトが生成したら「アプリケーションフォルダ」にある「Test54(アクティブ)のプライマリ出力」を右クリックして「プロパティウィンドウ」を開く。
![]()
開いたら「Register」の項目を「vsdrpCOMSelfReg」に変更する。これを行わないとインストールしても作成したActiveXコントロールが利用できない。
![]()
最後にツールバー部分のビルドモード選択欄から「Release」を選択してSetup1の右クリックメニューから「リビルド」を選択して実行ファイルを生成する。
![]()
生成したセットアップファイル2つをWindows Vistaへコピーする。
![]()
インストール中に「モジュール○○で登録に失敗しました。HRESULT -2147010895。サポート担当者に問い合わせてください。」というエラーが生じた場合は、リビルドするときに「Release」を選択せずに「Debug」のままである可能性が高い。もう一度リビルドからやり直す。
![]()
インストーラーを作る時にガジェット用のhtmlやxmlファイルを自動インストールするようにもできるが、ここではその設定を行わなかった。そのためこのままではガジェットを利用できない。
次にガジェット用のhtmlとxmlファイルを作成する。再び開発環境に戻り、プロジェクトフォルダにある「TestButton.htm」のソースコードを見る。
![]()
ここで赤線で示した部分をクリップボードにコピーしてガジェット用htmlファイル内で利用する。さらにxmlファイルも作成する。
<html> <head> </head> <body style="width:100%;height:100px;"onload="javascript:Test();"> <OBJECT ID="TestButton" CLASSID="CLSID:1C335D84-2F4F-43C9-A378-6197FCD35E34"></OBJECT> </body> </html>■xmlファイル。ここではファイル名を「gadget.xml」とする。
<?xml version="1.0" encoding="utf-8" ?> <gadget> <name>Test54</name> <namespace>Test54</namespace> <version>1.0.0.0</version> <description>Test54 Gadget</description> <author name="usefullcode.net"> <info url="www.usefullcode.net" /> </author> <copyright>2006</copyright> <hosts> <host name="sidebar"> <base type="HTML" apiVersion="1.0.0" src="Test54.html" /> <platform minPlatformVersion="0.3" /> <permissions>Full</permissions> </host> </hosts> <version value="1.0.0.0" MinPlatformVersion="0.1"/> </gadget>
![]()
作成したhtmlとxmlファイルを
「C:\Users\○○\AppData\Local\Microsoft\ Windows Sidebar\Gadgets\Test54.gadget」
に保存する。これでガジェットを利用するための準備が整った。
![]()
サイドバーで右クリックをして現れたメニューから「ガジェットの追加」を選択する。
![]()
そして一覧の中にある「Test54」をダブルクリックする。するとサイドバーに作成したガジェットが表示される。
![]()
htmlファイルやボタンデザインの設定を行わなかったためにボタンに見えないかもしれないが一応ボタンらしきものが表示されている。このボタンをクリックすると...
ここではメッセージボックスの表示だけだがOnBnClickedに処理を記述すれば何でもできる。またボタン以外のコントロールとして作成することもできる。
