Palm Programmer's Laboratory

トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Palm OS Programmer's API Reference/1

← 0 章に戻る ↑トップへ 2 章に進む →

1 アプリケーション起動コード

この章ではあらかじめ定義されているアプリケーション起動コードについて説明します。起動コードはヘッダファイル SystemMgr.h で宣言されています。関連パラメータ ブロックは AppLaunchCmd.h, AlarmMgr.h, ExgMgr.h, Find.h で宣言されています。

表 1.1 にはすべての Palm OS 標準起動コードがリストアップされています。より詳しい情報は表のすぐ後に記述されています。

起動コードとは何か、どのようにそれを使うか学ぶためには、Palm OS Programmer's Companion, vol. I「アプリケーションの開始と終了」という章を読んでください。


表 1.1 Palm OS 起動コード
コード 実行内容
scptLaunchCmdExecuteCmd|Palm OS Programmer's API Reference/68 指定されたネットワーク ログイン スクリプト プラグイン コマンドを実行します。
scptLaunchCmdListCmds|Palm OS Programmer's API Reference/68 ネットワーク スクリプト プラグインが実行するコマンドについての情報を提供します。
sysAppLaunchCmdAddRecord データベースにレコードを追加します。
sysAppLaunchCmdAlarmTriggered 次のアラームのスケジュールを立てたり、アラーム トーン鳴らすなどの迅速さが要求されるアクションを行います。
sysAppLaunchCmdAttention Attention マネージャに要求されたアクションを行います。
sysAppLaunchCmdCardLaunch アプリケーションを起動します。この起動コードは拡張カードからアプリケーションを起動します。
sysAppLaunchCmdCountryChange カントリーの変化に対応します。
sysAppLaunchCmdDisplayAlarm 指定されたアラーム ダイアログを表示するか、アラーム関連の一定時間後のアクションを行います。
sysAppLaunchCmdExgAskUser Exchange マネージャ経由でデータを受け取りたい場合に、ユーザ問合せダイアログの表示の上にアプリケーションを上書きさせます。
sysAppLaunchCmdExgGetData アプリケーションに Exchange マネージャを使ってデータを送信するよう指示します。
sysAppLaunchCmdExgPreview アプリケーションに Exchange マネージャを使ってプレビューを表示するよう指示します。
sysAppLaunchCmdExgReceiveData アプリケーションに Exchange マネージャを使ってデータを受信するよう指示します。
sysAppLaunchCmdFind 文字列を検索します。
sysAppLaunchCmdGoTo 指定されたレコードのところへ行き、それを表示し、オプションとして指定されたテキストを選択します。
sysAppLaunchCmdGoToURL アプリケーションを起動し、URL を開きます。
sysAppLaunchCmdHandleSyncCallApp アプリケーションの Conduit 命令があると、アプリケーション特有の操作を行います。(訳者注: Conduit とは母艦と Palm とでデータを同期させる設定書類)
sysAppLaunchCmdInitDatabase データベースを初期化します。
sysAppLaunchCmdLookup データを調べます。sysAppLaunchCmdFind とは異なり、間接指定レベルを含みます。例えば、ある名前と関連する電話番号を調べます。
sysAppLaunchCmdNormalLaunch 普通に起動します。
sysAppLaunchCmdNotify イベントについて通知します。
sysAppLaunchCmdOpenDB アプリケーションを起動し、データベースを開きます。
sysAppLaunchCmdPanelCalledFromApp 設定パネルに対して、そのパネルを所有する設定アプリケーションではなく別のアプリケーションから呼び出されたことを知らせます。
sysAppLaunchCmdReturnFromPanel アプリケーションに対して、設定パネルが呼び出された後に起動するよう指示します。
sysAppLaunchCmdSaveData データを保存します。しばしば検索操作の前に指示されます。
sysAppLaunchCmdSyncNotify HotSync が完了したことをアプリケーションに通知します。
sysAppLaunchCmdSystemLock セキュリティ アプリケーションにシステムをロックするよう指示します。
sysAppLaunchCmdSystemReset システム リセットに応答します。UI はこの間にコードを起動することができません。
sysAppLaunchCmdTimeChange システム時間の変更に応答します。
sysAppLaunchCmdURLParams Web Clipping アプリケーション Viewer からのパラメータと一緒にアプリケーションを起動します。

起動コード ^TOP^

ここでは起動コードの補足情報を提供します。いくつかの起動コードでは、起動コードの追加情報を提供するパラメータ ブロックを列挙します。

