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);
        }