JPH0973395A - 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム - Google Patents
複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システムInfo
- Publication number
- JPH0973395A JPH0973395A JP7229545A JP22954595A JPH0973395A JP H0973395 A JPH0973395 A JP H0973395A JP 7229545 A JP7229545 A JP 7229545A JP 22954595 A JP22954595 A JP 22954595A JP H0973395 A JPH0973395 A JP H0973395A
- Authority
- JP
- Japan
- Prior art keywords
- instance
- control
- control object
- event
- control system
- 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.)
- Pending
Links
- 238000010276 construction Methods 0.000 title abstract description 4
- 230000002093 peripheral effect Effects 0.000 title description 50
- 230000007175 bidirectional communication Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 47
- 238000000034 method Methods 0.000 description 47
- 238000012545 processing Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 230000009471 action Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 3
- 230000006854 communication Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】 複数のコモンオブジェクトから構成される制
御システムにおいて、よりフレキシブルに、また、容易
にカスタマイズ可能な制御システムおよびその構築方法
を提供する。 【解決手段】 コモンオブジェクトのインスタンスであ
る第1のOCX10が、他の第2のOCX11を作成し
制御する際に、双方向の通信が可能なインタフェースオ
ブジェクト15を作成し利用可能とする。このインタフ
ェースオブジェクト15によって、第2のOCX11に
おいて発生したイベントを第1のOCX10に返すこと
が可能となり、第1のOCX10から第2のOCXを完
全に動作させることが可能となる。
御システムにおいて、よりフレキシブルに、また、容易
にカスタマイズ可能な制御システムおよびその構築方法
を提供する。 【解決手段】 コモンオブジェクトのインスタンスであ
る第1のOCX10が、他の第2のOCX11を作成し
制御する際に、双方向の通信が可能なインタフェースオ
ブジェクト15を作成し利用可能とする。このインタフ
ェースオブジェクト15によって、第2のOCX11に
おいて発生したイベントを第1のOCX10に返すこと
が可能となり、第1のOCX10から第2のOCXを完
全に動作させることが可能となる。
Description
【0001】
【発明の属する技術分野】本発明は、共通に使用できる
複数のオブジェクトを備え、これらのオブジェクトを用
いてカスタマイズ可能な制御システム、その構築方法お
よび周辺装置制御システムに関するものである。
複数のオブジェクトを備え、これらのオブジェクトを用
いてカスタマイズ可能な制御システム、その構築方法お
よび周辺装置制御システムに関するものである。
【0002】
【従来の技術】近年、コンピュータを用いて多種多様の
処理が行われ、コンピュータに接続可能な外部入出力機
器も多種多様なものが用意されている。従って、コンピ
ュータを中心として、ユーザーの環境や目的などに合わ
せてフレキシブルなシステムを構築し、カスタマイズ可
能なシステムを提供することが重要となっている。例え
ば、共通な規格のバスを用いて1つのコンピュータに様
々なタイプのプリンター、ディスプレイ、バーコードリ
ーダーを始めその他の入出力機器が接続可能であり、コ
ンピュータにはこれらの入出力機器を制御可能なソフト
ウェアがインストールされる場合には、多くの機器を的
確に制御するように制御システムが構築されていなけれ
ばならない。また、複数のコンピュータをネットワーク
で結んだ環境が簡単に構築できるので、個々のコンピュ
ータによって処理すべき対象およびその手順を様々に変
更できることが望ましい。
処理が行われ、コンピュータに接続可能な外部入出力機
器も多種多様なものが用意されている。従って、コンピ
ュータを中心として、ユーザーの環境や目的などに合わ
せてフレキシブルなシステムを構築し、カスタマイズ可
能なシステムを提供することが重要となっている。例え
ば、共通な規格のバスを用いて1つのコンピュータに様
々なタイプのプリンター、ディスプレイ、バーコードリ
ーダーを始めその他の入出力機器が接続可能であり、コ
ンピュータにはこれらの入出力機器を制御可能なソフト
ウェアがインストールされる場合には、多くの機器を的
確に制御するように制御システムが構築されていなけれ
ばならない。また、複数のコンピュータをネットワーク
で結んだ環境が簡単に構築できるので、個々のコンピュ
ータによって処理すべき対象およびその手順を様々に変
更できることが望ましい。
【0003】このようなフレキシブルなシステムをコン
ピュータ内に構築する1つの方法として、共通に用いる
ことのできる複数のオブジェクト(コモンオブジェク
ト)を作成し、これらを活用してオペレーティングシス
テムやアプリケーションプログラムを構築することが考
えられる。マイクロソフト社のOLE(ObjectLi
nking and Embedding)およびOLEプ
ログラミング用に用意されたインタフェースを用いたO
LEオートメーションあるいOLEカスタムコントロー
ル(OCX)といったシステムはその1つである。
ピュータ内に構築する1つの方法として、共通に用いる
ことのできる複数のオブジェクト(コモンオブジェク
ト)を作成し、これらを活用してオペレーティングシス
テムやアプリケーションプログラムを構築することが考
えられる。マイクロソフト社のOLE(ObjectLi
nking and Embedding)およびOLEプ
ログラミング用に用意されたインタフェースを用いたO
LEオートメーションあるいOLEカスタムコントロー
ル(OCX)といったシステムはその1つである。
【0004】
【発明が解決しようとする課題】本発明においては、コ
モンオブジェクトを活用して多種多様なオペレーティン
グシステムあるいはアプリケーションプログラムを簡単
に構築できるシステムおよびその方法を提供することを
目的としている。特に、1つのコモンオブジェクトが他
のコモンオブジェクトの機能を充分に活用できるシステ
ムおよびその構築方法を提供することを目的としてい
る。さらに、1つのコモンオブジェクトがクライアント
あるいはコントロールとなり、他のコモンオブジェクト
をサーバーとして活用する際に、サーバー側で発生した
イベントを個別に識別でき、また、その処理手順を記述
しやすいシステムおよび構築方法を提供することを目的
としている。さらに、多種多様な周辺装置の制御に適し
たオープンで処理速度の早い制御システムを複数のコモ
ンオブジェクトによって構成可能とすることも本発明の
目的の1つである。
モンオブジェクトを活用して多種多様なオペレーティン
グシステムあるいはアプリケーションプログラムを簡単
に構築できるシステムおよびその方法を提供することを
目的としている。特に、1つのコモンオブジェクトが他
のコモンオブジェクトの機能を充分に活用できるシステ
ムおよびその構築方法を提供することを目的としてい
る。さらに、1つのコモンオブジェクトがクライアント
あるいはコントロールとなり、他のコモンオブジェクト
をサーバーとして活用する際に、サーバー側で発生した
イベントを個別に識別でき、また、その処理手順を記述
しやすいシステムおよび構築方法を提供することを目的
としている。さらに、多種多様な周辺装置の制御に適し
たオープンで処理速度の早い制御システムを複数のコモ
ンオブジェクトによって構成可能とすることも本発明の
目的の1つである。
【0005】
【課題を解決するための手段】本発明は、コモンオブジ
ェクトとして用いられるように属性値を含むプロパティ
およびインプリメントされたファンクションを呼び出す
メソッドの少なくともいずれかをアプリケーションプロ
グラム、他の制御オブジェクトあるいはそのインスタン
スに提供する第1の機能と、非同期に発生するアクショ
ンを含むイベントを発信する第2の機能とを備えた複数
の制御オブジェクトを有するシステムを対象としてい
る。このシステムにおいてコンピュータ内に実行可能な
制御システムを構築する際に、第1の制御オブジェクト
またはそのインスタンスによって少なくとも1つの第2
の制御オブジェクトのインスタンスが作成され、第1の
制御オブジェクトまたはそのインスタンスから第2の制
御オブジェクトのインスタンスの制御を行うことが考え
られる。本発明のこのような制御システムにおいて、プ
ロパティおよびメソッドの少なくともいずれかを第1の
制御オブジェクトまたはそのインスタンスと第2の制御
オブジェクトのインスタンスの間で伝える機能と、第2
の制御オブジェクトのインスタンスから第1の制御オブ
ジェクトまたはそのインスタンスにイベントを伝える機
能とを備えたインタフェースオブジェクトを設けるよう
にしている。従って、本発明により、1つの制御オブジ
ェクトまたはそのインスタンスから、他の制御オブジェ
クトまたはそのインスタンスをプロパティ、メソッドお
よびイベントの全てを含んで双方向の通信が可能なイン
タフェースオブジェクトおよびそのインスタンスによっ
て連絡することが可能となる。このため、制御オブジェ
クトとして提供された機能を充分に活用した制御システ
ムを簡単に構築できる。本発明の制御システムにおいて
は、第1の制御オブジェクトまたはそのインスタンス
が、第2の制御オブジェクトまたはそのインスタンスに
おいて発生したイベントを受け取ることができ、第1の
制御オブジェクトまたはそのインスタンスがそのイベン
トに対応した処理を行い、さらに、第1の制御オブジェ
クトまたはそのインスタンスを活用している他の制御オ
ブジェクトあるいはそのインスタンス、アプリケーショ
ンプログラムあるいはオペレーティングシステムに対し
イベントを迅速に伝えることが可能となる。従って、本
発明により、コモンオブジェクトの機能を完全に活用し
た制御システムを構築することができる。
ェクトとして用いられるように属性値を含むプロパティ
およびインプリメントされたファンクションを呼び出す
メソッドの少なくともいずれかをアプリケーションプロ
グラム、他の制御オブジェクトあるいはそのインスタン
スに提供する第1の機能と、非同期に発生するアクショ
ンを含むイベントを発信する第2の機能とを備えた複数
の制御オブジェクトを有するシステムを対象としてい
る。このシステムにおいてコンピュータ内に実行可能な
制御システムを構築する際に、第1の制御オブジェクト
またはそのインスタンスによって少なくとも1つの第2
の制御オブジェクトのインスタンスが作成され、第1の
制御オブジェクトまたはそのインスタンスから第2の制
御オブジェクトのインスタンスの制御を行うことが考え
られる。本発明のこのような制御システムにおいて、プ
ロパティおよびメソッドの少なくともいずれかを第1の
制御オブジェクトまたはそのインスタンスと第2の制御
オブジェクトのインスタンスの間で伝える機能と、第2
の制御オブジェクトのインスタンスから第1の制御オブ
ジェクトまたはそのインスタンスにイベントを伝える機
能とを備えたインタフェースオブジェクトを設けるよう
にしている。従って、本発明により、1つの制御オブジ
ェクトまたはそのインスタンスから、他の制御オブジェ
クトまたはそのインスタンスをプロパティ、メソッドお
よびイベントの全てを含んで双方向の通信が可能なイン
タフェースオブジェクトおよびそのインスタンスによっ
て連絡することが可能となる。このため、制御オブジェ
クトとして提供された機能を充分に活用した制御システ
ムを簡単に構築できる。本発明の制御システムにおいて
は、第1の制御オブジェクトまたはそのインスタンス
が、第2の制御オブジェクトまたはそのインスタンスに
おいて発生したイベントを受け取ることができ、第1の
制御オブジェクトまたはそのインスタンスがそのイベン
トに対応した処理を行い、さらに、第1の制御オブジェ
クトまたはそのインスタンスを活用している他の制御オ
ブジェクトあるいはそのインスタンス、アプリケーショ
ンプログラムあるいはオペレーティングシステムに対し
イベントを迅速に伝えることが可能となる。従って、本
発明により、コモンオブジェクトの機能を完全に活用し
た制御システムを構築することができる。
【0006】このようなインタフェースオブジェクトま
たはそのインスタンスは、第2の制御オブジェクトのイ
ンスタンス毎に作成することが望ましく、複数のインス
タンスを作成する際は、それぞれのインスタンスに対応
するインタフェースオブジェクトに第1の制御オブジェ
クトまたはそのインスタンスによって参照可能な独自の
識別手段、例えば識別番号を設けることが有効である。
各インスタンスにおいて発生したイベントは、対応する
インタフェースオブジェクトまたはそのインスタンスを
介して第1の制御オブジェクトまたはそのインスタンス
に伝えられるので、第1の制御オブジェクトまたはその
インスタンスはいずれの作成したインスタンスにおいて
発生したイベントであるかを判別できる。
たはそのインスタンスは、第2の制御オブジェクトのイ
ンスタンス毎に作成することが望ましく、複数のインス
タンスを作成する際は、それぞれのインスタンスに対応
するインタフェースオブジェクトに第1の制御オブジェ
クトまたはそのインスタンスによって参照可能な独自の
識別手段、例えば識別番号を設けることが有効である。
各インスタンスにおいて発生したイベントは、対応する
インタフェースオブジェクトまたはそのインスタンスを
介して第1の制御オブジェクトまたはそのインスタンス
に伝えられるので、第1の制御オブジェクトまたはその
インスタンスはいずれの作成したインスタンスにおいて
発生したイベントであるかを判別できる。
【0007】また、第2の制御オブジェクトが複数のイ
ベントを独自の第2の配列に従って発信してもインタフ
ェースオブジェクトおよび第1の制御オブジェクト側を
変更しないで済むように、インタフェースオブジェクト
に複数のイベントを第1の配列に変換する手段を設けて
おくことが望ましい。また、第2の制御オブジェクトに
おける配列に係わらず所定の第1の配列に変換されるの
で、イベント毎に起動されるイベント処理手段の記述も
容易となる。
ベントを独自の第2の配列に従って発信してもインタフ
ェースオブジェクトおよび第1の制御オブジェクト側を
変更しないで済むように、インタフェースオブジェクト
に複数のイベントを第1の配列に変換する手段を設けて
おくことが望ましい。また、第2の制御オブジェクトに
おける配列に係わらず所定の第1の配列に変換されるの
で、イベント毎に起動されるイベント処理手段の記述も
容易となる。
【0008】本発明に係るインタフェースオブジェクト
を用いることによって、複数の制御オブジェクトおよび
それらのインスタンスによってコンピューターの機種や
それに接続される周辺装置に対しオープンな制御システ
ムを構築できる。例えば、第2の制御オブジェクトを複
数の周辺装置の中の第1の周辺装置に対応して用意する
ことによって、第2の制御オブジェクトに第1の周辺装
置に固有な仕様に対応した属性値を含んだプロパティ
と、命令を含んだメソッドと、さらに、第1の周辺装置
において非同期に発生するアクションを反映可能なイベ
ントを設定することができる。そして、第2の制御オブ
ジェクトと第1の制御オブジェクトをインタフェースオ
ブジェクトを介して接続することによって、第1の制御
オブジェクトにおいて第2の制御オブジェクトのプロパ
ティ、メソッドおよびイベントの少なくともいずれかを
複数の機種、メーカーあるいは複数の種類の周辺装置に
対して普遍的に規定された仕様に変換し、周辺装置に依
存しない共通のアプリケーションプログラムインタフェ
ース(API)をアプリケーションプログラムや上位の
制御オブジェクトおよびそのインスタンスに対し提供す
ることができる。さらに、第1の制御オブジェクトのA
PIをコンピュータの機種に依存しない普遍的なものに
することも可能であり、機種依存性がなく、汎用性の高
いアプリケーションプログラムとすることができる。従
って、本発明の制御システムにより、ユーザーは自己の
環境に合わせたアプリケーションおよびハードウェアに
よってPOSシステムなどの周辺装置を多く使用するシ
ステムを簡単に、そしてフレキシブルに構築できる。
を用いることによって、複数の制御オブジェクトおよび
それらのインスタンスによってコンピューターの機種や
それに接続される周辺装置に対しオープンな制御システ
ムを構築できる。例えば、第2の制御オブジェクトを複
数の周辺装置の中の第1の周辺装置に対応して用意する
ことによって、第2の制御オブジェクトに第1の周辺装
置に固有な仕様に対応した属性値を含んだプロパティ
と、命令を含んだメソッドと、さらに、第1の周辺装置
において非同期に発生するアクションを反映可能なイベ
ントを設定することができる。そして、第2の制御オブ
ジェクトと第1の制御オブジェクトをインタフェースオ
ブジェクトを介して接続することによって、第1の制御
オブジェクトにおいて第2の制御オブジェクトのプロパ
ティ、メソッドおよびイベントの少なくともいずれかを
複数の機種、メーカーあるいは複数の種類の周辺装置に
対して普遍的に規定された仕様に変換し、周辺装置に依
存しない共通のアプリケーションプログラムインタフェ
ース(API)をアプリケーションプログラムや上位の
制御オブジェクトおよびそのインスタンスに対し提供す
ることができる。さらに、第1の制御オブジェクトのA
PIをコンピュータの機種に依存しない普遍的なものに
することも可能であり、機種依存性がなく、汎用性の高
いアプリケーションプログラムとすることができる。従
って、本発明の制御システムにより、ユーザーは自己の
環境に合わせたアプリケーションおよびハードウェアに
よってPOSシステムなどの周辺装置を多く使用するシ
ステムを簡単に、そしてフレキシブルに構築できる。
【0009】
〔OLEオートメーションをベースにした例〕以下にお
いて、マイクロソフト社の提供するプログラム開発環境
であるMicrosoft Foundation Class(MFC)環境下に
おいて本発明を実施した例に基づきさらに詳しく説明す
る。
いて、マイクロソフト社の提供するプログラム開発環境
であるMicrosoft Foundation Class(MFC)環境下に
おいて本発明を実施した例に基づきさらに詳しく説明す
る。
【0010】MFCはOLEのプログラミングを容易に
行えるようにさまざまなライブラリーを提供しており、
オブジェクト指向のプログラミング言語であるMicrosof
t 社が提供するVisual C++(以下VC++)などによってO
LEオートメーション機能を用いたシステムの開発を行
うことができる。本例では、図1に示すように、アプリ
ケーション(コンテナアプリ)20と、システム内に共
通に活用できるように用意されたコモンオブジェクトあ
るいはそのインスタンス(OCX)10および11とを
階層的に結合して構築された制御システムについて説明
する。
行えるようにさまざまなライブラリーを提供しており、
オブジェクト指向のプログラミング言語であるMicrosof
t 社が提供するVisual C++(以下VC++)などによってO
LEオートメーション機能を用いたシステムの開発を行
うことができる。本例では、図1に示すように、アプリ
ケーション(コンテナアプリ)20と、システム内に共
通に活用できるように用意されたコモンオブジェクトあ
るいはそのインスタンス(OCX)10および11とを
階層的に結合して構築された制御システムについて説明
する。
【0011】コモンオブジェクトは、他の実行型のソフ
トウェアを構成するオブジェクトとして提供されても良
く、あるいはダイナミックリンクライブラリ(DLL)
として提供されるオブジェクトであっても良い。コモン
オブジェクトを提供するこれらの実行型のソフトウェア
やDLLはEXEサーバーあるいはDLLサーバーと呼
ぶことができ、これらに対し、コンテナアプリ20をク
ライアントあるいはコントロールと呼ぶことができる。
OLEに対応したこれらのコモンオブジェクトは、例え
ば、MFCが提供しているCCmdTargetクラス
から派生させることができる。CCmdTargetク
ラスは、コモンオブジェクトを管理するためのIUnk
nownインタフェースや、その他のコモンオブジェク
トとして必要なインタフェース等をサポートするクラス
である。CCmdTargetクラスはコントローラ側
からデータを保持した構造体などを受渡しするためのID
ispatch インタフェースもサポートしており、このメン
バ関数Invokeをコールすることによってコモンオブジェ
クト側のプロパティあるいはメソッドを用いることがで
きる。
トウェアを構成するオブジェクトとして提供されても良
く、あるいはダイナミックリンクライブラリ(DLL)
として提供されるオブジェクトであっても良い。コモン
オブジェクトを提供するこれらの実行型のソフトウェア
やDLLはEXEサーバーあるいはDLLサーバーと呼
ぶことができ、これらに対し、コンテナアプリ20をク
ライアントあるいはコントロールと呼ぶことができる。
OLEに対応したこれらのコモンオブジェクトは、例え
ば、MFCが提供しているCCmdTargetクラス
から派生させることができる。CCmdTargetク
ラスは、コモンオブジェクトを管理するためのIUnk
nownインタフェースや、その他のコモンオブジェク
トとして必要なインタフェース等をサポートするクラス
である。CCmdTargetクラスはコントローラ側
からデータを保持した構造体などを受渡しするためのID
ispatch インタフェースもサポートしており、このメン
バ関数Invokeをコールすることによってコモンオブジェ
クト側のプロパティあるいはメソッドを用いることがで
きる。
【0012】プロパティは、そのコモンオブジェクトの
有する属性であり、カラー、テキスト、番号、フォント
あるいはプッシュボタンがプッシュされた時の動作など
が含まれる。メソッドは、コモンオブジェクトにインプ
リメントされた、例えば編集機能などのファンクション
であり、メソッドをコールすることによりコモンオブジ
ェクトの機能を操作することができる。コモンオブジェ
クトは、プロパティやメソッドを提供する機能に加え、
コモンオブジェクトに対する外部からのアクション、例
えばマウスボタンのクリックやキー入力、その他の非同
期に発生するアクションをイベントとして発信する機能
を備えることができる。これは通常、コントロール側が
プロパティー等をコールするのと同様に、コモンオブジ
ェクトにおいてInvoke関数をコールすることによって行
われる。
有する属性であり、カラー、テキスト、番号、フォント
あるいはプッシュボタンがプッシュされた時の動作など
が含まれる。メソッドは、コモンオブジェクトにインプ
リメントされた、例えば編集機能などのファンクション
であり、メソッドをコールすることによりコモンオブジ
ェクトの機能を操作することができる。コモンオブジェ
クトは、プロパティやメソッドを提供する機能に加え、
コモンオブジェクトに対する外部からのアクション、例
えばマウスボタンのクリックやキー入力、その他の非同
期に発生するアクションをイベントとして発信する機能
を備えることができる。これは通常、コントロール側が
プロパティー等をコールするのと同様に、コモンオブジ
ェクトにおいてInvoke関数をコールすることによって行
われる。
【0013】図1には、コンテナアプリ20があるコモ
ンオブジェクトあるいはそのインスタンスを用いている
制御システムを示してある。本図に示したシステムで
は、コンテナアプリ20が第1のオブジェクトのインス
タンス(OCX)10を作成し、さらに、その第1のO
CX10が別の第2のオブジェクトのインスタンス(O
CX)11を作成して制御している制御システムを示し
てある。MFCライブラリーには、コンテナアプリやO
CX等からInvoke関数をコールする複雑さをカバーする
ためにCOleDispatchDriverクラスが用意されており、O
CX10はこのクラスから派生させたオブジェクトのメ
ンバー関数をコールすることにより、他の制御オブジェ
クトのインスタンスであるOCX11を作成し、OCX
11のメソッド等を活用できる。
ンオブジェクトあるいはそのインスタンスを用いている
制御システムを示してある。本図に示したシステムで
は、コンテナアプリ20が第1のオブジェクトのインス
タンス(OCX)10を作成し、さらに、その第1のO
CX10が別の第2のオブジェクトのインスタンス(O
CX)11を作成して制御している制御システムを示し
てある。MFCライブラリーには、コンテナアプリやO
CX等からInvoke関数をコールする複雑さをカバーする
ためにCOleDispatchDriverクラスが用意されており、O
CX10はこのクラスから派生させたオブジェクトのメ
ンバー関数をコールすることにより、他の制御オブジェ
クトのインスタンスであるOCX11を作成し、OCX
11のメソッド等を活用できる。
【0014】サーバー内のコモンオブジェクトを用いる
場合、例えば、コンテナアプリの動作しているプロセッ
サーと異なるプロセッサーでそのコモンオブジェクトが
動作しているケースも考えられる。このようなケースで
は、本例のような制御システムを、コントロール側とサ
ーバー側で通信処理を行うことにより構築することがで
きる。また、1つのプロセッサーに活用するコモンオブ
ジェクトをコピーして制御システムを構築することも可
能である。いずれの場合も、用いられるコモンオブジェ
クトのコード自体には変更は全く加えられず、そのコモ
ンオブジェクトを活性化する毎にデータやスタックなど
の領域が用意され、それを用いてコモンオブジェクト
(サーバー側)とコントロール側が通信しながら制御シ
ステムを構築する。従って、同一のコモンオブジェクト
をコントロール側で複数用いることも可能であり、この
場合、コモンオブジェクトが複数コピーされるのではな
く、データやスタックなどの領域がそれぞれに用意され
る。このようにコモンオブジェクトが他のオブジェクト
等によって活用可能な状態になることを本明細書ではイ
ンスタンスと称する。
場合、例えば、コンテナアプリの動作しているプロセッ
サーと異なるプロセッサーでそのコモンオブジェクトが
動作しているケースも考えられる。このようなケースで
は、本例のような制御システムを、コントロール側とサ
ーバー側で通信処理を行うことにより構築することがで
きる。また、1つのプロセッサーに活用するコモンオブ
ジェクトをコピーして制御システムを構築することも可
能である。いずれの場合も、用いられるコモンオブジェ
クトのコード自体には変更は全く加えられず、そのコモ
ンオブジェクトを活性化する毎にデータやスタックなど
の領域が用意され、それを用いてコモンオブジェクト
(サーバー側)とコントロール側が通信しながら制御シ
ステムを構築する。従って、同一のコモンオブジェクト
をコントロール側で複数用いることも可能であり、この
場合、コモンオブジェクトが複数コピーされるのではな
く、データやスタックなどの領域がそれぞれに用意され
る。このようにコモンオブジェクトが他のオブジェクト
等によって活用可能な状態になることを本明細書ではイ
ンスタンスと称する。
【0015】さて、第1のOCX10がコントロール側
となって第2のOCX11を呼び出して使用したい場
合、VC++のクラスウィザードを用いてCOleDispatchDriv
erクラスから派生されたインタフェースオブジェクトを
用いることが可能であることは上述した通りである。な
お、以下において、インタフェースオブジェクトとは、
そのインスタンスも含めた意味で用いている。VC++2.0
のCOleDispatchDriverクラスは、メソッドやプロパティ
をIDispatch インタフェースを介して第2のOCXに渡
す機能をサポートしているが、第2のOCXが発信する
イベントをとらえる機能をサポートしていない。従っ
て、コンテナアプリ20の側が第1のOCX10の用い
る第2のOCX11を識別しており、第2のOCXのイ
ベントを受信する機能を予め備えている場合は何ら問題
はない。しかしながら、コンテナアプリ20の側が第1
のOCX10の用いる第2のOCX11を識別していな
い場合は第2のOCX11で発生したイベントをとらえ
ることができない。
となって第2のOCX11を呼び出して使用したい場
合、VC++のクラスウィザードを用いてCOleDispatchDriv
erクラスから派生されたインタフェースオブジェクトを
用いることが可能であることは上述した通りである。な
お、以下において、インタフェースオブジェクトとは、
そのインスタンスも含めた意味で用いている。VC++2.0
のCOleDispatchDriverクラスは、メソッドやプロパティ
をIDispatch インタフェースを介して第2のOCXに渡
す機能をサポートしているが、第2のOCXが発信する
イベントをとらえる機能をサポートしていない。従っ
て、コンテナアプリ20の側が第1のOCX10の用い
る第2のOCX11を識別しており、第2のOCXのイ
ベントを受信する機能を予め備えている場合は何ら問題
はない。しかしながら、コンテナアプリ20の側が第1
のOCX10の用いる第2のOCX11を識別していな
い場合は第2のOCX11で発生したイベントをとらえ
ることができない。
【0016】用意されているコモンオブジェクトが予め
判明していたり、コンテナアプリに合わせてコモンオブ
ジェクトが用意されている場合は、コモンオブジェクト
がコンテナアプリに対してイベントを渡せるようにシス
テムを構築したり、あるいは、第2のOCXではコンテ
ナアプリに影響を与えるようなイベントを発生させない
などの処理が可能であろう。しかしながら、種々の外部
入出力端末がサポートされるなどコンピュータの環境が
様々に変化し得る今後の制御システムを考慮すると、よ
りフレキシブルな制御システムを構築できることが望ま
しい。このためには、コンテナアプリ20がコモンオブ
ジェクトを活用してカスタマイズが可能なように、コモ
ンオブジェクトもコモンオブジェクトを用いたカスタマ
イズが可能な環境をサポートすることが考えられる。従
って、本発明では、コモンオブジェクトからコモンオブ
ジェクトに双方向の通信が可能なインタフェースオブジ
ェクト15を提供し、さらにフレキシブルな制御システ
ムを簡単に構築できるようにしている。双方向の通信が
可能なインタフェースオブジェクトを用いて、コモンオ
ブジェクト間を結べるようになれば、コンテナアプリ2
0の側は第2のOCX11を認識する必要は全くなくな
り、また、第2のOCX11もコンテナアプリ20に左
右されないオブジェクトとして提供することができる。
判明していたり、コンテナアプリに合わせてコモンオブ
ジェクトが用意されている場合は、コモンオブジェクト
がコンテナアプリに対してイベントを渡せるようにシス
テムを構築したり、あるいは、第2のOCXではコンテ
ナアプリに影響を与えるようなイベントを発生させない
などの処理が可能であろう。しかしながら、種々の外部
入出力端末がサポートされるなどコンピュータの環境が
様々に変化し得る今後の制御システムを考慮すると、よ
りフレキシブルな制御システムを構築できることが望ま
しい。このためには、コンテナアプリ20がコモンオブ
ジェクトを活用してカスタマイズが可能なように、コモ
ンオブジェクトもコモンオブジェクトを用いたカスタマ
イズが可能な環境をサポートすることが考えられる。従
って、本発明では、コモンオブジェクトからコモンオブ
ジェクトに双方向の通信が可能なインタフェースオブジ
ェクト15を提供し、さらにフレキシブルな制御システ
ムを簡単に構築できるようにしている。双方向の通信が
可能なインタフェースオブジェクトを用いて、コモンオ
ブジェクト間を結べるようになれば、コンテナアプリ2
0の側は第2のOCX11を認識する必要は全くなくな
り、また、第2のOCX11もコンテナアプリ20に左
右されないオブジェクトとして提供することができる。
【0017】本例においては、OCXからOCXを使用
するためのディスパッチ処理をイベントも含めて完全に
サポートされたインタフェースオブジェクトを実現する
ために、COcxDispatchDriverクラスを提供している。こ
のCOcxDispatchDriverは、CCmdTargetクラスと、COleDi
spatchDriverクラスとを多重継承(Multiple Inheritanc
e)して派生したオブジェクトクラスであり、次のように
なる。
するためのディスパッチ処理をイベントも含めて完全に
サポートされたインタフェースオブジェクトを実現する
ために、COcxDispatchDriverクラスを提供している。こ
のCOcxDispatchDriverは、CCmdTargetクラスと、COleDi
spatchDriverクラスとを多重継承(Multiple Inheritanc
e)して派生したオブジェクトクラスであり、次のように
なる。
【0018】class COcxDispatchDriver:public CCmdTa
rget,public COleDispatchDriver{ .... };CCmdTarge
tクラスは上述したように、サーバーとしての機能を備
えたオブジェクトを派生するクラスであり、IDispatch
インタフェースのサポートされたクラスである。従っ
て、第2のOCXに対してサーバー側として動作しイベ
ントを受け取るインタフェースをサポートしたインタフ
ェースオブジェクトを実現できる。一方、COleDispatch
Driverは、第2のOCXに対してクライアントあるいは
コントロール側として動作し、プロパティ/メソッドに
対するアクセスを簡単に行なえる機能を備えたオブジェ
クトクラスである。従って、クラスウィザードにより上
記の2つのクラスから派生させたオブジェクトクラスで
あるCOcxDispatchDriverクラスは、上記の2つの主な機
能を備え、これらに加えそれぞれのクラスの機能を全て
継承し、サポートされたオブジェクトクラスなので、本
発明に係るインタフェースオブジェクトを生成するオブ
ジェクトクラスとして適している。CCmdTargetクラスと
COleDispatchDriverクラスには重複する部分がないた
め、全く問題なく多重継承が可能である。
rget,public COleDispatchDriver{ .... };CCmdTarge
tクラスは上述したように、サーバーとしての機能を備
えたオブジェクトを派生するクラスであり、IDispatch
インタフェースのサポートされたクラスである。従っ
て、第2のOCXに対してサーバー側として動作しイベ
ントを受け取るインタフェースをサポートしたインタフ
ェースオブジェクトを実現できる。一方、COleDispatch
Driverは、第2のOCXに対してクライアントあるいは
コントロール側として動作し、プロパティ/メソッドに
対するアクセスを簡単に行なえる機能を備えたオブジェ
クトクラスである。従って、クラスウィザードにより上
記の2つのクラスから派生させたオブジェクトクラスで
あるCOcxDispatchDriverクラスは、上記の2つの主な機
能を備え、これらに加えそれぞれのクラスの機能を全て
継承し、サポートされたオブジェクトクラスなので、本
発明に係るインタフェースオブジェクトを生成するオブ
ジェクトクラスとして適している。CCmdTargetクラスと
COleDispatchDriverクラスには重複する部分がないた
め、全く問題なく多重継承が可能である。
【0019】このように派生されたCOcxDispatchDriver
クラスの仕様は以下の通りである。
クラスの仕様は以下の通りである。
【0020】 Class COcxDispatchDriver : public CCmdTarget, public COleDispatchDriver COcxDisptchDriver::COcxDispatchDriver() // 生成 public: // メンバ変数 UINT m _ObjID; // オブジェクトインスタンスのID EstablishConnection() でユニークに初期化される IID m _IIDEvents; // イベント インタフェース ID UNIT m _nEvents; // イベント数 CDWordArray m_dispID // ユーザが定義したディスパッチマップに対応して ディスパッチIDを変換するための配列 public: // メンバ関数 Bool EstablishConnection( REFCLISD clsid, COleException* pError=NULL); // オブジェクトインスタンス を作成し、メソッド、 プロパティ、 イベントへの アクセスコネクションを有効にする void DestroyConnection(); // コネクションを開放し、オブジェクト インスタンスを削除する COcxDispatchDriverクラスでは、汎用的なクラスを実現
するためにイベントの処理関数(イベントハンドラ)は
含んでいない。従って、COcxDispatchDriverから派生さ
れたオブジェクトに特定のOCXのイベントに対応する
イベントハンドラを記述する必要がある。まず、OCX
の返すイベントの外部名に合わせてディスパッチマップ
を記述する。ディスパッチマップの各イベントの順番は
任意で良く、後述するようにイベントとのコネクション
をセットするときに実際に受信するイベントの順番との
対応付けがなされる。ただし、OCXの全部のイベント
を完全に記述しておく必要がある。
するためにイベントの処理関数(イベントハンドラ)は
含んでいない。従って、COcxDispatchDriverから派生さ
れたオブジェクトに特定のOCXのイベントに対応する
イベントハンドラを記述する必要がある。まず、OCX
の返すイベントの外部名に合わせてディスパッチマップ
を記述する。ディスパッチマップの各イベントの順番は
任意で良く、後述するようにイベントとのコネクション
をセットするときに実際に受信するイベントの順番との
対応付けがなされる。ただし、OCXの全部のイベント
を完全に記述しておく必要がある。
【0021】ディスパッチマップのエントリは例えば以
下のようになり、マクロのパラメータは、順に、ディス
パッチドライバクラス名、外部イベント名、イベントハ
ンドラ名、戻り値、パラメータ情報となる。
下のようになり、マクロのパラメータは、順に、ディス
パッチドライバクラス名、外部イベント名、イベントハ
ンドラ名、戻り値、パラメータ情報となる。
【0022】DISP _FUNCTION( _DSoprn, "ControlCom
pleteEvent", ControlCompleteEvent,VT _EMPTY, VTS
_I4 VTS_SCODE VTS _PBSTR VTS _I4)このような外
部イベント名に合わせたディスパッチマップを記述する
ことにより、OCXで発生したイベントを直観的に判り
やすい形式で受け取ることができる。さらに、イベント
ハンドラのプロトタイプ宣言は下記のようになるので、
通常の関数の形式で記述でき、プログラム開発が極めて
容易となる。
pleteEvent", ControlCompleteEvent,VT _EMPTY, VTS
_I4 VTS_SCODE VTS _PBSTR VTS _I4)このような外
部イベント名に合わせたディスパッチマップを記述する
ことにより、OCXで発生したイベントを直観的に判り
やすい形式で受け取ることができる。さらに、イベント
ハンドラのプロトタイプ宣言は下記のようになるので、
通常の関数の形式で記述でき、プログラム開発が極めて
容易となる。
【0023】void _DSoprn::ControlCompleteEvent(lo
ng ControlID, SCODE Result,BSTR FAR*, pString, lon
g data);次に、COcxDispatchDriverクラスから派生さ
れ、上記のようにインタフェースの準備されたインタフ
ェースオブジェクト15と第2のOCX11とのコネク
ションをセットするステップを図2および図3に示した
フローチャートに基づき説明する。本例のインタフェー
スオブジェクト15においては、そのメンバ関数COcxDi
spatchDriver::EstablishConnection() を呼び出すだけ
で、第2のOCXであるオブジェクトインスタンスが作
成され、プロパティーおよびメソッドを提供し、イベン
トを受け取るコネクションがセットされる。
ng ControlID, SCODE Result,BSTR FAR*, pString, lon
g data);次に、COcxDispatchDriverクラスから派生さ
れ、上記のようにインタフェースの準備されたインタフ
ェースオブジェクト15と第2のOCX11とのコネク
ションをセットするステップを図2および図3に示した
フローチャートに基づき説明する。本例のインタフェー
スオブジェクト15においては、そのメンバ関数COcxDi
spatchDriver::EstablishConnection() を呼び出すだけ
で、第2のOCXであるオブジェクトインスタンスが作
成され、プロパティーおよびメソッドを提供し、イベン
トを受け取るコネクションがセットされる。
【0024】図2に示すように、EstablishConnection
がコールされると、ステップ31において、clsid によ
って指定された第2のOCXであるオブジェクトインス
タンス11が生成され、動作を開始する。変数clsid は
作成するOCXを識別するための128ビットの値が格
納されている。ステップ32において第2のOCX11
が動作を開始すると、ステップ33においてこのインス
タンス11のIDispatch インタフェースを取得し保存す
る。インタフェースオブジェクト15は、このIDispatc
h を通じてInvoke関数をコールし、インスタンス11に
プロパティまたはメソッドを渡すことができる。ステッ
プ34において、第2のOCX11にプロパティあるい
はイベントを渡すコネクションがセットされると、ステ
ップ35において、第2のOCX11のイベントのイン
タフェースがチェックされる。
がコールされると、ステップ31において、clsid によ
って指定された第2のOCXであるオブジェクトインス
タンス11が生成され、動作を開始する。変数clsid は
作成するOCXを識別するための128ビットの値が格
納されている。ステップ32において第2のOCX11
が動作を開始すると、ステップ33においてこのインス
タンス11のIDispatch インタフェースを取得し保存す
る。インタフェースオブジェクト15は、このIDispatc
h を通じてInvoke関数をコールし、インスタンス11に
プロパティまたはメソッドを渡すことができる。ステッ
プ34において、第2のOCX11にプロパティあるい
はイベントを渡すコネクションがセットされると、ステ
ップ35において、第2のOCX11のイベントのイン
タフェースがチェックされる。
【0025】ステップ36において、イベントに関する
インタフェースがあるとステップ37において、イベン
トに関する情報を格納する。第2のOCX11において
用意されているイベント名リストはEntryNamesに、ディ
スパッチIDリストはDispIDs に、 また、パラメータ情
報リストはParamInfo に格納される。ステップ38にお
いてこれらの処理が通常に終了すると、図3に示したイ
ベントの対応付けを行う工程に移行する。一方、コネク
ションがセットできない場合はステップ39においてエ
ラー処理を行う。
インタフェースがあるとステップ37において、イベン
トに関する情報を格納する。第2のOCX11において
用意されているイベント名リストはEntryNamesに、ディ
スパッチIDリストはDispIDs に、 また、パラメータ情
報リストはParamInfo に格納される。ステップ38にお
いてこれらの処理が通常に終了すると、図3に示したイ
ベントの対応付けを行う工程に移行する。一方、コネク
ションがセットできない場合はステップ39においてエ
ラー処理を行う。
【0026】図3にイベントの対応付けを行う工程を示
してある。まず、ステップ41においてカウンタfcntを
ゼロクリアーする。次にステップ42においてカウンタ
ーfcntを確認し、ステップ43において第2のOCX1
1から得られたイベント名EntryNames(fcnt)がインタフ
ェースオブジェクト15のイベントハンドラに予め用意
したマップpDispMapにあるか否かをチェックする。マッ
プpDispMapにある場合は、さらに、ステップ44におい
て、パラメータ情報ParamInfo (fcnt)がイベントハンド
ラに予め用意したマップpDispMapと一致するかを確認す
る。確認できた場合は、ステップ45において、第2の
OCX11から得られたイベントのディスパッチIDで
あるDispIDs (fcnt)をイベントハンドラに予め用意した
マップpDispMapでのインデックスに変換するための配列
m _dispIDを設定する。ステップ46において、カウン
タfcntをインクリメントし、すべてのイベントに対し、
これらのステップを繰り返す。予め用意したマップpDis
pMapとの対応が付くと、ステップ47において、第2の
OCX11のイベントに関するコネクションをセットす
る。このステップにおいては、インタフェースオブジェ
クト15に用意されたイベントを受け取るためのIDispa
tch のアドレスを、オブジェクト間の結合点を実現する
ために用意されているインタフェースであるIConnectio
nPointに対し渡すことによってイベントに関するコネク
ションをセットする。これによって、第2のOCX11
においてInvoke関数をコールすると、イベントをインタ
フェースオブジェクト15に渡すことができる。すなわ
ち、インタフェースオブジェクト15が第2のOCX1
1からイベントを受け取ることができる。
してある。まず、ステップ41においてカウンタfcntを
ゼロクリアーする。次にステップ42においてカウンタ
ーfcntを確認し、ステップ43において第2のOCX1
1から得られたイベント名EntryNames(fcnt)がインタフ
ェースオブジェクト15のイベントハンドラに予め用意
したマップpDispMapにあるか否かをチェックする。マッ
プpDispMapにある場合は、さらに、ステップ44におい
て、パラメータ情報ParamInfo (fcnt)がイベントハンド
ラに予め用意したマップpDispMapと一致するかを確認す
る。確認できた場合は、ステップ45において、第2の
OCX11から得られたイベントのディスパッチIDで
あるDispIDs (fcnt)をイベントハンドラに予め用意した
マップpDispMapでのインデックスに変換するための配列
m _dispIDを設定する。ステップ46において、カウン
タfcntをインクリメントし、すべてのイベントに対し、
これらのステップを繰り返す。予め用意したマップpDis
pMapとの対応が付くと、ステップ47において、第2の
OCX11のイベントに関するコネクションをセットす
る。このステップにおいては、インタフェースオブジェ
クト15に用意されたイベントを受け取るためのIDispa
tch のアドレスを、オブジェクト間の結合点を実現する
ために用意されているインタフェースであるIConnectio
nPointに対し渡すことによってイベントに関するコネク
ションをセットする。これによって、第2のOCX11
においてInvoke関数をコールすると、イベントをインタ
フェースオブジェクト15に渡すことができる。すなわ
ち、インタフェースオブジェクト15が第2のOCX1
1からイベントを受け取ることができる。
【0027】ステップ48においてコネクションのセッ
トが無事に終了すると、ステップ49においてイベント
のディスパッチIDを変換するための配列m _dispIDを
保存する。ステップ50において、上記のステップが全
て正常に終了するとインタフェースオブジェクト15と
第2のOCX11とのコネクションのセットが終了し、
第1のOCX10に対し第2のOCX11のプロパティ
あるいはメソッドを提供可能となり、さらに、第2のO
CX11から第1のOCX10にイベントが伝えられる
ようになる。実際には、インタフェースオブジェクト1
5が第2のOCX11からイベントを受け取ったことを
第1のOCX10に通知する必要がある。従って、第1
のOCX10にインタフェースオブジェクト15がイベ
ント受け取った場合にコールされるためのpublic
なメンバ関数が用意され、インタフェースオブジェクト
15はそのメンバ関数をコールする。
トが無事に終了すると、ステップ49においてイベント
のディスパッチIDを変換するための配列m _dispIDを
保存する。ステップ50において、上記のステップが全
て正常に終了するとインタフェースオブジェクト15と
第2のOCX11とのコネクションのセットが終了し、
第1のOCX10に対し第2のOCX11のプロパティ
あるいはメソッドを提供可能となり、さらに、第2のO
CX11から第1のOCX10にイベントが伝えられる
ようになる。実際には、インタフェースオブジェクト1
5が第2のOCX11からイベントを受け取ったことを
第1のOCX10に通知する必要がある。従って、第1
のOCX10にインタフェースオブジェクト15がイベ
ント受け取った場合にコールされるためのpublic
なメンバ関数が用意され、インタフェースオブジェクト
15はそのメンバ関数をコールする。
【0028】このように、本例のインタフェースオブジ
ェクト15を用いることによりコモンオブジェクトある
いはそのインスタンス同士の間で双方向の通信が可能と
なる。従って、コモンオブジェクトあるいはそのインス
タンスを用いた、いっそうフレキシブルな制御システム
を構築することができる。さらに、本例のインタフェー
スオブジェクトにおいては、イベントに関するコネクシ
ョンをセットするときに、コモンオブジェクト側で用意
されたイベントの配列と、インタフェースオブジェクト
側で用意したイベントの配列を確認し、対応付けるよう
にしている。従って、第1のOCX10に対して第2の
OCX11のインタフェースが完全に既知となっていな
くとも、イベントの種類と数が合致していればコネクシ
ョンをセットすることができる。すなわち、プロパテ
ィ、メソッドおよびイベントの名称が合致していれば複
数のコモンオブジェクト間に双方向のコネクションをセ
ットすることができる。このため、コモンオブジェクト
の開発が容易となり、バージョンアップが行われたり、
異なったオブジェクトが採用された場合であっても、フ
レキシブルなシステムをより安全、確実に構築すること
ができる。
ェクト15を用いることによりコモンオブジェクトある
いはそのインスタンス同士の間で双方向の通信が可能と
なる。従って、コモンオブジェクトあるいはそのインス
タンスを用いた、いっそうフレキシブルな制御システム
を構築することができる。さらに、本例のインタフェー
スオブジェクトにおいては、イベントに関するコネクシ
ョンをセットするときに、コモンオブジェクト側で用意
されたイベントの配列と、インタフェースオブジェクト
側で用意したイベントの配列を確認し、対応付けるよう
にしている。従って、第1のOCX10に対して第2の
OCX11のインタフェースが完全に既知となっていな
くとも、イベントの種類と数が合致していればコネクシ
ョンをセットすることができる。すなわち、プロパテ
ィ、メソッドおよびイベントの名称が合致していれば複
数のコモンオブジェクト間に双方向のコネクションをセ
ットすることができる。このため、コモンオブジェクト
の開発が容易となり、バージョンアップが行われたり、
異なったオブジェクトが採用された場合であっても、フ
レキシブルなシステムをより安全、確実に構築すること
ができる。
【0029】さらに、イベントを受け取ったときに起動
されるイベントハンドラも通常の関数の形式で記述する
ことができるので、オブジェクトの開発が極めて容易と
なり短時間で行えるようになる。
されるイベントハンドラも通常の関数の形式で記述する
ことができるので、オブジェクトの開発が極めて容易と
なり短時間で行えるようになる。
【0030】図4に、第2のOCX11から、インタフ
ェースオブジェクト15に用意されたIDispatch インタ
フェースのイベントを通知する呼び出し Invoke(EventI
D,....) がコールされた場合の処理を示してある。IDis
patch インタフェースは Invoke() および、それをサポ
ートする基本的な関数(AddRef(), Release(),QueryInt
erface(IID&, LPUNKNOWN*) 等) を提供しており、IDis
patch インタフェースが、相手のOCXが発生するイベ
ントの IID (Interface ID) にQueryInterface(...) を
介して応答する。 Invoke() がコールされると、この時
点でパラメータとしてイベントの種類を規定するdispat
ch ID やイベントのパラメータを保持する構造体などが
インタフェースオブジェクト15に渡される。インタフ
ェースオブジェクト15では、ステップ60においてパ
ラメータが正当か否かをチェックする。正当の場合はス
テップ61において、第2のOCX11から得られたイ
ベントの配列dispIDMemberを用意されたイベントハンド
ラのマップpDsipMapに合わせて、変換用の配列m _disp
IDに基づき変換する。ステップ62において、dispIDMe
mberに対応するイベントハンドラをpDsipMapから取り出
す。そして、ステップ63において、イベントハンドラ
が有効か否かを確認し、有効な場合はステップ64にお
いてイベントに対応するイベントハンドラを呼び出し、
イベントハンドラに定義された処理、例えば、第1のO
CX10にイベントを発信するなどの処理を行う。
ェースオブジェクト15に用意されたIDispatch インタ
フェースのイベントを通知する呼び出し Invoke(EventI
D,....) がコールされた場合の処理を示してある。IDis
patch インタフェースは Invoke() および、それをサポ
ートする基本的な関数(AddRef(), Release(),QueryInt
erface(IID&, LPUNKNOWN*) 等) を提供しており、IDis
patch インタフェースが、相手のOCXが発生するイベ
ントの IID (Interface ID) にQueryInterface(...) を
介して応答する。 Invoke() がコールされると、この時
点でパラメータとしてイベントの種類を規定するdispat
ch ID やイベントのパラメータを保持する構造体などが
インタフェースオブジェクト15に渡される。インタフ
ェースオブジェクト15では、ステップ60においてパ
ラメータが正当か否かをチェックする。正当の場合はス
テップ61において、第2のOCX11から得られたイ
ベントの配列dispIDMemberを用意されたイベントハンド
ラのマップpDsipMapに合わせて、変換用の配列m _disp
IDに基づき変換する。ステップ62において、dispIDMe
mberに対応するイベントハンドラをpDsipMapから取り出
す。そして、ステップ63において、イベントハンドラ
が有効か否かを確認し、有効な場合はステップ64にお
いてイベントに対応するイベントハンドラを呼び出し、
イベントハンドラに定義された処理、例えば、第1のO
CX10にイベントを発信するなどの処理を行う。
【0031】図5に、第1のOCX10から第2のOC
Xの複数のインスタンス11aおよび11bが作成さ
れ、第1のOCX10がこれらの第2のOCX11aお
よび11bを制御するシステムを示してある。すなわ
ち、第1のOCX10は、2つの第2のOCX11aお
よび11bに対しクライアントあるいはコントローラ側
となっている。このような制御システムにおいて、第1
のOCX10とこれらのOCX11aおよび11bのイ
ンタフェースは、それぞれの第2のOCX11aおよび
11bを作成したインターフェスオブジェクト15aお
よび15bをそれぞれ介して行われる。本例において
は、COcxDispatchDriverから派生したインタフェースオ
ブジェクトが生成される度に、個々のインタフェースオ
ブジェクトを識別可能なIDが用意される。そして、イ
ンタフェースオブジェクトからイベントが第1のOCX
10に伝えられるときは、個々のインタフェースオブジ
ェクトに固有のIDが第1のOCX10の側から参照で
きるようになっている。このIDは、インタフェースオ
ブジェクト作成時にユニークな値が割り当てられるよう
になっているが、必要であればインタフェースオブジェ
クトを作成した側、すなわち、本例であれば第1のOC
Xで適当な値に変更することもできる。
Xの複数のインスタンス11aおよび11bが作成さ
れ、第1のOCX10がこれらの第2のOCX11aお
よび11bを制御するシステムを示してある。すなわ
ち、第1のOCX10は、2つの第2のOCX11aお
よび11bに対しクライアントあるいはコントローラ側
となっている。このような制御システムにおいて、第1
のOCX10とこれらのOCX11aおよび11bのイ
ンタフェースは、それぞれの第2のOCX11aおよび
11bを作成したインターフェスオブジェクト15aお
よび15bをそれぞれ介して行われる。本例において
は、COcxDispatchDriverから派生したインタフェースオ
ブジェクトが生成される度に、個々のインタフェースオ
ブジェクトを識別可能なIDが用意される。そして、イ
ンタフェースオブジェクトからイベントが第1のOCX
10に伝えられるときは、個々のインタフェースオブジ
ェクトに固有のIDが第1のOCX10の側から参照で
きるようになっている。このIDは、インタフェースオ
ブジェクト作成時にユニークな値が割り当てられるよう
になっているが、必要であればインタフェースオブジェ
クトを作成した側、すなわち、本例であれば第1のOC
Xで適当な値に変更することもできる。
【0032】図5に示したような複数の第2のOCX1
1aおよび11bが作成された場合、個々の第2のOC
Xにおいて発生したイベントはインタフェースオブジェ
クト15aおよび15bをそれぞれ介して第1のOCX
に伝えられる。従って、第1のOCXは、各々のインタ
フェースオブジェクトに付された固有のIDによってい
ずれの第2のOCXで発生したイベントであるか明確に
識別することができる。このように、本例のインタフェ
ースオブジェクトにより、あるコモンオブジェクトある
いはそのインスタンス(第1のOCX)から複数のイン
スタンス(第2のOCX)を作成して活用することが可
能である。そして、このようなケースであっても作成し
た側(第1のOCX)は個々のインスタンス(第2のO
CX)を識別し管理しなくとも、どのインスタンス(第
2のOCX)でイベントが発生したかを識別することが
できる。さらに、イベントハンドラが、インスタンス
(第2のOCX)を発生させたオブジェクトあるいはイ
ンスタンス(第1のOCX)に含まれるのではなく、個
々のインタフェースオブジェクト毎に用意される。従っ
て、作成した側(第1のOCX)は、どのインスタンス
(第2のOCX)で、どのようなイベントが、どのよう
なパラメータを伴って発生したかを確実に把握すること
ができる。
1aおよび11bが作成された場合、個々の第2のOC
Xにおいて発生したイベントはインタフェースオブジェ
クト15aおよび15bをそれぞれ介して第1のOCX
に伝えられる。従って、第1のOCXは、各々のインタ
フェースオブジェクトに付された固有のIDによってい
ずれの第2のOCXで発生したイベントであるか明確に
識別することができる。このように、本例のインタフェ
ースオブジェクトにより、あるコモンオブジェクトある
いはそのインスタンス(第1のOCX)から複数のイン
スタンス(第2のOCX)を作成して活用することが可
能である。そして、このようなケースであっても作成し
た側(第1のOCX)は個々のインスタンス(第2のO
CX)を識別し管理しなくとも、どのインスタンス(第
2のOCX)でイベントが発生したかを識別することが
できる。さらに、イベントハンドラが、インスタンス
(第2のOCX)を発生させたオブジェクトあるいはイ
ンスタンス(第1のOCX)に含まれるのではなく、個
々のインタフェースオブジェクト毎に用意される。従っ
て、作成した側(第1のOCX)は、どのインスタンス
(第2のOCX)で、どのようなイベントが、どのよう
なパラメータを伴って発生したかを確実に把握すること
ができる。
【0033】一方、作成されたインスタンス(第2のO
CX)の側も、発生したイベントをそれぞれのインタフ
ェースオブジェクトに単に発信すれば良く、インスタン
ス自身が最初のインスタンスであるか、あるいは他に同
じクラスのインスタンスが存在するのか否か等の判断を
する必要はない。
CX)の側も、発生したイベントをそれぞれのインタフ
ェースオブジェクトに単に発信すれば良く、インスタン
ス自身が最初のインスタンスであるか、あるいは他に同
じクラスのインスタンスが存在するのか否か等の判断を
する必要はない。
【0034】このように、本発明にかかるインタフェー
スオブジェクトを用いることによって、複数のコモンオ
ブジェクトおよびそれらのインスタンスを備えた制御シ
ステムをフレキシブルに、そして簡単に構築することが
できる。それぞれのコモンオブジェクトには、活用する
相手のコモンオブジェクトに関し最小限の情報を用意し
ておけば良く、また、活用される相手のコモンオブジェ
クトに関する情報も最小限で済む。従って、個々のコモ
ンオブジェクトのカプセル化をいっそう進めることがで
きる。その一方で、本発明のインタフェースオブジェク
トはイベントも含めた双方向の通信機能を備えており、
活用する相手のコモンオブジェクトおよびそれらのイン
スタンスを完全に動作させることができ、それらの備え
た機能を最大限に発揮させることができる。
スオブジェクトを用いることによって、複数のコモンオ
ブジェクトおよびそれらのインスタンスを備えた制御シ
ステムをフレキシブルに、そして簡単に構築することが
できる。それぞれのコモンオブジェクトには、活用する
相手のコモンオブジェクトに関し最小限の情報を用意し
ておけば良く、また、活用される相手のコモンオブジェ
クトに関する情報も最小限で済む。従って、個々のコモ
ンオブジェクトのカプセル化をいっそう進めることがで
きる。その一方で、本発明のインタフェースオブジェク
トはイベントも含めた双方向の通信機能を備えており、
活用する相手のコモンオブジェクトおよびそれらのイン
スタンスを完全に動作させることができ、それらの備え
た機能を最大限に発揮させることができる。
【0035】なお、本例においては、第1および第2の
OCXからなる2層の制御システムを用いて説明してい
るが、3層あるいはそれ以上の階層構造をもった制御シ
ステムであっても同様に構築することができる。また、
上記のインタフェースオブジェクトを用いてアプリケー
ションと第1のOCXとの間のインタフェースを実現す
ることも可能である。アプリケーションプログラムに限
らず、オペレーションシステムなどであっても同様に構
築できることはもちろんである。また、上記において
は、マイクロソフト社の提供するMFC環境下において
本発明のオブジェクトインタフェースを実現した例を用
いて説明しているが、MFCライブラリを用いなくと
も、同等の機能を備えたオブジェクトインタフェースを
作成することは可能である。さらに、共通して活用でき
るオブジェクトが用意されたシステム環境であれば、マ
イクロソフト社のOLEオートメーションでなくとも上
記と同様のコモンオブジェクトを用いたシステムを構築
できる。このようなコモンオブジェクトを用いたシステ
ムは、1つのプロセッサーを備えたコンピュータ単体で
実現することもでき、また、ネットワーク環境で接続さ
れた複数のプロセッサーを有するシステムにおいても構
築できることは上述した通りである。
OCXからなる2層の制御システムを用いて説明してい
るが、3層あるいはそれ以上の階層構造をもった制御シ
ステムであっても同様に構築することができる。また、
上記のインタフェースオブジェクトを用いてアプリケー
ションと第1のOCXとの間のインタフェースを実現す
ることも可能である。アプリケーションプログラムに限
らず、オペレーションシステムなどであっても同様に構
築できることはもちろんである。また、上記において
は、マイクロソフト社の提供するMFC環境下において
本発明のオブジェクトインタフェースを実現した例を用
いて説明しているが、MFCライブラリを用いなくと
も、同等の機能を備えたオブジェクトインタフェースを
作成することは可能である。さらに、共通して活用でき
るオブジェクトが用意されたシステム環境であれば、マ
イクロソフト社のOLEオートメーションでなくとも上
記と同様のコモンオブジェクトを用いたシステムを構築
できる。このようなコモンオブジェクトを用いたシステ
ムは、1つのプロセッサーを備えたコンピュータ単体で
実現することもでき、また、ネットワーク環境で接続さ
れた複数のプロセッサーを有するシステムにおいても構
築できることは上述した通りである。
【0036】〔周辺装置の制御システム〕図6に、本発
明に係るインタフェースオブジェクトと、複数のコモン
オブジェクトおよびそのインスタンスによって周辺装置
の制御システムを構築した例を示してある。図6にはパ
ーソナルコンピュータ(パソコン)70を中心に構成さ
れたPOSシステムを示してある。パソコン70にはP
OSアプリケーションプログラム71がインストールさ
れており、パソコンのオペレーティングシステム(O
S)105の上で動作する。OS105は、キーボード
ドライバ106やモニタディスプレイドライバ107等
を介してパソコンとして通常必要な周辺装置を制御する
機能を備えており、アプリケーションプログラム71と
キーボードあるいはモニタディスプレイ(不図示)との
間のデータ転送はOS105を介して行われる。
明に係るインタフェースオブジェクトと、複数のコモン
オブジェクトおよびそのインスタンスによって周辺装置
の制御システムを構築した例を示してある。図6にはパ
ーソナルコンピュータ(パソコン)70を中心に構成さ
れたPOSシステムを示してある。パソコン70にはP
OSアプリケーションプログラム71がインストールさ
れており、パソコンのオペレーティングシステム(O
S)105の上で動作する。OS105は、キーボード
ドライバ106やモニタディスプレイドライバ107等
を介してパソコンとして通常必要な周辺装置を制御する
機能を備えており、アプリケーションプログラム71と
キーボードあるいはモニタディスプレイ(不図示)との
間のデータ転送はOS105を介して行われる。
【0037】POSシステムには、パソコンに通常用意
されるこれらの周辺機器に加えて、客先に金額等を表示
するカスタマディスプレイ110、レシート等の印刷を
行うレシートプリンタ112、チェックなどの印刷を行
うスリッププリンタ113、さらに、金銭を保管するキ
ャッシュドロワ115が必要となり、これらの周辺装置
はRS−232Cポート等の拡張用のポートに接続され
る。例えば、カスタマディスプレイ110がRS−23
2Cポートに接続され、カスタマディスプレイ110を
パススルーしてレシートプリンタ112およびスリップ
プリンタ113を備えたプリンタ111が接続される。
キャッシュドロワ115は、プリンタ111の下部に設
置され、プリンタ111の制御機構を介して操作され
る。これらの周辺装置は多くのメーカーから様々な機種
が市販されており、ユーザーは自己の環境に適したもの
を選択してPOSシステムを構築可能である。しかしな
がら、メーカーや機種の異なる周辺装置は個々に仕様が
異なるので、市販されている全ての周辺装置に適合した
アプリケーションプログラムの作成は不可能である。さ
らに、周辺装置がバージョンアップされると、これに伴
い仕様も変更になる。従って、従来は、ユーザーは自己
に都合の良い周辺機器によってPOSシステムを構築す
ることが困難なこともあり、さらに、周辺機器がバージ
ョンアップされても新しい機種を構築済のPOSシステ
ムにすぐに適用できるとは限らなかった。
されるこれらの周辺機器に加えて、客先に金額等を表示
するカスタマディスプレイ110、レシート等の印刷を
行うレシートプリンタ112、チェックなどの印刷を行
うスリッププリンタ113、さらに、金銭を保管するキ
ャッシュドロワ115が必要となり、これらの周辺装置
はRS−232Cポート等の拡張用のポートに接続され
る。例えば、カスタマディスプレイ110がRS−23
2Cポートに接続され、カスタマディスプレイ110を
パススルーしてレシートプリンタ112およびスリップ
プリンタ113を備えたプリンタ111が接続される。
キャッシュドロワ115は、プリンタ111の下部に設
置され、プリンタ111の制御機構を介して操作され
る。これらの周辺装置は多くのメーカーから様々な機種
が市販されており、ユーザーは自己の環境に適したもの
を選択してPOSシステムを構築可能である。しかしな
がら、メーカーや機種の異なる周辺装置は個々に仕様が
異なるので、市販されている全ての周辺装置に適合した
アプリケーションプログラムの作成は不可能である。さ
らに、周辺装置がバージョンアップされると、これに伴
い仕様も変更になる。従って、従来は、ユーザーは自己
に都合の良い周辺機器によってPOSシステムを構築す
ることが困難なこともあり、さらに、周辺機器がバージ
ョンアップされても新しい機種を構築済のPOSシステ
ムにすぐに適用できるとは限らなかった。
【0038】これに対し、上述したOCXによって制御
システムを構築すると、非常にオープンなシステムを形
成できる。従って、どのような機種の周辺機器を用いた
POSシステムであっても簡単に構築できる。また、周
辺機器のバージョンアップに対しても簡単に対処でき
る。例えば、図6に示す本例の周辺機器の制御システム
72は、3つのレベルのOCXを備えている。第1のレ
ベルのOCXとして、レシートプリンタフォーマット変
換用OCX73と、スリッププリンタフォーマット変換
用OCX74が用意されている。これらのOCX73お
よび74では、例えば、アプリケーションプログラム7
1から送られた売上品リストや合計金額等のデータを所
定のフォーマットに配置する処理が行われる。所定のフ
ォーマットは、OCX73あるいは74の内部に設定さ
れていても良いし、下位レベルの制御用OCXであるレ
シートプリンタ制御用OCX75あるいはスリッププリ
ンタ制御用OCX76がプロパティとして有しており、
これらの制御用OCXのプロパティを得て変換用OCX
73あるいは74がフォーマットを設定しても良い。い
ずれにしろ、アプリケーションプログラム71は、出力
表示されるフォーマットに関係なく、出力用のデータを
変換用OCX73あるいは74に受け渡せば良い。従っ
て、インタフェースの形式を限定でき、汎用性の高いア
プリケーションプログラムとして提供することができ
る。また、アプリケーションプログラムから固有のフォ
ーマットで出力されたデータを、第1レベルのOCXに
よって下位のOCXに共通するフォーマットに変換する
ことも可能である。このように、OCXを用いて個別に
開発されたアプリケーションプログラムの汎用性を高め
ることも可能である。
システムを構築すると、非常にオープンなシステムを形
成できる。従って、どのような機種の周辺機器を用いた
POSシステムであっても簡単に構築できる。また、周
辺機器のバージョンアップに対しても簡単に対処でき
る。例えば、図6に示す本例の周辺機器の制御システム
72は、3つのレベルのOCXを備えている。第1のレ
ベルのOCXとして、レシートプリンタフォーマット変
換用OCX73と、スリッププリンタフォーマット変換
用OCX74が用意されている。これらのOCX73お
よび74では、例えば、アプリケーションプログラム7
1から送られた売上品リストや合計金額等のデータを所
定のフォーマットに配置する処理が行われる。所定のフ
ォーマットは、OCX73あるいは74の内部に設定さ
れていても良いし、下位レベルの制御用OCXであるレ
シートプリンタ制御用OCX75あるいはスリッププリ
ンタ制御用OCX76がプロパティとして有しており、
これらの制御用OCXのプロパティを得て変換用OCX
73あるいは74がフォーマットを設定しても良い。い
ずれにしろ、アプリケーションプログラム71は、出力
表示されるフォーマットに関係なく、出力用のデータを
変換用OCX73あるいは74に受け渡せば良い。従っ
て、インタフェースの形式を限定でき、汎用性の高いア
プリケーションプログラムとして提供することができ
る。また、アプリケーションプログラムから固有のフォ
ーマットで出力されたデータを、第1レベルのOCXに
よって下位のOCXに共通するフォーマットに変換する
ことも可能である。このように、OCXを用いて個別に
開発されたアプリケーションプログラムの汎用性を高め
ることも可能である。
【0039】第2のレベルのOCXとしてレシートプリ
ンタ制御用OCX75、スリッププリンタ制御用OCX
76、キャッシュドロワ制御用OCX77およびカスタ
マディスプレイ制御用OCX78が用いられている。こ
れらのOCX75〜78は、アプリケーションプログラ
ムあるいは上位のOCXに対し、所定の仕様のインタフ
ェース(API)を提供するOCXである。従って、P
OSシステムを構成するプリンタ等の周辺装置のメーカ
ーや機種に係わりなく、アプリケーションプログラムや
上位のOCXは所定の仕様でデータを提供すれば良い。
このレベルのOCX75〜78は、周辺装置固有の仕様
が反映された下位のドライバレベルのOCXのプロパテ
ィを得て、共通の仕様で入力されたデータを下位のOC
X、すなわち、実際にシステムを構築している周辺装置
の仕様に合わせたデータに変換する。
ンタ制御用OCX75、スリッププリンタ制御用OCX
76、キャッシュドロワ制御用OCX77およびカスタ
マディスプレイ制御用OCX78が用いられている。こ
れらのOCX75〜78は、アプリケーションプログラ
ムあるいは上位のOCXに対し、所定の仕様のインタフ
ェース(API)を提供するOCXである。従って、P
OSシステムを構成するプリンタ等の周辺装置のメーカ
ーや機種に係わりなく、アプリケーションプログラムや
上位のOCXは所定の仕様でデータを提供すれば良い。
このレベルのOCX75〜78は、周辺装置固有の仕様
が反映された下位のドライバレベルのOCXのプロパテ
ィを得て、共通の仕様で入力されたデータを下位のOC
X、すなわち、実際にシステムを構築している周辺装置
の仕様に合わせたデータに変換する。
【0040】第3のレベルのOCXは、プリンタドライ
バOCX91および92と、キャッシュドロワドライバ
OCX93、およびディスプレイドライバOCX94で
ある。これらのOCX91〜94は、個々の周辺装置に
対応したコモンオブジェクトのインスタンスであり、通
常はメーカー毎あるいは機種毎に異なり周辺装置と共に
提供されるものである。これらのドライバレベルのOC
X91〜94は、例えば、最大印字行数や印字行ピッチ
と言ったプリンタ固有の仕様や設定状態(プリンタステ
ータスと称する)をプロパティとして備えており、これ
らのプロパティは上位のOCXやアプリケーションプロ
グラムで参照できるようになっている。また、指定され
た位置に文字列を印字する、すなわち、印字命令を出力
するというメソッドや、プリンタステータス等のプロパ
ティなどを備えている。従って、ドライバーレベルであ
る第3レベルのCOXからは、例えば、プリンタ用のO
CXであれば、送られた印字位置および印字文字列のデ
ータに基づき、改行量(すなわち行ピッチ)、改行コマ
ンド、印字データおよび印字コマンド、オートカットコ
マンドが所定の順序でポートドライバ100を介してプ
リンタに送信される。
バOCX91および92と、キャッシュドロワドライバ
OCX93、およびディスプレイドライバOCX94で
ある。これらのOCX91〜94は、個々の周辺装置に
対応したコモンオブジェクトのインスタンスであり、通
常はメーカー毎あるいは機種毎に異なり周辺装置と共に
提供されるものである。これらのドライバレベルのOC
X91〜94は、例えば、最大印字行数や印字行ピッチ
と言ったプリンタ固有の仕様や設定状態(プリンタステ
ータスと称する)をプロパティとして備えており、これ
らのプロパティは上位のOCXやアプリケーションプロ
グラムで参照できるようになっている。また、指定され
た位置に文字列を印字する、すなわち、印字命令を出力
するというメソッドや、プリンタステータス等のプロパ
ティなどを備えている。従って、ドライバーレベルであ
る第3レベルのCOXからは、例えば、プリンタ用のO
CXであれば、送られた印字位置および印字文字列のデ
ータに基づき、改行量(すなわち行ピッチ)、改行コマ
ンド、印字データおよび印字コマンド、オートカットコ
マンドが所定の順序でポートドライバ100を介してプ
リンタに送信される。
【0041】第3レベルのOCXは、プリンタから送信
される処理結果およびエラーステータス等の非同期に発
生するアクションも受け取る。そして、これらのアクシ
ョンの内容を対応する周辺装置の仕様に基づき解釈し、
普遍的な形式に変換してイベントとして上位のOCXに
返す。本例の制御システムでは、双方向の通信が可能な
インタフェースオブジェクト81a、81b、82a〜
82dを用いて上位のOCXと下位のOCXを接続して
いるので、プロパティやメソッドに加え、イベントも伝
達される。従って、第2レベルの制御用OCX75〜7
8はイベントを受けて、そのまま、あるいはさらに普遍
的な形式に変換し、インタフェースオブジェクト82a
〜82dを介して上位のOCXやアプリケーションプロ
グラムに伝達する。これに基づき、アプリケーションシ
ステムや上位のOCXは、ユーザーに対してメッセージ
を出力したりエラー処理ルーチンを起動するなどの処理
を行えるので、本例の制御システムにおいては、非同期
に発生するアクションに対して迅速にそして的確な処理
を行うことができる。
される処理結果およびエラーステータス等の非同期に発
生するアクションも受け取る。そして、これらのアクシ
ョンの内容を対応する周辺装置の仕様に基づき解釈し、
普遍的な形式に変換してイベントとして上位のOCXに
返す。本例の制御システムでは、双方向の通信が可能な
インタフェースオブジェクト81a、81b、82a〜
82dを用いて上位のOCXと下位のOCXを接続して
いるので、プロパティやメソッドに加え、イベントも伝
達される。従って、第2レベルの制御用OCX75〜7
8はイベントを受けて、そのまま、あるいはさらに普遍
的な形式に変換し、インタフェースオブジェクト82a
〜82dを介して上位のOCXやアプリケーションプロ
グラムに伝達する。これに基づき、アプリケーションシ
ステムや上位のOCXは、ユーザーに対してメッセージ
を出力したりエラー処理ルーチンを起動するなどの処理
を行えるので、本例の制御システムにおいては、非同期
に発生するアクションに対して迅速にそして的確な処理
を行うことができる。
【0042】このように、本例の制御システムは、OC
Xを用いているのでユーザーの採用する周辺装置に適合
したカスタマイズが容易に行えるシステムであり、ま
た、OCX間でプロパティ、メソッドおよびイベントの
双方向の通信が確保されているので、処理速度が早く的
確に処理が行える制御システムである。
Xを用いているのでユーザーの採用する周辺装置に適合
したカスタマイズが容易に行えるシステムであり、ま
た、OCX間でプロパティ、メソッドおよびイベントの
双方向の通信が確保されているので、処理速度が早く的
確に処理が行える制御システムである。
【0043】レシート印字機能を例にとってさらに詳し
く説明する。第3レベルのOCXであるプリンタドライ
バOCX91は、レシートプリンタ112のプリンタス
テータスをプロパティとして備えている。また、プリン
タ112に印字命令を出力するメソッドを備えている。
さらに、プリンタ112からリアルタイムで送られてく
る用紙なし(ランアウト)やカバーオープンといったエ
ラーステータスに対応して非同期にイベントを発生す
る。
く説明する。第3レベルのOCXであるプリンタドライ
バOCX91は、レシートプリンタ112のプリンタス
テータスをプロパティとして備えている。また、プリン
タ112に印字命令を出力するメソッドを備えている。
さらに、プリンタ112からリアルタイムで送られてく
る用紙なし(ランアウト)やカバーオープンといったエ
ラーステータスに対応して非同期にイベントを発生す
る。
【0044】アプリケーションプログラム71からデー
タが第1レベルのレシートプリンタフォーマット変換用
OCX73に渡され、所定のフォーマットに変換された
のち、第2レベルの制御用OCX74に渡される。そし
て、制御用OCX74がドライバOCX91の印刷を実
行するメソッドをコールすると、ドライバOCX91が
レシートプリンタ112のプリンタステータスに合致し
た適当なコマンドおよびデータをレシートプリンタ11
2に対し送信し、レシート印字を実行する。レシートプ
リンタ112は、送信されたコマンドを実行し、所定の
ステータスをドライバOCX91に返す。ドライバOC
X91は、返されたステータスを解釈し、エラーステー
タスがアクティブでなければイベントを発生せず、印刷
処理は終了する。また、上位のOCXであるレシートプ
リンタ制御用OCX75は、プリンタステータスのプロ
パティを参照することによってプリンタ処理の結果を知
ることももちろん可能である。これらの通信はインタフ
ェースオブジェクト82aを介して行われる。
タが第1レベルのレシートプリンタフォーマット変換用
OCX73に渡され、所定のフォーマットに変換された
のち、第2レベルの制御用OCX74に渡される。そし
て、制御用OCX74がドライバOCX91の印刷を実
行するメソッドをコールすると、ドライバOCX91が
レシートプリンタ112のプリンタステータスに合致し
た適当なコマンドおよびデータをレシートプリンタ11
2に対し送信し、レシート印字を実行する。レシートプ
リンタ112は、送信されたコマンドを実行し、所定の
ステータスをドライバOCX91に返す。ドライバOC
X91は、返されたステータスを解釈し、エラーステー
タスがアクティブでなければイベントを発生せず、印刷
処理は終了する。また、上位のOCXであるレシートプ
リンタ制御用OCX75は、プリンタステータスのプロ
パティを参照することによってプリンタ処理の結果を知
ることももちろん可能である。これらの通信はインタフ
ェースオブジェクト82aを介して行われる。
【0045】一方、印刷実行のコマンドを実行した結
果、あるいは待機中にレシートプリンタ112にエラー
が発生してエラーステータスがアクティブになると、プ
リンタ112はエラーステータスをドライバOCX91
に送信する。この場合、ドライバOCX91はイベント
を発生し、エラーの発生を上位の制御用OCX74にイ
ンタフェースオブジェクト82aを介して伝達する。制
御用OCX74は、イベントに対応して特定の処理を行
うことも可能であるし、さらにインタフェースオブジェ
クト81aを介してフォーマット変換用OCX74およ
びアプリケーションプログラム71に通知し、注意を喚
起することによって所定の処理を行わせることも可能で
ある。
果、あるいは待機中にレシートプリンタ112にエラー
が発生してエラーステータスがアクティブになると、プ
リンタ112はエラーステータスをドライバOCX91
に送信する。この場合、ドライバOCX91はイベント
を発生し、エラーの発生を上位の制御用OCX74にイ
ンタフェースオブジェクト82aを介して伝達する。制
御用OCX74は、イベントに対応して特定の処理を行
うことも可能であるし、さらにインタフェースオブジェ
クト81aを介してフォーマット変換用OCX74およ
びアプリケーションプログラム71に通知し、注意を喚
起することによって所定の処理を行わせることも可能で
ある。
【0046】これらのプロパティ、メソッドおよびイベ
ントに加え、スリッププリンタ113に対応したドライ
バOCX92としては、スリップ印字に特有のプロパテ
ィおよびイベントを設けておくことが望ましい。例え
ば、プロパティにスリップ用紙の有無を加えることによ
って、上位のOCXやアプリケーションが印刷実行を指
示するタイミングの判断が可能となる。また、イベント
に用紙挿入検出、用紙終端検出を加えることにより、ア
プリケーションプログラムなどにスリップ印刷後の処理
やエラー処理をスムーズに行わせることができる。
ントに加え、スリッププリンタ113に対応したドライ
バOCX92としては、スリップ印字に特有のプロパテ
ィおよびイベントを設けておくことが望ましい。例え
ば、プロパティにスリップ用紙の有無を加えることによ
って、上位のOCXやアプリケーションが印刷実行を指
示するタイミングの判断が可能となる。また、イベント
に用紙挿入検出、用紙終端検出を加えることにより、ア
プリケーションプログラムなどにスリップ印刷後の処理
やエラー処理をスムーズに行わせることができる。
【0047】キャッシュドロワ制御用OCX77はキャ
ッシュドロワドライバOCX93と通信する。キャッシ
ュドロワドライバOCX93はキャッシュドロワオープ
ンをメソッドとして備えており、キャッシュドロワのオ
ープン・クローズを含めたキャッシュドロワステータス
をプロパティとして備えている。また、イベントとして
キャッシュドロワエラーやキャッシュドロワオープン検
出を発生することができる。
ッシュドロワドライバOCX93と通信する。キャッシ
ュドロワドライバOCX93はキャッシュドロワオープ
ンをメソッドとして備えており、キャッシュドロワのオ
ープン・クローズを含めたキャッシュドロワステータス
をプロパティとして備えている。また、イベントとして
キャッシュドロワエラーやキャッシュドロワオープン検
出を発生することができる。
【0048】カスタマディスプレイ制御用OCX78
は、ディスプレイドライバOCX94と通信し、このド
ライバOCX94は、表示位置や表示文字列を指定した
表示命令をメソッドとして備えている。また、プロパテ
ィとしては表示桁数や表示色などのディスプレイ仕様を
備えており、ディスプレイ制御用OCX78はこのプロ
パティに沿って表示データを与える。また、カスタマデ
ィスプレイはイベントに該当するエラー等の発生は少な
いので、イベントを発生する機能を削除することも可能
である。
は、ディスプレイドライバOCX94と通信し、このド
ライバOCX94は、表示位置や表示文字列を指定した
表示命令をメソッドとして備えている。また、プロパテ
ィとしては表示桁数や表示色などのディスプレイ仕様を
備えており、ディスプレイ制御用OCX78はこのプロ
パティに沿って表示データを与える。また、カスタマデ
ィスプレイはイベントに該当するエラー等の発生は少な
いので、イベントを発生する機能を削除することも可能
である。
【0049】このように、本発明に係るインタフェース
オブジェクトを採用することにより、複数のOCXを用
いて階層的な構造を備え、エラー等を含めた非同期に発
生するアクションに対しても迅速に対処可能な制御シス
テムを構築できる。また、本例の制御システムは、パソ
コンに接続される周辺装置に対しフレキシブルに対応で
きるオープンな制御システムである。例えば、プリンタ
111は、レシート印字機能112と、スリップ印字機
能113と、さらにドロワ115の制御機能とを備えて
おり、制御システムはそれぞれの機能毎にOCX91〜
93が用意されている。このプリンタ111に対し、ス
リップ印字機能の仕様(例えば、最大印字桁数、実行可
能なコマンドセット等)の異なるプリンタに置き換える
場合は、スリップ印字機能を制御するドライバ用のコモ
ンオブジェクトを新しいプリンタの仕様に対応するもの
に置き換えれば良い。周辺装置の制御システムにおいて
は、置き換えられた新しいドライバ用のコモンオブジェ
クトからOCXを作成し新しいプリンタに適合した制御
システムを自動的に形成する。プリンタがバージョンア
ップされて仕様が変わった場合でも、同様にドライバ用
のコモンオブジェクトを置き換えるだけで良く、その他
のコモンオブジェクトやアプリケーションプログラムに
変更を加える必要はない。
オブジェクトを採用することにより、複数のOCXを用
いて階層的な構造を備え、エラー等を含めた非同期に発
生するアクションに対しても迅速に対処可能な制御シス
テムを構築できる。また、本例の制御システムは、パソ
コンに接続される周辺装置に対しフレキシブルに対応で
きるオープンな制御システムである。例えば、プリンタ
111は、レシート印字機能112と、スリップ印字機
能113と、さらにドロワ115の制御機能とを備えて
おり、制御システムはそれぞれの機能毎にOCX91〜
93が用意されている。このプリンタ111に対し、ス
リップ印字機能の仕様(例えば、最大印字桁数、実行可
能なコマンドセット等)の異なるプリンタに置き換える
場合は、スリップ印字機能を制御するドライバ用のコモ
ンオブジェクトを新しいプリンタの仕様に対応するもの
に置き換えれば良い。周辺装置の制御システムにおいて
は、置き換えられた新しいドライバ用のコモンオブジェ
クトからOCXを作成し新しいプリンタに適合した制御
システムを自動的に形成する。プリンタがバージョンア
ップされて仕様が変わった場合でも、同様にドライバ用
のコモンオブジェクトを置き換えるだけで良く、その他
のコモンオブジェクトやアプリケーションプログラムに
変更を加える必要はない。
【0050】カスタマディスプレイについても同様であ
り、仕様が変更された場合等はドライバ用のコモンオブ
ジェクトを変更すれば良い。また、バーコードリーダ等
の他の周辺装置が加えてPOSシステムが構成される場
合は、それに対応した制御用のコモンオブジェクトとド
ライバ用のコモンオブジェクトがパソコンのシステム内
に用意されておれば、アプリケーションあるいは上記の
OCXによって、下位のOCXが作成され、バーコード
リーダ等を含めた周辺装置の制御システムが形成され
る。
り、仕様が変更された場合等はドライバ用のコモンオブ
ジェクトを変更すれば良い。また、バーコードリーダ等
の他の周辺装置が加えてPOSシステムが構成される場
合は、それに対応した制御用のコモンオブジェクトとド
ライバ用のコモンオブジェクトがパソコンのシステム内
に用意されておれば、アプリケーションあるいは上記の
OCXによって、下位のOCXが作成され、バーコード
リーダ等を含めた周辺装置の制御システムが形成され
る。
【0051】同様に、アプリケーションプログラムとの
インタフェースを担当する上位のOCXがパソコンのハ
ード等に起因する仕様の違いを吸収し、アプリケーショ
ンに対し共通のインタフェースを与えるものであれば、
パソコンのハード等の相違とは無関係に共通のアプリケ
ーションプログラムを用いてシステムを構築することも
可能となる。パソコン内に用意されたコモンオブジェク
トから制御システムがアプリケーションプログラムによ
って作成され、制御システムを構成するOCXによって
パソコンおよびそれに接続された周辺装置に適合したシ
ステムが自動的に形成される。このように、本発明のO
CXを用いた制御システムはオープンなシステムであ
り、インタフェースの仕様を予め合意しておけば、アプ
リケーションを供給する側は、パソコンやそれに接続さ
れる周辺機器の仕様および接続方法等は一切考慮せずに
アプリケーションを開発し供給することができる。従っ
て、短期間で開発が可能となり、安価に提供できる。ま
た、ユーザーもパソコンや周辺装置に係わりなく、自己
の目的や環境に適したアプリケーションを自由に選択す
ることができる。
インタフェースを担当する上位のOCXがパソコンのハ
ード等に起因する仕様の違いを吸収し、アプリケーショ
ンに対し共通のインタフェースを与えるものであれば、
パソコンのハード等の相違とは無関係に共通のアプリケ
ーションプログラムを用いてシステムを構築することも
可能となる。パソコン内に用意されたコモンオブジェク
トから制御システムがアプリケーションプログラムによ
って作成され、制御システムを構成するOCXによって
パソコンおよびそれに接続された周辺装置に適合したシ
ステムが自動的に形成される。このように、本発明のO
CXを用いた制御システムはオープンなシステムであ
り、インタフェースの仕様を予め合意しておけば、アプ
リケーションを供給する側は、パソコンやそれに接続さ
れる周辺機器の仕様および接続方法等は一切考慮せずに
アプリケーションを開発し供給することができる。従っ
て、短期間で開発が可能となり、安価に提供できる。ま
た、ユーザーもパソコンや周辺装置に係わりなく、自己
の目的や環境に適したアプリケーションを自由に選択す
ることができる。
【0052】一方、周辺装置を提供する側も、供給する
周辺装置の仕様に対応したコモンオブジェクトを用意
し、例えば、周辺装置と共に供給することによって、パ
ソコンやアプリケーションに限定されない汎用的な周辺
装置を提供することができる。従って、ユーザーも自己
の目的や環境に適した周辺装置を自由に購入し、システ
ムを構築することができる。
周辺装置の仕様に対応したコモンオブジェクトを用意
し、例えば、周辺装置と共に供給することによって、パ
ソコンやアプリケーションに限定されない汎用的な周辺
装置を提供することができる。従って、ユーザーも自己
の目的や環境に適した周辺装置を自由に購入し、システ
ムを構築することができる。
【0053】さらに、本発明に係るインタフェースオブ
ジェクトを採用することによって、コモンオブジェクト
およびそのインスタンス同士の間で双方向にプロパテ
ィ、メソッドおよびイベントの伝達が可能となる。従っ
て、本発明の基づく制御システムでは、システムの応答
が遅れたり、システムの機能が限定される等のシステム
をオープン化する上での弊害は全くない。また、制御シ
ステムの機能アップやバージョンアップも個々の制御オ
ブジェクト毎に行うことができるので、システム開発を
効率良く、短期間に行える。また、ユーザーもシステム
のグレードアップや変更等を簡単に行えるようになる。
ジェクトを採用することによって、コモンオブジェクト
およびそのインスタンス同士の間で双方向にプロパテ
ィ、メソッドおよびイベントの伝達が可能となる。従っ
て、本発明の基づく制御システムでは、システムの応答
が遅れたり、システムの機能が限定される等のシステム
をオープン化する上での弊害は全くない。また、制御シ
ステムの機能アップやバージョンアップも個々の制御オ
ブジェクト毎に行うことができるので、システム開発を
効率良く、短期間に行える。また、ユーザーもシステム
のグレードアップや変更等を簡単に行えるようになる。
【0054】なお、上記では、用いられる周辺装置の種
類や数が多く、また、ユーザーの環境に合わせて様々な
機種の周辺装置が用いられる例としてPOSシステムを
説明しているが、POSシステムに限定されないことは
もちろんである。近年のパソコンを中心としたシステム
は、ユーザーの目的や能力に合わせて様々な仕様の周辺
装置が組み合わされるようになりつつある。本発明に係
る共通する制御オブジェクトを用いた制御システムは、
様々なユーザーの要望に対してフレキシブルに対応可能
なシステムであり、POSシステムに限らず、今後様々
なシステムに対して適用可能である。
類や数が多く、また、ユーザーの環境に合わせて様々な
機種の周辺装置が用いられる例としてPOSシステムを
説明しているが、POSシステムに限定されないことは
もちろんである。近年のパソコンを中心としたシステム
は、ユーザーの目的や能力に合わせて様々な仕様の周辺
装置が組み合わされるようになりつつある。本発明に係
る共通する制御オブジェクトを用いた制御システムは、
様々なユーザーの要望に対してフレキシブルに対応可能
なシステムであり、POSシステムに限らず、今後様々
なシステムに対して適用可能である。
【0055】
【発明の効果】以上に説明したように、本発明において
は、アプリケーションプログラム間で共通に活用できる
制御オブジェクトであるコモンオブジェクトおよびその
インスタンスを用いて制御システムを構築している。さ
らに、インタフェースオブジェクトによって、これらコ
モンオブジェクトおよびそのインスタンス同士の間で双
方向の通信を可能としている。従って、コモンオブジェ
クトを活用して多種多様なオペレーティングシステムあ
るいはアプリケーションプログラムを簡単に構築し、提
供することができる。このように本発明により、入出力
端末や、処理する対象などにより多種多様に変化するコ
ンピュータを中心とした近年のシステムにおいて、いっ
そうフレキシブルに、そしてカスタマイズ可能なシステ
ムを実現するのに好適な制御システムおよびその構築方
法を提供できる。
は、アプリケーションプログラム間で共通に活用できる
制御オブジェクトであるコモンオブジェクトおよびその
インスタンスを用いて制御システムを構築している。さ
らに、インタフェースオブジェクトによって、これらコ
モンオブジェクトおよびそのインスタンス同士の間で双
方向の通信を可能としている。従って、コモンオブジェ
クトを活用して多種多様なオペレーティングシステムあ
るいはアプリケーションプログラムを簡単に構築し、提
供することができる。このように本発明により、入出力
端末や、処理する対象などにより多種多様に変化するコ
ンピュータを中心とした近年のシステムにおいて、いっ
そうフレキシブルに、そしてカスタマイズ可能なシステ
ムを実現するのに好適な制御システムおよびその構築方
法を提供できる。
【0056】特に、上述したようなコンピューターの機
種やそれに接続される周辺装置の種類および数量がユー
ザーの環境に応じて多種多様に変化する制御システムを
構築するのに本発明は好適である。本発明に係る制御シ
ステムを用いることにより、アプリケーションプログラ
ムに対し周辺装置に依存しない共通のアプリケーション
プログラムインタフェースを提供可能である。さらに、
本発明に係る制御システムは、汎用性の非常に高い制御
システムでありながらエラー等の非同期に発生するアク
ションに対しても迅速にアプリケーションを作動させる
ことが可能である。従って、ユーザーに対し自己の目的
に対応した快適な動作環境を容易に構築できる制御シス
テムを提供できる。
種やそれに接続される周辺装置の種類および数量がユー
ザーの環境に応じて多種多様に変化する制御システムを
構築するのに本発明は好適である。本発明に係る制御シ
ステムを用いることにより、アプリケーションプログラ
ムに対し周辺装置に依存しない共通のアプリケーション
プログラムインタフェースを提供可能である。さらに、
本発明に係る制御システムは、汎用性の非常に高い制御
システムでありながらエラー等の非同期に発生するアク
ションに対しても迅速にアプリケーションを作動させる
ことが可能である。従って、ユーザーに対し自己の目的
に対応した快適な動作環境を容易に構築できる制御シス
テムを提供できる。
【図1】本発明の実施例の制御システムの概略構成を示
すブロック図である。
すブロック図である。
【図2】図1に示す制御システムにおいて、インタフェ
ースオブジェクトとオブジェクトインスタンスとの間で
コネクションを確認する過程を示すフローチャートであ
る。
ースオブジェクトとオブジェクトインスタンスとの間で
コネクションを確認する過程を示すフローチャートであ
る。
【図3】図1に示す制御システムにおいて、インタフェ
ースオブジェクトとオブジェクトインスタンスとの間で
イベントの対応付けを行い、コネクションを張る過程を
示すフローチャートである。
ースオブジェクトとオブジェクトインスタンスとの間で
イベントの対応付けを行い、コネクションを張る過程を
示すフローチャートである。
【図4】図1に示す制御システムにおいて、オブジェク
トインスタンス側からイベントをインタフェースオブジ
ェクトに伝える過程を示すフローチャートである。
トインスタンス側からイベントをインタフェースオブジ
ェクトに伝える過程を示すフローチャートである。
【図5】上記と異なる本発明の実施例の制御システムの
概略構成を示すブロック図である。
概略構成を示すブロック図である。
【図6】本発明の制御システムによって構築されたPO
Sシステムの周辺装置を制御するシステムを示すブロッ
ク図である。
Sシステムの周辺装置を制御するシステムを示すブロッ
ク図である。
10・・第1のOCX 11・・第2のOCX 15・・インタフェースオブジェクト 20・・アプリケーション 70・・パソコン 71・・POSアプリケーションプログラム 72・・制御オブジェクトによって構成された制御シス
テム 100・・ポートドライバ 110・・カスタマディスプレイ 111・・プリンタ 112・・レシート印字機構 113・・スリップ印字機構 115・・キャッシュドロワ
テム 100・・ポートドライバ 110・・カスタマディスプレイ 111・・プリンタ 112・・レシート印字機構 113・・スリップ印字機構 115・・キャッシュドロワ
Claims (12)
- 【請求項1】 属性値を含むプロパティおよびインプリ
メントされたファンクションを呼び出すメソッドの少な
くともいずれかを提供する第1の機能と、非同期に発生
したアクションを含むイベントを発信する第2の機能と
を備えた複数の制御オブジェクトを有し、 第1の前記制御オブジェクトまたはそのインスタンスに
よって少なくとも1つの第2の前記制御オブジェクトの
インスタンスが作成され、前記第1の制御オブジェクト
またそのインスタンスから前記第2の制御オブジェクト
のインスタンスの制御が行われるコンピュータ内のシス
テムであって、 前記プロパティおよびメソッドの少なくともいずれかを
前記第1の制御オブジェクトまたはそのインスタンスと
前記第2の制御オブジェクトのインスタンスの間で伝達
する機能と、 前記第2の制御オブジェクトのインスタンスから前記第
1の制御オブジェクトまたはそのインスタンスに前記イ
ベントを伝える機能とを備えたインタフェースオブジェ
クトまたはそのインスタンスを有することを特徴とする
複数のオブジェクトを用いた制御システム。 - 【請求項2】 請求項1において、複数の前記第2の制
御オブジェクトのインスタンスを有し、それら第2の制
御オブジェクトのインスタンス毎に前記インタフェース
オブジェクトまたはそのインスタンスが作成され、それ
ぞれの前記インタフェースオブジェクトは前記第1の制
御オブジェクトまたはそのインスタンスによって参照可
能な独自の識別手段を備えていることを特徴とする複数
のオブジェクトを用いた制御システム。 - 【請求項3】 請求項1において、前記第2の制御オブ
ジェクトは複数の前記イベントを第2の配列に従って発
信し、前記インタフェースオブジェクトは前記複数のイ
ベントを第1の配列に変換する手段を備えていることを
特徴とする複数のオブジェクトを用いた制御システム。 - 【請求項4】 請求項3において、前記第2の制御オブ
ジェクトのインスタンス毎に前記インタフェースオブジ
ェクトまたはそのインスタンスが作成され、それぞれの
前記インタフェースオブジェクトまたはそのインスタン
スは前記第1の配列に従って起動される複数のイベント
処理手段を備えていることを特徴とする複数のオブジェ
クトを用いた制御システム。 - 【請求項5】 属性値を含むプロパティおよびインプリ
メントされたファンクションを呼び出すメソッドの少な
くともいずれかを提供する第1の機能と、非同期に発生
するアクションを含むイベントを発信する第2の機能と
を備えた複数の制御オブジェクトを有し、第1の前記制
御オブジェクトまたはそのインスタンスによって少なく
とも1つの第2の前記制御オブジェクトのインスタンス
が作成され、これら複数の制御オブジェクトおよびそれ
らのインスタンスによってコンピュータ内に制御システ
ムを構築する方法であって、 前記プロパティおよびメソッドの少なくともいずれかを
前記第1の制御オブジェクトまたはそのインスタンスと
前記第2の制御オブジェクトのインスタンスとの間で伝
達する機能と、前記第2の制御オブジェクトのインスタ
ンスから前記第1の制御オブジェクトまたはそのインス
タンスに前記イベントを伝える機能とを備えたインタフ
ェースオブジェクトまたはそのインスタンスを前記第2
の制御オブジェクトのインスタンスに対応して作成する
ことを特徴とする制御システムの構築方法。 - 【請求項6】 請求項5において、それぞれの前記イン
タフェースオブジェクトに独自の識別手段が付与され、
その識別手段が前記イベントと共に前記第1の制御オブ
ジェクトまたはそのインスタンスに伝えられることを特
徴とする制御システムの構築方法。 - 【請求項7】 請求項5において、前記第2の制御オブ
ジェクトは複数の前記イベントを第2の配列に従って発
信し、前記インタフェースオブジェクトは第1の配列に
従って起動される複数のイベント処理手段を備えてお
り、前記インタフェースオブジェクトまたはそのインス
タンスを作成する際に前記第2の配列を第1の配列に変
換する第3の配列を作成することを特徴とする制御シス
テムの構築方法。 - 【請求項8】 アプリケーションシステムに対し周辺装
置の管理を行う制御システムであって、 属性値を含むプロパティおよびインプリメントされたフ
ァンクションを呼び出すメソッドの少なくともいずれか
を提供する第1の機能および非同期に発生するアクショ
ンを含むイベントを発信する第2の機能を備えた複数の
制御オブジェクトまたはそのインスタンスを有し、 これら複数の制御オブジェクトまたはそのインスタンス
からなる制御オブジェクト群は、第1の前記制御オブジ
ェクトまたはそのインスタンスと、 これら第1の制御オブジェクトまたはそのインスタンス
によって作成された第2の前記制御オブジェクトのイン
スタンスと、 前記プロパティおよびメソッドの少なくともいずれかを
前記第1の制御オブジェクトまたはそのインスタンスと
前記第2の制御オブジェクトのインスタンスの間で伝達
する機能、および前記第2の制御オブジェクトのインス
タンスから前記第1の制御オブジェクトまたはそのイン
スタンスに前記イベントを伝える機能を備えたインタフ
ェースオブジェクトまたはそのインスタンスとを備えて
いることを特徴とする周辺装置の制御システム。 - 【請求項9】 請求項8において、前記第2の制御オブ
ジェクトは、前記周辺装置の第1の周辺装置に対応して
いることを特徴とする周辺装置の制御システム。 - 【請求項10】 請求項9において、前記第2の制御オ
ブジェクトのプロパティは前記第1の周辺装置に固有な
仕様に対応した属性値を含み、前記メソッドは前記第1
の周辺装置に固有な命令を含み、さらに、前記イベント
は前記第1の周辺装置において非同期に発生するアクシ
ョンを反映可能であることを特徴とする周辺装置の制御
システム。 - 【請求項11】 請求項9において、前記第1の制御オ
ブジェクトは、前記インタフェースオブジェクトを介し
て伝達された前記第2の制御オブジェクトのプロパテ
ィ、メソッドおよびイベントの少なくともいずれかを普
遍的な仕様に変換することを特徴とする周辺装置の制御
システム。 - 【請求項12】 請求項9において、前記アプリケーシ
ョンシステムはPOS制御システムであり、前記第2の
制御オブジェクトはPOSを構成可能な各種の外部周辺
装置毎に用意されており、前記POS制御システムは前
記第1の制御オブジェクトまたはそのインスタンスを介
して前記外部周辺装置を制御することを特徴とする周辺
装置の制御システム。
Priority Applications (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7229545A JPH0973395A (ja) | 1995-09-06 | 1995-09-06 | 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム |
| EP96114176A EP0762273B1 (en) | 1995-09-06 | 1996-09-04 | Peripheral device control system using a plurality of objects |
| US08/711,716 US6108717A (en) | 1995-09-06 | 1996-09-04 | Control system using plural objects, a programming method therefor, and a peripheral devices control system |
| DE69621197T DE69621197T2 (de) | 1995-09-06 | 1996-09-04 | Peripheriegerätsteuerungssystem mit einer Mehrheit von Objekten |
| CA002184924A CA2184924A1 (en) | 1995-09-06 | 1996-09-05 | Computer control system constructed using a plurality of common objects, and a method for constructing same |
| HK98115556.7A HK1014278B (en) | 1995-09-06 | 1998-12-24 | Peripheral device control system using a plurality of objects |
| US09/606,378 US6292849B1 (en) | 1995-09-06 | 2000-06-28 | Control system using plural objects, a programming method therefor, and a peripheral devices control system |
| US09/819,217 US6304922B2 (en) | 1995-09-06 | 2001-03-27 | Control system using plural objects, a programming method therefor, and a peripheral devices control system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7229545A JPH0973395A (ja) | 1995-09-06 | 1995-09-06 | 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0973395A true JPH0973395A (ja) | 1997-03-18 |
Family
ID=16893850
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7229545A Pending JPH0973395A (ja) | 1995-09-06 | 1995-09-06 | 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0973395A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003512657A (ja) * | 1999-05-06 | 2003-04-02 | サン・マイクロシステムズ・インコーポレイテッド | 動的インストールおよび設定ブローカ |
| US7055155B2 (en) | 2000-12-28 | 2006-05-30 | Seiko Epson Corporation | Character string processing method, processing system, and object program therefor |
-
1995
- 1995-09-06 JP JP7229545A patent/JPH0973395A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003512657A (ja) * | 1999-05-06 | 2003-04-02 | サン・マイクロシステムズ・インコーポレイテッド | 動的インストールおよび設定ブローカ |
| US7055155B2 (en) | 2000-12-28 | 2006-05-30 | Seiko Epson Corporation | Character string processing method, processing system, and object program therefor |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0762273B1 (en) | Peripheral device control system using a plurality of objects | |
| US7035912B2 (en) | Method and apparatus allowing a limited client device to use the full resources of a networked server | |
| US5999728A (en) | Method and apparatus for enhancing the portability of an object oriented interface among multiple platforms | |
| AU743465B2 (en) | Interface code architecture | |
| US6226693B1 (en) | Method and system for logical event management | |
| US9927792B2 (en) | Universal web-based reprogramming method and system | |
| CN104508622A (zh) | Epos打印 | |
| EP2953033B1 (en) | Control system and control method for the control system | |
| CN102362286A (zh) | 接口模块,系统和方法 | |
| JPH0683603A (ja) | オブジェクト・クラスのバッチ登録の方法とシステム | |
| CA2110417A1 (en) | Message dispatching in an event-driven architecture | |
| CA2584893A1 (en) | Browser based user interface for dynamic interaction and control within a mail processing environment | |
| JP2001005622A (ja) | プリントレットシステム及び方法 | |
| JPH09106355A (ja) | 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム | |
| US7966427B2 (en) | Proxy object configuration of industrial component | |
| JPH0973395A (ja) | 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム | |
| MXPA02004155A (es) | Herramienta y metodo de programacion para impresora. | |
| JP2002251674A (ja) | Pos端末およびposデバイスの制御方法 | |
| TW411414B (en) | Method and apparatus for monitoring and controlling real-time information in a building automation system | |
| HK1014278B (en) | Peripheral device control system using a plurality of objects | |
| US10410199B2 (en) | Print control system and print control method | |
| EP1324196B1 (en) | Method of initializing multiple devices and a control system for controlling multiple devices | |
| WO2002001464A1 (en) | Franking machine control | |
| CN115495138B (zh) | 一种终端App的定制化方法及定制化系统 | |
| JP6855941B2 (ja) | デバイス制御装置、および、デバイス制御装置の制御方法 |