sysAppLaunchCmdAddRecord ^TOP^

レコードをアプリケーションのデータベースに追加します。

この起動コードは、メッセージをメールまたは iMessenger (Palm VII オーガナイザ) アプリケーションの送信ボックスに追加するために使用されます。アドレスや本文などのメッセージに関する情報をパラメータ ブロックに収めて送ります。iMessenger では、パラメータ ブロックの edit フィールドをセットすることで、iMessenger が編集画面を表示するかどうか制御することができます。編集画面を表示する場合は true を、表示しない場合は false をセットします。

iMessenger 経由でのメッセージの送信に関するより詳細な情報を得るには、Palm OS Programmer's Companion, vol. II, Communications「Email メッセージの送信」? を参照してください。

重要
Wireless Internet Feature Set が存在する場合にのみ、iMessenger は実装されます。メールへの実装は、OS バージョン 3.0 以降です。

メール アプリケーションのための sysAppLaunchCmdAddRecord パラメータ ブロック

Prototype

typedef enum { 
	mailPriorityHigh, 
	mailPriorityNormal, 
	mailPriorityLow 
} MailMsgPriorityType;

typedef struct {
	Boolean secret;
	Boolean signature;
	Boolean confirmRead;
	Boolean confirmDelivery;
	MailMsgPriorityType priority;
	UInt8 padding
	Char *subject;
	Char *from;
	Char *to;
	Char *cc;
	Char *bcc;
	Char *replyTo;
	Char *body;
} MailAddRecordParamsType;

フィールド

  • secret
    • True に設定するとメッセージは秘密であるとマークされます。
  • signature
    • True に設定するとメール アプリケーションの設定からの Signature がメッセージに付加されます。
  • confirmRead
    • True に設定するとメッセージが読まれたときに確認メッセージが送信されます。
  • confirmDelivery
    • True に設定するとメッセージが配達されたときに確認メッセージが送信されます。
  • priority
    • メッセージの優先順位です。MailMsgPriorityType の列挙型の 1 つを指定してください。
  • padding
    • 将来使用するために予約されています。
  • subject
    • メッセージの題名です(オプション)。null で終了する文字列です。
  • from
    • メッセージの送信者です(送信メールでは使用されません)。null で終了する文字列です。
  • to
    • メッセージ受信者のアドレスです(必須)。null で終了する文字列です。
  • cc
    • cc 受信者のアドレスです(オプション)。null で終了する文字列です。
  • bcc
    • bcc 受信者のアドレスです(オプション)。null で終了する文字列です。
  • replyTo
    • 返信先のアドレスです(オプション)。null で終了する文字列です。
  • body
    • メッセージのテキストです(必須)。null で終了する文字列です。

iMessenger アプリケーション用の sysAppLaunchCmdAddRecord パラメータ ブロック

Prototype

typedef struct {
	UInt16 category;
	Boolean edit;
	Boolean signature;
	Char *subject;
	Char *from;
	Char *to;
	Char *replyTo;
	Char *body;
} MsgAddRecordParamsType;

Fields

  • category
    • メッセージを置くカテゴリです。以下のカテゴリから一つを指定してください。
      • MsgInboxCategory
      • MsgOutboxCategory
      • MsgDeleteCategory
      • MsgFiledCategory
      • MsgDraftCategory
  • edit
    • True に設定するとメッセージは編集画面に表示されます。False に設定するとメッセージは送信ボックスに置かれ、編集画面は表示されません。カテゴリが MsgOutboxCategory にセットされている場合にのみ true を指定できます。
  • signature
    • True に設定すると iMessenger アプリケーション設定からの Signature がメッセージに付加されます。
  • subject
    • メッセージの題名です(オプション)。null で終了する文字列です。
  • from
    • メッセージの送信者です(送信メールでは使用されません)。null で終了する文字列です。
  • to
    • メッセージ受信者のアドレスです(必須)。null で終了する文字列です。
  • replyTo
    • 返信先のアドレスです(オプション)。null で終了する文字列です。
  • body
    • メッセージのテキストです(必須)。null で終了する文字列です。

sysAppLaunchCmdAlarmTriggered ^TOP^

次のアラームのスケジュールを立てるまたはアラームを鳴らすなどの素早いアクションを実行します。

