ツールを使用して基本タイプ ライブラリをインポートすると、tlbimp.exe
常に各 のインターフェイスが作成されますcoclass
。たとえば、この IDL 記述
interface IFoo : IUnknown
{
HRESULT DoSomething();
}
coclass Bar
{
[default] interface IFoo;
}
結果:
- COMインターフェイス
IFoo
の表現としてのインターフェイス、 BarClass
COM コクラスの表現としてのクラスとBar
で注釈が付けられたインターフェイスCoClassAttribute
。
Bar
との GUIDIFoo
が等しい場所。MSDNは、このトピックについて次のように述べています。
このインターフェイスは、コクラスの既定のインターフェイスと同じ IID を持っています。このインターフェイスを使用すると、クライアントは常にイベント シンクとして登録できます。
それが私がこのトピックで見つけた唯一のものです。CoClassAttribute
により、インターフェイスを使用して実際のクラスのインスタンスを作成できることを知っています。BarClass
また、(実際には) を使用してクラスの新しいインスタンスを作成できることも知っています。私が理解していないのは、イベント ソースが定義されていないため、イベント シンクを接続できないBar
場合でも、インポート プロセスがインターフェイスを生成する理由です。coclass
Bar
この例でインターフェイス1を削除することは可能でしょうか、それともまだ考慮していない他のリスクがありますか?
1 たとえば、相互運用アセンブリを分解します。