System.Win.ComObj.TComObject
Delphi
TComObject = class(TObject, IUnknown, ISupportErrorInfo)
C++
class PASCALIMPLEMENTATION TComObject : public System::TObject
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | System.Win.ComObj.pas System.Win.ComObj.hpp |
System.Win.ComObj | System.Win.ComObj |
説明
TComObject は,簡単な COM クラス(Shell 拡張を作成するために使用するものなど)を作成するための基本クラスです。
TComObject は,IUnknown インターフェースおよび ISupportErrorInfo インターフェースをサポートする COM オブジェクトです。TComObject は,以下の要素を持つ簡単な COM オブジェクトの実装方法を提供します。
クラスファクトリを使って外部インスタンス化するためのクラス ID(CLSID)
IUnknown のメソッドで実装する集約化のための省略可能なサポート
IProvideErrorInfo の実装による SafeCall 呼び出し規約および OLE 例外処理のサポート
IErrorInfo メカニズムのサポート
TComObject は,クラス ID(CLSID)を持つ必要がある COM オブジェクトのクラスを作成するための基本クラスとして使用できます。CLSID を使用すると,データベースレジストリにクラスを登録したり,クラスファクトリを利用してクラスを外部的にインスタンス化することができます。TComObject のクラスファクトリは TComObjectFactory です。クラスファクトリプロパティは,名前,説明,CLSID など,TComObject クラスについての情報を提供します。TComObjectFactory のメソッドを使用すると,TComObject クラスをレジストリに登録し,それをインスタンス化できます。
TComObject は,1 つの COM オブジェクトまたは集約オブジェクトの一部としてインスタンス化できます。IUnknown のメソッドを TComObject で実装して集約化をサポートするには,インスタンス化された COM オブジェクトが集約オブジェクトの内部オブジェクトのときに制御側 IUnknown インターフェースに適切に委任します。結果的に,内部 COM オブジェクトが実装するすべてのインターフェースでは,インターフェース参照が作成されたときに,その参照カウントは直接的な影響を受けません。
TComObject は,OLE Automation コントローラによるエラーオブジェクトが利用可能になるかどうかの問い合わせを許可する ISupportErrorInfo インターフェースをサポートし,呼び出しチェインに沿って確実にエラー情報が通知されることを保証します。ISupportErrorInfo インターフェースメソッドの InterfaceSupportsErrorInfo を実装することで,TComObject は IErrorInfo メカニズムをサポートし,それによって OLE 例外処理および SafeCall 呼び出し規約のサポートを提供します。IErrorInfo インターフェースを介して利用できる情報は,SafeCall エラー処理のために使用します。
TComObject を使ったときは,インスタンス化したオブジェクトにタイプライブラリを持つように要求することはありません。
InterfaceSupportsErrorInfo メソッド