このドキュメントでは、次のトピックについて説明します。
このインターフェイスは、実行オブジェクトテーブル(ROT)に含まれるオブジェクトの名前の中で使用する反復子です。 ROT は Windows によって提供され、管理されるシステムテーブルです。 ROT を使用すると、ユーザーが現在アプリケーションで作業中のオブジェクトやドキュメントを、他のアプリケーションで使用可能にすることができます。
このテーブルに含まれている各オブジェクトは、"モニカ" という名前で識別されます。 モニカとは、特定の構文に従う名前です。 例えば、ファイルモニカは、ファイルシステム内でファイルを識別します。 読み取り可能な形のファイルモニカとは、c:\MyDoc.doc のように、完全パス名を使用した単なるファイル名です。 別の例として、インターネット内のリソースおよびそれにアクセスするために使用するプロトコルを識別する URL モニカがあります。 読み取り可能な形の URL モニカとは、単なる通常の URL です。例えば http://www.myorg.org/MyDoc.doc のようになります。
ROT 内のオブジェクトへのアクセスを試みるアプリケーションは、オブジェクトを識別するモニカを指定し、そのオブジェクトへのインターフェイスポインタ(オブジェクトハンドラ)を受け取ります。
ユーザーが現在 ROT で作業中のオブジェクトやドキュメントが、アプリケーションによって入力されることもよくあります。
ドキュメント c:\MyDoc.doc を Microsoft Word で開くと、このドキュメントの名前である c:\MyDoc.doc とこのドキュメントへのインターフェイスポインタが Microsoft Word によって ROT に入力されます。
Natural スタジオセッションが開始すると、このセッションのオートメーションルートインターフェイスである INatAutoStudio
が Natural スタジオによって ROT に入力されます。 インターフェイスは次のような構造の名前で識別されます。
NaturalStudio/<version>/<userid>/>processid>
NaturalStudio/n.n/SCULLY/42
n.n は製品バージョンです。
他のアプリケーションはこの名前を指定することによって ROT 内のオートメーションルートインターフェイスを取得し、これを使用して Natural スタジオセッションにアクセスできます。
インターフェイス IRunningObjects
を使用すると、ROT に現在含まれているすべてのオブジェクトの名前の中で反復することができます。 見つかった名前は、その後メソッド INaturalXUtilities::BindToObject
で使用して、対応するオブジェクトへのインターフェイスポインタ(オブジェクトハンドル)を取得できます。
次のサンプルプログラムでは、文字 n.n が Natural 製品バージョンを表します。 このサンプルプログラムを実行する場合は、この文字を現在の Natural 製品バージョンで置き換えてください。
define data local 1 #util handle of object 1 #studio handle of object 1 #objects handle of object 1 #progs handle of object 1 #prog handle of object 1 #rot handle of object 1 #ro (a) dynamic end-define * * Create an instance of the Utilities class. create object #util of 'SoftwareAG.NaturalX.Utilities.4' if #util eq null-handle escape routine end-if * * Retrieve the running objects table. send 'GetRunningObjects' to #util return #rot if #rot eq null-handle escape routine end-if * * Iterate across the running objects table. repeat send 'Next' to #rot return #ro if #ro eq ' ' escape bottom end-if * If we hit a running Natural Studio session,... if substring(#ro,1,17) eq 'NaturalStudio/n.n' * ...we access it,... send 'BindToObject' to #util with #ro (ad=o) return #studio * ...open a Program Editor in that session... #objects := #studio.objects #progs := #objects.programs send 'Add' to #progs with 1009 return #prog * ...and display the identifier of this session in the editor. compress 'This is' #ro to #ro #prog.source := #ro end-if end-repeat * end
次のメソッドを使用できます。
ROT 内の次のオブジェクトの名前を返します。 この名前は、その後メソッド INaturalXUtilities::BindToObject
で使用して、対応するオブジェクトへのインターフェイスポインタ(オブジェクトハンドル)を取得できます。
名前 | Natural タイプ | 変形タイプ | 注釈 |
---|---|---|---|
戻り値 | A | VT_BSTR |
ROT 内の次のオブジェクトの名前。
反復子を初期状態にリセットします。 Reset
を呼び出した後は、その後の Next
の呼び出しによって、ROT 内の最初のオブジェクトの名前が返されます。