トップ 一覧 検索 ヘルプ RSS ログイン

Palm OS Programmer's Companion Volume II/1-8の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
[[← 7 節に戻る|Palm OS Programmer's Companion Volume II/1-7]] [[↑1 章トップへ|Palm OS Programmer's Companion Volume II/1]] [[9 節に進む →|Palm OS Programmer's Companion Volume II/1-9]]
----
!!!1-8 ローカルでの送受信
 
この章の大半は、データをリモートデバイスに送信したりリモートデバイスから受信したりするために、Exchange マネージャをどのように使用するかについて説明しています。
ローカルデバイスの別アプリケーションとデータをやりとりするために Exchange マネージャを使用することもできます。そのためには、ローカル Exchange ライブラリを使用します。以下の状況で、そのようなことを行ないたいかもしれません。
*予定表アプリケーションのイベントを登録するアプリケーション。ビルトインの予定表の代わりにそのアプリケーションを使うかもしれません。予定がユーザの選択したアプリケーションに送信されることを保証するために、ローカル Exchange マネージャを使用してvCalendarオブジェクトとしてデータを送信することができます。この方法は、Exchange マネージャレジストリにおいてどのアプリケーションがvCalendar受信のデフォルトとなっていても使えます。
*他のアプリケーションがデータを表示できるように、Exchange マネージャのプレビューフィーチャーを使用することができます。「[[プレビューの表示|Palm OS Programmer's Companion Volume II/1-5]]」セクションで説明したように、受信するよう登録されたデータのプレビューを表示するために {{span style='color:blue;font-family:monospace;',sysAppLaunchCmdExgPreview}} 起動コードでアプリケーションを起動することができます。あなたのアプリケーションが認識しないデータを表示するために、このフィーチャーを使うことができます。あなたのアプリケーションが GIF を持っており、それをダイアログに表示したい、と仮定します。その GIF をローカルデバイスのグラフィックアプリケーション(=応答としてあなたが提供する矩形領域にプレビューを描画するアプリケーション)に送るために、ローカル Exchange ライブラリを使用することができます。
*他のアプリケーションで扱われることを予定された添付ファイルを含む e-mail メッセージのような、複合データオブジェクトをあなたのアプリケーションで受信します。「[[ラップされていないデータを受信するための登録|Palm OS Programmer's Companion Volume II/1-3]]」セクションで説明したように、Exchange ライブラリは複合オブジェクトの「ラップをほどき(unwrap)」、そのオブジェクトを直接引き渡すことができます。しかし、そのようにするのはルールの例外です。{{br}}e-mail メッセージを e-mail アプリケーションに送信し、ユーザがリクエストしたときに限り添付ファイルを適切なアプリケーションに引き渡す、というのがより一般的です。ユーザのリクエストへの応答として、e-mail アプリケーションは添付されたオブジェクトを展開し、それを受信すべきアプリケーションにローカル Exchange ライブラリを使用して送信します。
*あなたのアプリケーションはリモートデバイスとデータをやり取りし、Exchange マネージャとやりとりするコードをデバッグしたいかもしれません。この場合、ローカル Exchange ライブラリを使用することはあなたのアプリケーションにループバックモード、つまりデータの受け取り側でもあるモード、でデータを送信することを引き起こします。
ローカル Exchange ライブラリを使用するためには、以下のようにします。
+ローカル Exchange ライブラリを識別するために、{{span style='color:blue;font-family:monospace;',ExgSocketType}} 構造体の {{span style='color:blue;font-family:monospace;',name}} フィールドにある URL を使います。URLを定数文字列 {{span style='color:blue;font-family:monospace;',exgLocalPrefix}} で始めます。{{br}}Exchange マネージャは、Palm OS 4.0 以降でのみ URL をサポートします。Palm OS 3.X デバイスでは、赤外線ライブラリの代わりとしてローカル Exchange ライブラリとやりとりするために、{{span style='color:blue;font-family:monospace;',localMode}} フラグに 1 をセットします。
+もし Exchange ダイアログの表示を抑制したりプレビュー操作を行いたいなら、{{span style='color:blue;font-family:monospace;',ExgLocalSocketInfoType}} 構造体を生成・初期化し、それをソケットの {{span style='color:blue;font-family:monospace;',socketRef}} フィールドにアサインします。
	typedef struct { 
	  Boolean freeOnDisconnect; 
	  Boolean noAsk; 
	  ExgPreviewInfoType *previewInfoP; 
	  ExgLocalOpType op; 
	  FileHand tempFileH; 
	} ExgLocalSocketInfoType;
パラメータは以下の通りです。
,パラメータ,説明
,"{{span style='color:blue;font-family:monospace;',freeOnDisconnect}}","{{span style='color:blue;font-family:monospace;',ExgDisconnect}} コールが行われたときに構造体が開放されたかどうか。デフォルトは {{span style='color:blue;font-family:monospace;',true}} です。通常は、構造体をアロケートするコードは構造体を開放する責任があります。そのため、もしあなたが {{span style='color:blue;font-family:monospace;',ExgLocalSocketInfoType}} をアロケートしたなら、あなたはこのフィールドに {{span style='color:blue;font-family:monospace;',false}} をセットし、終了時に確実に構造体を開放するべきです。"
,"{{span style='color:blue;font-family:monospace;',noAsk}}","Exchange ダイアログの表示を無効にするなら、{{span style='color:blue;font-family:monospace;',true}} をセットします。例えば、もしユーザコマンドの応答に vCalender オブジェクトを生成しそれを予定表アプリケーションに送信したいなら、ユーザはあなたが送信をリクエストしたデータの受信を確認する必要が無いようにするために、あなたはおそらく {{span style='color:blue;font-family:monospace;',noAsk}} に {{span style='color:blue;font-family:monospace;',true}} をセットしたいでしょう。"
,"{{span style='color:blue;font-family:monospace;',previewInfoP}}","データのプレビューを表示するために使用する、{{span style='color:blue;font-family:monospace;',ExgPreviewInfoType}} 構造体へのポインタです。もしデータの表示を助けるために単に他のアプリケーションを使用したいなら、この構造体を生成・初期化するでしょう。"
他のフィールドはローカル Exchange ライブラリによってセットされます。もしこの構造体を生成しないなら、ライブラリはあなたのためにそれをします。そのため、もし {{span style='color:blue;font-family:monospace;',noAsk}} または {{span style='color:blue;font-family:monospace;',previewInfoP}} フィールドにデフォルトでない値を提供したいなら、単にこの構造体を生成するだけでよいのです。
3. {{span style='color:blue;font-family:monospace;',ExgSocketType}} 構造体の {{span style='color:blue;font-family:monospace;',noStatus}} フィールドに {{span style='color:blue;font-family:monospace;',true}} をセットすることで、Exchange ライブラリが典型的に表示する進行ダイアログの表示を抑制することができます。
4. 通常の作法でデータを送受信します。詳しくは「[[データの送信|Palm OS Programmer's Companion Volume II/1-4]]」や「[[データの受信|Palm OS Programmer's Companion Volume II/1-5]]」を参照してください。

----
[[← 7 節に戻る|Palm OS Programmer's Companion Volume II/1-7]] [[↑1 章トップへ|Palm OS Programmer's Companion Volume II/1]] [[9 節に進む →|Palm OS Programmer's Companion Volume II/1-9]]