*aAppData)nsXULAppAPI.hnsXREAppData構造体apprunnerを開始するために必要なアプリケーション固有のデータ。statusはFROZEN。追加フィールドが構造体の最後に将来的に追加される可能性有り。nsXREAppDataのバージョンの実行時検出はsizeフィールドを調べることで行われ得る。確保され、インターフェースへのポインタは強い参照になる。sizeこの変数はsizeof(nsXULAppData)にセットされる。換性の維持を保証する。directoryアプリケーションが実行されるディレクトリ。XULRunnerとアプリケーションが同じディレクトリにインストールされた時はNULLでもよい。*vendorアプリケーションベンダの名前。ASCIIでなければならず、通常は「Mozilla」のように大文字と小文字が混ざる。これをセットすることが強く推奨される。空文字列であってはならない。*nameアプリケーションの名前。ASCIIでなければならず、通常は「Firefox」のように大文字と小文字が混ざる。*version「0.8.0+」のようなメジャーバージョンを示す。空文字列であってはいけない。*IDアプリケーションのUUID。互換性のある拡張機能を判断するために拡張マネージャによって使われる。デート機構のような、より進んだ機能のためには必要である。"appname@vendor.tld"というような、より読みやすい形式が推奨される。次に示す記号のみが許される。flags次章で示すNS_XRE_*定数の組み合わせ。xreDirectoryXREのある場所。XRE_mainは自動的にこれを見つけることはできない。*maxVersion互換性のある最小/最大のXREのバージョン。*crashReporterURLクラッシュレポートを送るURL。*profileプロファイルのディレクトリ。NULLでもよいが、空文字列であってはならない。ASCIIでなければならない。Pathは/と\で区切られる。2プロファイルを作るとき、プロファイル移行ウィザードサービスが呼び出されるかを示す。4拡張機能マネージャが起動時に初期化されるかを示す。8Breakpadによるクラッシュ報告を使うかを示す。"@mozilla.org/xre/app-info;1"nsIXULAppInfoのContractID。"XREExtDL"有効な拡張機能のリストを提供するディレクトリサービスキー。リストには互換性のあるプラットフォーム固有の拡張機能のサブディレクトリを含む。註1ディレクトリリストはアプリケーションがセーフモードで開始された時にはメンバに何も持たない。"XREExeF"現在のプロセスを実行するために使われている実行ファイルのディレクトリサービスキーを提供する。これは下記で定義されるXRE_GetBinaryPath関数で返される値と同じである。"ProfDS"プロファイルディレクトリを定めるディレクトリサービスキー。開始される前、またはシャットダウンされた後でも利用可能である。ダイアログを表示しているとき)、このキーは利用できない。apprunnerまたはXRE_InitEmbeddingに渡されるaAppDirProviderによって提供される。"ProfLDS"プロファイルディレクトリを定めるディレクトリサービスキー。ロファイルが開始される前、またはシャットダウンされた後でも利用可能である。ファイル選択ダイアログを表示しているとき)、このキーは利用できない。apprunnerまたはXRE_InitEmbeddingに渡されるaAppDirProviderによって提供される。sAppData)XULアプリケーションを開始する。ユーザがアプリケーションを終了しない限り返らない。argc/argvアプリケーションに渡すコマンドライン引数。文字コードはOSネイティブなものを使う。aAppDataこれから実行するアプリケーションに関する情報。返り値main()から返るときの、ネイティブな最適な返り値。註2bsmedbergによる注釈。「まだ誰もglueを使ってないけれど、潜在的な問題があるよ。glueはSetCurrentDirectoryを呼ぶので、コマンドラインの相対パスがおかしくなる。*aResult)カレントディレクトリからの相対パス、または絶対パスから、nsILocalFileオブジェクトを生成する。*aResult)実行中のアプリケーションのパスを取得し、aResultに格納する。argv0main()のargv[0]として渡される値。*aComponentCount)libxulにビルトインされた静的コンポーネントを得る。*aLockObject)プラットフォーム固有の手法でプロファイルディレクトリをロックする。引数aDirectoryロックするプロファイル。引数aLockObjectopaqueなロックオブジェクト(訳注:何て意味?)。プロファイルディレクトリはこのXPCOMへの参照が保持される限りロックされる。aStaticComponentCount)libXULを組み込み用途に初期化する。引数aLibXULDirectorylibXUL共有ライブラリが入っているディレクトリ。引数aAppDirectoryアプリケーションのコンポーネントとリソースが入っているディレクトリ。レクトリサービスにマップされるだろう。引数aAppDirProviderアプリケーションのディレクトリプロバイダ。aggregateされるだろう(訳注:ちょっと訳文がおかしい)。引数aStaticComponents組み込みアプリケーションによって提供される静的コンポーネント。これはXRE_GetStaticComponentsからのコンポーネントを含んではいけない。ポーネントが無ければNULLである。引数aStaticComponentCountaStaticComponentsに含まれる静的コンポーネントの数。註1この関数はメインスレッドから呼ばれなければならない。註2現在、この関数はプロセスあたり1回しか呼んではいけない。XRE_InitEmbeddingで確保されたリソースを解放するにはXRE_TermEmbeddingを使う。XRE_NotifyProfile()toolkitに新しいプロファイルを伝える通知を出す。このメソッドは、もしプロファイルとともに実行したい場合にはXRE_InitEmbeddingが呼ばれた後に呼ぶべきである。ディレクトリをロックするためにXRE_LockProfileDirectoryを呼ぶべきである。profile:註1プロファイルの選択には以下の2つの可能性がある。1)XRE_InitEmbeddingを呼ぶ前にプロファイルを選択する。NS_APP_USER_PROFILE_50_DIRキーを提供すべきであり、次のキーも提供するかもしれない。NS_APP_USER_PROFILE_LOCAL_50_DIRNS_APP_PROFILE_DIR_STARTUPNS_APP_PROFILE_LOCAL_DIR_STARTUPこのシナリオでは、XRE_NotifyProfileはXRE_InitEmbeddingの後すぐ呼ばれるべきである。JSコンポーネントはfastloadキャッシュに保存されるかもしれない。2)XRE_InitEmbeddingの後のあるタイミングで呼ぶ。供するディレクトリサービスプロバイダをインストールしなければならない。NS_APP_USER_PROFILE_50_DIRNS_APP_USER_PROFILE_LOCAL_50_DIR(オプショナル)コンポーネント登録情報はアプリケーションディレクトリに格納され、JSコンポーネントはfastloadには格納されないだろう。XRE_TermEmbedding()XRE_InitEmbeddingまたはXRE_InitEmbedding2で開始された組み込みを終了する。**aAppData)application.iniファイルからnsXREAppData構造体を新しく生成する。引数aINIFileパースするapplication.ini。引数aAppData新しく確保されるnsXREAppData構造体。これを確保したら、XRE_FreeAppDataで必ず解放する必要がある。override.ini)をパースする。引数aINIFileパースするINIファイル引数aAppDataパース結果を入れるnsXREAppData構造体。*aAppData)XRE_CreateAppDataで確保したnsXREAppData構造体を解放する。