Fortran COM Server Wizard の使用

この節は,プロジェクトの作成,COM サーバーの特徴の指定,コードの生成,および Adder と呼ばれる Fortran COM Server プロジェクトの例の実装について説明します。この節には,以下のトピックがあります。

Developer Studio Add-in としての Fortran COM Server の指定

Fortran COM Server Wizard は,Developer Studio Add-in として実装されています。Visual Fortran をインストール後,自分のシステムに Fortran COM Server Wizard を登録し,ロードする必要があります。まだそれを行っていない場合,以下のようにしてください。

  1. 「Tools」メニューで「Customize」をクリックします。

  2. 「Add-ins and Macro Files」タブをクリックします。

  3. 一覧中に「Fortran COM Server Wizard」が表示されていれば,「Fortran COM Server Wizard」のチェックボックスをクリックします。

  4. 表示されていなければ,「Browse」ボタンをクリックして,...\Microsoft Visual Studio\Common\MSDev98\Addins\Df98\ ディレクトリにある CSAddin.dll ファイルを探します。

  5. 「Close」ボタンをクリックします。

自分のシステムで 1 度だけこの手続を実行します。

Fortran COM Server プロジェクトの作成

Fortran COM Server を作成する第 1 ステップは,新しいプロジェクトを作成することです。Developer Studio を起動します。「File」メニューから「New」をクリックします。

「New」ダイアログボックスで,下図のように「Fortran COM Server」プロジェクト・タイプを選択 (クリック) します (Microsoft Visual C++ がインストールされているシステムでは,これ以上のプロジェクト・タイプが表示されます)。

Fortran COM Server Wizard は,Developer Studio Add-in として実装されており,自分のシステムに登録され,ロードされていなければなりません。「The Fortran COM Server Wizard Add-in is not loaded into Developer Studio ...」で始まるメッセージを受領した場合,「Developer Studio Add-in としての Fortran COM Server の指定」の説明に従ってください。

この例の場合:

  1. プロジェクトの名前として Adder を入力します。

  2. 表示されているプロジェクト・フォルダ位置をそのまま使うか,変更します。

  3. 「OK」ボタンをクリックします。(「<Back」ボタンをクリックすると,前に表示された画面に戻り,プロジェクト名,場所,プロジェクト・タイプを変更することができます。)

作成される Fortran COM Server プロジェクトの初期属性を定義するには,付加的な情報が要求されます。次図は,Fortran COM Server AppWizard を示しています。(他のプロジェクト・タイプと同様に) プロジェクト・ファイルおよび骨格テンプレートを作成するためにプロジェクト単位にプロジェクトの AppWizard を使用します。Fortran COM Server AppWizard は,サーバー・タイプ (DLL または EXE),クラス名,インタフェース名,およびクラス構造体名を要求します。

この例の場合:

  1. 基本サーバー・タイプ (DLL) をそのまま使用します。

  2. クラス名として AddingMachine をタイプします。基本インタフェース名と基本クラス構造型名として基本テキストが表示されます。

  3. 基本インタフェース名を IAdd に変更します。

  4. 基本クラス構造体名はそのまま使用します。

  5. 「Finish」ボタンをクリックします。(「Cancel」をクリックすると,プロジェクト作成が終了します。)

このプロジェクトに対して作成された位置,テンプレート情報をまとめた「New Prioject Information」画面が表示されます。

「OK」をクリックした後,プロジェクトが作成され,Fortran COM Server Wizard が表示されます。

COM サーバーを定義するための Fortran COM Server Wizard の使用

Fortran COM Server Wizard は,COM サーバーの属性を会話形式で定義します。クラス,インタフェース,メソッドなどを定義したり,名前をつけたりすることができます。ユーザー・インタフェースには 2 つのペインがあります。

Fortran COM Server Wizard は,Fortran COM Server AppWizard から自動的に呼び出されます。そのため,サーバーの初期定義を入力することができます。この時点で完全なサーバーを定義することもできますが,必ず定義しなければならないということはありません。プロジェクトを部分的に定義し,プロジェクト・ワークスペースを閉じることができます。後で,Developer Studio を起動し,プロジェクト・ワークスペースを開いた後,「View」メニューから「Fortran COM Server Wizard」メニューを選択して Fortran COM Server Wizard を起動することができます。

COM サーバーの例では,Fortran COM Server Wizard の初期画面が表示され,タイプ・ライブラリーの GUID とタイプ・ライブラリーのバージョンを表示しています。

