Palm Programmer's Laboratory
Introduction to Conduit Development601/5
この章は、Windows のための HotSync マネージャについて説明します。コンジット開発者にとって意味のある HotSync マネージャの基本的な設定と関数についてのみ説明します。
この章では以下の節を含みます。
すべての HotSync マネージャ ユーザ設定についての詳細は、HotSync マネージャのオンライン ヘルプ(HotSync Manger > HELP)を参照してください。
HotSync マネージャ設定 ^TOP^
図 5.1 は HotSync マネージャ アイコンをクリックしたときに現れる HotSync マネージャ メニューを示しています。Windows タスクバーの中に HotSync マネージャ アイコンがあります。
Local, Local USB, Modem, Network, Infrared -- ハンドヘルドとデスクトップ コンピュータ間で使用することができる接続のタイプを示します。1 つ以上のオプションを選択することができます。
Setup -- HotSync マネージャの設定の変更と選択された接続タイプのコンフィグレーションを行うためのダイアログ ボックスを表示します。
Custom -- 現在の Windows ユーザのために登録されたすべてのコンジットと選択された HotSync ユーザの同期設定をリストするダイアログ ボックスを表示します。更なる情報は、「ユーザのコンジット同期設定」 を参照してください。
View Log -- 指定された HotSync ユーザのために HotSync ログを表示します。HotSync マネージャ 6.0.1 以降では、デスクトップのデフォルトの Web ブラウザにフォーマットされたログを表示します。それより前のバージョンでは、テキスト ファイルとしてログを表示します。
About -- HotSync マネージャのバージョンを表示します。
Help -- オンライン ヘルプを表示します。
Exit -- HotSync マネージャを終了します。
最初の同期 ^TOP^
初めて HotSync 操作を実行するとき、HotSync マネージャは新しい HotSync ユーザを作成するか、それともすでに存在する HotSync ユーザを選択するかを問い合わせてきます。新しい HotSync ユーザを作成する場合、デスクトップ上に HotSync ユーザ名を入力しなくてはなりません。HotSync マネージャはそれをそれが作成する ユーザ ID と一緒にハンドヘルドに転送します。すでに存在する HotSync ユーザを選択した場合、HotSync マネージャはユーザ名と ID を含む HotSync ユーザのすべてのデータをハンドヘルドに戻します。HotSync マネージャは現在のデスクトップ上で行われるその後に続く HotSync 操作の間、そのハンドヘルドを他のものと見分け、再度ユーザ名を尋ねてそれでハンドヘルドのためのユーザ ID を作成することはありません。
HotSync マネージャ バージョン 6.0 より前では、最初の HotSync 操作をローカルで、モデムを使用するのではなく直接接続で実行することが要求されます。その後に続けて行われる同期はすべての有効な接続タイプで実行することができます。Windows のための HotSync マネージャでバージョン 6.0 以降では、最初の同期をすべての有効な接続タイプで実行することができます。「接続のタイプ」 を参照してください。
接続のタイプ ^TOP^
HotSync マネージャはハンドヘルドとデスクトップ コンピュータ間の異なる接続の種類を許可します。各接続タイプは HotSync マネージャに、表 5.1 で示すように、異なるやり方で同期動作を開始させます。
- NOTE
- HotSync プロセスはハンドヘルドのみから開始することができます。PalmSource はデスクトップから HotSync を開始するいかなる手段もサポートしません。
HotSync 接続タイプ | HotSync 動作の説明 |
---|---|
クレドル(原文: cradle)を使用した直接ケーブル接続 | シリアルまたは USB ポートを使ったデスクトップ コンピュータへのクレドルのケーブル接続。ユーザがクレドル上の HotSync ボタンを押すと、ハンドヘルド上の 2 つのピンが短絡されます。これはハンドヘルド上の HotSync クライアントをアクティブにし、HotSync クライアントがデスクトップ コンピュータ上の HotSync マネージャを起動します。 |
モデム | ハンドヘルドはデスクトップ コンピュータに電話を掛けるモデムに接続されます。ユーザはモデムを使用するためにデスクトップ コンピュータの HotSync マネージャをセット アップします。 ハンドヘルド上で Palm OS Cobalt より前の Palm OS バージョンを実行している場合、ユーザはハンドヘルド上の HotSync クライアントの中の Modem Sync をセット アップしなくてはなりません。ユーザが HotSync ボタンを押したとき、ハンドヘルドはデスクトップ コンピュータに電話を掛け、HotSync マネージャに接続します。 ハンドヘルド上で Palm OS Cobalt を実行している場合、ユーザはモデムのための接続プロファイルを選択します。ハンドヘルド上の HotSync クライアントは特別な Modem Sync 選択を必要としません。その代わり、ユーザはネットワークをタップし、ネットワークに接続するモデムを通して同期を行うデスクトップを指定します。ユーザが HotSync ボタンをタップすると、ハンドヘルドは現在のネットワーク接続を使用するか、指定されたネットワークにダイアルして、選択されたデスクトップ コンピュータ上の HotSync マネージャに接続します。 |
ネットワーク | クレドルのケーブルはローカル エリア ネットワーク上のデスクトップ コンピュータに接続される、または、ハンドヘルド自身が直接ネットワークに接続されます。ターゲットであるデスクトップ コンピュータもまたネットワークに接続されていて、そのデスクトップ コンピュータ上で HotSync マネージャが実行されています。ユーザが HotSync ボタンを押したとき、ハンドヘルド上の HotSync クライアントはターゲットであるデスクトップ コンピュータ上で実行されている HotSync マネージャに接続します。 |
赤外線 | ハンドヘルドが赤外線ポートを持っている場合、デスクトップ コンピュータと標準赤外線データ アソシエーション(IrDA)を実装する IrCOMM をサポートする赤外線(IR)ポートを使って同期することができます。ユーザは、デスクトップの IR ポートを使用するために、HotSync マネージャをセット アップし、ハンドヘルド上の HotSync クライアントの中の IR オプションを選択します。 |
- 重要
- 通常、サポートするすべての接続タイプを使用できるようにコンジットを設計します(各接続タイプごとに新しいコンジットを設計すべきではありません)。そのゆえ、コンジットの中で同期の最中にユーザの入力を要求するポップ-アップ ウィンドウや他のユーザ インターフェイスを実装することは避けてください。その理由は、ユーザは通常、モデムまたはネットワーク接続経由で同期を行う場合、デスクトップ コンピュータのところにいないからです。
ユーザのコンジット同期設定 ^TOP^
HotSync マネージャのカスタム ダイアログ ボックス(図 5.2)は、現在の Windows ユーザのために登録された各コンジットのための選択された HotSync ユーザの同期設定を表示します(注1)。
図 5.2 HotSync マネージャのカスタム ダイアログ ボックス
ユーザがコンジットを選択して、Change をクリックすると、HotSync マネージャは C API-ベースのコンジットの CfgConduit() エントリ ポイントを呼び出します(これと等価の COM-ベースのエントリ ポイントについては、「コンジット エントリ ポイント」 を参照してください)。このエントリ ポイントはオプションですが、PalmSource はコンジットがそれを実装することを推奨します。PalmSource が HotSync マネージャに付属させて出荷するすべてのデフォルトのコンジットはそれを実装していて、ユーザにコンジットがどのように同期を行うか選択できるようにするための Change HotSync Action ダイアログ ボックス(図 5.3)を提供します。
HotSync マネージャがコンジットの CfgConduit() または等価のエントリ ポイントを呼び出すとき、HotSync マネージャは、選択された HotSync ユーザと保存されたユーザの永久/一時同期設定を示す情報を渡します。ユーザの同期設定は、ユーザが HotSync 操作の間にコンジットにさせたいことを指定します。デフォルトのコンジットはユーザに Synchronize the files(ファイルの同期), Desktop overwrites handheld(デスクトップがハンドヘルドを上書き), Handheld overwrites Desktop(ハンドヘルドがデスクトップを上書き), Do nothing(何もしない)のどれかを選択するように問い合わせをします。HotSync マネージャはまたコンジットに望むことを定義できるカスタム設定もサポートします。
HotSync マネージャは、永久同期設定と一時同期設定を区別します。
- 一時同期設定
- コンジットが次の HotSync 操作でのみ扱うユーザの設定。その後、すべての HotSync 操作はユーザの永久同期設定に戻ります。
- 永久同期設定
- コンジットがすべての HotSync 操作で扱うユーザの設定。この設定は、ユーザが後に永久または一時設定を変更しない限り、変わることはありません。
デフォルトのコンジットは、一時設定が設定されている場合、それを表示します。設定されていない場合、永久設定を表示します。ユーザが設定を選択し、Set as default を選択し、それから OK をクリックした場合、デフォルトのコンジットはそれを永久同期設定として保存します。Set as default を選択しなかった場合、コンジットはそれを一時同期設定として保存します。作成するコンジットの Change HotSync Action(またはそれと等価の)ダイアログ ボックスの中に同じようなインターフェイスを実行することができます。
ユーザが作成したコンジットの同期設定を変更したとき、それが一時設定であろうと永久設定であろうと、作成したコンジットの CfgConduit() またはそれと等価なエントリ ポイントはその新しい設定を HotSync マネージャに渡し、それから作成したコンジットのための設定として保存しなくてはなりません。
CfgConduit() またはそれと等価なエントリ ポイントの更なる情報は、C/C++ Sync Suite Companion または COM Sync Suite Companion を参照してください。
ユーザの設定が作成したコンジットが実行すべき同期のタイプにどのような影響を与えるのかについての説明は、「ユーザの同期設定の効果」 を参照してください。
マルチ ユーザのサポート ^TOP^
HotSync マネージャ 6.0 以降は、Windows のマルチ-ユーザ バージョンをサポートします。これは、HotSync マネージャを一度にすべての Windows ユーザのためにインストールすることができ、各 Windows ユーザは異なる設定をすることができるということを意味します。例えば、各ユーザは異なるコンジットのセットを使用することができます。なぜなら、コンジットを、現在の Windows ユーザのため、または、すべての Windows ユーザ(システム)のためのどちらでも登録できるからです。
- NOTE
- HotSync マネージャ 6.0 より前のバージョンは、現在の Windows ユーザのためにインストールすることだけが可能です。そのため、それらは Windows のマルチ-ユーザについての知識を持ちません。マルチ-ユーザをサポートする Windows と一緒に 6.0 より前のバージョンの HotSync マネージャを使用するためには、HotSync マネージャを各 Windows ユーザごとにインストールしなくてはなりません。この節の残りでは、HotSync マネージャ 6.0 以降のことについて説明します。
HotSync マネージャ 6.0 以降はデスクトップ上のユーザの 2 つのクラスをサポートします。2 つのクラスは以下で定義され、説明されます。
- HotSync User
- HotSync マネージャを使ってデスクトップと同期をとる 1 つの Palm ハンドヘルドのユーザを表します。ハンドヘルドと HotSync ユーザの間には 1 対 1 の関係が成り立ちます。
- Windows User
- マルチ-ユーザ バージョンの Windows 上の 1 つの Windows ログインを表します。
図 5.4 はデスクトップ上のユーザの 2 つのクラスの関係を描いています。
図 5.4 マルチ HotSync ユーザとマルチ Windows ユーザの関係
図 5.5 は Windows ユーザのフォルダと HotSync ユーザのフォルダの関係を示しています。コンジット ファイル名とコンジット フォルダ名は太字で示されています。
図 5.5 Windows と HotSync ユーザのフォルダ
HotSync User ^TOP^
HotSync ユーザは以下によって作成されます。
- HotSync マネージャ -- ハンドヘルドが最初に HotSync マネージャと同期をとるとき
- Palm OS Desktop ソフトウェア -- ユーザがインストーラから問い合わせを受けたとき、または、Tools > Users を選択することによって
- ユーザ データ API -- サード-パーティのアプリケーションが新しい HotSync ユーザを追加するために呼び出したとき
HotSync マネージャのすべてのバージョンは HotSync ユーザごとに 1 つのハンドヘルドと結びつきます。1 つの Windows ユーザ ログインの中で作成されたすべての HotSync ユーザは同じコンジットのセットを共有します; コンジットをインストールするときに、同じ Windows ユーザ ログイン内のいくつかの HotSync ユーザにそれを割り当て、それ以外の HotSync ユーザには割り当てないということはできません。しかしながら、各 HotSync ユーザは異なるコンジット コンフィグレーション設定を持つことができます; つまり、Custom ダイアログ ボックスの中に表示されるコンジットの設定は、HotSync ユーザごとに異なる可能性があるということです。
1 つの Windows ユーザ ログイン内で、HotSync マネージャはハンドヘルドごとに 1 つの HotSync ユーザを作成します(注2)。これは 2 つのシナリオをサポートします。
- 1 人の人が 1 つの Windows ユーザ ログインを使って、複数のハンドヘルドを持つ
- 複数の人がそれぞれ 1 つの Windows ユーザ ログインを使って、それぞれに 1 つのハンドヘルドを持つ
以下のリストは、すべての HotSync ユーザに対して同じでなければならないことと、1 つの Windows ユーザ ログイン内の HotSync ユーザごとに異なることについての詳細を挙げています。
- すべての HotSync ユーザが共有するのは同じ:
- 各 HotSync ユーザが持つのは異なる:
- HotSync ユーザ名と ID
- HotSync ユーザのデスクトップ データ フォルダ。ここに、各コンジットが各 HotSync ユーザのためのデータを別々に保存することができます(図 5.5 を参照してください)。
- 各コンジットのためのコンジット同期設定のセット。これは Custom ダイアログ ボックス経由で指定されます -- 例えば、同期、デスクトップによるハンドヘルドの上書き、など
- HotSync ログ
Windows User ^TOP^
Windows ユーザは、Windows がインストールされたとき、または、その後のいつでも、作成されます。HotSync マネージャ 6.0 以降にサポートされる Windows のすべてのバージョンは複数の Windows ユーザ ログインを作成することができ、それぞれは別々の Windows ユーザ設定を持つことができます。HotSync マネージャがインストールされたとき、HotSync マネージャはシステム レベルの設定のセットを作成します。HotSync マネージャは、インストール時には現在の Windows ユーザのために、それと、他の Windows ユーザが初めて HotSync マネージャを実行したとき、これらの設定を使用します。
システムが複数の Windows ユーザ ログインを持つとき、各 Windows ユーザは別々の 1 つ以上の HotSync ユーザを作成することができます(注4)。これは幅広いユーザ シナリオをサポートします: 複数の人はそれぞれ異なる Windows ユーザ ログインを持ち、それぞれ 1 つい上のハンドヘルドを持ちます。
以下のリストは、すべての HotSync ユーザに対して同じであることと、1 つの Windows ユーザ ログイン内の HotSync ユーザごとに異なることについての詳細を挙げています。
- すべての HotSync ユーザが共有するのは同じ:
- HotSync マネージャ実行ファイルとライブラリ
- システム登録コンジットのセット(バックアップ コンジットとインストール コンジットを含む)と通知機能(原文: notifiers)。これらは、同じ作成者 ID を持つユーザ登録コンジットでオーバライドすることができます。
- 通信ポート アクセス(1 つの Windows ユーザは、ある HotSync 操作が進行している間、もう 1 つの HotSync 操作を開始することはできません。)
- 各 HotSync ユーザが持つのは異なる:
- PC ID。これは各 Windoes ユーザが最初に HotSync マネージャを実行したときに、HotSync マネージャが生成します。
- HotSync ユーザのセット。これのデータと設定は、異なる Window ユーザによって作成された HotSync ユーザのものとは、完全に分かれています(注5)。
- ユーザ登録コンジットと通知機能(原文 : notifiers)のセット。これらは、同じ作成者 ID を持つシステム登録コンジットをオーバライドします。
システムのために登録されるコンジット 対 現在の Windows ユーザのために登録されるコンジットについての更なる情報は、「ユーザ登録コンジットと通知機能と、システム登録コンジットと通知機能」 を参照してください。
Windows デスクトップ アプリケーションへのインターフェイス ^TOP^
他の Windows デスクトップ アプリケーションは HotSync マネージャと相互作用することができます。もちろん、コンジットは、ハンドヘルド上のデータにアクセスする目的で、HotSync マネージャと相互作用することができますが、デスクトップ アプリケーションとインストーラもまた HotSync マネージャとインターフェイスをとることができます。以下では、Windows のために HotSync マネージャが提供する 2 つのインターフェイスを紹介します。
- HotSync マネージャ API
- デスクトップ通知機能(原文: Desktop Notifiers)
HotSync マネージャ API ^TOP^
HotSync マネージャ API は、デスクトップ アプリケーションまたはインストーラが以下に示す方法で HotSync マネージャを制御することを可能にします。
- HotSync マネージャの停止、開始、再開、リフレッシュ
- HotSync マネージャ バージョン 6.0 よりも前のものは、コンジットの登録後に HotSync マネージャを再開するかリフレッシュすることを要求します; そうしないと、HotSync マネージャは新しく登録されたコンジットを発見しません。HotSync マネージャ バージョン 6.0 以降のものはこれを要求しません。「コンジット衝突の解決」 を参照してください。
- コンジットのカスタマイズ、接続設定の変更、HotSync ログの表示を行うための HotSync マネージャの呼び出し
- シリアル、USB、ネットワーク接続のための接続状態タイプのチェックまたはセット
- HotSync マネージャが待機中か同期中かのチェック
HotSync マネージャ API は Windows でのみ使用可能です。この API は、Windows のための C/C++ Sync Suite の中で宣言されている C API で生まれたものです。しかし、COM Sync Suite は PDHotSyncUtility オブジェクト経由でそれへのインターフェイスを提供します。更なる情報は、C/C++ Sync Suite Companion または COM Sync Suite Companion を参照してください。
デスクトップ通知機能 ^TOP^
(原文: Desktop Notifiers)
デスクトップ コンピュータ上のアプリケーションとそれの関連コンジットの両方がユーザ データを変更できる場合、HotSync マネージャはアプリケーションに HotSync 操作が始まっていることを通知することができます。それにより、両方が同時にデスクトップ上のデータを変更することを防ぎます。例えば、Palm OS Desktop ソフトウェアの中のアドレス帳アプリケーションとそれのコンジットは両方ともデスクトップ上のユーザのアドレス帳データを変更することができます。これが同時に行われることを防ぐために、通知機能は Palm OS Desktop に HotSync 操作が始まっていることを知らせ、それにより Palm OS Desktop は、HotSync 操作が完了するまで、ユーザがデータを変更することを防ぐことができます。
- NOTE
- コンジットがデスクトップ データにアクセスするが、そのデータをデスクトップ アプリケーションと共有しない場合、通知機能を提供する必要はありません。
HotSync マネージャは、HotSync プロセスの開始時に、すべての登録された通知機能 DLL または通知機能を呼び出します。それらは、HotSync 操作が開始しているというメッセージを発します。また、終了時にも再度呼び出し、HotSync プロセスが終了したこととそれが成功したのかどうかのメッセージを発します。1 つの通知機能は、呼び出しをするために、HotSync マネージャのために 1 つのエントリ ポイントを実装しなくてはなりません。通知機能のエントリ ポイントの中に、HotSync マネージャが発信するメッセージ上で動作させるなんらかのメカニズムを実装しなければなりません。通常、通知機能はデスクトップ アプリケーションにそれが理解できるフォーマットの通知を行います; それから、デスクトップ アプリケーションはする必要のある何らかのことを行います。通知機能は Windows DLL なので、望むロジックを何でも実装することができます; 通知機能はデスクトップ アプリケーションに通知を行うために、しかし、それに制限されずに設計されます。
通知機能の振る舞いをデモンストレーションするために、HotSync 操作中に Palm OS Desktop の中のレコードを起動(訳者注: ?原文は launch)または編集してみることができます。通知機能は HotSync 操作が開始したことを通知しているため、Palm OS Desktop は、データ ファイルを変更するかもしれないすべての動作を防ぎます。
HotSync マネージャが通知機能を呼び出せるようになる前に、通知機能のインストール時にそれを HotSync マネージャに登録する必要があります。「コンジットと通知機能の HotSync マネージャへの登録」 を参照してください。
通知機能の開発は、Windows のための C/C++ Sync Suite の中でのみサポートされます。更なる情報は、C/C++ Sync Suite Companion を参照してください。
注1. HotSync マネージャ バージョン 6.0 以降では、登録されたコンジットをカスタム ダイアログ ボックスの中に表示させなくすることができます。コンジットを表示させなくするには、コンジットはある特定の値を返さなくてはなりません。そうでないと、HotSync マネージャはそのコンジットをダイアログ ボックスに表示します。
注2. 2 つのハンドヘルドが同じ Windows ユーザ ログインの中に作成された同じ HotSync ユーザと信頼できる同期を行うことはできません。
注3. 考慮すべき例外は 2 つの HotSync マネージャ 6.0 以降のインスタンスを持つときです: 1 つは Palm OS Desktop と一緒にインストールされ、もう 1 つは CDK と一緒にインストールされます。
注4. 2 つのハンドヘルドは 2 つの異なる Windows ユーザ ログインの中で作成された同じ HotSync ユーザと同期をとることができます。これは 2 つの異なるデスクトップ コンピュータと同期をとることと同じことです。
注5. 各 Windows ユーザのために、HotSync マネージャは別々の Core\Path 設定を定義します。この設定は、現在の Windows ユーザによって作成されたすべての HotSync ユーザのディレクトリを保持するディレクトリへのパスです。このディレクトリは、現在の Windows ユーザの My Documents\Palm OS Desktop フォルダに置かれます。