public void mouseDidMoveOverElement(WebView sender, CFDictionaryPropertyBag elementInformation, uint modifierFlags) { object textcontent; elementInformation.RemoteRead("WebElementLinkURLKey", out textcontent, null, 0, null); if (!string.IsNullOrEmpty((string)textcontent)) { StatusTextChanged((string)textcontent); owner.StatusText = (string)textcontent; if ((string)textcontent != string.Empty) { owner.LastSelectedLink = (string)textcontent; } } else { StatusTextChanged(string.Empty); owner.StatusText = string.Empty; } textcontent = null; object el; elementInformation.RemoteRead("WebElementDOMNodeKey", out el, null, 0, null); if (el == null) { owner.setCurElSafe(null); return; } IDOMNode node = el as IDOMNode; if (node is IDOMElement || node is IDOMHTMLElement || node is IDOMHTMLTextAreaElement || node is IDOMHTMLInputElement && node != null) { owner.setCurElSafe(node); MouseDidMoveOverElement(sender, node); } else { el = null; node = null; GC.Collect(); } el = null; if (node != null) { node = null; } Marshal.ReleaseComObject(elementInformation); }