この起動コードは、可能な限り実際のアラーム時刻に近い時刻に送られます。この時、アプリケーションはブロックされない素早いアクションを実行するかもしれません。同時に複数のアプリケーションのための複数のアラームがある場合、それらは保留されるかもしれません。1 つのアラーム表示がシステムをブロックしたり、他のアプリケーションがそれらのアラームを適時に受け取るのを妨げたりすべきではありません。sysAppLaunchCmdDisplayAlarm が送られるとき、より時間のかかるアクションを実行する機会が得られるかもしれません。

sysAppLaunchCmdAlarmTriggered パラメータ ブロック

Prototype

typedef struct SysAlarmTriggeredParamType {
	UInt32 ref;
	UInt32 alarmSeconds;
	Boolean purgeAlarm;
	UInt8 padding;
} SysAlarmTriggeredParamType;

フィールド

  • → ref
    • アラームが AlmSetAlart() にセットされているときに指定される呼び出し元定義値。
  • → alarmSeconds
    • アラームが AlmSetAlart にセットされているときに指定される日付/時間。1904 年 1 月 1 日からの秒数としてこの値は与えられます。
  • ← purgeAlarm
    • 返り時に、アラームをアラーム テーブルから削除すべきなら true にセットされます。このアラームで他のプロセスを実行したくない場合、アプリケーションが sysAppLaunchCmdDisplayAlarm を受信するのを防ぐための最適化としてこれを使用します。起動コードを受信したい場合、このフィールドを false にセットします。
  • padding
    • 使用されません。

sysAppLaunchCmdAttention ^TOP^

目的

アテンション マネージャによって要求されるアクションを実行します。この起動コードは AttnCommand タイプを伴って起こります; このタイプはアラームを要求されるアプリケーションに送ることができるコマンドのセットを指定します。

Prototype

typedef UInt16 AttnCommand;

コメント

以下の表は AttnCommand がとり得る値をリストにしています。


表 1.2 sysAppLaunchCmdAttention コマンド

定数 説明
AttnCommand_drawDetail ((AttnCommand)1) アプリケーションはアテンション ダイアログの詳細な内容を描く必要があることを示します。コマンド引数パラメータはタイプ AttnCommandDrawDetailArgsType の構造体を指します。
AttnCommand_drawList ((AttnCommand)2) アプリケーションはアテンション ダイアログの中に適切なリスト アイテムを描く必要があることを示します。コマンド引数パラメータはタイプ AttnCommandDrawListArgsType の構造体を指します。
AttnCommand_customEffect ((AttnCommand)3) アテンション マネージャはユーザのアテンションを得るための何かをしていて、いずれかのアプリケーション指定の特別な効果を発揮すべきであることを示します。このコマンドは、アテンション アイテムがたいていのアプリケーションは呼び出さない AttnGetAttention の構造体を呼び出すとき、アテンション アイテムに送られるだけです。
AttnCommand_goThere ((AttnCommand)4) アプリケーションにアイテムまでナビゲートするように伝えます。コマンド引数パラメータは NULL です。アプリケーションは一般に、自分自身を起動させるこのコマンドを受け取ると、SysAppLaunc()|Palm OS Programmer's API Reference/54 を呼び出します。
AttnCommand_goIt ((AttnCommand)5) アプリケーションにユーザがアイテムを解散させていることを知らせます。コマンド引数パラメータは NULL です。アプリケーションはこの時点でメモリをクリーン アップすることを選択するかもしれません。
AttnCommand_snooze ((AttnCommand)6) アプリケーションにユーザがうたた寝していることを知らせます。コマンド引数パラメータは NULL です。たいていのアプリケーションはこのコマンドの受け取り時に何もしません。このコマンドは現在保留されている、目立っている、または微妙な状態のありとあらゆるアイテムに渡されます。1 つ以上のアイテムを保留させているアプリケーションは何度か呼び出されます。
AttnCommand_iterate ((AttnCommand)7) このコマンドは、アテンション アイテムを列挙している間に、アプリケーションに渡されます。このコマンドは、HotSync 操作後に、アプリケーションが各アイテムを検証することを許可し、古いまたは無効なアイテムを更新または削除する場合に特に有用です。


AttnCommandDrawDetailsType

AttnCommand_drawDetail がコールバック関数経由または sysAppLaunchCmdAttention 起動コードを伴うパラメータとしてのどちらかでアプリケーションに渡されるとき、アプリケーションはアテンション ダイアログの詳細内容を描く必要があります。AttnCommandDrawDetailArgsType 構造体は AttnCommand_drawDetail コマンドを伴い、ダイアログの内容を描くのに必要とされる情報を提供します。

