private void IMWindowCreated(object sender, IMWindowCreatedEventArgs e) { try { OCMessageWindow windows = new OCMessageWindow(); IMessengerWindow pIMWindow = (IMessengerWindow)e.pIMWindow; IMessengerConversationWnd wnd = (IMessengerConversationWnd)pIMWindow; windows.WindowHWND = e.pIMWindow.GetHashCode().ToString(); windows.BeginTime = DateTime.Now; IMessengerContacts contacts = (IMessengerContacts)wnd.Contacts; for (int i = 0; i < contacts.Count; i++) { windows.ContactsList.Add(((IMessengerContact)contacts.Item(i)).SigninName); } messageWindowList.Add(windows); windows.Run(pIMWindow); windows.SaveHistroyEvent += windows_SaveHistroyEvent; } catch (Exception exception) { logger.Error(exception); } }
private void IMWindowContactAdded(object sender, IMWindowContactAddedEventArgs e) { try { string winID = e.pIMWindow.GetHashCode().ToString(); IMessengerWindow pIMWindow = (IMessengerWindow)e.pIMWindow; IMessengerConversationWnd wnd = (IMessengerConversationWnd)pIMWindow; IMessengerContacts contacts = (IMessengerContacts)wnd.Contacts; if (contacts.Count > 1) { List <string> list = new List <string>(contacts.Count); for (int i = 0; i < contacts.Count; i++) { list.Add(((IMessengerContact)contacts.Item(i)).SigninName); } OCMessageWindow windows = GetMessageWindow(winID); windows.ContactsList.AddRange(list.Where(f => !windows.ContactsList.Contains(f))); } } catch (Exception exception) { logger.Error(exception); } }
public void Run(IMessengerWindow iMWindow) { try { doneEvent = new AutoResetEvent(false); ThreadParameter parameter = new ThreadParameter(); parameter.doneEvent = this.doneEvent; parameter.IMWindow = iMWindow; saveThread = new Thread(new ParameterizedThreadStart(this.SaveHistroyMethod)); saveThread.Start(parameter); } catch (COMException comExp) { logger.Error(comExp); } catch (Exception exp) { logger.Error(exp); } }
public MessengerWindow(IMessengerWindow window) => this._window = window;