コネクションポイントはあまり使うべきではない

コネクションポイントはあまり使用しない方がいいらしいです。


何でかというと、コネクションポイントを接続するために5回の往復が必要になるし、イベントを発行する際に、全てに対してイベントを送信することになるので、無駄な往復が出てしまい、効率が良くないです。
もし COM がリモートで使用されていた場合はかなりネックになってしまいます。


コネクションポイントで接続するぐらいなら、ソース側は接続するための機構を、

// eventFlag は受け取るイベントの種類を設定したフラグ
SetHogeEvents(IHogeEvents* p, long eventFlag, DWORD* pCookie);

こんな感じで手動で用意して、シンク側はこのイベントを実装して、

// 2種類のイベントだけ受信するようにする。
m_hoge->SetHogeEvents(static_cast<IHogeEvents*>(this), (1 << 8) | (1 << 2), &cookie);

こんな感じで接続した方が良いらしいです。@Effective COM より