私はできるだけ簡単に問題を説明します。comコンポーネントの初期化時にコンストラクタを使用する
ここで問題が発生します。
コンストラクタが3つのパラメータを持つコンストラクタを3つ持つcomコンポーネントクラスがあるとします。既にわかっているように、クラスのコンストラクタを呼び出すのではなく、QueryInterfaceを使用してコンポーネントをインスタンス化するので、comクライアントがコンストラクタのパラメータを設定することはできないようです。
大丈夫です、ここに質問があります。
comクライアントが少なくとも2つのパラメータを初期化する必要があるcomコンポーネントをインスタンス化できるようにするには、どのような方法が最適ですか?
好奇心。どのようにDCOM/COM +経由でそのようなCOMコンポーネントを使用しますか? – sharptooth
@sharptooth:このようなコンポーネントはインプロセスで使用でき、多くのアプリケーションで有用ですが、決してすべてではありません。 midlがモジュールメンバーの代理人を生成できるかどうかは分かりませんが、決してそれは必要ありません。私は基本的にCOMを、高性能のネイティブ関数へのRADコード(例えばクラシックVB)へのアクセス、および高性能の要求をインプロセスに与えるためのフレンドリーな方法として使用しました。 –
私は参照してください。 MIDLはIDLファイル内のインターフェイスのプロキシのみを生成し、outprocサーバーを(直接またはCOM +サロゲートとして)起動することはできず、これらのエントリ関数のいずれかを保持できません。だからこれはうまくいきません。その作業を行う唯一の方法は、 'CoCreateInstance()'を介して作成できるクラスファクトリを持つことです。 – sharptooth