JPH07200296A - オブジェクト接続を動的に発生する方法及びシステム - Google Patents

オブジェクト接続を動的に発生する方法及びシステム

Info

Publication number
JPH07200296A
JPH07200296A JP6307367A JP30736794A JPH07200296A JP H07200296 A JPH07200296 A JP H07200296A JP 6307367 A JP6307367 A JP 6307367A JP 30736794 A JP30736794 A JP 30736794A JP H07200296 A JPH07200296 A JP H07200296A
Authority
JP
Japan
Prior art keywords
interface
sink
connection point
notification
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6307367A
Other languages
English (en)
Other versions
JP4070248B2 (ja
Inventor
David S Stutz
エス スタッツ ディヴィッド
Christopher A Zimmerman
エイ ツィマーマン クリストファー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JPH07200296A publication Critical patent/JPH07200296A/ja
Application granted granted Critical
Publication of JP4070248B2 publication Critical patent/JP4070248B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Abstract

(57)【要約】 【目的】 コンピュータシステムにおいてオブジェクト
の接続を動的に発生する方法及びシステムを提供する。 【構成】 ソースオブジェクトは、特定のインターフェ
イスに対応する接続ポイントオブジェクトを有する。シ
ンクオブジェクトは、ソースオブジェクトに接続するた
めの1つ以上の通知インターフェイスを実施する。接続
を発生するため、シンクオブジェクトは、特定のインタ
ーフェイスに対応する接続ポイントオブジェクトをソー
スオブジェクトから要求する。ソースオブジェクトは、
この接続ポイントオブジェクトをサポートするかどうか
を決定し、もしそうであれば、その決定された接続ポイ
ントオブジェクトの接続ポイントインターフェイスのポ
インタを返送する。シンクオブジェクトは、その返送さ
れた接続ポイントインターフェイスポインタを用いて接
続ポイントオブジェクトに接続されるよう要求する。接
続ポイントオブジェクトは、シンクオブジェクトの通知
インターフェイスのレファレンスを記憶し、シンクオブ
ジェクトとソースオブジェクトとの間の接続を形成す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にオブジェクトを接
続するためのコンピュータシステムに係り、より詳細に
は、通知の目的でオブジェクト接続を発生する方法及び
システムに係る。
【0002】
【従来の技術】ある事象が生じたときに他のソフトウェ
アとの通信を必要とするソフトウェアがしばしば形成さ
れる。例えば、コンピュータのウインドウシステムで
は、ユーザがディスプレイ上のウインドウを選択したと
きに、ウインドウシステムは、ウインドウに情報を引き
出すソフトウェアにウインドウが選択されたことを通知
する必要がある。公知のシステムでは、ある事象の通知
を必要とするソフトウェアは、それが通知しようとする
事象を、その事象を引き起こしたソフトウェアと共に登
録する。ある公知のシステムでは、登録機構の一部分と
して、通知を必要とするソフトウェアは、通知を行える
ようにする通知ファンクションを登録する。従って、ソ
フトウェアが、既に登録されている事象を引き起こした
ときには、その登録された通知ファンクションが呼び出
される。これは、公知技術では、コールバック機構とし
て知られている。
【0003】本発明は、オブジェクト指向の概念を用い
て以下に説明するので、良く知られたオブジェクト指向
のプログラミング技術の概要を述べることにする。オブ
ジェクト指向のプログラミング言語の2つの共通の特徴
は、データのカプセル化(エンキャプスレーション)及
びデータタイプの継承に対するサポートである。データ
のカプセル化は、ファンクションとデータの結合を指
す。継承は、あるデータのタイプを他のデータのタイプ
に関して宣言する能力を指す。
【0004】C++言語においては、オブジェクト指向
技術は、クラスの使用によってサポートされる。クラス
とは、ユーザが定めるタイプである。クラスの宣言は、
そのクラスのデータメンバー及びファンクションメンバ
ーを記述する。例えば、次の宣言は、CIRCLEと称
するクラスのデータメンバー及びファンクションメンバ
ーを定義する。 変数x及びyは円の中心位置を指定し、そして変数ra
diusは円の半径を指定する。これらの変数は、クラ
スCIRCLEのデータメンバーと称する。ファンクシ
ョンdrawは、指定された半径の円を指定された位置
に描くユーザが定めたファンクションである。ファンク
ションdrawは、クラスCIRCLEのファンクショ
ンメンバーと称する。ファンクションメンバーは、クラ
スの方法とも称する。クラスのデータメンバー及びファ
ンクションメンバーは、ファンクションがクラスのイン
スタンスにおいて動作するという点で互いに結合され
る。クラスのインスタンスは、クラスのオブジェクトと
も称する。
【0005】C++の文法において、次のステートメン
トは、オブジェクトa及びbがタイプクラスCIRCL
Eのものであると宣言する。 CIRCLE a, b; この宣言は、オブジェクトa及びbに対してメモリの割
り当てを生じる。次のステートメントは、オブジェクト
a及びbのデータメンバーにデータを指定する。 a,x =2; a,y =2; a,radius=1; b,x =4; b,y =5; b,radius=2; 次のステートメントは、オブジェクトa及びbにより定
められた円を描くのに使用される。 a,draw(); b,draw();
【0006】導出されたクラスとは、そのベースのクラ
スの特性、即ちデータメンバー及びファンクションメン
バーを継承するクラスである。例えば、次の導出クラス
CIRCLE FILLは、ベースクラスCIRCLE
の特性を継承する。 この宣言は、クラスCIRCLE FILLが、このク
ラスCIRCLE FILLの宣言に導入されたデータ
及びファンクションメンバー、即ちデータメンバーpa
ttern及びファンクションメンバーfillに加え
て、クラスCIRCLEにある全てのデータ及びファン
クションメンバーを含むことを指定する。この例では、
クラスCIRCLE FILLは、データメンバーx,
y、radius及びpatternと、ファンクショ
ンメンバーdraw及びfillとを有する。別のクラ
スの特性を継承するクラスは、導出されたクラス(例え
ば、CIRCLE FILL)である。別のクラスの特
性を継承しないクラスは、一次(ルート)クラス(例え
ば、CIRCLE)である。特性が別のクラスによって
継承されるクラスは、ベースクラスである(例えば、C
IRCLEは、CIRCLE FILLのベースクラス
である)。導出クラスは、多数のクラスの特性を継承す
ることができ、即ち導出クラスは、多数のベースクラス
をもつことができる。これは、多継承と称する。
【0007】導出クラスは、ベースクラスが仮想的に継
承されるべきであることを指定してもよい。ベースクラ
スの仮想的な継承とは、導出クラスに仮想ベースクラス
の1つのインスタンスしか存在しないことを意味する。
例えば、2つの非仮想ベースクラスをもつ導出クラスの
例を以下に示す。 class CIRCLE 1:CIRCLE{... }; class CIRCLE 2:CIRCLE{... }; class PATTERN:CIRCLE 1,CIRCLE 2 {... }; この宣言において、クラスPATTERNは、クラスC
IRCLE 1及びCIRCLE 2を介してクラスC
IRCLEを非仮想的に2回継承する。クラスPATT
ERNには、クラスCIRCLEの2つのインスタンス
がある。
【0008】2つの仮想ベースクラスをもつ導出クラス
の例を以下に示す。 class CIRCLE 1:virtual CIRCLE{... }; class CIRCLE 2:virtual CIRCLE{... }; class PATTERN:CIRCLE 1,CIRCLE 2 {... }; 導出クラスPATTERNは、クラスCIRCLE
及びCIRCLE 2を介してクラスCIRCLEを仮
想的に2回継承する。クラスCIRCLEは仮想的に2
回継承されるので、導出クラスPATTERNにはクラ
スCIRCLEのオブジェクトが1つしかない。当業者
に明らかなように、仮想的継承は、クラス導出がより複
雑なときには非常に有用である。
【0009】又、クラスは、そのファンクションメンバ
ーが仮想的であるかどうかを指定することもできる。フ
ァンクションメンバーが仮想的であると宣言すること
は、導出クラスにおいて同じ名前及びタイプのファンク
ションによってそのファンクションをオーバーライドで
きることを意味する。以下の例では、ファンクションd
rawは、クラスCIRCLE及びCIRCLE FI
LLにおいて仮想的であると宣言される。 仮想ファンクションは、実施を与えずに宣言された場合
には、純粋な仮想ファンクションと称される。純粋な仮
想ファンクションとは、純粋な指定子「=φ」で宣言さ
れる仮想ファンクションである。あるクラスが純粋な仮
想ファンクションを指定する場合には、いかなる導出ク
ラスも、そのファンクションメンバーが呼び出される前
にそのファンクションメンバーに対する実施を指定する
ことが必要となる。
【0010】オブジェクトをアクセスするために、C+
+言語は、ポインタデータタイプを与える。ポインタ
は、メモリにおけるオブジェクトのアドレスである値を
保持する。ポインタにより、オブジェクトを参照するこ
とができる。次のステートメントは、変数c ptrを
タイプクラスCIRCLEのオブジェクトにおけるポイ
ンタであると宣言し、そしてオブジェクトcのアドレス
を保持するよう変数c ptrをセットする。 CIRCLE*c ptr; c ptr=&c; この例を続けると、次のステートメントは、オブジェク
トaをタイプクラスCIRCLEであると宣言しそして
オブジェクトbをタイプクラスCIRCLE FILL
であると宣言する。 CIRCLE a; CIRCLE FILL b; 次のステートメントは、クラスCIRCLEで定義され
たファンクションdrawを参照する。 a.draw(); これに対し、次のステートメントは、クラスCIRCL
FILLで定義されたファンクションdrawを参
照する。 b.draw(); 更に、次のステートメントは、オブジェクトbをタイプ
クラスCIRCLEのオブジェクトにタイプキャスト
し、そしてクラスCIRCLE FILLで定義された
ファンクションdrawを呼び出す。 CIRCLE*c ptr; c ptr=&b; c ptr->draw(); //CIRCLE FILL::draw() 従って、呼び出された仮想ファンクションは、ファンク
ションCIRCLE FILL::drawである。
【0011】図1は、オブジェクトを表すのに使用され
る典型的なデータ構造を示すブロック図である。オブジ
ェクトは、オブジェクトの振る舞いを実施するインスタ
ンスデータ(データメンバー)及びファンクションメン
バーで構成される。オブジェクトを表すのに使用される
データ構造は、インスタンスデータ構造101、仮想フ
ァンクションテーブル102及びファンクションメンバ
ー103、104、105を備えている。インスタンス
データ構造101は、仮想ファンクションテーブル10
2を指すポインタを含むと共に、データメンバーを含ん
でいる。仮想ファンクションテーブル102は、オブジ
ェクトに対して定義された各仮想ファンクションメンバ
ーのエントリーを含む。各エントリーは、それに対応す
るファンクションメンバーを実施するコードに対するレ
ファレンスを含んでいる。このサンプルオブジェクトの
レイアウトは、参考としてここに取り上げる「オブジェ
クト指向のプログラミング言語のためのコンパイラーに
おいて仮想ファンクション及び仮想ベースを実施するた
めの方法(A Method for Implementing Virtual Functio
ns and Virtual Bases in a Compiler for an Object O
riented Programming Language) 」と題する米国特許出
願第07/682,537号に定められたモデルに合致
するものである。以下の説明において、オブジェクト
は、C++プログラミング言語によって定義されたクラ
スのインスタンスとして説明する。当業者であれば、オ
ブジェクトは、他のプログラミング言語を用いても定義
されることが明らかであろう。
【0012】オブジェクト指向の技術を用いる利点は、
これら技術を用いてオブジェクトの共有を容易にできる
ことである。特に、オブジェクト指向の技術は、複合文
書の形成を容易にする。複合文書とは、種々のコンピュ
ータプログラムによって発生されたオブジェクトを含む
文書である。(典型的に、オブジェクトのデータメンバ
ー及びクラスタイプのみが複合文書に記憶される。)例
えば、スプレッドシートプログラムによって発生された
スプレッドシートオブジェクトを含むワードプロセス文
書は、複合文書である。ワードプロセスプログラムは、
ユーザがスプレッドシートオブジェクト(例えば、セ
ル)をワードプロセス文書内に埋め込みできるようにす
る。この埋め込みを行えるようにするため、ワードプロ
セスプログラムは、埋め込まれたオブジェクトのファン
クションメンバーをアクセスするように、埋め込まれる
べきオブジェクトのクラス定義を用いてコンパイルされ
る。従って、ワードプロセスプログラムは、ワードプロ
セス文書に埋め込みできる各クラスのオブジェクトのク
ラス定義を用いてコンパイルされる必要がある。新たな
クラスのオブジェクトをワードプロセス文書に埋め込む
ためには、ワードプロセスプログラムは、新たなクラス
の定義で再コンパイルされる必要がある。従って、ワー
ドプロセスプログラムのデベローパ(開発プログラム)
により選択されたクラスのオブジェクトしか埋め込むこ
とができない。更に、新たなクラスは、ワードプロセス
プログラムの新たなリリースでしかサポートできない。
【0013】任意のクラスのオブジェクトを複合文書に
埋め込めるようにするために、ワードプロセスプログラ
ムがコンパイル時にクラス定義にアクセスする必要なく
オブジェクトをアクセスできるようなインターフェイス
が定義される。アブストラクト(抽象)クラスは、実施
を伴わない仮想ファンクションメンバー(純粋な仮想フ
ァンクションメンバー)が少なくとも1つ存在するよう
なクラスである。インターフェイスは、データメンバー
を伴わず仮想ファンクションが全て純粋であるようなア
ブストラクトクラスである。従って、インターフェイス
は、2つのプログラムが通信するためのプロトコルを与
える。インターフェイスは、典型的に、導出に使用さ
れ、プログラムは、クラスが導出されたインターフェイ
スのための実施を与えるクラスを実施する。その後、オ
ブジェクトは、これら導出されたクラスのインスタンス
として形成される。
【0014】次のクラス定義は、インターフェイスの例
示的な定義である。この例では、説明の簡略化のため、
任意のクラスのオブジェクトを文書に埋め込みできるよ
うにするのではなくて、ワードプロセスプログラムは、
スプレッドシートオブジェクトを埋め込みできるように
する。このインターフェイスを与えるスプレッドシート
オブジェクトは、オブジェクトがいかに実施されるかに
係わりなく、埋め込むことができる。更に、スプレッド
シートオブジェクトは、ワードプロセスプログラムがコ
ンパイルされる前に実施されるかその後に実施されるか
に係わりなく、埋め込むことができる。 スプレッドシートプログラムのデベローパは、スプレッ
ドシートオブジェクトをワードプロセス文書に埋め込め
るようにするためのインターフェイスの実施を与えるこ
とが必要である。
【0015】ワードプロセスプログラムは、スプレッド
シートオブジェクトを埋め込むときには、スプレッドシ
ートオブジェクトのインターフェイスを実施するコード
をアクセスする必要がある。クラスコードをアクセスす
るために、各実施には独特のクラス識別子が与えられ
る。例えば、マイクロソフト・コーポレーションにより
開発されたスプレッドシートオブジェクトを実施するコ
ードは、「MSSスプレッドシート」のクラス識別子を
有するが、他社により開発されたスプレッドシートオブ
ジェクトを実施するコードは、「LTSSスプレッドシ
ート」のクラス識別子を有する。クラスを実施するコー
ドに対して各クラス識別子をマップする各コンピュータ
システムの永続的登録が維持される。典型的に、スプレ
ッドシートプログラムがコンピュータシステムに設置さ
れるときには、そのクラスのスプレッドシートオブジェ
クトの利用性を反映するように永続的登録が更新され
る。スプレッドシートデベローパがインターフェイスに
より定められた各ファンクションメンバーを実施しそし
て永続的登録が維持される限り、ワードプロセスプログ
ラムは、デベローパのスプレッドシートオブジェクトの
インスタンスをワードプロセス文書に埋め込むことがで
きる。ワードプロセスプログラムは、その埋め込まれた
スプレッドシートオブジェクトのファンクションメンバ
ーを誰が実施したか又はどのように実施したかに係わり
なく、これらファンクションメンバーにアクセスする。
【0016】しかしながら、種々のスプレッドシートデ
ベローパは、あるファンクションメンバーのみを実施し
ようとする。例えば、あるスプレッドシートデベローパ
は、データベースサポートは実施しようとしないが、他
の全てのファンクションメンバーをサポートしようとす
る。スプレッドシートデベローパがファンクションメン
バーの幾つかだけをサポートできるようにする一方、オ
ブジェクトを埋め込みできるようにするために、スプレ
ッドシートオブジェクトの多数のインターフェイスが定
義される。例えば、インターフェイスIDatabas
e及びIBasicは、スプレッドシートオブジェクト
に対して次のように定義される。 各スプレッドシートデベローパは、IBasicインタ
ーフェイスを実施し、そして任意に、IDatabas
eインターフェイスを実施する。
【0017】実行時に、ワードプロセスプログラムは、
埋め込まれるべきスプレッドシートオブジェクトがID
atabaseインターフェイスをサポートするかどう
かを決定する必要がある。この決定を行うために、オブ
ジェクトに対してどのインターフェイスが実施されるか
を指示するファンクションメンバーと共に別のインター
フェイス(各スプレッドシートオブジェクトが実施す
る)が定義される。このインターフェイスは、IUnk
nownと称され(そして未知のインターフェイス又は
オブジェクトマネージメントインターフェイスと称さ
れ)、次のように定義される。 class IUnknown {virtual HRESULT QueryInterface(REFIELDiid,void**ppv)=0; virtual ULONG AddRef()=0; virtual ULONG Release()=0; } IUnknownインターフェイスは、ファンクション
メンバー(方法)QueryInterfaceを定義
する。この方法QueryInterfaceには、パ
ラメータiid(タイプREFIELDの)におけるイ
ンターフェイス識別子(例えば、IDatabase)
が通され、そしてパラメータppvにおいてこの方法が
呼び出されるところのオブジェクトに対し識別されたイ
ンターフェイスの実施を指すポインタを返送する。オブ
ジェクトがインターフェイスをサポートしない場合に
は、この方法は偽を返送する。タイプHRESULT
は、予め定義された状態を指示し、そしてタイプULO
NGは、非符号の長い整数を指示する。 コードテーブル1 HRESULTXX::QueryInterface(REFIELD iid, void**ppv) { ret=TRUE; switch(iid){ caseIID IBasic: *ppv=*pIBasic; break; caseIID IDatabase: *ppv=*pIDatabase; break; caseIID IUnknown: *ppv=this; break; defalt: ret=FALSE; } if(ret==TRUE){AddRef(); }; return ret; }
【0018】コードテーブル1は、クラスIUnkno
wnを継承するクラスXXの方法QueryInter
faceの典型的な実施に対しC++ソースコードのた
めの擬似コードを含んでいる。スプレッドシートオブジ
ェクトがIDatabaseインターフェイスをサポー
トする場合には、方法QueryInterface
は、スイッチステートメント内に適当なケースラベルを
含む。変数pIBasic及びpIDatabase
は、各々、IBasic及びIDatabaseインタ
ーフェイスの仮想ファンクションテーブルのポインタを
指す。方法QueryInterfaceは、インター
フェイスのポインタが返送されるときにクラスXXのオ
ブジェクトに対するレファレンスカウントを増加するた
めに方法AddRef(以下の述べる)を呼び出す。コードテーブル2 voidXX::AddRef(){refcount++; } voidXX::Release() {if(-recount==0) delete this;}
【0019】インターフェイスIUnknownは、レ
ファレンスカウント動作を実施するのに用いられる方法
AddRef及びReleaseを定義する。インター
フェイスに対する新たなレファレンスが形成されたとき
には、オブジェクトのレファレンスカウントを増加する
ために方法AddRefが呼び出される。レファレンス
がもはや必要でないときには、オブジェクトのレファレ
ンスカウントを減少しそしてレファレンスカウントが0
になったときにオブジェクトの割り当てを解除するため
に、方法Releaseが呼び出される。コードテール
2は、クラスIUnknownを継承するクラスXXの
方法AddRef及びReleaseの典型的な実施に
対しC++ソースコードのための擬似コードを含んでい
る。
【0020】IDatabaseインターフェイス及び
IBasicインターフェイスは、IUnknownイ
ンターフェイスを継承する。次の定義は、IUnkno
wnインターフェイスの使用を示すものである。 class IDatabase:public IUnknown { public: virtual void Data()=0; } class IBasic: public IUnknown { public: virtual void File()=0; virtual void Edit()=0; virtual void Formula()=0; virtual void Format()=0; virtual void GetCell(string RC, cell*pCell)=0; }
【0021】次の擬似コードは、スプレッドシートオブ
ジェクトがIDatabaseインターフェイスをサポ
ートするかどうかを決定するためにワードプロセスプロ
グラムがIUnknownインターフェイスをいかに使
用するかを示している。 if(pSpreadsheet->QueryInterface("IDatabase",&pIDatabase)) //IDatabase supported else //IDatabase not supported ポインタpSpreadsheetは、スプレッドシー
トクラスのインスタンスを指すポインタである。上記し
たように、スプレッドシートオブジェクトは、あるイン
ターフェイスを含み、他は含まない。オブジェクトがI
Databaseインターフェイスをサポートする場合
には、方法QueryInterfaceは、IDat
abaseデータ構造を指すようにポインタpIDat
abaseをセットし、そして真をその値として返送す
る。
【0022】図2は、スプレッドシートオブジェクトの
記号表示である。以下の説明において、オブジェクトデ
ータ構造は、オブジェクトをアクセスするところのイン
ターフェイスがラベル表示された形状201によって表
される。
【0023】
【発明が解決しようとする課題】本発明の目的は、オブ
ジェクト接続を動的に発生するための方法及びシステム
を提供することである。
【0024】本発明の別の目的は、その後の通知目的の
ために任意のインターフェイスを接続するための方法及
びシステムを提供することである。
【0025】本発明の別の目的は、多数の通知ルーチン
に接続する多数の接続ポイントを提供することである。
【0026】本発明の更に別の目的は、オブジェクトが
接続のための特定のインターフェイスを有するかどうか
を判断する機構を提供することである。
【0027】本発明の更に別の目的は、どんなタスクを
実行するか知ることなく既に接続された通知ルーチンを
呼び出すための方法及びシステムを提供することであ
る。
【0028】本発明の更に別の目的は、アプリケーショ
ンとは独立したオブジェクトインターフェイスを用いて
事象を取り扱うための方法及びシステムを提供すること
である。
【0029】
【課題を解決するための手段】上記及び他の目的は、以
下の説明から明らかとなるように、オブジェクト接続を
動的に発生する改良された方法及びシステムによって達
成される。好ましい実施例において、本発明は、ソース
オブジェクトとシンクオブジェクトとを備えている。ソ
ースオブジェクトは、1つ以上の接続ポイントオブジェ
クトを含み、その各々は、シンクオブジェクトに接続す
るための接続ポイントインターフェイスを含んでいる。
各シンクオブジェクトは、シンクオブジェクトに通信す
るための通知インターフェイスを有している。接続を確
立するために、ソースオブジェクトは、特定の接続要求
に対してどの接続ポイントオブジェクトを使用するかを
決定する。この決定された接続ポイントオブジェクトを
用いて、シンクオブジェクトは、ソースオブジェクトに
接続されるように要求し、更に通信を行うために使用さ
れるべき通知インターフェイスの指示を通す。次いで、
ソースオブジェクトは、その指示された通知インターフ
ェイスを、接続ポイントオブジェクトによってマネージ
されるデータ構造に記憶する。その後、ソースオブジェ
クトは、どんな通知インターフェイスが特定の接続ポイ
ントオブジェクトに記憶されているかを決定し、そして
通知インターフェイスを接続した各シンクオブジェクト
を通知するために各記憶された通知インターフェイスの
特定の方法を呼び出す。このような通知は、典型的に、
事象、例えば、ユーザ入力装置からの動きに応答して行
われる。
【0030】
【実施例】本発明は、ソースオブジェクトとシンクオブ
ジェクトとの間のオブジェクト接続を発生するための方
法及びシステムを提供する。これらの接続は、オブジェ
クトに対する多数の形式の事象取扱機構をサポートする
のに使用でき、本発明は、オブジェクト通信のための基
礎的な接続機構アーキテクチャを提供するものである。
ソースオブジェクトは、事象を引き起こすか又は認識す
るオブジェクトを指し、シンクオブジェクトは、事象を
取り扱うオブジェクトを指す。ソースオブジェクトとシ
ンクオブジェクトとの間の接続は、いずれかのオブジェ
クトによって直接開始されてもよいし、或いはイニシエ
ータ(開始)オブジェクトと称する第3のオブジェクト
によって開始されてもよい。典型的な事象取扱環境で
は、ソースオブジェクトは事象を引き起こすか又は認識
し、通知方法を呼び出すことによってシンクオブジェク
ト又はイニシエータオブジェクトに通知する。通知方法
がイニシエータオブジェクトに属する場合には、イニシ
エータオブジェクトがその事象を取り扱うためにシンク
オブジェクトの適当な方法を呼び出すという役目を果た
す。
【0031】好ましい実施例においては、本発明の方法
及びシステムは、中央処理ユニットと、メモリと、入力
/出力装置とを備えたコンピュータシステムにおいて実
施される。本発明の好ましい実施例において、ソースオ
ブジェクトは、接続ポイントオブジェクトと、これら接
続ポイントオブジェクトをマネージするための接続ポイ
ントコンテナオブジェクトとを備えている。好ましく
は、接続ポイントコンテナオブジェクトは、ソースオブ
ジェクトの一部分として実施され、そして接続ポイント
オブジェクトは、ソースオブジェクトのサブオブジェク
トとして実施される。これらサブオブジェクトは、本発
明のアプリケーションとは独立した振る舞いを分離す
る。接続ポイントコンテナオブジェクトは、その収容さ
れた接続ポイントオブジェクトを列挙することのできる
方法と、特定のインターフェイス識別子(ID)に対応
する接続ポイントオブジェクトを見つけられるようにす
る方法とを備えたインターフェイスを形成する。接続ポ
イントオブジェクトには、ある形式のインターフェイス
(インターフェイスIDで識別された)が関連され、該
インターフェイスを通して、接続されるシンクオブジェ
クトに通知を出すようにされる。接続ポイントオブジェ
クトは、通知インターフェイスを接続したり、既に接続
された通知インターフェイスを切断したり、接続された
通知インターフェイスを列挙したりする方法を備えたイ
ンターフェイスを形成するのが好ましい。又、接続ポイ
ントオブジェクトは、多数の通知インターフェイス(1
つ以上のシンクオブジェクトに属する)に対するレファ
レンスを任意に記憶できるのが好ましい。接続された通
知インターフェイスは、事象セットとして働く。即ち、
インターフェイスの定義により、文書インターフェイス
をサポートする各オブジェクトは、ある1組の方法を与
えねばならない。従って、シンクオブジェクトが通知イ
ンターフェイスを接続するときには、ソースオブジェク
トは、通知インターフェイスによってどんな方法がサポ
ートされるか自動的に分かる。このパースペクティブか
ら、サポートされる方法は事象におおよそ対応し、そし
て通知インターフェイス全体は、1組の事象におおよそ
対応する。
【0032】いったん接続されると、ソースオブジェク
トは、接続ポイントオブジェクトを種々のやり方で使用
することができる。典型的な動作においては、ソースオ
ブジェクトは、事象通知を受け取ると、その受け取った
事象に対応するインターフェイスIDに関連した接続ポ
イントオブジェクト(1つ又は複数)に、接続された通
知インターフェイスを得るように相談する。次いで、ソ
ースオブジェクトは、通知インターフェイスの所定の方
法を呼び出すことにより、各接続された通知インターフ
ェイスに事象通知を送る。このように、単一の事象の発
生時に多数のシンクオブジェクトに通知することができ
る。
【0033】図3は、好ましい接続機構のアーキテクチ
ャのブロック図である。この図は、2つの接続ポイント
オブジェクト305及び306を経て2つのシンクオブ
ジェクト302及び303に接続されたソースオブジェ
クト301を示している。このソースオブジェクト30
1は、接続ポイントオブジェクト305及び306をマ
ネージするための接続ポイントコンテナオブジェクト3
04を実施する。この接続ポイントコンテナオブジェク
ト304は、接続ポイントオブジェクトを列挙し見つけ
るためのIConnectionPointConta
inerインターフェイス307を実施する。接続ポイ
ントオブジェクト305及び306は、接続ポイントコ
ンテナオブジェクト304により、それらの各ICon
nectionPointインターフェイス308及び
309を経てアクセスされる。接続ポイントオブジェク
ト305及び306は、それらの各通知インターフェイ
ス310及び311を経てシンクオブジェクト302及
び303に接続される。ソースオブジェクト301は、
事象に対応するIConnectionPointイン
ターフェイスを位置決めしそしてシンクオブジェクトの
通知インターフェイスの方法を呼び出すことにより事象
の発生をシンクオブジェクト302及び303に通知す
る。
【0034】上記したように、ソースオブジェクトとシ
ンクオブジェクトとの間の接続は、イニシエータオブジ
ェクトによって開始することができる。イニシエータオ
ブジェクトは、シンクオブジェクトの通知インターフェ
イスをソースオブジェクトに接続することができ、又は
それ自身の「委託(delegate)」オブジェクトの通知イン
ターフェイスを接続することができる。委託オブジェク
トとは、単にシンクオブジェクトとソースオブジェクト
との間にあるオブジェクトである。委託オブジェクト
は、ソース及びシンクの両オブジェクトに透過的であ
る。というのは、シンクオブジェクトが与えるような接
続ポイントオブジェクトに対応するインターフェイスを
実施するからである。委託オブジェクトは、事象通知を
シンクオブジェクトに送るという役目を果たす。このよ
うに、委託オブジェクトは、ソース及びシンクオブジェ
クトの比較許可特権に基づいて事象通知を送るかどうか
を判断する機密機構として使用できる。
【0035】図4は、ソースオブジェクトと、委託オブ
ジェクトと、シンクオブジェクトとの間の接続を示すブ
ロック図である。図4に示された接続は、3つのオブジ
ェクト、即ち接続ポイントオブジェクト401、委託オ
ブジェクト402及びシンクオブジェクト403を備え
ている。委託オブジェクト402は、特定の通知インタ
ーフェイス404を経て接続ポイントオブジェクト40
1に接続される。この同じ通知インターフェイスは、シ
ンクオブジェクト403を委託オブジェクト402に接
続するのに使用される。従って、2つの通知インターフ
ェイス404及び405は、同じインターフェイス定義
の異なる実施であり、従って、同じインターフェイスI
Dを有する。
【0036】本発明の典型的な用途は、ビジュアル(視
覚的)プログラミング環境においてオブジェクトを接続
することである。ビジュアルプログラミングとは、ビジ
ュアル指向のプログラム(ビジュアルプログラム)を迅
速に開発できるようにするコンピュータプログラミング
技術である。ビジュアルプログラミング環境は、典型的
に、ビジュアルプログラムを形成するように相互接続す
ることのできる予め定義されたコンポーネント(オブジ
ェクト)のリストを含んでいる。各コンポーネントは、
入力及び出力ポートと、ビジュアルインターフェイスと
を含む。ビジュアルプログラムを形成するときには、ビ
ジュアルプログラマがビジュアルコンポーネント及びデ
ィスプレイにおけるそれらの位置を指定する。又、ビジ
ュアルプログラマは種々のポート間の相互接続も指定す
る。次いで、ビジュアルコンポーネントは、これらの接
続を用いて互いに通信する。
【0037】例えば、ビジュアルプログラミング環境を
用いてアプリケーションプログラムのためのダイアログ
ボックスを形成することができる。図5は、アプリケー
ションプログラムに対するオープンファイルダイアログ
ボックスを形成するのに使用されるビジュアルプログラ
ミング環境ディスプレイのブロック図である。オープン
ファイルダイアログボックスは、オープンすべきファイ
ルを選択するためにファイル名のリストを通してスクロ
ールするのに使用される。ビジュアルプログラミング環
境のディスプレイは、2つの部分、即ちワークスペース
ディスプレイエリア501と、コマンドエリア502と
を備えている。ワークスペースディスプレイエリア50
1は、多数のオブジェクトが形成されて、ダイアログボ
ックスをビジュアルにプログラムするよう接続されるこ
とを示している。ワークスペースディスプレイエリア5
01に現在示されているオブジェクトは、オープンファ
イルダイアログボックスオブジェクト503と、4つの
コードオブジェクト504ないし507とを備えてい
る。各オブジェクトは、次いで、多数のサブオブジェク
トを備えている。例えば、オープンファイルダイアログ
ボックスオブジェクト503は、タイトルバーオブジェ
クト508、多選択リストボックスオブジェクト50
9、及びボタンオブジェクト510を備えている。図示
された状態では、多選択リストボックスオブジェクト5
09は、他のオブジェクトとの接続を形成するようにユ
ーザによって現在選択されている。選択されたオブジェ
クト509に対応する入力ポート511及び出力ポート
512は、ハイライト状態のオブジェクトとして示され
ている。コマンドエリア502のボタンによって与えら
れる種々のコマンドを用いて、ビジュアルプログラマ
は、オープンファイルダイアログボックスオブジェクト
503の出力ポート516、多選択リストボックスオブ
ジェクト509の入力及び出力ポート511及び51
2、並びにボタンオブジェクト510の入力及び出力ポ
ート513及び514をコードオブジェクト504ない
し506に接続している。特に、オープンファイルダイ
アログボックスオブジェクト503の出力ポート516
は、コードオブジェクト504の入力ポート517に接
続されており、このコードオブジェクトは、多選択リス
トボックスオブジェクト509に示されたファイルのリ
ストを更新するためのコードを含んでいる。又、多選択
リストボックスオブジェクト509の入力ポート511
は、コードオブジェクト504の出力ポート518に接
続されている。それ故、ユーザがオープンファイルダイ
アログボックスオブジェクト503を選択したときは、
多選択リストボックスオブジェクト509に示されたフ
ァイルのリストが、上記ダイアログボックスが最後に選
択されたとき以来のファイルの追加又は削除を表すよう
に更新される。多選択リストボックスオブジェクト50
9の出力ポート512は、コードオブジェクト505の
入力ポート519に接続されており、このコードオブジ
ェクトは、多選択リストボックスオブジェクト509に
おいて選択されたファイルを追跡するためのコードを含
んでいる。この出力ポートは、コードオブジェクト50
4の入力ポート517にも接続されており、ユーザがフ
ァイルを選択するたびに、多選択リストボックスに表示
されるファイルリストが更新されるようになっている。
ボタンオブジェクト510の入力ポート513は、コー
ドオブジェクト505の出力ポート520に接続されて
おり、従って、選択されたファイルのリストは、ファイ
ルが選択されるたびにボタンオブジェクト510に通さ
れる。ボタンオブジェクト510の出力ポート514
は、コードオブジェクト506の入力ポート521に接
続されており、該コードオブジェクトは、ボタンオブジ
ェクト510により実施されるOKボタンをユーザが押
したときに選択されたファイルのリストにおける各ファ
イルをオープンするコードを含んでいる。
【0038】このビジュアルプログラミング環境を用い
ていったん形成すると、オープンファイルダイアログボ
ックスは、特定のシステム事象、例えば、ユーザ入力装
置から生じた事象に応答することによって動作する。例
えば、ユーザがオープンファイルダイアログボックス5
03を選択したときには、MouseLeftButt
onDown選択事象がオープンファイルダイアログボ
ックスオブジェクト503へ送られる。この選択事象を
受け取ると、オープンファイルダイアログボックスオブ
ジェクト503は、コードオブジェクト504に通知を
送る。というのは、コードオブジェクト504の入力ポ
ート517がオープンファイルダイアログボックスオブ
ジェクト503の出力ポート516に既に接続されてい
るからである。表示されたファイルのリストを更新する
ためのコードを実施するコードオブジェクト504は、
次いで、更新されたファイルリストを多選択リストボッ
クスオブジェクト509へ送る。というのは、コードオ
ブジェクト504の出力ポート518が多選択リストボ
ックスオブジェクト509の入力ポート511に既に接
続されているからである。又、ユーザがマウス入力装置
を用いて多選択リストボックスオブジェクト509によ
り実施されるリストボックスのファイルを選択するとき
には、MouseLeftButtonDown選択事
象が多選択リストボックスオブジェクト509に送られ
る。この事象は、次いで、ユーザ選択を追跡するために
コードオブジェクト505へ送られる。というのは、コ
ードオブジェクト505の入力ポート519が多選択リ
ストボックスオブジェクト509の出力ポート512に
既に接続されているからである。コードオブジェクト5
05は、次いで、選択されたファイルのリストをボタン
オブジェクト510に送る。というのは、コードオブジ
ェクト505の出力ポート520がボタンオブジェクト
510の入力ポート513に既に接続されているからで
ある。更に、ユーザがボタンオブジェクト510により
実施されているOKボタンを選択するときには、システ
ム選択事象(例えば、MouseLeftButton
Down選択事象)がボタンオブジェクト510へ送ら
れる。このボタンオブジェクト510は、その出力(こ
の場合は選択されたファイルのリスト)をコードオブジ
ェクト506に送る。というのは、ボタンオブジェクト
510の出力ポート514がコードオブジェクト506
の入力ポート521に既に接続されているからである。
このボタン選択事象を受け取ると、コードオブジェクト
506は、ユーザが選択したファイルを開く。
【0039】1つの例示的な用途においては、本発明
は、図5に示されたビジュアルプログラミング例で必要
とされるオブジェクト接続を動的に発生するのに使用す
ることができる。図6は、本発明を用いて図5に示した
オブジェクトを接続した後のオブジェクト接続及びデー
タ構造のブロック図である。図6は、4つのオブジェク
ト、即ち図5のオープンファイルダイアログボックスオ
ブジェクト503に対応するソースオブジェクト601
と、図5のコードオブジェクト504ないし506に対
応する3つのシンクオブジェクトとを示している。オー
プンファイルダイアログボックスオブジェクト503に
対応するソースオブジェクト601は、タイトルバーオ
ブジェクト508、多選択リストボックスオブジェクト
509及びボタンオブジェクト510に対応するサブオ
ブジェクトを含んでいる(これらのサブオブジェクトは
いずれも示されていない)。或いは又、本発明を用い
て、オープンファイルダイアログボックスオブジェクト
503に含まれたサブオブジェクトの各々に対するソー
スオブジェクトを形成しそしてその各々のソースオブジ
ェクトを適当なコードオブジェクト(シンクオブジェク
ト)に接続することもできる。
【0040】オープンファイルダイアログボックスオブ
ジェクト503は、オープンファイルダイアログボック
スオブジェクト503の選択、多選択リストボックスオ
ブジェクト509内のファイルの選択、及びボタンオブ
ジェクト510により実施されるOKボタンのユーザ選
択に対応するシステム事象を取り扱うので、ソースオブ
ジェクト601は、異なる事象セットに関連した接続ポ
イントオブジェクトをサポートする。より詳細には、ソ
ースオブジェクト601は、接続ポイントコンテナオブ
ジェクト605と、3つの接続ポイントオブジェクト6
08、612及び615とを含んでいる。接続ポイント
オブジェクト608には、多選択リストボックスオブジ
ェクト509をサポートするのに使用されるIMult
ipleListインターフェイスが関連される。接続
ポイントオブジェクト612にはボタンオブジェクト5
10をサポートするのに使用されるIButtonイン
ターフェイスが関連される。接続ポイントオブジェクト
615には、オープンファイルダイアログボックスオブ
ジェクト503をサポートするのに使用されるIDia
logインターフェイスが関連される。接続ポイントコ
ンテナオブジェクト605は、IConnection
PointContainerインターフェイスを形成
し、接続ポイントオブジェクトのポインタのリストを維
持する。図6において、接続ポイントオブジェクトを指
すポインタのリストは、現在、3つのエレメント60
6、607及び618を有している。各エレメントは、
接続ポイントオブジェクトに関連したインターフェイス
IDのインジケータと、接続ポイントオブジェクトのI
ConnectionPointインターフェイスのポ
インタと、リストの次のエレメントのポインタとを含ん
でいる。形成された接続ポイントオブジェクトのセット
をマネージするのに他のデータ構造を使用できることが
当業者に明らかであろう。又、効率の理由で、各リスト
エレメントに関連される情報はもっと多くてもよいし少
なくてもよい。例えば、各エレメントがインターフェイ
スIDを記憶する必要はない。というのは、インターフ
ェイスIDは接続ポイントオブジェクトから容易にアク
セスできるからである。
【0041】各接続ポイントオブジェクトは、ICon
nectionPointインターフェイスを形成し、
そしてシンクオブジェクトに属する通知インターフェイ
スに対するレファレンスのリストを維持する。シンクオ
ブジェクトの通知インターフェイスに対するレファレン
スは、シンクオブジェクトがIConnectionP
ointインターフェイスを用いて接続ポイントオブジ
ェクトから接続を要求するときにこのリストに加えられ
る。接続ポイントコンテナオブジェクト605のリスト
エレメント606によってレファレンスされる接続ポイ
ントオブジェクト608は、現在、2つのエレメント6
10及び611を含む通知インターフェイスに対するレ
ファレンスのリストを示す。通知インターフェイス60
9に対するレファレンスのリストのヘッダは、それに関
連したインターフェイス識別子及び第1リストエレメン
トを迅速にアクセスするために設けられている。各リス
トエレメントは、接続を独特に識別するトークンと、接
続されたシンクオブジェクトのIUnknownインタ
ーフェイスのポインタと、リスト内の次のエレメントの
ポインタとを含んでいる。例えば、リストエレメント6
10は、シンクオブジェクト602との接続を独特に識
別するトークンを含み、このシンクオブジェクトは、多
選択リストボックスオブジェクト509により表示され
たファイルのリストを更新するためのコードオブジェク
ト504に対応する。又、リストエレメント610は、
シンクオブジェクト602のIMultipleLis
tインターフェイス(通知インターフェイス)をアクセ
スするためにシンクオブジェクト602のIUnkno
wnインターフェイスのポインタを含んでいる。又、リ
ストエレメント610は、リストエレメント611のポ
インタを与える。リストエレメント611は、選択され
たファイルを追跡するためにコードオブジェクト505
に対応するシンクオブジェクト603に同様に接続され
る。
【0042】接続ポイントオブジェクト612は、ボタ
ンオブジェクト510とシンクオブジェクト604との
間の接続を実施し、このシンクオブジェクトは、ユーザ
が選択したファイルをオープンするためのコードオブジ
ェクト506に対応する。接続ポイントオブジェクト6
08と同様に、接続ポイントオブジェクト612は、1
つのエレメント614をもつリストを含んでいる。エレ
メント614は、コードオブジェクト506に対応する
シンクオブジェクト604のIUnknownインター
フェイスを指すポインタを含んでいる。更に、接続ポイ
ントオブジェクト615は、シンクオブジェクト602
の通知インターフェイスに同様に接続される。接続ポイ
ントオブジェクト615(IDialog)に接続され
たシンクオブジェクト602の通知インターフェイス
は、接続ポイントオブジェクト608に接続された同じ
シンクオブジェクト(IMultipleList)の
通知インターフェイスとは異なることに注意されたい。
しかしながら、この実施例では、両接続ポイントオブジ
ェクト608及び615は、シンクオブジェクト602
のIUnknownインターフェイスを指すポインタを
含んでいる。図6に示すように、接続ポイントオブジェ
クトは、1つ以上の通知インターフェイス(1つ以上の
シンクオブジェクトの)に接続することができ、そして
シンクオブジェクトは、1つ以上の接続ポイントオブジ
ェクトに接続することができる。
【0043】図6を参照すれば、ソースオブジェクト6
01がオープンファイルダイアログボックス503に関
連した事象を受け取るとき、ソースオブジェクト601
は、IDialogインターフェイス(615)に対応
する接続ポイントオブジェクトを見つける。ソースオブ
ジェクト601は、シンクオブジェクト602に通知を
出し、該シンクオブジェクト602は、そのIDial
ogインターフェイスを用いてファイルのリストを更新
する。ソースオブジェクト601は、多選択リストボッ
クスオブジェクト509を選択することに関連した選択
事象を受け取ると、IMultipleListインタ
ーフェイス(608)に対応する接続ポイントオブジェ
クトを見つけ、そしてそれらの接続された通知インター
フェイス(IMultipleList)を用いてシン
クオブジェクト602及び603に通知する。同様に、
ソースオブジェクト601は、ユーザがボタンオブジェ
クト510を押すことに関連した選択事象を受け取る
と、IButtonインターフェイス(612)に対応
する接続ポイントオブジェクトを見つけ、接続された通
知インターフェイス(IButton)を用いてシンク
オブジェクト604に通知する。ボタンオブジェクト5
10を選択することに対応する事象通知の例を図9を参
照して説明する。 コードテーブル3 interface IConnectionPoint; public IUnknown { virtual HRESULT GetConnectionInterface(REFILED piid)=0; virtual HRESULT GetConnectionPointContainer (IConnectionPointContainer**ppCPC)=0; virtual HRESULT Advise(IUnknown*punk,DWORD*pdwToken)=0; virtual HRESULT Unadvise(DWORDdwToken)=0; virtual HRESULT EnumConnection(IEnumConnections**ppEnum)=0; } interface IEnumConnections; public IUnknown { virtual HRESULT Next(ULONG cConnections,CONNECTDATA*rgpunk, ULONG*lpcFeched)=0; virtual HRESULT Skip(ULONG cConnections)=0; virtual HRESULT Reset()=0; virtual HRESULT Clone(IEnumConnection**ppEnum)=0; } struct tagCONNECTDATA { IUnknown*punk; DWORDdwToken; }CONNECTDATA;
【0044】コードテーブル3は、インターフェイスI
ConnectionPoint及びIEnumCon
nectionsの好ましい定義と、列挙インターフェ
イスIEnumConnectionsにより返送され
るデータ構造とに対するC++擬似コードを含んでい
る。IConnectionPoinインターフェイス
は、接続ポイントオブジェクトを接続及び切断しそして
その接続ポイントオブジェクトに接続された通知インタ
ーフェイスを列挙するための方法を含んでいる。方法G
etConnectionInterfaceは、接続
ポイントオブジェクトに関連したインターフェイスID
のポインタを返送する。方法GetConnectio
nPointContainerは、接続ポイントオブ
ジェクトを含む接続ポイントコンテナオブジェクト(そ
の親コンテナオブジェクト)のIConnection
PointContainerインターフェイスを指す
ポインタを返送する。接続ポイントオブジェクトがイン
スタンス生成されるときは、接続ポイントオブジェクト
の形成方法が、将来の使用のために接続ポイントコンテ
ナオブジェクトを指すポインタを通す。方法Advis
eは、パラメータpunkにより指定された通知インタ
ーフェイスを接続ポイントオブジェクトに接続し、もし
首尾良くいった場合は、パラメータpdwTokenに
おける接続を識別する独特のトークンを返送する。この
独特のトークンは、永久に記憶される。方法Unadv
iseは、入力パラメータdwTokenによって指定
された通知インターフェイスを切断する。方法Enum
Connectionsは、インターフェイスIEnu
mConnectionsのインスタンスである列挙イ
ンターフェイスを、接続された通知インターフェイスを
経て繰り返し返送する。
【0045】インターフェイスIEnumConnec
tionsは、IConnectionPointイン
ターフェイスにより使用されるエニュメレータを実施す
る。このエニュメレータは、特定の接続ポイントオブジ
ェクトに対して通知インターフェイス接続を列挙する1
組の方法を含んでいる。問題とする2つの方法は、第1
の接続された通知インターフェイスを指すようにエニュ
メレータを再初期化する方法Resetと、次の接続さ
れた通知インターフェイスのポインタを返送する方法N
extとを含む。コードテーブル3は、列挙方法Nex
tにより返送される接続情報、CONNECTDATA
と称する、に対する典型的な構造定義を示している。 コードテーブル4 interface IConnectionPointContainer; public IUnknown{ virtual HRESULT EnumConnectionPoints(IEnumConnectionPoints **ppEnum)=0; virtual HRESULT FindConnectionPoint(REFIELDiid,IConnection Points**ppPoint)=0; } interface IEnumConnectionPoints; public IUnknown{ virtual HRESULT Next(ULONG cConnections,IConnectionPoint* rgpcn,ULONG*lpcFeched)=0; virtual HRESULT Skip(ULONG cConnections)=0; virtual HRESULT Reset()=0; virtual HRESULT Clone(IEnumEmbeddedConnection**ppecn)=0; }
【0046】コードテーブル4は、インターフェイスI
ConnectionPointContainer及
びIEnumConnectionPointsの好ま
しい定義に対するC++擬似コードを含んでいる。IC
onnectionPointContainerイン
ターフェイスは、特定の接続ポイントオブジェクトを見
つけそして1組の収容された接続ポイントオブジェクト
を列挙するための方法を実施する。IEnumConn
ectionPointsインターフェイスはICon
nectionPointContainerインター
フェイスにより使用される列挙方法を実施する。ICo
nnectionPointContainerインタ
ーフェイスは、指定のインターフェイスIDを与えたI
ConnectionPointインターフェイスのポ
インタを返送する方法FindConnectionP
ointを含んでいる。方法IEnumConnect
ionPointsは、収容された1組の接続ポイント
オブジェクトを経てインターフェイスIEnumCon
nectionPointsのポインタを繰り返し返送
する。インターフェイスIEnumConnectio
nPointsは、第1の接続オブジェクトを指すよう
にエニュメレータを初期化する方法Resetと、接続
ポイントコンテナオブジェクトに記憶された次の接続ポ
イントオブジェクトに関連したIConnection
Pointインターフェイスを指すポインタを検索する
方法Nextとを備えている。
【0047】図5及び6について説明した例と対応的
に、図5に示されたビジュアルプログラミング環境より
成るオブジェクトは、オープンファイルダイアログボッ
クスオブジェクト503(ソースオブジェクト)とコー
ドオブジェクト(シンクオブジェクト)504、505
及び506との間の接続を設定するイニシエータオブジ
ェクトとして働く。図7は、指定のシンクオブジェクト
を指定の通知インターフェイスに対する指定のソースオ
ブジェクトに接続するためのファンクションSetUp
Connectionの流れ線図である。イニシエータ
オブジェクト(ビジュアルプログラミング環境を実施す
るコード)は、このファンクションを使用して、図5及
び6に示された全ての接続を設定することができる。フ
ァンクションSetUpConnectionは、コー
ドテーブル3及び4に示されたインターフェイスを使用
して事象取扱機構を設定するための一例を与える。これ
らのインターフェイス、及びSetUpConnect
ionとは異なるファンクションが多数使用できること
が当業者に明らかであろう。
【0048】ファンクションSetUpConnect
ionは、ソースオブジェクトにおける接続ポイントオ
ブジェクトを接続のために決定し、そしてシンクオブジ
ェクトの適当な通知インターフェイスを接続ポイントオ
ブジェクトに接続する。このファンクションは、3つの
入力パラメータをとる。即ち、接続すべきソースオブジ
ェクトのあるインターフェイスを指すポインタであるp
Srcと、接続すべきシンクオブジェクトのあるインタ
ーフェイスを指すポインタであるpSinkと、シンク
オブジェクトが接続しようとする接続ポイントオブジェ
クトに関連したインターフェイス識別子であるiidで
ある。ステップ701において、このファンクション
は、指定のソースオブジェクトの方法QueryInt
erfaceを呼び出して、指定のソースオブジェクト
のIConnectionPointContaine
rインターフェイスを位置決めする。ステップ702に
おいて、ファンクションは、返送されたIConnec
tionPointContainerインターフェイ
スポインタを使用して、方法FindConnecti
onPointを呼び出し、指定のiidに対する接続
ポイントオブジェクトのポインタを検索する。(このフ
ァンクションは、図8を参照して説明する。)ステップ
703において、ファンクションは、例えば、将来にシ
ンクオブジェクトの切断に使用するために、接続ポイン
トオブジェクトの返送されたポインタをセーブする。ス
テップ704において、ファンクションは、指定のシン
クオブジェクトの方法QueryInterfaceを
呼び出して、シンクオブジェクトのIUnknownイ
ンターフェイスのポインタを得る。ステップ705にお
いて、ファンクションは、接続ポイントオブジェクト
(ステップ702で返送された)の方法Adviseを
呼び出し、シンクオブジェクトのIUnknownイン
ターフェイスを接続ポイントオブジェクトに接続する。
ファンクションは、Adviseの呼び出しにおいてシ
ンクオブジェクトのIUnknownインターフェイス
のポインタを通し、それが首尾良くいく場合は、方法A
dviseは、接続された通知インターフェイスを独特
に識別するトークンを返送する。ステップ706におい
て、方法Adviseによって接続が首尾良く実行され
た場合には、ファンクションはステップ707に続き、
さもなくば、エラーを返送する。ステップ707におい
て、ファンクションは、シンクオブジェクトの通知イン
ターフェイスの切断に後で使用するために方法Advi
seによって返送されたトークンをセーブし、そして復
帰となる。
【0049】ファンクションSetUpConnect
ionは、接続ポイントオブジェクトとシンクオブジェ
クトとの間の接続を設定する1つの方法を組み込んでい
る。多数の別の方法があることが当業者に明らかであろ
う。例えば、ステップ702とは別に、Connect
ionPointContainerインターフェイス
の列挙方法EnumConnectionPoints
を用いて、接続ポイントオブジェクトを決定してもよ
い。又、シンク又はイニシエータオブジェクトがソース
オブジェクトにおける接続ポイントオブジェクトのポイ
ンタを既に有している場合には、シンク又はイニシエー
タオブジェクトはIConnectionPointイ
ンターフェイスの方法GetConnectionPo
intContainerを用いて、接続ポイントコン
テナオブジェクトのポインタを検索し、異なる接続ポイ
ントオブジェクトをサーチすることができる。又、シン
ク又はイニシエータオブジェクトが所望の接続ポイント
オブジェクトを既に得ている場合には、シンク又はイニ
シエータオブジェクトは方法Adviseを直接呼び出
し、予備的なステップを省くことができる。更に、好ま
しい実施例では、指定のシンクオブジェクトのIUnk
nownインターフェイスのポインタは、指定の接続ポ
イントオブジェクトに記憶されたインターフェイスポイ
ンタであると仮定する。IUnknownインターフェ
イスは、接続ポイントオブジェクトの永続的記憶をサポ
ートし、そして接続されたシンク又は委託オブジェクト
への遅延結合をイネーブルするのに使用される。或いは
又、遅延結合に関連することなく通知インターフェイス
自体のポインタを記憶することもできる。又、このファ
ンクション及び以下に述べるファンクションでは、説明
の簡略化のために、レファレンスカウントが省略されて
いることに注意されたい。オブジェクト接続が形成され
そして破壊されるときには、好ましくはレファレンスカ
ウントが更新されそして好ましくは繰り返しレファレン
スが回避されることが当業者に明らかであろう。
【0050】図8は、IConnectionPoin
tContainerインターフェイスの方法Find
ConnectionPointを示すフローチャート
である。この方法は、指定のインターフェイス識別子に
対応する接続ポイントオブジェクトのIConnect
ionPointインターフェイスのポインタを返送す
る。指定のインターフェイス識別子は、入力パラメータ
としてこの方法に通され、そしてこの方法は、出力パラ
メータにおけるインターフェイスポインタを指すポイン
タを返送する。ステップ801ないし806では、この
方法は、インスタンス生成された接続ポイントオブジェ
クトのリストを通してループし、指定のインターフェイ
ス識別子に対応する接続ポイントオブジェクトを探す。
ステップ807ないし810において、対応する接続ポ
イントオブジェクトが見つからない場合には、この方法
は、要求されたインターフェイス識別子がソースオブジ
ェクトによってサポートされる場合に新たな接続ポイン
トオブジェクトをインスタンス生成し、さもなくば、こ
の方法は、エラーを返送する。ステップ801におい
て、第1のリストエレメントに含まれたIConnec
tionPointインターフェイスポインタを指すよ
うに一時的な変数がセットされる。ステップ802にお
いて、一時的な変数によって指されたインターフェイス
の方法GetConnectionInterface
が呼び出されて、一時的な変数によって参照された接続
ポイントオブジェクト(現在接続ポイントオブジェク
ト)に関連したインターフェイスIDが指定のインター
フェイスIDに一致するかどうかを決定する。ステップ
803において、返送されたインターフェイスIDが指
定のインターフェイスIDに一致する場合には、この方
法はステップ804に続き、さもなくば、ステップ80
5に続く。ステップ804では、この方法は、一時的な
変数により参照されたIConnectionPoin
tインターフェイスポインタのアドレスを指すように出
力パラメータをセットし、そして復帰する。ステップ8
05において、一時的な変数(現在接続ポイントオブジ
ェクトを指す)は、インスタンス生成された接続ポイン
トオブジェクトのリストにおける次のエレメントのIC
onnectionPointインターフェイスを指す
ようにセットされる。ステップ806において、この方
法がリストの終わりに達した場合には、この方法はステ
ップ807へ続き、さもなくば、この方法は、ステップ
801においてループの始めへ戻る。ステップ807に
おいて、この方法は、指定のインターフェイスIDが、
ソースオブジェクトがサポートする接続インターフェイ
スに対応するかどうかを決定し、もしそうであれば、こ
の方法は、ステップ808へ続き、さもなくば、エラー
を返送する。ステップ808において、この方法は、新
たな接続ポイントオブジェクトをインスタンス生成す
る。ステップ809において、この方法は、新たにイン
スタンス生成された接続ポイントオブジェクトを、接続
ポイントオブジェクトの接続ポイントコンテナオブジェ
クトのリストへ挿入する。ステップ810において、こ
の方法は、その新たにインスタンス生成された接続ポイ
ントオブジェクトのアドレスを指すように出力パラメー
タをセットし、そして復帰する。
【0051】図8の方法FindConnection
Pointを構成するステップは、接続ポイントオブジ
ェクトが必要に応じて動的にインスタンス生成されるこ
とを仮定している。接続ポイントオブジェクトは、ソー
スオブジェクトの実施に基づいて動的に又は静的に確立
できることが当業者に明らかであろう。例えば、ソース
オブジェクトをインスタンス生成する際には、ソースオ
ブジェクトによってサポートされる各接続インターフェ
イス識別子に対応する接続ポイントオブジェクトを、通
知インターフェイスに対する空のレファレンスリストと
共にインスタンス生成することができる。又、接続ポイ
ントオブジェクトの実施構造の知識と共に接続ポイント
コンテナオブジェクトが実施される場合には、効率化の
理由で、あるステップを方法FindConnecti
onPointから除去することができる。このような
知識は、典型的に、ソースオブジェクトの実施が接続ポ
イントコンテナオブジェクト及び接続ポイントオブジェ
クトに対してそれ自身の実施を与える場合に生じる。更
に、方法FindConnectionPointは、
接続ポイントオブジェクトに対するレファレンスを記憶
するのに用いられるデータ構造が図6に示すようなリス
ト構造であると仮定する。或いは又、この方法は、種々
の記憶データ構造を取り扱うように書き込むこともでき
る。
【0052】図9は、ソースオブジェクトとシンクオブ
ジェクトとの間に確立された接続を使用する方法のフロ
ーチャートである。より詳細には、図9は、ユーザがO
Kボタンオブジェクト510を押したことを指示するシ
ステム選択事象をソースオブジェクトが受け取ったとき
に図5のオープンファイルダイアログボックスオブジェ
クト503に対応するソースオブジェクトによって実行
することのできる1組のステップを示している。この例
は、図6を参照して述べたように接続が適当に確立され
たと仮定している。オブジェクト接続機構の意味及び他
の多数の使用が考えられることが当業者に明らかであろ
う。
【0053】ユーザが図5のOKボタンオブジェクト5
10を押すと、システムは選択事象をソースオブジェク
トに送信する。次いで、ソースオブジェクトは、外部で
生じた事象に応答するためにある内部ルーチンを呼び出
す。図9は、このようなルーチン、即ちIDialog
Boxインターフェイスに対する方法OK Butto
nDownの例を示している。方法OK Button
Downは、生じた事象に関連するインターフェイス識
別子にどの接続ポイントオブジェクトが対応するかを決
定し、そしてその決定された接続ポイントオブジェクト
に接続された通知インターフェイスの所定の方法を呼び
出す。既に述べたように、生じた事象を含む1組の事象
はインターフェイスによって表されるので、ソースオブ
ジェクトは、接続されたシンクオブジェクトによりどん
な方法がサポートされるかの知識を有する。更に、生じ
た事象を取り扱うソースオブジェクトルーチン(この場
合は、OK ButtonDown方法)では、ソース
オブジェクトは、その生じた事象を取り扱うためにシン
クオブジェクトのどの特定方法を呼び出すのが好ましい
かを判断することができる。この特定例では、この方法
は、その生じた選択事象に応答するために、インターフ
ェイス識別子IID IButtonに対応する通知イ
ンターフェイスの方法MouseLeftButton
Downを呼び出すのが好ましいと決定する。
【0054】ステップ901では、この方法は、方法Q
ueryInterfaceを用いてそれ自身のICo
nnectionPointContainerインタ
ーフェイスを得る。ステップ902では、この方法は、
IConnectionPointContainer
インターフェイスポインタを用いて、方法FindCo
nnectionPointを呼び出し、インターフェ
イス識別子IID IButtonに対応する接続ポイ
ントオブジェクトを要求する。ステップ903では、こ
の方法は、手前のステップで返送された接続ポイントオ
ブジェクトの方法EnumConnectionsを呼
び出して、接続ポイントオブジェクトの内容を列挙する
エニュメレータを得る。ステップ904では、この方法
は、通知インターフェイスのレファレンスのリストの始
めでスタートするようにエニュメレータをリセットす
る。ステップ905では、この方法は、エニュメレータ
の方法Nextを呼び出し、次にレファレンスされた通
知インターフェイスに対する接続データを得る。ステッ
プ906では、通知インターフェイスに対するそれ以上
のレファレンスが存在しないことをエニュメレータが指
示する場合には、この方法は復帰となり、さもなくば、
この方法はステップ907へ続く。ステップ907で
は、この方法は、もし必要ならばリモート手順コールを
用いて、接続ポイントデータ構造で指示されたIUnk
nownインターフェイスの方法QueryInter
faceを呼び出し、インターフェイス識別子IID
IButtonに対応する通知インターフェイスを要求
する。リモート手順コールは、接続された通知インター
フェイスが別のプロセスアドレススペース内に含まれた
オブジェクトに属する場合に必要とされる。ステップ9
08において、この方法は、検索されたIButton
インターフェイスの方法MouseLeftButto
nDownを呼び出し(もし必要ならばリモート手順コ
ールを用いて)、そしてステップ905のループの始め
へと戻る。接続ポイントコンテナオブジェクト及び接続
ポイントオブジェクトの実施がソースオブジェクトの実
施によって分かる場合には、効率化の理由で、この方法
の多数のステップを省略できることが当業者に明らかで
あろう。
【0055】図10は、指定の通知インターフェイスを
切断するためにシンクオブジェクトによって定められた
ファンクションのフローチャートである。このファンク
ションは、シンクオブジェクトが切断しようとする通知
インターフェイスのインターフェイスIDである1つの
入力パラメータを有している。ステップ1001におい
て、このファンクションは、ファンクションSetUp
Connectionの間に既に記憶された(図7のス
テップ703)指定のインターフェイスIDに対する接
続ポイントオブジェクトのIConnectionPo
intインターフェイスのポインタを検索する。又、こ
のファンクションは、指定のインターフェイスIDに対
して既に確立された(図7のステップ707)接続を独
特に識別するトークンも検索する。ステップ1002に
おいて、このファンクションは、検索されたIConn
ectionPointインターフェイスの方法Una
dviseを呼び出し、検索されたトークンをこれに通
し、そして復帰する。IConnectionPoin
tインターフェイスの方法Unadviseは、指定の
トークンを使用して通知インターフェイスに対するレフ
ァレンスのリストをサーチし、それに対応する通知イン
ターフェイスレファレンスを見つける。方法Unadv
iseは、次いで、対応する通知インターフェイスに対
するレファレンスを、接続された通知インターフェイス
のリストから除去し、従って、対応する通知インターフ
ェイスを切断する。 コードテーブル5 interface IProvideClassInfo:public IUnknown { virtual HRESLT GetClassInfo(ITypeInfo**ppti,CLID lcid)=0; }
【0056】コードテーブル5は、未知のソースオブジ
ェクトに関する情報を得るためにシンクオブジェクトに
より使用できるインターフェイスIProvideCl
assInfoの好ましい定義に対するC++擬似コー
ドを含む。IProvideClassInfoインタ
ーフェイスの方法GetClassInfoは、未知の
ソースオブジェクトからクラス及びタイプ情報を得てそ
れに接続するためにシンク又はイニシエータオブジェク
トによって使用することができる。ITypeInfo
インターフェイスは、どんな事象が生じるかそしてどん
な特性をサポートするかについてソースオブジェクトに
より実施されるインターフェイスを記述する。シンク又
はイニシエータオブジェクトは、この情報を用いて、適
合し得る接続を設定することができる。ITypeIn
foインターフェイスは、参考としてここに取り上げる
「タイプライブラリーにインターフェイスするための方
法及びシステム(Method and System for Interfacing t
o a Type Library) 」と題する米国特許出願第07/9
59,056号に詳細に説明されている。
【0057】以上、好ましい実施例について本発明を説
明したが、本発明は、この実施例に限定されるものはな
い。当業者であれば、本発明の精神内での変更が明らか
であろう。従って、本発明は、特許請求の範囲のみによ
り限定されるものとする。
【図面の簡単な説明】
【図1】オブジェクトを表すのに使用される典型的なデ
ータ構造を示すブロック図である。
【図2】スプレッドシートオブジェクトの記号表示であ
る。
【図3】好ましい接続機構アーキテクチャのブロック図
である。
【図4】ソースオブジェクト、委託オブジェクト及びシ
ンクオブジェクトの間の接続を示すブロック図である。
【図5】アプリケーションプログラムのためのオープン
ファイルダイアログボックスを形成するのに使用される
ビジュアルプログラミング環境のディスプレイを示すブ
ロック図である。
【図6】本発明を用いて図5に示すオブジェクトを接続
した後のオブジェクト接続及びデータ構造を示すブロッ
ク図である。
【図7】指定のシンクオブジェクトを指定の通知インタ
ーフェイスに対する指定のソースオブジェクトに接続す
るためのファンクションSetUpConnectio
nを示すフローチャートである。
【図8】IConnectionPointConta
inerインターフェイスの方法FindConnec
tionPointのフローチャートである。
【図9】ソースオブジェクトとシンクオブジェクトとの
間に確立された接続を使用する方法のフローチャートで
ある。
【図10】指定の通知インターフェイスを切断するため
にシンクオブジェクトによって定められたファンクショ
ンのフローチャートである。
【符号の説明】
301 ソースオブジェクト 302、303 シンクオブジェクト 305、306 接続ポイントオブジェクト 307、308、309、310、311 インターフ
ェイス 401 接続ポイントオブジェクト 402 委託オブジェクト 403 シンクオブジェクト 404、405 通知インターフェイス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クリストファー エイ ツィマーマン アメリカ合衆国 ワシントン州 98008 ベルヴィュー ウェスト レイク サマー ミッシュ パークウェイ サウスイースト 3006

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 ソースオブジェクトとシンクオブジェク
    トとの間のオブジェクト接続を動的に発生するコンピュ
    ータシステムにおける方法であって、シンクオブジェク
    トは、ソースオブジェクトと通信するための通知インタ
    ーフェイスを有し、ソースオブジェクトは、シンクオブ
    ジェクトを接続するための接続ポイントインターフェイ
    スを有し、上記方法は、 ソースオブジェクトをシンクオブジェクトに接続するた
    めの接続ポイントインターフェイスを選択し、 その選択された接続ポイントインターフェイスを経て、
    ソースオブジェクトとシンクオブジェクトを接続する要
    求を受け取り、この要求は、シンクオブジェクトの通知
    インターフェイスの指示を有し、そしてその指示された
    通知インターフェイスを記憶し、これにより、ソースオ
    ブジェクトは、その指示された通知インターフェイスを
    使用してシンクオブジェクトと通信する、という段階を
    備えたことを特徴とする方法。
  2. 【請求項2】 ソースオブジェクトの制御のもとで、シ
    ンクオブジェクトの記憶された通知インターフェイスを
    呼び出す段階を更に備えた請求項1に記載の方法。
  3. 【請求項3】 上記接続ポイントインターフェイスは、
    複数のシンクオブジェクトに接続され、接続要求を受け
    取る上記段階及び指示された通知インターフェイスを記
    憶する上記段階は、各シンクオブジェクトに対して実行
    され、そして更に、記憶された通知インターフェイスを
    各シンクオブジェクトに対して呼び出す段階を備えた請
    求項1に記載の方法。
  4. 【請求項4】 各接続ポイントインターフェイスは、複
    数のシンクオブジェクトに接続され、接続ポイントイン
    ターフェイスを選択する上記段階は、シンクオブジェク
    トの通知インターフェイスに基づいて接続ポイントイン
    ターフェイスを選択する請求項1に記載の方法。
  5. 【請求項5】 ソースオブジェクトは、複数の接続ポイ
    ントインターフェイスとの対話をマネージするための接
    続ポイントコンテナオブジェクトを有し、接続ポイント
    インターフェイスを選択する上記段階は、接続ポイント
    コンテナオブジェクトから接続ポイントインターフェイ
    スを要求するサブ段階を備えている請求項4に記載の方
    法。
  6. 【請求項6】 接続ポイントインターフェイスは、ソー
    スオブジェクトへの接続を要求するためのアドバイスメ
    ンバーファンクションを有し、接続要求を受け取る上記
    段階は、接続ポイントインターフェイスのアドバイスメ
    ンバーファンクションの制御のもとで実行される請求項
    1に記載の方法。
  7. 【請求項7】 接続ポイントインターフェイスを選択す
    る上記段階は、ソースオブジェクトの制御のもとで実行
    される請求項1に記載の方法。
  8. 【請求項8】 指示された通知インターフェイスを記憶
    する上記段階は、ソースオブジェクトの制御のもとで実
    行される請求項1に記載の方法。
  9. 【請求項9】 シンクオブジェクトの制御のもとで接続
    を要求する段階を更に備えた請求項1に記載の方法。
  10. 【請求項10】 上記コンピュータシステムは、ソース
    オブジェクトとシンクオブジェクトとの間の接続を設定
    するためのイニシエータオブジェクトを有しており、接
    続を要求する上記段階は、イニシエータオブジェクトに
    よって実行される請求項9に記載の方法。
  11. 【請求項11】 シンクオブジェクトの通知インターフ
    ェイスをソースオブジェクトと共に登録するためのコン
    ピュータシステムにおける方法であって、ソースオブジ
    ェクトは、シンクオブジェクトの通知インターフェイス
    を登録するためのファンクションメンバーを有し、通知
    インターフェイスは、ソースオブジェクトからシンクオ
    ブジェクトと通信するためのものであり、シンクオブジ
    ェクトは、複数の通知インターフェイスを有し、上記方
    法は、 上記複数の通知インターフェイスから登録のための通知
    インターフェイスを選択し、そしてソースオブジェクト
    のファンクションメンバーを用いてその選択された通知
    インターフェイスの登録を要求する、という段階を備え
    たことを特徴とする方法。
  12. 【請求項12】 ソースオブジェクトは、通知インター
    フェイスの登録を要求するためのアドバイスメンバーフ
    ァンクションを有し、そして登録を要求する上記段階
    は、要求を行うためにソースオブジェクトのアドバイス
    メンバーファンクションを呼び出す請求項11に記載の
    方法。
  13. 【請求項13】 シンクオブジェクトは、シンクオブジ
    ェクトの他のインターフェイスをアクセスするためにI
    Unknownインターフェイスを有し、そして通知イ
    ンターフェイスを選択する上記段階は、シンクオブジェ
    クトのIUnknownインターフェイスを選択する請
    求項11に記載の方法。
  14. 【請求項14】 上記コンピュータシステムは、シンク
    オブジェクトの通知インターフェイスを登録するための
    イニシエータオブジェクトを有し、全ての段階はこのイ
    ニシエータオブジェクトにより実行される請求項9に記
    載の方法。
  15. 【請求項15】 ソースオブジェクトとシンクオブジェ
    クトとの間のオブジェクト接続を動的に発生するコンピ
    ュータシステムにおける方法であって、シンクオブジェ
    クトは、シンクオブジェクトと通信するための複数の通
    知インターフェイスを有し、ソースオブジェクトは、シ
    ンクオブジェクトを接続するための接続ポイントインタ
    ーフェイスを有し、上記方法は、 ソースオブジェクトをシンクオブジェクトに接続するた
    めの接続ポイントインターフェイスを選択し、 上記複数の通知インターフェイスから通知インターフェ
    イスを選択し、 その選択された接続ポイントインターフェイスを用い
    て、ソースオブジェクトとシンクオブジェクトを接続す
    ることを要求し、この要求は、選択された通知インター
    フェイスを指示し、そしてソースオブジェクトによって
    シンクオブジェクトに通知できるように上記指示された
    通知インターフェイスを記憶する、という段階を備えた
    ことを特徴とする方法。
  16. 【請求項16】 上記記憶された通知インターフェイス
    を呼び出す段階を更に備えた請求項15に記載の方法。
  17. 【請求項17】 オブジェクトを動的に接続するコンピ
    ュータシステムにおいて、 複数のシンクオブジェクトを備え、各シンクオブジェク
    トは、ソースオブジェクトからシンクオブジェクトと通
    信するための通知ファンクションメンバーを有してお
    り、 更に、複数のソースオブジェクトを備え、各ソースオブ
    ジェクトは、シンクオブジェクトの通知ファンクション
    メンバーを記憶するための複数の接続ポイントを有し、
    各接続ポイントは、複数の通知ファンクションメンバー
    を記憶し、そして複数の記憶された通知ファンクション
    メンバーから要求に応じて通知ファンクションメンバー
    の識別を返送することを特徴とするコンピュータシステ
    ム。
  18. 【請求項18】 複数の接続ポイントを各ソースオブジ
    ェクト内に記憶するための接続ポイントコンテナを更に
    備え、この接続ポイントコンテナは、オブジェクト接続
    が要求されたときにどの接続ポイントを使用するかを判
    断する能力を有する請求項17に記載のシステム。
  19. 【請求項19】 記憶された通知ファンクションメンバ
    ーを呼び出すために接続ポイントによって使用される呼
    び出し機構を更に備えた請求項17に記載のシステム。
JP30736794A 1993-12-13 1994-12-12 オブジェクト接続を動的に発生する方法及びシステム Expired - Lifetime JP4070248B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/166,976 US5485617A (en) 1993-12-13 1993-12-13 Method and system for dynamically generating object connections
US08/166976 1993-12-13

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2002151117A Division JP2003015875A (ja) 1993-12-13 2002-05-24 オブジェクト接続を動的に発生する方法及びシステム

Publications (2)

Publication Number Publication Date
JPH07200296A true JPH07200296A (ja) 1995-08-04
JP4070248B2 JP4070248B2 (ja) 2008-04-02

Family

ID=22605432

Family Applications (2)

Application Number Title Priority Date Filing Date
JP30736794A Expired - Lifetime JP4070248B2 (ja) 1993-12-13 1994-12-12 オブジェクト接続を動的に発生する方法及びシステム
JP2002151117A Pending JP2003015875A (ja) 1993-12-13 2002-05-24 オブジェクト接続を動的に発生する方法及びシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2002151117A Pending JP2003015875A (ja) 1993-12-13 2002-05-24 オブジェクト接続を動的に発生する方法及びシステム

Country Status (5)

Country Link
US (2) US5485617A (ja)
EP (1) EP0660231B1 (ja)
JP (2) JP4070248B2 (ja)
CA (1) CA2137745C (ja)
DE (1) DE69425548T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100555116B1 (ko) * 1997-10-06 2007-01-03 썬 마이크로시스템즈, 인코포레이티드 객체-지향 시스템에서 수신기 타입을 위한 인-라인데이터베이스

Families Citing this family (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805885A (en) 1992-12-24 1998-09-08 Microsoft Corporation Method and system for aggregating objects
US5485617A (en) 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
AU2551895A (en) * 1994-05-16 1995-12-05 Apple Computer, Inc. Dialog item interface definition object
US5706505A (en) * 1994-08-19 1998-01-06 Microsoft Corporation Method and system for binding data in a computer system
US5922054A (en) * 1994-08-19 1999-07-13 Canon Kabushiki Kaisha System for managing external applications and files
AU707240B2 (en) * 1994-09-21 1999-07-08 Intellectual Ventures Fund 83 Llc A link manager for managing links integrating data between application programs
US5805886A (en) * 1994-09-26 1998-09-08 Intel Corporation Method for notifying client applications of events in a shared application in a computer system
CA2207331C (en) * 1994-12-07 2003-02-25 Next Software, Inc. Method for associating data bearing objects with user interface objects
US5850518A (en) * 1994-12-12 1998-12-15 Northrup; Charles J. Access-method-independent exchange
DE69600794T2 (de) * 1995-02-22 1999-06-02 Agust S Egilsson Graphische entwicklungs- und verwaltungsumgebung für anwendungsprogramme
US5911068A (en) * 1995-03-30 1999-06-08 Microsoft Corporation Container independent control architecture
US5802531A (en) * 1995-05-08 1998-09-01 Apple Computer, Inc. Method and system for embedding parts of documents and synchronizing multiple views thereof
US5664208A (en) * 1995-05-16 1997-09-02 Apple Computer, Inc. Methods and apparatuses for seamless compound document processing
US5740455A (en) * 1995-05-16 1998-04-14 Apple Computer, Inc. Enhanced compound document processing architectures and methods therefor
US5606661A (en) * 1995-06-07 1997-02-25 Tandem Computers Incorporated Apparatus and method for scan-based testing in an object-oriented programming environment
DE69621197T2 (de) 1995-09-06 2002-11-07 Seiko Epson Corp Peripheriegerätsteuerungssystem mit einer Mehrheit von Objekten
US5724589A (en) * 1995-10-13 1998-03-03 Borland International, Inc. Development system with a property-method-event programming model for developing context-free reusable software components
US6467085B2 (en) 1995-10-17 2002-10-15 Telefonaktiebolaget L M Ericsson (Publ) System and method for reducing coupling in an object-oriented programming environment
US6389483B1 (en) * 1995-10-17 2002-05-14 Telefonaktiebolaget L M Ericsson (Publ) System and method for reducing coupling between modules in a telecommunications environment
US6016392A (en) 1995-11-03 2000-01-18 Intergraph Corporation Method for object-oriented programming using dynamic interfaces
US6185728B1 (en) * 1996-01-31 2001-02-06 Inprise Corporation Development system with methods for type-safe delegation of object events to event handlers of other objects
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6237024B1 (en) 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6226746B1 (en) 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6282652B1 (en) 1998-02-26 2001-08-28 Sun Microsystems, Inc. System for separately designating security requirements for methods invoked on a computer
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US5999986A (en) 1996-05-01 1999-12-07 Microsoft Corporation Method and system for providing an event system infrastructure
US5918233A (en) * 1996-05-30 1999-06-29 The Foxboro Company Methods and systems for providing electronic documentation to users of industrial process control systems
US6401135B1 (en) * 1996-06-21 2002-06-04 Sun Microsystems, Inc. Translator object for testing an interface to a server object
US5893107A (en) * 1996-07-01 1999-04-06 Microsoft Corporation Method and system for uniformly accessing multiple directory services
US6647432B1 (en) * 1996-08-19 2003-11-11 Geoquest, A Division Of Schlumberger Technology Corporation Distributed framework for intertask communication between workstation applications
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US6401138B1 (en) * 1996-10-28 2002-06-04 Koninklijke Philips Electronics N.V. Interface for patient context sharing and application switching
US6418482B1 (en) * 1996-11-12 2002-07-09 International Business Machines Corporation Reference attributes within an object-oriented system
US6263486B1 (en) * 1996-11-22 2001-07-17 International Business Machines Corp. Method and system for dynamic connections with intelligent default events and actions in an application development environment
US6496870B1 (en) 1997-01-31 2002-12-17 Sun Microsystems, Inc. System, method and article of manufacture for collaboration with an application
US5884078A (en) * 1997-01-31 1999-03-16 Sun Microsystems, Inc. System, method and article of manufacture for creating an object oriented component having multiple bidirectional ports for use in association with a java application or applet
US5842020A (en) * 1997-01-31 1998-11-24 Sun Microsystems, Inc. System, method and article of manufacture for providing dynamic user editing of object oriented components used in an object oriented applet or application
US5913065A (en) * 1997-01-31 1999-06-15 Sun Microsystems, Inc. System, method and article of manufacture for creating hierarchical folder components for use in a java application or applet
US5790855A (en) * 1997-01-31 1998-08-04 Sun Microsystems, Inc. System, method and article of manufacture for type checking appropriateness of port connection and variable type matching in connection with multiport object-oriented components
US6438615B1 (en) 1997-01-31 2002-08-20 Sun Microsystems, Inc. System, method and article of manufacture for using multiple bidirectional ports in association with a java application or applet
US6742050B1 (en) 1997-03-31 2004-05-25 Intel Corporation Inter-object messaging
US6205492B1 (en) * 1997-04-04 2001-03-20 Microsoft Corporation Method and computer program product for interconnecting software drivers in kernel mode
US6581203B1 (en) * 1997-08-21 2003-06-17 International Business Machines Corporation Technique for visually creating and adding members to a class
US6385660B2 (en) 1997-10-06 2002-05-07 Sun Microsystems, Inc. Site specific message dispatch in object-oriented systems
US6253256B1 (en) 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
US6134594A (en) 1997-10-28 2000-10-17 Microsoft Corporation Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
EP0838796A3 (en) * 1998-01-28 1998-06-10 Siemens Aktiengesellschaft Data or information transmission system
US6363435B1 (en) * 1998-02-03 2002-03-26 Microsoft Corporation Event sourcing and filtering for transient objects in a hierarchical object model
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
CN1298514A (zh) 1998-02-26 2001-06-06 太阳微系统公司 确定性散列识别远程方法的方法和系统
AU3297199A (en) * 1998-02-26 1999-09-15 Sun Microsystems, Inc. Dynamic lookup service in a distributed system
US6233389B1 (en) 1998-07-30 2001-05-15 Tivo, Inc. Multimedia time warping system
US8380041B2 (en) 1998-07-30 2013-02-19 Tivo Inc. Transportable digital video recorder system
US8577205B2 (en) 1998-07-30 2013-11-05 Tivo Inc. Digital video recording system
US7558472B2 (en) 2000-08-22 2009-07-07 Tivo Inc. Multimedia signal processing system
US6442620B1 (en) 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
US6425017B1 (en) 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
US6473791B1 (en) 1998-08-17 2002-10-29 Microsoft Corporation Object load balancing
US6256780B1 (en) 1998-09-10 2001-07-03 Microsoft Corp. Method and system for assembling software components
US6810522B2 (en) * 1998-10-07 2004-10-26 Invensys Systems, Inc. Method and system for associating parameters of containers and contained objects
FR2785412B1 (fr) * 1998-10-30 2001-08-24 Bull Sa Creation dynamique de classes d'objets
US6304879B1 (en) 1998-11-25 2001-10-16 Microsoft Corporation Dynamic data cache for object-oriented computing environments
US6795968B1 (en) * 1998-11-25 2004-09-21 Microsoft Corporation Dynamic object behavior for object-oriented-computing environments
US6385724B1 (en) 1998-11-30 2002-05-07 Microsoft Corporation Automatic object caller chain with declarative impersonation and transitive trust
US6574736B1 (en) 1998-11-30 2003-06-03 Microsoft Corporation Composable roles
US6487665B1 (en) 1998-11-30 2002-11-26 Microsoft Corporation Object security boundaries
US6308181B1 (en) * 1998-12-19 2001-10-23 Novell, Inc. Access control with delayed binding of object identifiers
US6748455B1 (en) * 1999-02-23 2004-06-08 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events with filtering
US6829770B1 (en) 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6473769B1 (en) 1999-03-31 2002-10-29 Microsoft Corporation Property linking in object-oriented computing environments
FR2792435B1 (fr) * 1999-04-15 2001-07-13 Cit Alcatel Procede de modification d'un protocole entre objets distribues
US7168062B1 (en) * 1999-04-26 2007-01-23 Objectbuilders, Inc. Object-oriented software system allowing live modification of an application
EP1222535A4 (en) * 1999-04-29 2005-02-16 Univ Rutgers DISTRIBUTED SOFTWARE DEVELOPMENT ENVIRONMENT
US6925513B1 (en) * 1999-05-04 2005-08-02 Apple Computer, Inc. USB device notification
AU5025600A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
US7089530B1 (en) * 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US6782541B1 (en) * 1999-05-28 2004-08-24 Avaya Technology Corp. System and method of exchanging information between software modules
US6788980B1 (en) * 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
EP1192539B1 (en) 1999-06-11 2003-04-16 BRITISH TELECOMMUNICATIONS public limited company Communication between software elements
US6671742B1 (en) * 1999-06-15 2003-12-30 At&T Corp. Method and apparatus for unifield control and data event exchange in a software system
US6701485B1 (en) * 1999-06-15 2004-03-02 Microsoft Corporation Binding spreadsheet cells to objects
US6377960B1 (en) 1999-07-26 2002-04-23 Microsoft Corporation Transactional configuration store and runtime versus administration isolation with version snapshots and aging
US7337174B1 (en) 1999-07-26 2008-02-26 Microsoft Corporation Logic table abstraction layer for accessing configuration information
US6598037B1 (en) 1999-07-26 2003-07-22 Microsoft Corporation Data table object interface for datastore
US6466943B1 (en) * 1999-07-26 2002-10-15 Microsoft Corporation Obtaining table objects using table dispensers
US6421682B1 (en) * 1999-07-26 2002-07-16 Microsoft Corporation Catalog management system architecture having data table objects and logic table objects
US6513112B1 (en) 1999-07-26 2003-01-28 Microsoft Corporation System and apparatus for administration of configuration information using a catalog server object to describe and manage requested configuration information to be stored in a table object
US6564377B1 (en) 1999-07-26 2003-05-13 Microsoft Corporation Self-describing components within a software catalog
AU6915400A (en) * 1999-08-16 2001-03-19 Z-Force Corporation System of reusable software parts and methods of use
US6356933B2 (en) * 1999-09-07 2002-03-12 Citrix Systems, Inc. Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
US6748555B1 (en) * 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US6920636B1 (en) * 1999-12-15 2005-07-19 Microsoft Corporation Queued component interface passing for results outflow from queued method invocations
US6671728B1 (en) * 2000-02-18 2003-12-30 G.E. Information Services, Inc. Abstract initiator
US6789257B1 (en) * 2000-04-13 2004-09-07 International Business Machines Corporation System and method for dynamic generation and clean-up of event correlation circuit
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US6934755B1 (en) 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US20030005407A1 (en) * 2000-06-23 2003-01-02 Hines Kenneth J. System and method for coordination-centric design of software systems
EP1195676A3 (en) * 2000-10-03 2007-03-28 Microsoft Corporation Architecture for customizable applications
US6751787B1 (en) * 2000-10-13 2004-06-15 Intervoice Limited Partnership Graphical programming language for representations of concurrent operations
US6449541B1 (en) * 2000-10-17 2002-09-10 Microsoft Corporation Application-to-component communications helper in a vehicle computer system
US6820268B2 (en) * 2000-10-30 2004-11-16 Next Computer, Inc. Method for associating data bearing objects with user interface objects
US7346842B1 (en) * 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US20020105548A1 (en) * 2000-12-12 2002-08-08 Richard Hayton Methods and apparatus for creating a user interface using property paths
US6779151B2 (en) * 2001-01-05 2004-08-17 Microsoft Corporation Storing objects in a spreadsheet
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US6973655B2 (en) * 2001-12-18 2005-12-06 Xerox Corporation System and method of integrating software components
US7509651B2 (en) * 2003-05-23 2009-03-24 Hewlett-Packard Development Company, L.P. System and method for providing event notifications to information technology resource managers
CA2429762A1 (en) 2003-05-23 2004-11-23 Ibm Canada Limited - Ibm Canada Limitee Business to business event communications
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US8131739B2 (en) * 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US8166101B2 (en) * 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7739316B2 (en) * 2003-08-21 2010-06-15 Microsoft Corporation Systems and methods for the implementation of base schema for organizing units of information manageable by a hardware/software interface system
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US7590643B2 (en) 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US20050049814A1 (en) * 2003-08-26 2005-03-03 Ramchandani Mahesh A. Binding a GUI element to a control in a test executive application
US7730073B2 (en) * 2003-10-23 2010-06-01 Microsoft Corporation System and a method for presenting related items to a user
US20050091181A1 (en) * 2003-10-23 2005-04-28 Mckee Timothy P. System and method for the presentation of items stored on a computer
US7908562B2 (en) * 2003-10-23 2011-03-15 Microsoft Corporation System and a method for presenting items to a user with a contextual presentation
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US20050188350A1 (en) * 2004-02-20 2005-08-25 Microsoft Corporation Data binding
US7761923B2 (en) * 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7653880B2 (en) * 2004-04-13 2010-01-26 Microsoft Corporation Application of data-binding mechanism to perform command binding
US7539687B2 (en) * 2004-04-13 2009-05-26 Microsoft Corporation Priority binding
CA2588630C (en) 2004-11-19 2013-08-20 Tivo Inc. Method and apparatus for secure transfer of previously broadcasted content
US7805422B2 (en) 2005-02-28 2010-09-28 Microsoft Corporation Change notification query multiplexing
US20060212842A1 (en) * 2005-03-15 2006-09-21 Microsoft Corporation Rich data-bound application
US7636888B2 (en) * 2005-03-15 2009-12-22 Microsoft Corporation Verifying compatibility between document features and server capabilities
WO2007123753A2 (en) * 2006-03-30 2007-11-01 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US7913228B2 (en) * 2006-09-29 2011-03-22 Rockwell Automation Technologies, Inc. Translation viewer for project documentation and editing
JP4288292B2 (ja) * 2006-10-31 2009-07-01 株式会社エヌ・ティ・ティ・ドコモ オペレーティングシステム監視設定情報生成装置及びオペレーティングシステム監視装置
US20080126537A1 (en) * 2006-11-23 2008-05-29 Jan Engehausen Method for automatic definition and assembly of composite portal applications
CN101211258B (zh) * 2006-12-28 2010-05-19 联想(北京)有限公司 完整获取GDI和DirectX数据的方法
WO2009155483A1 (en) 2008-06-20 2009-12-23 Invensys Systems, Inc. Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
US8127060B2 (en) * 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8463964B2 (en) * 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8331855B2 (en) 2010-07-12 2012-12-11 Invensys Systems, Inc. Methods and apparatus for process control with improved communication links
US9095002B2 (en) 2010-07-12 2015-07-28 Invensys Systems, Inc. Methods and apparatus for process control with improved communication links

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4800488A (en) 1985-11-12 1989-01-24 American Telephone And Telegraph Company, At&T Bell Laboratories Method of propagating resource information in a computer network
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
EP0369961A3 (en) * 1988-11-18 1992-09-02 International Business Machines Corporation Interface device and method in a computer system
AU628264B2 (en) * 1990-08-14 1992-09-10 Oracle International Corporation Methods and apparatus for providing a client interface to an object-oriented invocation of an application
DE69126857T2 (de) 1991-01-18 1998-01-08 Ibm Objektorientierte Programmierungsplattform
US5297284A (en) * 1991-04-09 1994-03-22 Microsoft Corporation Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language
EP0546682A3 (en) * 1991-12-12 1993-12-08 Ibm Parent class shadowing
US5305461A (en) * 1992-04-03 1994-04-19 International Business Machines Corporation Method of transparently interconnecting message passing systems
US5371891A (en) * 1992-04-09 1994-12-06 Microsoft Corporation Method for object construction in a compiler for an object-oriented programming language
JP3489123B2 (ja) 1992-04-15 2004-01-19 株式会社日立製作所 アプリケーション結合方法
US5327562A (en) * 1992-05-06 1994-07-05 Microsoft Corporation Method for implementing virtual function tables in a compiler for an object-oriented programming language
JPH05324339A (ja) 1992-05-20 1993-12-07 Pfu Ltd 連携処理制御方式
US5307490A (en) 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
US5315703A (en) * 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system
CA2128387C (en) 1993-08-23 1999-12-28 Daniel F. Hurley Method and apparatus for configuring computer programs from available subprograms
US5517645A (en) 1993-11-05 1996-05-14 Microsoft Corporation Method and system for interfacing components via aggregate components formed by aggregating the components each with an instance of a component manager
US5485617A (en) 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100555116B1 (ko) * 1997-10-06 2007-01-03 썬 마이크로시스템즈, 인코포레이티드 객체-지향 시스템에서 수신기 타입을 위한 인-라인데이터베이스

Also Published As

Publication number Publication date
EP0660231A3 (en) 1995-08-16
JP2003015875A (ja) 2003-01-17
EP0660231A2 (en) 1995-06-28
JP4070248B2 (ja) 2008-04-02
EP0660231B1 (en) 2000-08-16
CA2137745A1 (en) 1995-06-14
US5485617A (en) 1996-01-16
DE69425548T2 (de) 2001-01-04
DE69425548D1 (de) 2000-09-21
CA2137745C (en) 2004-07-27
USRE39285E1 (en) 2006-09-12

Similar Documents

Publication Publication Date Title
JP4070248B2 (ja) オブジェクト接続を動的に発生する方法及びシステム
US5689664A (en) Interface sharing between objects
JP3949180B2 (ja) 基底システムオブジェクトモデルを備えたシステム管理サービスの統合
JP4322967B2 (ja) オブジェクト集合方法及びシステム
CA2037750C (en) Hierarchical inter-panel process flow control
US5706505A (en) Method and system for binding data in a computer system
JP4027679B2 (ja) コンポーネント接続管理方法およびその方法をコンピュータで制御するためのコンピュータ読取り可能な記憶媒体
US5682532A (en) System and method having programmable containers with functionality for managing objects
US5778227A (en) System for adding attributes to an object at run time in an object oriented computer environment
US5706458A (en) Method and system for merging menus of application programs
EP0817101B1 (en) Method and system for uniformly accessing multiple directory services
US8020173B2 (en) Method and system for associating parameters of containers and contained objects
JPH0997204A (ja) 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置
US8191077B2 (en) Method for providing stand-in objects
US5896532A (en) Objects with run-time classes and methods of making them
US6088739A (en) Method and system for dynamic object clustering
JPH10511202A (ja) オブジェクト指向環境における回復可能プロキシ・オブジェクト
US6405363B1 (en) Class casting support for run-time extensible items in an object oriented framework
US6360280B1 (en) Method and system for accessing shell folder capabilities by an application program
US6208994B1 (en) Supporters providing extensible classes without recoding for object-oriented applications
US6751796B1 (en) Integration of systems management services with an underlying system object model
KR19990075372A (ko) C++ 객체지향 프로그래밍 시스템에서의 객체에 영속성부여 방법
US5937166A (en) Method and apparatus for information processing

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20030114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080115

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120125

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130125

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140125

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term