この場合,IAdd インタフェース名を選択するために階層を拡張する必要があります。以下のようにします。

  1. COM サーバー名 (およびプロジェクト名) Adder を開くためにプラス記号 (+) をクリックします。

  2. クラス名 AddingMachine を開くためにプラス記号 (+) をクリックします。

  3. インタフェース名 IAdd をクリックします。

次図のような画面が表示されます。

「Dual Interface」チェックボックスにチェックがある場合,「Dual Interface」をクリックしてチェックを取り除きます。Adder 例は,COM サーバー・インタフェースのみをサポートしています。

階層は,以下のようになります。

クラス,インタフェース,メソッド,プロパティまたは引数を追加するための Fortran COM Server Wizard グラフィカル・ユーザー・インタフェースの使用方法

  1. 親の項目を選択します。

  2. 「Add」ボタンをクリックします。

  3. 要求する名前 (および他の要求するテキスト) をタイプします。

  4. 「OK」をクリックします。

項目を削除する方法

  1. 削除したい項目を選択します。

  2. 「Delete」ボタンをクリックします。

Adder COM サーバーの例に対して,IAdd インタフェースにメソッドを追加します。

  1. IAdd インタフェースが選択 (強調表示) されていることを確認します。

  2. 「New」ボタンをクリックします。

次図が表示されます。

表示される活動状態ボタンは,階層で選択 (強調表示) された項目 (COM サーバー,クラス,インタフェース,メソッド,または引数) に依存します。活動状態ボタンは,現在のコンテキストで有効なタイプを表わします。たとえば,「Argument」ボタンは,インタフェースが選択されているので,活動状態ではありません。引数はメソッドに追加されなければなりません。

この例の場合:

  1. 「Method」タイプを選択します。

  2. IAdd インタフェースの第 1 メソッドの名前として Clear をタイプします。

  3. 「OK」をクリックします。

Clear メソッドが引数を取らないため,Add という名前の第 2 メソッドを追加することができます。

  1. IAdd インタフェースをクリック (選択) します。

  2. 「New」ボタンをクリックします。

  3. 第 2 メソッド名として Add をタイプします。

  4. 「OK」をクリックします。

Add メソッドは,引数を要求します。Operand という名前を引数につけます。Operand 引数を追加するには,以下のようにします。

  1. Add メソッドをクリック (選択) します。

  2. 「New」ボタンをクリックします。

  3. 引数名として Operand をタイプします。

  4. 「OK」をクリックします。

「OK」をクリックする前に,以下の画面が表示されます。

「OK」をクリックすると,Fortran COM Server Wizard は Operand 引数を追加し,そのプロパティを表示します。

引数の基本データ型は,INTEGER(4) です。

この例の場合:

  1. データ型を REAL(4) に変更するために「Fortran data type」コンボボックスを使用します (以下のようにします)。

  2. 「Interface data type」と「Intent」は基本値のままにしておきます。

最後のメソッドを追加します。

  1. IAdd インタフェースをクリック (選択) します。

  2. 「New」ボタンをクリックします。

  3. メソッド名として GetValue をタイプします。

  4. 「OK」をクリックします。

GetValue メソッドは,引数を要求します。引数に CurrentValue という名前をつけます。CurrentValue 引数を追加するには,以下のようにします。

  1. GetValue メソッドを選択します。

  2. 「New」ボタンをクリックします。

  3. 引数名として CurrentValue をタイプします。

  4. 「OK」をクリックします。

CurrentValue に対して,以下の設定を行います。

  1. データ型を REAL(4) に変更するため「Fortran data type」コンボボックスを使用します。

  2. 「Interface data type」を基本値のままにしておきます。

  3. 「Intent」を「Out」に変更します。

  4. 「Return Value」チェックボックスをクリックします。

次図が表示されます。

この例では,サーバー定義が今終了しました。「Save」ボタンをクリックして,Fortran COM Server Wizard を終了します。TODO.TXT ファイルを含む生成したコードの修正を可能にするために,プロジェクトが開かれます。

サーバー,クラス,インタフェース,メソッド,引数,またはインスタンス・プロパティに対するプロパティ・ページ (右ペイン) についての詳細は,「プロパティ・ページの記述」を参照してください。

後でサーバーの定義を変更するには,「View」メニューの「Fortran COM Server Wizard」を選択します。

プロパティの追加

メソッドに加えて,インタフェースはプロパティを含んでいます。プロパティは,オブジェクトの状態に関する情報を設定するまたは返すメソッドの組です。一般的に,プロパティはオブジェクトの構造体の欄に対応しています。たとえば,AddingMachine の例では,GetValue (および SetValue) メソッドよりは CurrentValue プロパティを使用します。

