// IUIEventHandler STDMETHODIMP CSVGMasksDlg::handleActivateObjectEvent(IUnknown* object, long* cookie) { CComQIPtr<IEXMLDocument> document = object; if (document) { if (m_document != NULL) { CComQIPtr<ILDOMEventTarget> eventTarget = m_listView.m_xmlDocument; eventTarget->removeEventListener(L"DOMNodeInserted", (ILDOMEventListener*)this, VARIANT_TRUE); // IDispEventImpl<2, CSVGFiltersDlg, &DIID__IWebXMLDocumentEvents, &LIBID_LXMLEDITORLib, 1, 0>::DispEventUnadvise(m_document); } m_document = document; m_listView.m_xmlDocument.Release(); m_document->get_DOMDocument(&m_listView.m_xmlDocument); // IDispEventImpl<2, CSVGFiltersDlg, &DIID__IWebXMLDocumentEvents, &LIBID_LXMLEDITORLib, 1, 0>::DispEventAdvise(m_document); CComQIPtr<ILDOMEventTarget> eventTarget = m_listView.m_xmlDocument; eventTarget->addEventListener(L"DOMNodeInserted", (ILDOMEventListener*)this, VARIANT_TRUE); BuildItems(); AddEventListeners(); *cookie = 1; } return S_OK; }
LRESULT CSVGSwatchesDlg::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { if (CSVGDefinitionsDlgT<CSVGSwatchesDlg>::OnCreate(uMsg, wParam, lParam, bHandled) != 0) return -1; ::RegisterDragDrop(m_hWnd, this); // CComQIPtr<IUIActiveManager> uiActiveManager = m_app; // uiActiveManager->AddEventHandler(this); { CComPtr<IEXMLDocument> edocument; m_viewGroup->get_eXMLDocument(&edocument); // m_listView.m_xmlDocument.Release(); edocument->get_DOMDocument(&m_listView.m_xmlDocument); // IDispEventImpl<2, CSVGFiltersDlg, &DIID__IWebXMLDocumentEvents, &LIBID_WEBEDITORLib, 1, 0>::DispEventAdvise(m_document); CComQIPtr<ILDOMEventTarget> eventTarget = m_listView.m_xmlDocument; eventTarget->addEventListener(L"DOMNodeInserted", (ILDOMEventListener*)this, VARIANT_TRUE); BuildItems(); AddEventListeners(); OnSelectionStyleChanged(); } return 0; }
void WebsocketTransport::DoOpen() { auto uri = this->uri(); ws_ = Websocket::Create(uri, origin_); AddEventListeners(); }
// nsIObserver NS_IMETHODIMP nsUICommandCollector::Observe(nsISupports *subject, const char *topic, const PRUnichar *data) { if (strcmp(topic, "domwindowopened") == 0) { nsCOMPtr<nsIDOMEventTarget> window = do_QueryInterface(subject); NS_ENSURE_STATE(window); AddEventListeners(window); } return NS_OK; }
// IUIEventHandler STDMETHODIMP CSVGSwatchesDlg::handleActivateObjectEvent(IUnknown* object, long* cookie) { CComQIPtr<IEXMLViewGroup> viewGroup = object; if (viewGroup) { ASSERT(m_viewGroup == NULL); /* if (m_document != NULL) { CComQIPtr<ILDOMEventTarget> eventTarget = m_listView.m_xmlDocument; eventTarget->removeEventListener(L"DOMNodeInserted", this, VARIANT_TRUE); // IDispEventImpl<2, CSVGFiltersDlg, &DIID__IWebXMLDocumentEvents, &LIBID_WEBEDITORLib, 1, 0>::DispEventUnadvise(m_document); } */ m_viewGroup = viewGroup; CComPtr<IEXMLDocument> edocument; m_viewGroup->get_eXMLDocument(&edocument); m_listView.m_xmlDocument.Release(); edocument->get_DOMDocument(&m_listView.m_xmlDocument); // IDispEventImpl<2, CSVGFiltersDlg, &DIID__IWebXMLDocumentEvents, &LIBID_WEBEDITORLib, 1, 0>::DispEventAdvise(m_document); CComQIPtr<ILDOMEventTarget> eventTarget = m_listView.m_xmlDocument; eventTarget->addEventListener(L"DOMNodeInserted", (ILDOMEventListener*)this, VARIANT_TRUE); BuildItems(); AddEventListeners(); OnSelectionStyleChanged(); *cookie = 1; } return S_OK; }
// ILDOMEventListener STDMETHODIMP CSVGMasksDlg::handleEvent(ILDOMEvent* evt) { CComBSTR type; evt->get_type(&type); // BOOL bUpdate = FALSE; if (!wcscmp(type, L"DOMNodeInserted")) { RemoveEventListeners(); BuildItems(); AddEventListeners(); } else if (!wcscmp(type, L"DOMNodeRemovedFromDocument")) { CComQIPtr<ILDOMMutationEvent> mut = evt; CComPtr<ILDOMEventTarget> target; mut->get_target(&target); CComQIPtr<ILDOMNode> node = target; for (int i = 0; i < m_listView.m_items.GetSize(); i++) { if ((ILDOMElement*)m_listView.m_items[i]->m_element == node) { CComQIPtr<ILDOMEventTarget> eventTarget = (ILDOMElement*)m_listView.m_items[i]->m_element; eventTarget->removeEventListener(L"DOMNodeRemovedFromDocument", (ILDOMEventListener*)this, VARIANT_FALSE); m_listView.DeleteItem(i); break; } } } return S_OK; }
// ILDOMEventListener STDMETHODIMP CSVGSwatchesDlg::handleEvent(ILDOMEvent* evt) { BSTR btype; evt->get_type(&btype); _bstr_t type = _bstr_t(btype, false); // BOOL bUpdate = FALSE; if (!wcscmp(type, L"DOMNodeInserted")) { RemoveEventListeners(); BuildItems(); AddEventListeners(); } else if (!wcscmp(type, L"DOMNodeRemovedFromDocument")) { CComQIPtr<ILDOMMutationEvent> mut = evt; CComPtr<ILDOMEventTarget> target; mut->get_target(&target); CComQIPtr<ILDOMNode> node = target; for (int i = 0; i < m_listView.m_items.GetSize(); i++) { if ((ILDOMElement*)m_listView.m_items[i]->m_element == node) { CComQIPtr<ILDOMEventTarget> eventTarget = (ILDOMElement*)m_listView.m_items[i]->m_element; eventTarget->removeEventListener(L"DOMNodeRemovedFromDocument", (ILDOMEventListener*)this, VARIANT_FALSE); m_listView.DeleteItem(i); break; } } } else// if (!wcscmp(type, L"DOMAttrModified") || // !wcscmp(type, L"DOMCharacterDataModified")) { CComQIPtr<ILDOMMutationEvent> mut = evt; CComPtr<ILDOMEventTarget> target; mut->get_target(&target); CComQIPtr<ILDOMNode> node = target; for (int i = 0; i < m_listView.m_items.GetSize(); i++) { if ((ILDOMElement*)m_listView.m_items[i]->m_element == node) { if (m_listView.m_items[i]->m_thumbnailBitmap) { DeleteObject(m_listView.m_items[i]->m_thumbnailBitmap); m_listView.m_items[i]->m_thumbnailBitmap = NULL; m_listView.m_items[i]->m_thumbnailBits = NULL; } if (m_listView.m_hWnd) { m_listView.Invalidate(); } break; } } } return S_OK; }