// object entry point void IDDEConversationListener.OnDisconnect() { lock (this.owner.mutex) { conversation = null; foreach (var item in this.items.Values) { item.OnData(null); } foreach (var listener in this.listeners) { listener.OnDisconnect(); } } }
// object entry point void IDDEConversationListener.OnConnect(IDDEConversation conversation) { lock (this.owner.mutex) { this.conversation = conversation; this.connecting = false; if (conversation != null) { foreach (var listener in this.listeners) { listener.OnConnect(); } foreach (var item in this.items.Values) { conversation.AdviseStart(item.ItemName, this.OnAdviseStartCompleted); } } } }
// object entry point void IDDEConversationListener.OnDisconnect() { lock(this.owner.mutex) { conversation = null; foreach(var item in this.items.Values) item.OnData(null); foreach(var listener in this.listeners) listener.OnDisconnect(); } }
void RemoveItem(Item item) { if(conversation != null) conversation.AdviseStop(item.ItemName, null); this.items.Remove(item.ItemName); if(this.items.Count == 0) { if(conversation != null) { conversation.Disconnect(); conversation = null; } } CheckRemoveTopic(); }
// object entry point void IDDEConversationListener.OnConnect(IDDEConversation conversation) { lock(this.owner.mutex) { this.conversation = conversation; this.connecting = false; if(conversation != null) { foreach(var listener in this.listeners) listener.OnConnect(); foreach(var item in this.items.Values) conversation.AdviseStart(item.ItemName, this.OnAdviseStartCompleted); } } }