プロパティは,主にオートメーションの概念です。COM インタフェースでは,プロパティは 1 つまたは 2 つのメソッドとして実装されています。

プロパティは,読み取り専用または書き込み専用として定義することができます。この場合,1 つの get_ または put_ メソッドのみになります。

メソッドよりもプロパティとしてインタフェース・メンバを定義することは,サーバーのクライアントが使用する構文に影響します。たとえば,Visual Basic は,メソッドを呼び出す構文とは異なったプロパティの取り出し,書き込み構文を使用します。クライアント言語が特有のプロパティ構文を持っている場合,一般的に,呼び出しよりもむしろ記録の欄の設定によく似ています。

インタフェースにプロパティを追加する方法

  1. 階層ペインのインタフェースをクリック (選択) します。

  2. 「New」ボタンをクリックします。「New」ダイアログボックスが表示されます。以下の作業を行います。

    • プロパティ・タイプを選択します。

    • プロパティ名をタイプします。以下の画面が表示されています。

    • 「OK」をクリックします。以下の画面が表示されます。

  3. 「New Property」ダイアログボックスで,プロパティの属性を定義します。これには,以下が含まれます。

    • プロパティが get_put_ メソッドの両方を持つかどうかを決定します。

    • プロパティの整数オートメーション識別子を入力します。

    • プロパティのデータ型を決定します。

  4. 「OK」をクリックします。

1 つまたは 2 つのメソッドをインタフェースに追加することができます。get_put_ メソッドの両方を選択すると,2 つのメソッドが追加されます。それが読み取り専用または書き込み専用の場合, 1 つのメソッドが追加されます。プロパティ・メソッドとプロパティ値を識別する引数は,完全に定義され,修正する必要はありません。

一般に,プロパティ・メソッドは,プロパティ値を表わす単一引数のみを持ちます。意味があれば,別の引数を追加することができます。たとえば,プロパティが値の配列で,整数指標引数がプロパティ・メソッドに追加される場合には,別の引数が追加されるかもしれません。

別の引数をプロパティ・メソッドに追加する時,プロパティ値引数の前にそれらが追加されていることを確認してください。つまり,プロパティ値引数は,常にプロパティ・メソッドの最後の引数でなければなりません。引数の順番を変更するには,階層ペインでドラッグ・アンド・ドロップを使用します。メソッド中の順番は,常に階層ペインでの出現順になります。

階層ペインでの作業

AddingMachine の例で見たように,階層ペインはサーバー,つまり,クラス,インタフェース,メソッドなどの定義を表わします。階層ペインのユーザー・インタフェースは,以下の機能をサポートしています。

領域の拡張/短縮 Fortran COM Server Wizard が最初に表示されるとき,階層は完全に短縮されています。項目の子を表示するには,項目の横のプラス記号 (+) をクリックします。この時点で,プラス記号 (+) はマイナス記号 (-) に代わります。子を隠すにはマイナス記号 (-) をクリックします。項目でダブルクリックすることによっても,拡張/短縮状態の切り替えを行うことができます。
新しいエントリの追加 階層に新しいエントリを追加するには,階層中の新しいエントリの前のエントリを選択します。「New...」ボタンをクリックするか,階層ペインのポップアップ・コンテンツ・メニューを表示するために,右マウス・ボタンをクリックして,コンテンツ・メニューの「New...」エントリの 1 つを選択します。
エントリの削除 階層からエントリを削除するには,削除したい項目を選択します。「Delete」ボタンをクリックするか,階層ペインのポップアップ・コンテンツ・メニューを表示するために,右マウス・ボタンをクリックして,コンテンツ・メニューの「Delete」エントリを選択します。確認ダイアログボックスが表示され,選択したエントリを削除するかどうかの確認を行います。項目が削除されると,項目の全ての子は,削除されます。
メンバ名の変更 階層のエントリの名前を変更するには,名前を変更したい項目を選択します。数秒待って (ダブルクリックとの混乱を避けるため),もう一度項目をクリックします。名前を変更できるように項目名がエディット・モードになります。名前の編集が終了すると,Enter を押します。
項目の順番の変更 階層のエントリの順番は,大変重要です。特に以下のものが重要です。
  • インタフェースのメソッドの順番は,クラスの VTBL でのメソッドの順番を定義します。メソッドの順番を変更すると,既存のクライアントが実行できなくなります。

  • メソッドの引数の順番は,メソッドのインタフェースの引数の順番を定義します。引数の順番を変更すると,既存のクライアントが実行できなくなります。

