我有一個進程外ATL COM服務器(exe)。當它由客戶端啓動時,服務器產生一個工作線程輪詢一些數據。每次數據更新時,我都想通知所有客戶端更新的值。OOP COM服務器更新客戶端
我已經創建了一個COM客戶端,它通過CoCreateInstanceEx連接,創建它的Sink對象,獲取連接點並調用Advise,全部沒有錯誤。但是,當服務器嘗試Fire_event時,它的IConnectionPointImpl :: m_vec爲空,並且不會通知客戶端。
我認爲這是因爲服務器創建自己的對象,所以我最終得到兩個IConnectionPointImpl :: m_vec實例,一個來自服務器,另一個來自客戶端調用Advise時。我怎樣才能獲得服務器數據給客戶端?
我想你必須找出事件爲什麼被觸發的對象不同於爲客戶端創建的對象,以及爲什麼有多個對象放在首位。 – sharptooth