小売アプリケーションへのプラグインとして機能する小さな COM サーバーを Delphi 2010 で作成しました。小売アプリケーションは、それぞれを呼び出す任意の数の追加インターフェイスを登録する「検出」インターフェイスを探しますTAutoObjectFactory.Create
。これは問題なく機能しています。すべてのプラグイン インターフェイスは設計どおりに機能します。
しかし、コードを複製する必要がないように、あるインターフェイスのパブリック メソッドを別のインターフェイスから呼び出したいと考えています。ComClassManager.ForEachFactory
使用する必要があるインターフェイスの ClassID を探して呼び出すだけです。それもうまくいきました!
しかし、クラスを見つけたので、一見些細な最終ステップに困惑しています。実際にそのメソッドの 1 つを呼び出すために見つけたクラス (またはクラス参照?) を使用またはキャストする方法です。
に送信した「FactoryProc」ではForEachFactory
、の ComClass プロパティが求めてTComObjectFactory
いるものであると想定していますが、それは TClass 型であり、それが指す実際のクラス オブジェクトへのクラス参照です (少なくとも、これを正しく理解してください)。私はクラス参照について少し曖昧で、このプロパティをキャストまたは逆参照しようとすると、アクセス違反またはコンパイラ エラーが発生しました。
助言がありますか?