階層ペインは,項目の順番を変更できるように,ドラッグ・アンド・ドロップをサポートしています。項目を移動するには,項目をクリックしドラッグして,階層中の起きたい場所の項目にドロップします。

プロパティ・ページの記述

プロパティ・ページは,Fortran COM Server Wizard ウィンドウの右ペインに表示されます。以下の異なったプロパティ・ページに適用されます。

サーバー・プロパティ

Type Library GUID サーバーのタイプ・ライブラリーのユニークな識別子です。Fortran COM Server Wizard が生成した基本値からこれを変更する理由は一般にはありません。
Type Library Version タイプ・ライブラリーの現在のバージョンです。

クラス・プロパティ

ProgID クラスに対するプログラム ID (またはテキスト別名) に独立したバージョンです。ProgID は,COMCreateObjectByProgID のような呼び出しで使用することができます。
Version クラスの現在のバージョンです。バージョン特有の ProgID を定義するために ProgID に追加されます。
Short name クラスの短縮名です。生成したファイル名に使用されます。
Description レジストリのクラスの ProgID キーの基本値として使用される文字列です。この文字列は,システムに登録されているオブジェクトの一覧を表示する「OLE-COM Object Viewer」のようなツールでよく使用されます。
Help String IDL ファイル中のクラスのヘルプ文字列属性を設定するための文字列です。
Threading model クラスのスレッド化モデルです。2 つの選択肢は「Apartment」と「Single」です。この選択肢の実装についての詳細は,「COM サーバーの詳細説明」の「スレッド化モデル」を参照してください。
CLSID クラスのユニークな識別子です。Fortran COM Server Wizard が生成した基本値からこれを変更する理由が一般にはありません。

インタフェース・プロパティ

Dual Interface チェックされていると,デュアル・インタフェース属性が IDL ファイルに設定されます。デュアル・インタフェースは,COM とオートメーション・クライアントの両方をサポートします。
Uses only Automation data types チェックされていると,インタフェースは,「メソッドとプロパティのデータ型」で説明しているオートメーション互換データ型のみを使用します。
Default interface チェックされていると,基本インタフェース属性が IDL ファイルのこのインタフェースに設定されます。基本属性は,オブジェクトの基本プログラム可能インタフェースを表わし,マクロ言語でよく使われます。
Help String IDL ファイルのインタフェースのヘルプ文字列属性を設定するために使用する文字列です。
IID インタフェースのユニークな識別子です。Fortran COM Server Wizard が生成した基本値からこれを変更する理由が一般にはありません。

メソッド・プロパティ

ID オートメーション・クライアントが使用するメソッドの識別子です。
Help string IDL ファイルのメソッドのヘルプ文字列属性を設定するために使用する文字列です。
Property Method チェックされていると,メソッドはプロパティの get_ または put_ メソッドです。

引数プロパティ

Fortran data type 引数の Fortran データ型です。一覧からデータ型の 1 つを選択するか,データ型をタイプします。選択肢の実装については,「メソッドとプロパティのデータ型」を参照してください。
Interface data type IDL データ型です。既定の一覧から Fortran データ型の 1 つを選択すると,この欄は対応する IDL データ型に基本値が変わります。一覧からデータ型の 1 つを選択するか,データ型をタイプします。選択肢の実装については,「メソッドとプロパティのデータ型」を参照してください。
Intent 引数の INTENT は,以下の一覧の 1 つです。
  • In - 引数値をメソッドは読めますが修正できません。

  • Out - 引数値をメソッドは読めませんが修正できます。

  • InOut - 引数値をメソッドは読むことも修正することもできます。

By Reference 引数が値渡しではなく参照渡しで渡されることを示します。「Intent In」の時のみ有効です。「Intent Out」および「Intent InOut」の時には,自動的に参照渡しになります。
Return Value チェックされていると,引数はメソッドの返り値を表わします。「Intent Out」の時のみ有効です。
Array argument チェックされていると,引数はスカラ引数ではなく配列になります。チェックすると,配列の形状を記述する「Array Description」の欄を埋めなければなりません。
Optional argument チェックされていると,引数は省略可能になります。省略可能引数は,Variant データ型を使って渡されます。
Array Description 欄 これらの欄は,配列引数の形状を記述します。「Array arugment」がチェックされている時のみ活動状態になります。

インスタンス・タイプ・プロパティ

