Beispiel #1
0
        /// <summary>
        /// Processes reflected notification messages.
        /// </summary>
        /// <param name="m">The Windows <see cref="T:System.Windows.Forms.Message" /> to process.</param>
        /// <returns><c>true</c> if message handled; otherwise <c>false</c>.</returns>
        protected virtual bool WmReflectNotify(ref Message m)
        {
            var hdr = m.LParam.ToStructure <User32.NMHDR>();

            if (hdr.code == (int)ComCtl32.IPAddressNotification.IPN_FIELDCHANGED)
            {
                var ipAddr = m.LParam.ToStructure <ComCtl32.NMIPADDRESS>();
                var e      = new IPAddressFieldChangedEventArgs(ipAddr.iField, ipAddr.iValue);
                OnFieldChanged(e);
                if (e.Value != ipAddr.iValue)
                {
                    Marshal.WriteInt32(m.LParam, Marshal.OffsetOf(typeof(ComCtl32.NMIPADDRESS), "iValue").ToInt32(), e.Value);
                }
                return(true);
            }
            return(false);
        }
Beispiel #2
0
 /// <summary>Raises the <see cref="E:FieldChanged"/> event.</summary>
 /// <param name="e">The <see cref="IPAddressFieldChangedEventArgs"/> instance containing the event data.</param>
 protected void OnFieldChanged(IPAddressFieldChangedEventArgs e)
 {
     FieldChanged?.Invoke(this, e);
 }