ATL C++ インプロセス COM コンポーネントがあります。このコンポーネントは外部で使用するためのものではありません。アプリケーションで使用するためだけに必要です。
ときどき、ユーザーがそれを COM+ に入れると、あらゆる種類の奇妙なエラー (「アクセスが拒否されました」など) が発生することがあります。最善の方法は、コンポーネントを COM+ に配置することを禁止して、インプロセス サーバーとしてのみ使用できるようにすることです。これを行う方法はありますか?
ATL C++ インプロセス COM コンポーネントがあります。このコンポーネントは外部で使用するためのものではありません。アプリケーションで使用するためだけに必要です。
ときどき、ユーザーがそれを COM+ に入れると、あらゆる種類の奇妙なエラー (「アクセスが拒否されました」など) が発生することがあります。最善の方法は、コンポーネントを COM+ に配置することを禁止して、インプロセス サーバーとしてのみ使用できるようにすることです。これを行う方法はありますか?
モジュールの登録を防止することが完了し、この記事の説明に従ってDLLを使用します。dllから直接COMオブジェクトを作成します。
独自のインターフェースのみを実装していますか?その場合、IDLでそれらに「[local]」のマークを付けてから、すべてのマーシャリング情報(タイプライブラリ、P / S)などのモジュールを削除できるはずです。
利用可能なマーシャリングの根拠がない場合、COM+はモジュールを登録できないはずです。COM +の傍受メカニズムは、オブジェクトをリモートコンテキストに強制し、プロキシとスタブおよびそれらの対応するパーティの間に入ることに依存しています。したがって、マーシャリングの機会をすべて削除しても、インターフェイスメソッドをインターセプトできないはずです。