1

ファイルを処理するために CDO COM DLL を使用してい.emlます。MessengerClass クラスをインスタンス化しようとすると、VC#2010 から、インターフェイスを使用してインスタンス化する必要があることが通知されます。

CDO.Message msg = new CDO.Message();

それ以外の

CDO.Message msg = new CDO.MessageClass();

どうすればいいの?このインスタンスにはすべての機能がありませんか? この記事は、同じことをするように言います。私は何が欠けていますか?インターフェイスにはまだ使用可能な機能が含まれていますか?

4

3 に答える 3

1

CDO.Message クラスは、 MSDNに従って IMessage、IBodyPart、および IDataSource インターフェイスを公開します。

この回答には、舞台裏の魔法の C#/COM の一部に関する詳細が含まれています。

于 2012-08-26T22:13:13.283 に答える
1

コンパイラは、インターフェイスを実装する COM クラスを検索する実際の COM コードに変換します。new COMInterface()

私が理解しているように、COM インターフェイスには複数の実装がありません。代わりに、ランタイムは HKCR\Classes{ guid } で指定された適切な DLL から実装を読み込みます。
(私はCOMについてあまり知らないので、これは不正確かもしれません.

于 2012-08-26T22:21:15.620 に答える