Prototype

typedef struct {
  RectangleType bounds;
  Boolean firstTime;
  AttnFlagsType flags;
} AttnCommandDrawDetailArgsType;

フィールド

  • bounds
    • 描くエリアのためのウィンドウから見た相対的な領域を保持します。描画が領域外で起こるのを防ぐために貼り込む領域もこのボックスの寸法にセットされます。
  • firstTime
    • ユーザがまだこのアイテムを見たことがない場合、true にセットします。このフィールドの値は、例えば、ユーザが以前何らかの特別な方法で見たことがないアテンションを表示するために使用される可能性があります。
  • flags
    • このアテンションが開発者によって渡されるカスタム フラグと結合させようとするグローバル ユーザ設定。例えば、グローバル設定はサウンドをミュートするようになっていて、かつ、開発者フラグが両方とも 0 である場合、AttnFlags_NoSound フラグは ON で、AttnFlags_AlowaysSound は OFF です。


AttnCommandDrawListArgsType

AttnCommand_drawList がコールバック関数経由または sysAppLaunchCmdAttention 起動コードを伴うパラメータとしてのどちらかでアプリケーションに渡されるとき、アプリケーションはアテンション ダイアログの中に適切なリスト アイテムを描く必要があります。AttnCommandDrawListArgsType 構造体は AttnCommand_drawList コマンドを伴い、ダイアログの内容を描くのに必要とされる情報を提供します。

Prototype

typedef struct {
  RectangleType bounds;
  Boolean firstTime;
  AttnFlagsType flags;
} AttnCommandDrawListArgsType;

フィールド

  • bounds
    • 描くエリアのためのウィンドウから見た相対的な領域を保持します。描画が領域外で起こるのを防ぐために貼り込む領域もこのボックスの寸法にセットされます。
  • firstTime
    • ユーザがまだこのアイテムを見たことがない場合、true にセットします。このフィールドの値は、例えば、このアテンション アイテムが初めてユーザに表示されるときにカスタム サウンドを引き起こすために使用される可能性があります。
  • flags
    • このアテンションが開発者によって渡されるカスタム フラグと結合させようとするグローバル ユーザ設定。例えば、グローバル設定はサウンドをミュートするようになっていて、かつ、開発者フラグが両方とも 0 である場合、AttnFlags_NoSound フラグは ON で、AttnFlags_AlowaysSound は OFF です。


AttnCommandGotItArgsType

AttnCommand_goIt がコールバック関数経由または sysAppLaunchCmdAttention 起動コードを伴うパラメータとしてのどちらかでアプリケーションに渡されるとき、AttnCommandGotItArgsType 構造体によって伴われて起こります。この構造体は、ユーザがアテンションを解散させたために AttnCommand_goIt コマンドが生成されたのかどうか、または、システムが単純にあなたのアプリケーションに AttnForgetIt() が呼び出されたことを知らせているのかどうかを示します。あなたのアプリケーションは通常、あなたのアプリケーションが AttnForgetIt を呼び出した場合、個者のケースを無視します。

Prototype

typedef struct {
  Boolean dismissedByUser;
} AttnCommandGotItArgsType;

フィールド

  • dismissedByUser
    • true の場合、ユーザがアテンションを解散させたことを示します。false の場合、AttnForgetIt 呼び出しによって AttnCommand_gotIt コマンドが生成されたことを示します。

sysAppLaunchCmdCardLaunch ^TOP^

この起動コードは拡張カードから実行されるアプリケーションに送られます。アプリケーションは、この起動コードを送られるのに先立って、デバイスのメイン メモリにコピーされます。アプリケーションが sysAppLaunchCmdCardLaunch に応答しない場合、そのアプリケーションは sysAppLaunchNormalLaunch 起動コードを送られます。自分自身がアプリケーション拡張カードから起動されているという知識を利用することができるアプリケーションは、sysAppLaunchCmdCardLaunch を伴うパラメータ ブロックのフィールドを調べることを望むかもしれません。

ランチャーが sysAppLaunchCmdCardLaunch をアプリケーションに送るとき、それはまた sysAppLaunchFlagNewGlobals フラグと sysAppLaunchFlagUIApp フラグも送ります。しかしながら、これら 2 つのフラグは start.prc には送られません。アプリケーションは決してこの起動コード受信時にユーザと相互作用すべきではなく、使用可能なグローバル(訳者補足: フラグ?)に依存すべきではありません。この起動コードはアプリケーションにそのアプリケーションがカードから起動されようとしているということを通知することを意図するものです。アプリケーションは通常この起動コード受信時にいくつかの状態情報を保存し、sysAppLaunchNormalLaunch を受信したときはそれらの処理の大部分を実行します。