Module UclassnameTY.f90 ファイルに定義されるモジュールの名前として使用されます。
Constructor UclassnameTY.f90 ファイルに定義されるクラス・コンストラクタの名前として使用されます。
Destructor UclassnameTY.f90 ファイルに定義されるクラス・デストラクタの名前として使用されます。

生成したコードの修正

Fortran COM Server Wizard を終了するために「Save」ボタンをクリックするか,プロジェクト・ワークスペースを開いた後,TODO.TXT ファイルを含んだプロジェクトが表示されます。

TODO.TXT ファイルは,Fortran COM Server Wizard がプロジェクトに加えた修正の情報を示し,変更を加える必要があるときを知らせます。Fortran COM Server Wizard を始めて呼び出した後,TODO.TXT ファイルはプロジェクトに追加されたファイルの一覧を示します。ソース・ファイルは,「FileView」ペインの 2 つのフォルダに追加されます。

以下をクリックします。

  1. Addr ファイル行のプラス記号 (+)

  2. 「Source Files」フォルダのプラス記号 (+)

プロジェクト画面が以下のように表示されます。

「Source Files」フォルダ中の 2 ファイルをテキスト・エディタで編集する必要があります。

ファイル UAddingMachineTY.f90 をまず修正します。ファイル UAddingMachineTY.f90 を修正するには,「FileView」ペインのこのファイル名をダブルクリックするか,「File」メニューの「Open」を使用します。元ファイル UAddingMachineTY.f90 には以下のコードが含まれています。

Uclass-nameTY.f90 という名前のファイルは,サーバーが定義する各クラスに対して作成されます。ファイルは,AddingMachine_USE と名前の付いたモジュール (classname_USE という形式で) を含んでいます。自分のクラスに特有なコードを追加する必要のある場所がこのモジュールに 3 個所あります。

他のソース・ファイル UIAdd.f90 を修正します。「FileView」ペインのこのファイル名をダブルクリックするか,「File」メニューの「Open」を選択します。元ファイル UIAdd.f90 には,以下のコードが含まれます。

名前 Uinterfacename.f90 を持つファイル (たとえば,UIadd.f90) は,クラスが定義するインタフェース毎に作成されます。ファイルは,クラスのメソッドを含んでいます。各メソッドは,interfacename_methodname という名前が付けられています。たとえば,"IAdd_Clear" です。各メソッドは,第 1 引数としてクラス構造型を渡す関数です。これは,オブジェクト毎のデータを参照する関数に与えます。各関数は,HRESULT と呼ばれる 32 ビット COM 状態コードを返します。S_OK は,成功状態を定義するパラメタです。COM 状態コードの詳細は,「COM 状態コード:HRESULT」を参照してください。

メソッドに対するコードで各メソッド中の "! TODO: Add implementation" の行を置き換えます。IAdd インタフェースに対して,以下は 3 つのメソッドの実装です。

	IAdd_Clear:    ObjectData%CurrentValue = 0

	IAdd_Add:      ObjectData%CurrentValue = ObjectData%CurrentValue + Operand

	IAdd_GetValue: CurrentValue = ObjectData%CurrentValue

ファイルを保存し,「Build」メニューから「Build Adder.dll」をクリックしてサーバーをビルドします。これで,COM サーバーが作成されました。

ビルドに関する注意事項

Fortran AppWizard が生成する Developer Studio プロジェクトは,一般的な Fortran プロジェクトでは行われない 2 つの追加ステップを実行します。

EXE COM サーバーに対して,COM サーバー自身は /REGSERVER コマンド行オプションで実行されます。

Visual C++ ClassView

システムに Microsoft Visual C++ バージョン 6 もインストールしている場合,サーバー定義が「Visual C++ ClassView」ペインにも表示されます。これは,Fortran COM Server Wizard が作成した IDL ファイルを「Visual C++ ClassView」ソフトウェアが読むことができ,理解することができるために発生します。


注意:サーバー定義を修正するために「Visual C++ ClassView」ペインを使わないでください。Fortran COM Server Wizard で作成したクラスを修正するには,Fortran COM Server Wizard を常に使用するようにしてください。

クライアントの例の使用

サーバーは,これで COM クライアントから呼び出せるようになりました。完全な Adder サンプルは,...Df98\Samples\Advanced\COM\Adder ディレクトリに提供されています。このディレクトリには,Visual FortranVisual Basic,および Visual C++ で書かれた 3 つのクライアントが含まれています。

