internal void UpdateListView() {
            Debug.Assert(listView.IsHandleCreated, "ApplySavedState Precondition: List-view handle must be created");
            NativeMethods.LVINSERTMARK lvInsertMark = new NativeMethods.LVINSERTMARK();                 
            lvInsertMark.dwFlags = appearsAfterItem ? NativeMethods.LVIM_AFTER : 0;
            lvInsertMark.iItem = index;
            UnsafeNativeMethods.SendMessage(new HandleRef(listView, listView.Handle), NativeMethods.LVM_SETINSERTMARK, 0, lvInsertMark);

            if (!color.IsEmpty) {
                listView.SendMessage(NativeMethods.LVM_SETINSERTMARKCOLOR, 0, SafeNativeMethods.ColorToCOLORREF(color));
            }            
        }
        /// <include file='doc\ListViewInsertionMark.uex' path='docs/doc[@for="ListViewInsertionMark.Index"]/*' />
        /// <devdoc>
        ///     Performs a hit-test at the specified insertion point
    	///     and returns the closest item.
        /// </devdoc>
        ///
    	public int NearestIndex(Point pt)
        {
            NativeMethods.POINT point = new NativeMethods.POINT();
            point.x = pt.X;
            point.y = pt.Y;

            NativeMethods.LVINSERTMARK lvInsertMark = new NativeMethods.LVINSERTMARK();
            UnsafeNativeMethods.SendMessage(new HandleRef(listView, listView.Handle), NativeMethods.LVM_INSERTMARKHITTEST, point, lvInsertMark);

            return lvInsertMark.iItem;
        }