sysAppLaunchCmdCardLaunch パラメータ ブロック

Prototype

typedef struct {
	Err err;
	UInt16 volRefNum;
	const Char *path;
	UInt16 startFlags;
} SysAppLaunchCmdCardType;

フィールド

  • ← err
    • 始めは expErrUnsupportedOperation にセットされています。sysAppLaunchCmdCardLaunch を認識してその後に続く sysAppLaunchNormalLaunch 起動コードを受信したくないアプリケーションはこのフィールドを errNone にセットすべきです。
  • → volRefNum
    • アプリケーションが起動されようとしているボリュームの参照番号。
  • → path
    • 起動されるアプリケーションへの完全なパス。
  • ←→ startFlags
    • このフィールドは以下のフラグの組み合わせで構成されます:
  • sysAppLaunchStartFlagAutoStart
    • アプリケーションはカードの挿入時に自動的に実行されるということを示します。
  • sysAppLaunchStartFlagNoUISwitch
    • UI がアプリケーションに切り替わるのを防ぐためにこのビットをセットします。
  • sysAppLaunchStartFlagNoAutoDelete
    • 関連するボリュームがアンマウントされたときにVFS マネージャがメイン メモリの中にあるアプリケーションのコピーを削除するのを防ぐためにこのビットをセットします。

sysAppLaunchCmdCountryChange ^TOP^

カントリーの変更に応答します。

アプリケーションは、適切な数区切り文字を使って、数を表示を変更すべきです。これを行うために、LocGetNumberSeparators()|Palm OS Programmer's API Reference/60, StrLocalizeNumber(), StrDelocalizeNumber() を呼び出します。

sysAppLaunchCmdDisplayAlarm ^TOP^

(未訳)

sysAppLaunchCmdExgAskUser ^TOP^

(未訳)

sysAppLaunchCmdExgGetData ^TOP^

(未訳)

sysAppLaunchCmdExgPreview ^TOP^

(未訳)

sysAppLaunchCmdExgReceiveData ^TOP^

(未訳)

sysAppLaunchCmdFind ^TOP^

(未訳)

sysAppLaunchCmdGoTo ^TOP^

(未訳)

sysAppLaunchCmdGoToURL ^TOP^

(未訳)

sysAppLaunchCmdHandleSyncCallApp ^TOP^

ハンドヘルド アプリケーションにコンジットのためのなんらかの処理を行うよう要求するためにコンジットから SyncCallRemoteModule が呼び出されるときに、この起動コマンドはデスクトップ リンク サーバによって送信されます。

この起動コードとともに、あなたは sysAppLaunchCmdHandleSyncCallApp パラメータ ブロックを受け取ります。これはデスクトップの SyncCallRemoteModule に渡されるすべての情報とデスクトップに結果を戻す必要があるフィールドを保持します。DlkControl()|Palm OS Programmer's API Reference/60 呼び出しによってコンジットに結果を返します。この起動コードをどのように扱うかの例は、Palm OS Programmer's API ReferenceDlkControl のコメントを参照してください。


sysAppLaunchCmdHandleSyncCallApp Parameter Block パラメータ ブロック

Prototype

typedef struct 
SysAppLaunchCmdHandleSyncCallAppType {
   UInt16 pbSize;
   UInt16 action;
   void *paramP;
   UInt32 dwParamSize;
   void *dlRefP;
   Boolean handled;
   UInt8 reserved1;
   Err replyErr;
   UInt32 dwReserved1;
   UInt32 dwReserved2;
} SysAppLaunchCmdHandleSyncCallAppType;

フィールド

  • pbSize
    • このパラメータ ブロックのサイズ (バイト数)。sizeof(SysAppLaunchCmdHandleSyncCallAppType) にセットします。
  • action
    • アクション ID 呼び出し (アプリケーション特有)。
  • paramP
    • パラメータ ブロックへのポインタ (アクション ID 呼び出し特有)。
  • dwParamSize
    • パラメータ ブロックのサイズ (バイト数)。
  • dlRefP
  • handled
    • DLServer によって false に初期化されます; ハンドルされた場合、あなたのアプリケーションは true にセットしなければなりません (そして、あなたのハンドラは dlkCtlSendCallAppReply 制御コードで DlkControl を呼び出さなければなりません)。あなたのハンドラがコンジットに応答を反さない場合、このフィールドは false にセットされたままです。そのような場合、DesktopLink サーバ はデフォルトの「未知の要求」 ("unknown request") という応答を送信します。
  • reserved1
    • 予約されています。NULL にセットします。
  • replyErr
  • dwReserved1
    • 予約されています。NULL にセットします。
  • dwReserved2
    • 予約されています。NULL にセットします。

