API:Datasnap.Win.SConnect.TPacketInterceptFactory
Delphi
TPacketInterceptFactory = class(TComObjectFactory)
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | Datasnap.Win.SConnect.pas | Datasnap.Win.SConnect | Datasnap.Win.SConnect |
説明
TComObjectFactory は,TComObject クラスをインスタンス化するのに使用するクラスファクトリオブジェクトの型です。
Datasnap.Win.SConnect.TPacketInterceptFactory は System.Win.ComObj.TComObjectFactory を継承しています。以下の内容はすべて System.Win.ComObj.TComObjectFactory を参照しています。
TComObjectFactory は,TComObject クラスをインスタンス化するのに使用するクラスファクトリオブジェクトの型です。
TComObjectFactory では,IUknown,IClassFactory,IClassFactory2 の各インターフェースがサポートされています。IClassFactory インターフェースはクラスオブジェクトによって実装されます。これらのクラスオブジェクトは,それぞれがインスタンス化するクラス用のクラス ID(CLSID)に関連付けられています。IClassFactory はそれぞれのオブジェクト定義に実装して,その型のオブジェクトを作成できるようにしなければなりません。IClassFactory2 インターフェースは,ライセンス付与用にサポートを必要とするクラスのためにクラスファクトリにより実装されます。
クラスファクトリは,登録されたクラス ID(CLSID)が指定する COM クラスをインスタンス化します。クラスファクトリオブジェクトは,クラスオブジェクトとその関連付けられたクラスのコードを保持する COM サーバーによって自動的に作成されます。クラスファクトリが作成されると,CLSID がクラスファクトリオブジェクトのコンストラクタへのパラメータで指定されます。この CLSID は,クラスファクトリがインスタンスを作成するオブジェクトの型を示します。
また,Windows API 関数の CoCreateClassObject を直接呼び出せば,クラスファクトリオブジェクトを外部的にインスタンス化できます。関数の CreateComObject または CreateOleObject は,COM クラスをインスタンス化するためにも呼び出せます。このような関数はクラスファクトリを間接的に使ってクラスをインスタンス化します。ただし,CLSID を持つ複数のクラスインスタンスを作成している際は,必要なときにクラスファクトリをインスタンス化し,その IClassFactory インターフェースへのポインタを取得し,そのメソッドを使用する方がより効率的です。
クラスファクトリは,ComClassManager 関数でアクセスしたグローバルクラスマネージャによってサーバーで管理されます。このクラスマネージャは,通常はクラスファクトリを所有する COM サーバーにしたがって,クラスファクトリを操作するためのクラスファクトリリストを管理します。
IUnknown, IClassFactory, IClassFactory2