Lesson 6 COM、式の構文、その他

3. 書式指定文字列

コントロールのテキストに表示されるテキストは書式指定をすることが出来ます。 角括弧に入れたプロパティ名は既に使用しましたが、そのあたりにはもう少し複雑な規則もあります。 まず、[Property] においてプロパティ名が有効でない場合は、全体の部分文字列が変更されずに残されます。

この規則は角括弧が入れ子になっている場合はいくらか違うものになります。 [[Property]] という書式は、最初に Property を検索して、その値を別のプロパティ名として使い、その第二のプロパティを検索します。 二つのプロパティ名のうちのどちらかでも見付からなかった場合には、全体の部分文字列は空文字であると見なされます。

特別な意味を持った文字(たとえば角括弧)を通常の文字として示すためには、バックスラッシュをエスケープ文字として使って、角括弧に入れます。

訳註:例えば、[[\[]][\]]

[~] という部分文字列は、ヌル文字に置き換えられます。 これによって、REG_MULTI_SZ のレジストリ文字列をコンパイルすることが可能になります。

[#filekey] という表記法は、指定された Id を持つファイルのフル・パスを返します。 ただし、これは、 CostInitialize, FileCost または CostFinalize が走った後に限ってのことです。 パスは、ファイルが含まれるコンポーネントがローカルにインストールされるか、ソースから実行されるかによって、左右されます。

[$componentkey] という表記法は、指定されたコンポーネントのインストール先ディレクトリを返します。 ただし、これも、 CostInitialize, FileCost または CostFinalize が走った後に限ってのことです。 パスは、コンポーネントがローカルにインストールされるか、ソースから実行されるかによって、左右されます。

[!filekey] という表記法は、通常は [#filekey] と等価な表記法ですが、 Registry または IniFile のタグの Value 属性の値として使われた場合には、ファイルの短い形式 (8.3形式) のフル・パスを返します。

ツールセットのいろいろな部分(コンパイラやリンカ)は固有のプリプロセッサを持っていて、 外部的に (つまり、コマンド・ラインで) 定義した文字列をソースに注入して使うことが出来るようになっています。 コンパイラ Candle$(var.Foo) という構文を使います。 ソース・ファイル自身の中で値を設定するためには、下記のように記述します。

<?define Foo=bar?>

コマンド・ライン・スイッチで設定する場合は、次のようにします。

candle -dFoo=bar

Light、すなわちリンカも同様な仕組みを持っていますが、構文がほんの少し異なっていて、!(wix.Foo) となります — コマンド・ラインは同じです。

light -dFoo=bar

地域化される文字列は、!(loc.Foo) という表記法を使います。 リンカは、これらの文字列が .wxl 地域化ファイルの中で、下記の構文で定義されているものとします。

<String Id="Foo" Overridable="yes">bar</String>

地域化ファイルもコマンド・ラインで指定します。

light -loc path path

地域化文字列とその他の文字列の主な違いは、地域化文字列はオーバーライド可能な性格を持っていることです。 ライブラリや拡張モジュールが地域化文字列の既定値を持つことが出来る一方で、それを後のリンクの過程でオーバーライドすることが出来ます。

これらの値を Windows Installer の通常のプロパティに割り当てるためには、どの場合も、Property タグを使って下さい。

<Property Id="Foo1" Value="$(var.Foo)" />
<Property Id="Foo2" Value="!(wix.Foo)" />
<Property Id="Foo3" Value="$(env.Foo)" />

環境変数は、コンパイラでもリンカでも、$(env.Foo) という構文でアクセスすることが出来ます。

↑ 先頭  |  • 目次  |  « 前へ  |  次へ »  |  ∗ 原文

Table of Contents

1 始めよう

  1. ソフトウェア・パッケージ
  2. 中に入るファイル
  3. 使用に供する
  4. 便利な追加機能
  5. どこにインストールするか
  6. 条件付きインストール
  7. ファイルだけでなく
  8. 削除時の孤児化

2 ユーザー・インタフェイス

  1. 最初のステップ
  2. カスタムの設定
  3. UI の魔法
  4. 英語はわかりますか
  5. チェーンの新しい環
  6. 地域化を考える

3 イベントとアクション

  1. 列に並んで
  2. 追加のアクション
  3. 本に書かれていないこと
  4. コントロールをコントロールせよ
  5. マネージする方法
  6. 後の段階で

4 アップグレードとモジュラー化

  1. 古いのを探す
  2. 自分自身を置き換える
  3. パッチワーク
  4. 断片
  5. 融合するもの

5 Net と .NET

  1. .NET の枠組み
  2. ブートストラップ
  3. インターネットを起動する
  4. ウェブ・ディレクトリ
  5. サービスの提供

6 COM、式の構文、その他

  1. 違う色のコンポーネント
  2. 式の構文
  3. 書式指定文字列
  4. DDE 接続
  5. ディレクトリの作成
  6. 複数メディアのインストーラ
  7. プログラムの追加と削除の項目
  8. 新顔のユーザー
  9. 環境に優しく
  10. XML
  11. COM+ アプリケーション
  12. バージョンごとに

7 SQL

  1. データベースを作成する

8 ユーザー・インタフェイス再び

  1. 一つだけのダイアログ
  2. チューニング・アップ
  3. 相互作用
  4. カスタマイズがいっぱい
  5. これが進捗ですか
  6. よく出来ました
  7. 法律用語
  8. 順番外
  9. 英語はわかりませんか

9 トランスフォーム

  1. インストーラを変形する

10 標準ライブラリ

  1. カスタム・アクションとユーザー・インタフェイス
  2. お静かに願います