sysAppLaunchCmdInitDatabase ^TOP^

この起動コードは、データベースを作成しなさいという要求への応答として、デスクトップ リンク サーバによって送信されます。これは要求されたデータベースの作成者 ID と一致する作成者 ID を持つアプリーションに送られます。

これはたいてい 'data' データベースがデスクトップからインスールまたはリストアされようとしているときに起こります。この場合、HotSync はデバイス上に新しいデータベースを作成し、sysAppLaunchCmdInitDatabase コマンド経由でそのデータベースをアプリケーションに渡します。これにより、アプリケーションは必要な初期化を実行することができます。それからHotSync は、レコードをデスクトップ データベースからデバイス データベースへ転送します。

HotSync を使用してのデータベースのインストール中に Palm OS アプリケーションがクラッシュする場合、その原因はアプリケーションが sysAppLaunchCmdInitDatabase コマンドを適切に処理していないからかもしれません。特にグローバル変数にアクセスしないように気をつけてください。

システムはデータベースを作成し、それを初期化するためにアプリケーションに贈ります。アプリケーションは必要な初期化を行い、それからそのデータベースをシステムにクローズせずに返さなければなりません。


sysAppLaunchCmdInitDatabase パラメータ ブロック

Prototype

typedef struct {
   DmOpenRef dbP;
   UInt32 creator;
   UInt32 type;
   UInt16 version;
} SysAppLaunchCmdInitDatabaseType;

フィールド

  • dbP
    • データベース参照。
  • creator
    • データベース作成者。
  • type
    • データベース タイプ。
  • version
    • データベース バージョン。

sysAppLaunchCmdLookup ^TOP^

システムまたはアプリケーションが他のアプリケーションからの情報を取得するためにこの起動コマンドを送信します。検索 ("Find") とは対照的に、間接指定のレベルがあります; 例えば、この起動コードを名前入力に基づく電話番号の取得に使用することができます。

この機能は現在のところ標準 Palm OS アドレス帳によってサポートされています。

この起動コードをハンドルすることを決定したアプリケーションは、ユーザが入力した文字列を求めてアプリケーションのデータベースで探索し、起動コードのパラメータ ブロックで指定されている一致操作を行わなければなりません。

アプリケーションがユーザに対して他のアプリケーションの参照を許可することを望む場合、そのアプリケーションはこの起動コード - 一致処理を行うために必要なすべての情報を含む - を適切に送信しなければなりません。この起動コード送信の例は Address.cAppLaunchCmd.h です。これらはあなたの SDK の中に含まれています。


sysAppLaunchCmdLookup パラメータ ブロック

パラメータ ブロックはこの起動コードをサポートするアプリケーションによって定義されます。例として AppLaunchCmd.h を参照してください。

重要
2.0 New Feature Set が存在する場合にのみ実装されます。

sysAppLaunchCmdNormalLaunch ^TOP^

システムまたはアプリケーションがアプリケーションを起動するためにこの起動コードを送信します。この起動コードを受け取ると、アプリケーションはフル起動を行い、そのアプリケーションのユーザ インターフェイスを表示すべきです。この起動コードへの応答としてあなたのアプリケーションを起動することについての詳細は、「通常起動への応答」 を参照してください。

この起動コードの受信時にグローバル変数は利用可能です。

参照

sysAppLaunchCmdCardLaunch

sysAppLaunchCmdNotify ^TOP^

システムまたはアプリケーションがアプリケーションにイベントが起こったことを通知するためにこの起動コードを送信します。パラメータ ブロックは他の適切な情報とともに起こったイベントのタイプを指定します。システムによってどの通知がブロードキャストされるを学ぶには、本書の 「通知」 というタイトルの章を参照してください。

重要
通知 Feature Set が存在する場合にのみ実装されます。


sysAppLaunchCmdNotify パラメータ ブロック

NotifyMgr.h で宣言されている SysNotifyParamType 構造体はこの起動コードのパラメータ ブロックのフォーマットを定義します。「通知」章の中にあるこの構造体の説明を参照してください。

