Как запустить уведомления об изменении свойств из C # в COM с помощью IPropertyNotifySink? - PullRequest
0 голосов
/ 16 декабря 2010

Я схожу с ума от этой проблемы в последние пару недель.У меня есть объект C # Com, который должен отправлять уведомления об изменении свойств в объект C ++ Com.Эквивалентом в VB будет использование кода, который выглядит следующим образом PropertyChanged "propertyName".

В C ++ эквивалент для использования класса CFirePropNotifyEvent из ATL.

COM-объекты C ++ и COM VB нереализовать специализированный интерфейс событий, поэтому эквивалент приведен выше. COM-объект C ++, которому необходимо обработать событие, основан на IPropertyNotifySink, afaik.

Что является эквивалентом в C #?я попытался:

  1. INotifyPropertyChanged from System.ComponentModel
  2. Я реализовал IObjectWithSite и попытался привести объект сайта, полученный в setSite, к IPropertyNotifySink.
    1. Я не могу найти эквивалент для CFirePropNotifyEvent в C ++ / ATL, который используется в коде C ++.

Пожалуйста, помогите ..

Заранее спасибо ..

1 Ответ

1 голос
/ 16 декабря 2010

Я не думаю, что между INOtifyPropertyChanged и COM в INotifyPropertySink есть какой-то автоматический шлюз.

Если вы хотите, чтобы объект .NET предоставлял события COM, вам необходимо обеспечить реализацию IConnectionPointContainer в этих объектах .NET.

IConnectionPointContainer уже существует в .NET в пространстве имен System.Runtime.InteropServices.ComType.

...