サンプル・クライアントをビルドするには,まず,Adder サンプルをビルドします。サンプル COM クライアントが使用する GUID は,Adder サンプル (このサンプルで作成された GUID ではない) と一緒に動作します。

この節の始めの (「Fortran COM Server プロジェクトの作成」から始まる) COM サーバー AddingMachine の例に従っている場合,作成した AddingMachineAddingMachine オブジェクトに割り付けされた GUID を除いて Adder サンプルと同じものです。Fortran COM Server AppWizard は常に,新しいプロジェクトに対して新しい GUID を生成します。

各クライアントは,AddingMachine に対するユーザー・インタフェースを提供するダイアログボックスを表示します。以下では,クライアントの各々についての注意事項を説明しています。

Visual Basic と Visual C++ クライアントを使用する上でのデザイン考察と注意事項については,「Visual Basic と Visual C++ クライアントの注意事項」を参照してください。

COM サーバーの修正

階層中のエントリのプロパティを変更するため,階層に新しいエントリを追加するため,階層中のエントリを移動するため,または,階層からエントリを削除するために,サーバーを修正することができます。

COM サーバー定義への追加,削除,または変更を簡単に行うため,COM サーバーを作成する時に使用した Fortran COM Server Wizard の同じユーザー・インタフェースを使用します。しかしながら,COM サーバー定義を変更する際には,以下のファイルには注意が必要です。

サーバー定義が変更されると,必ず Fortran COM Server Wizard は「Do Not Edit」フォルダのファイルを再作成します。

Fortran COM Server Wizard を表示するには,以下のようにします。

  1. Developer Studio を起動します。

  2. Fortran COM Server AppWizard で作成した COM サーバー・プロジェクトを開きます。

  3. 「View」メニューから「Fortran COM Server Wizard」をクリックします (COM サーバーを定義するための Fortran COM Server Wizard の使用 を参照)。

一度,インタフェースを公開しクライアントがそれを使用すると,インタフェースを変更してはならないという COM 規則が適用されます。その代わり,元のインタフェースに加えて,新しいインタフェースを作成し,名前を変更します。一般的には,インタフェースの 2 番目のバージョンに対して,名前の後に 2 を追加します。たとえば,IAddIAdd2 とします。クラスの第 2 番目のバージョンは,元のインタフェースと新しいインタフェースの両方をサポートすべきです。新しいクライアントは,新しい機能を持つ新しいインタフェースを使うことができます。

新しいインタフェースは,元のインタフェースとは異なったインタフェース ID (IID) を持っています。IID は,プログラマの利便性を考えて,テキスト名になっています。IID は,インタフェースをユニークに識別します。

Fortran COM Server Wizard がプロジェクトに変更を加えた場合や複数のソース・ファイルを手動で修正することが必要になるサーバー定義の変更を行った場合には,いつでも Fortran COM Server Wizard は TODO.TXT にメッセージを書き込みます。たとえば,IAdd インタフェースに現在値を特定の数字に設定する新しいメソッド SetValue を追加した場合,ウィザードはサーバーに新しいメソッドを実装する新しいコードを生成します。新しいコードの幾つかは,「Do Not Edit」フォルダ中のファイルに書き込まれます。ウィザードは,自動的にこれらのファイルを修正します。

しかしながら,新しいメソッドの骨格は,「Source Files」フォルダの UIADD.f90 に加えられる必要があります。ウィザードは,「Source Files」フォルダのファイルとして同じ名前のファイルを決して作成しません。これは,そのファイルに対して行われた修正が失われることを防ぐためです。その代わり,ウィザードは名前の最後にプラス記号 (+) をつけたファイルを生成します。たとえば,UIADD+.f90 です。ファイル UIADD+.f90 は,新しいメソッド IAdd_SetValue の骨格を含んでいます。この場合,以下のメッセージが TODO.TXT に追加され,TODO.TXT が Developer Studio のテキスト・エディタに開かれます。


The file UIAdd+.f90 has been generated with the following changes.
You must merge these changes with the existing file UIAdd.f90.
The method IAdd_SetValue has been added.

テキスト・エディタを使って UIADD+.f90 から新しいメソッドの骨格をコピーし,UIADD.f90 に貼り付けなければなりません。

変更がサーバー定義に行われると,必ず,「Source Files」フォルダにファイルに "+" の付いたバージョンが作成されます。TODO.TXT がプログラマの取るべき動作の情報を伝える場合を除いて,これらのファイルを無視することができます。

ソース・ファイルに変更を手動でマージする必要のある他の修正には,以下のものが含まれます。