sysAppLaunchCmdOpenDB ^TOP^

あなたは Web Clipping Application Viewer アプリケーションにこの起動コードを送信して、そのアプリケーションを起動し、そのアプリケーションにデバイスに保存されている Palm クエリ アプリケーションをオープン、表示させることができます。これはランチャがクエリ アプリケーションを起動するのに使用するメカニズムと同じものです。

重要
ワイヤレス インタネット Feature Set が存在する場合にのみ実装されます。


sysAppLaunchCmdOpenDB パラメータ ブロック

Prototype

typedef struct {
   UInt16 cardNo;
   LocalID dbID;
} SysAppLaunchCmdOpenDBType;

フィールド

  • cardNo
    • オープンするデータベースのカード番号。
  • dbID
    • オープンするデータベースのデータベース ID。

sysAppLaunchCmdPanelCalledFromApp ^TOP^

sysAppLaunchCmdPanelCalledFromAppsysAppLaunchCmdReturnFromPanel は、アプリケーションがユーザに設定アプリケーションに切り替えることなしに設定を変更させることを許可します。例えば、電卓では、あなたはフォーマット パネルを起動し、数フォーマット設定をセット アップし、それから新しいフォーマットを使用する電卓に直接戻るかもしれません。

sysAppLaunchCmdPanelCalledFromApp は設定パネルに設定アプリケーションから切り替えられたのかどうか、それともあるアプリケーションが変更を行うために呼び出したのかどうかを知らせます。パネルはアプリケーションまたはシステム設定パネルによって所有される設定パネルかもしれません。

この起動コードをハンドルするかもしれないシステム パネルの例として以下のものがあります:

  • ネットワーク パネル (ネットワーク アプリケーションから呼び出されます)
  • モデム パネル (モデム選択が必要な場合に呼び出されます)

すべての設定パネルはこの起動コードをハンドルしなければなりません。パネルがこのコマンドで起動された場合、そのパネルは以下のことをすべきです:

  • Done (終了) ボタンを表示する。
  • 設定アプリケーション内部のナビゲーションのために使用されるパネル切り替えポップ アップ トリガを表示しない
重要
2.0 New Feature Set が存在する場合にのみ実装されます。

sysAppLaunchCmdReturnFromPanel ^TOP^

この起動コードは sysAppLaunchCmdPanelCalledFromApp とのつながりの中で使用されます。これはアプリケーションにユーザが呼び出された設定パネルを完了したしたことを知らせます。システムは、直前に呼び出された設定パネルが存在しているときにこの起動コードをアプリケーションに渡します。

重要
2.0 New Feature Set が存在する場合にのみ実装されます。

sysAppLaunchCmdSaveData ^TOP^

アプリケーションに現在のデータをすべて保存するように指示します。例えば、システムがグローバル検索を実行する前に、アプリケーションはすべてのデータを保存すべきです。

検索コマンドをサポートし、バッファされたデータを持つことができるすべてのアプリケーションはこの起動コードをサポートすべきです。システムはこの起動コードを現在アクティブなアプリケーションに - そのアプリケーションが検索を開始する前に - 送信します。この起動コードを受け取ったアプリケーションは、すべてのバッファされたデータを保存して検索が入力されたテキストと一致するものを見つけられるようにすることによって応答すべきです。


sysAppLaunchCmdSaveData パラメータ ブロック

Prototype

typedef struct {
   Boolean uiComing;
   UInt8 reserved1;
} SysAppLaunchCmdSaveDataType;

フィールド

  • uiComing
    • 起動コードが到着する前にシステム ダイアログが表示される場合は true です。
  • reserved1
    • 将来使用するために予約されています。

sysAppLaunchCmdSyncNotify ^TOP^

この起動コードはアプリケーションに HotSync 操作が起こったことを知らせるためにアプリケーションに送信されます。

この起動コードは HotSync 操作中にデータベースが変更されたアプリケーションにだけ送信されます。 (アプリケーション データベース自体のインストールは変更とみなされます。) レコード データベースは、システムがこの起動コードをどのアプリケーションに送信すればよいのか判断できるようにアプリケーションと同じ作成者 ID を持たなければなりません。

この起動コードはアプリケーションの新しいデータを更新、初期化、検証するための良い機会を提供します。レコードの再ソート、アラームの設定などを行うための機会です。

