私は VC++ 6 で ATL/COM プロジェクトを持っています。これまでイベントを発生させるように定義されたことのない既存のクラスで、イベントを発生させたいと考えています。これを行うには、クラスは「接続ポイント」を実装する必要があります。
これらのイベントは、これまで発生したクラスがないタイプであるため、既存の接続ポイントを再利用するのではなく、新しい接続ポイントを作成する必要があります。
クラスに接続ポイントを実装する方法を知っています。クラス ビューでクラスを右クリックし、[接続ポイントの実装] を選択して、表示されるリストから適切な接続ポイントを選択します。
新しい接続ポイントを実装するために新しい ATL クラスに関連付けられている限り、新しい接続ポイントを作成する方法を知っています - クラスを作成するときに「サポート接続ポイント」をチェックしてください。
しかし、それを実装する新しい ATL クラスを作成せずに、新しいコネクション ポイントを作成する方法がわかりません。
IDL を変更して、既存の接続ポイントの定義に似たものを含めました。
[
uuid(*blah blah blah*),
helpstring("_IBlahEvents Interface")
]
dispinterface _IBlahEvents
{
properties:
methods:
[id(1), helpstring("method BlahChanged")] HRESULT BlahChanged();
};
(明らかに、「何とか何とか」ではなく、本当のuuidを持っています)。
これを実行すると、_IBlahEvents インターフェイスがクラス ビューに表示されます。しかし、_IBlahEvents を実装する ATL クラスを右クリックして [接続ポイントの実装] を選択すると、_IBlahEvents が既存の接続ポイントの一覧に表示されません。
すべてのクリーニングと再構築を含め、再コンパイルしました。
私は何が欠けていますか?
ありがとう。