XrmCombineDatabase(3) リソースデータベースをマージする

Other Alias

XrmMergeDatabases, XrmCombineFileDatabase

書式

void XrmMergeDatabases(source_db, target_db)

      XrmDatabase source_db, *target_db;

void XrmCombineDatabase(source_db, target_db, override)

      XrmDatabase source_db, *target_db;

      Bool override;

Status XrmCombineFileDatabase(filename, target_db, override)

      char *filename;

      XrmDatabase *target_db;

      Bool override;

引き数

source_db
対象となるデータベースにマージされるリソースデータベースを指定する。
target_db
元のデータベースがマージされる先のリソースデータベースを指定する。
filename
リソースデータベースのファイル名を指定する。
override
マージ元のエントリーがマージ先のエントリーを上書きするかどうかを指定する。

説明

関数 XrmMergeDatabases を呼ぶことは、引き数 override に True を指定して関数 XrmCombineDatabase を呼ぶことと等価である。

関数 XrmCombineDatabase は、あるデータベースの内容を他のデータベースにマージする。 あるエントリーについて、2つのデータベースが同じ指示子を用いている場合、 引き数 override が True ならば、target_db のエントリーは source_db のエントリーに置き換えられる。 そうでない場合、source_db のエントリーは破棄される。 target_db が NULL の場合、 XrmCombineDatabase は単に source_db の内容を target_db に格納する。 そうでない場合、source_db はマージによって破壊されるが、target_db が指 すデータベースは破壊されない。 データベースそれぞれのロケールに関係なく、データベースは値やタイプの変 更をすることなくマージされる。 マージ先のデータベースのロケールは変更されない。

関数 XrmCombineFileDatabase は、リソースファイルの内容をデータベースにマージする。 あるエントリーについて、ファイルとデータベースが同じ指示子を用いている 場合、引き数 override が True ならば、データベースのエントリーはファイルのエントリーに置き換えられる。 そうでない場合、ファイルのエントリーは破棄される。 ファイルは現在のロケールで展開される。 ファイルを読み込むことができない場合、ステータスとして 0 が返される。 そうでない場合には、0 でないステータスが返される。 target_db が NULL の場合、 XrmCombineFileDatabase はこれに対する新しいデータベースを作成して返す。 そうでない場合、target_db が指すデータベースはマージによって破壊される ことはない。 データベースのロケールに関係なく、データベースのエントリーの値や型は変 更されることなくマージされる。 マージ先のデータベースのロケールは変更されない。