bool CJabberProto::OnIncomingNote(const TCHAR *szFrom, HXML hXml) { if (!m_options.AcceptNotes) return false; if (!szFrom || !hXml) return true; CNoteItem *pItem = new CNoteItem(hXml, (TCHAR *)szFrom); if (!pItem->IsNotEmpty()) { delete pItem; return true; } if (m_options.AutosaveNotes && HContactFromJID(szFrom)) { ProcessIncomingNote(pItem, true); return false; } CLISTEVENT cle = {0}; char szService[256]; mir_snprintf( szService, sizeof(szService),"%s%s", m_szModuleName, JS_INCOMING_NOTE_EVENT ); cle.cbSize = sizeof(CLISTEVENT); cle.hIcon = (HICON)LoadIconEx("notes"); cle.flags = CLEF_PROTOCOLGLOBAL|CLEF_TCHAR; cle.hDbEvent = (HANDLE)("test"); cle.lParam = (LPARAM)pItem; cle.pszService = szService; cle.ptszTooltip = TranslateT("Incoming note"); CallService(MS_CLIST_ADDEVENT, 0, (LPARAM)&cle); return true; }
void CNoteList::LoadXml(HXML hXml) { destroy(); m_bIsModified = false; int count = xmlGetChildCount(hXml); for (int i = 0; i < count; ++i) { CNoteItem *pNote = new CNoteItem(xi.getChild(hXml, i)); if (pNote->IsNotEmpty()) insert(pNote); else delete pNote; } }
void btnAdd_OnClick(CCtrlFilterListView *) { CNoteItem *pNote = new CNoteItem(); CJabberDlgNoteItem dlg(this, pNote); dlg.DoModal(); if (pNote->IsNotEmpty()) { m_proto->m_notes.insert(pNote); m_proto->m_notes.Modify(); UpdateData(); } else { delete pNote; return; } EnableControls(); }