アプリケーションはデータベースが更新されたときにだけ sysAppLaunchCmdSyncNotify を受け取るので、この起動コードは HotSync 操作が終わるたびに行われるべき操作を実行するためのものとしては適当ではありません。その代わりに、あなたは sysNotifySyncFinishEvent を受け取るために 通知 Feature Set を持つシステムに登録を行うかもしれません。この通知は HotSync 操作の最後に送信され、アプリケーションのデータが変更されたかどうかに関係なくそれを受け取るために登録されているすべてのアプリケーションに送信されます。さらに sysNotifySyncStartEvent 通知もあるということに注意してください。

sysAppLaunchCmdSystemLock ^TOP^

この起動コードはデバイスをロックさせるためのシステム内部セキュリティ アプリケーションに送信されます。

規則として、アプリケーションはこの起動コードに応答する必要はありません。あるアプリケーションがシステム内部セキュリティ アプリケーションと置き換わっている場合、そのアプリケーションはこの起動コードをハンドルしなければなりません。

重要
2.0 New Feature Set が存在する場合にのみ実装されます。

sysAppLaunchCmdSystemReset ^TOP^

この起動コードはシステムのソフト リセットまたはハード リセットに応答するためのものです。

アプリケーションはシステムがリセットされたときに行う必要がある初期化、インデックス付け、その他のセットアップを実行することによってこの起動コードに応答することができます。デバイスのリセットについての更なる情報は、Palm OS Programmer's Companion, vol. I「システムのブートとリセット」 を参照してください。


sysAppLaunchCmdSystemReset パラメータ ブロック

Prototype

typedef struct {
   Boolean hardReset;
   Boolean createDefaultDB;
} SysAppLaunchCmdSystemResetType;

フィールド

  • hardReset
    • システムが hardReset された場合は true。システムが softReset された場合は false
  • createDefaultDB
    • true の場合、アプリケーションはデフォルトのデータベースを作成しなければなりません。

sysAppLaunchCmdTimeChange ^TOP^

この起動コードはユーザによって行われる日時変更に応答するためのものです。

現在の時刻または日付に依存するアプリケーションはこの起動コードに応答する必要があります。例えば、アラームをセットするアプリケーションはシステム タイムが変更された場合にアラームをキャンセルしたり、異なるアラームをセットすることを望むかもしれません。

通知 Feature Set を持つシステムでは、アプリケーションはこの起動コードに応答する代わりに sysNotifyTimeChangeEvent 通知を受け取るために登録を行うべきです。sysAppLaunchCmdTimeChange 起動コードはすべてのアプリケーションに送信されます。sysNotifyTimeChangeEvent 通知はそれを受け取るために登録されているアプリケーションだけに送信されるので、sysAppLaunchCmdTimeChange よりも効率的です。

sysAppLaunchCmdURLParams ^TOP^

この起動コードは Web Clipping Viewer アプリケーションから他のアプリケーションを起動するために送信されます。

(以下未訳)

起動フラグ ^TOP^

アプリケーションがなんらかの起動コマンドを伴って起動される場合、起動フラグのセットも渡されます。

アプリケーションは、たとえもしそのアプリケーションが起動コードをハンドルする場合であっても、フラグを無視するかもしれません。起動フラグを使用するアプリケーションのために、以下の表は追加情報を提供します:


表 1.3 起動フラグ

フラグ 機能
sysAppLaunchFlagNewGlobals システムがアプリケーションのために新しいグローバル変数の集まり (?) (原文では "globals world") を作成し、初期化した場合にセットされます。メモリ チャンクに対して新しい所有者 ID を適用します。
sysAppLaunchFlagUIApp UI アプリケーションが起動されようとしている場合にセットされます。
sysAppLaunchFlagSubCall アプリケーションがサブルーチン呼び出しとしてそのアプリケーションのエントリ ポイントを呼び出している場合にセットされます。これは起動コードに A5 (グローバル) ポインタを呼び出しの間に有効に保っておくことができるということを知らせます。このフラグがセットされている場合、アプリケーションはすでに現在のアプリケーションとして実行されているということを意味します。
重要
アプリケーションは起動コードを他のアプリケーションに送信するときに決して起動フラグをセットすべきではありません。起動フラグはシステムだけがセットします。特に、あなたは SysAppLaunch に対する起動フラグとして sysAppLaunchFlagNewGlobals を渡すことは決してすべきではありません。そのような呼び出しを繰り返した場合、最数的にシステムは所有者 ID の不足を引き起こし、新しいアプリケーションの起動は失敗します。

← 0 章に戻る ↑トップへ 2 章に進む →