私は過去数週間、この問題に夢中になります。私はプロパティの変更通知をC++ Comオブジェクトに送信する必要があるC#Comオブジェクトを持っています。 VBの同等機能は、次のようなコードを使用します。 PropertyChanged "propertyName"IPropertyNotifySinkを使用してC#からCOMにプロパティ変更通知を発行する方法?
C++では、ATLのCFirePropNotifyEventクラスを使用するのと同等です。
C++のCOMオブジェクトとVBのCOMオブジェクトは特殊なイベントインターフェイスを実装していないため、同等です。イベントをシンクする必要があるC++ COMオブジェクトは、IPropertyNotifySink、afaikをベースにしています。
C#での対応はなんですか? 私が試してみました:System.ComponentModel
- を私はIObjectWithSiteを実装し、IPropertyNotifySinkにsetSiteで受信されたサイトオブジェクトをキャストしようとしました。 私はC++のコードが使用するものであるC++/ATLでCFirePropNotifyEventのための同等のものを見つけることができません
-
-
..
..事前に
感謝を...助けてください
hmm ..良い点..私は(失敗した)その実装に行ってきました。何か助けがありますか(ジェネリックimpl/sample ??) – user543923
それは見つけるのが難しいです。本当にこのルートに行きたい場合は、Reflectorでダイビングし、AciveXオブジェクトのCLRラッパーであるAxHostクラスの周りを見てみることをお勧めします。それは文書化されていませんが、反射板はそれについて多くを教えることができます。それ以外の場合は、デリゲート、コールバックなどを使用して、独自の「イベントのような」メカニズムに助言することができます。可能であれば、それははるかに簡単です。 –