private void SetRange(DateTime min, DateTime max)
 {
     if (base.IsHandleCreated)
     {
         int wParam = 0;
         System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY lParam = new System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY();
         wParam |= 3;
         System.Windows.Forms.NativeMethods.SYSTEMTIME systemtime = DateTimeToSysTime(min);
         lParam.wYear1         = systemtime.wYear;
         lParam.wMonth1        = systemtime.wMonth;
         lParam.wDayOfWeek1    = systemtime.wDayOfWeek;
         lParam.wDay1          = systemtime.wDay;
         lParam.wHour1         = systemtime.wHour;
         lParam.wMinute1       = systemtime.wMinute;
         lParam.wSecond1       = systemtime.wSecond;
         lParam.wMilliseconds1 = systemtime.wMilliseconds;
         systemtime            = DateTimeToSysTime(max);
         lParam.wYear2         = systemtime.wYear;
         lParam.wMonth2        = systemtime.wMonth;
         lParam.wDayOfWeek2    = systemtime.wDayOfWeek;
         lParam.wDay2          = systemtime.wDay;
         lParam.wHour2         = systemtime.wHour;
         lParam.wMinute2       = systemtime.wMinute;
         lParam.wSecond2       = systemtime.wSecond;
         lParam.wMilliseconds2 = systemtime.wMilliseconds;
         System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x1004, wParam, lParam);
     }
 }
 private void SetRange(DateTime min, DateTime max)
 {
     if (base.IsHandleCreated)
     {
         int wParam = 0;
         System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY lParam = new System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY();
         wParam |= 3;
         System.Windows.Forms.NativeMethods.SYSTEMTIME systemtime = DateTimeToSysTime(min);
         lParam.wYear1 = systemtime.wYear;
         lParam.wMonth1 = systemtime.wMonth;
         lParam.wDayOfWeek1 = systemtime.wDayOfWeek;
         lParam.wDay1 = systemtime.wDay;
         lParam.wHour1 = systemtime.wHour;
         lParam.wMinute1 = systemtime.wMinute;
         lParam.wSecond1 = systemtime.wSecond;
         lParam.wMilliseconds1 = systemtime.wMilliseconds;
         systemtime = DateTimeToSysTime(max);
         lParam.wYear2 = systemtime.wYear;
         lParam.wMonth2 = systemtime.wMonth;
         lParam.wDayOfWeek2 = systemtime.wDayOfWeek;
         lParam.wDay2 = systemtime.wDay;
         lParam.wHour2 = systemtime.wHour;
         lParam.wMinute2 = systemtime.wMinute;
         lParam.wSecond2 = systemtime.wSecond;
         lParam.wMilliseconds2 = systemtime.wMilliseconds;
         System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x1004, wParam, lParam);
     }
 }
 private void SetSelRange(DateTime lower, DateTime upper)
 {
     bool flag = false;
     if ((this.selectionStart != lower) || (this.selectionEnd != upper))
     {
         flag = true;
         this.selectionStart = lower;
         this.selectionEnd = upper;
     }
     if (base.IsHandleCreated)
     {
         System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY lParam = new System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY();
         System.Windows.Forms.NativeMethods.SYSTEMTIME systemtime = DateTimePicker.DateTimeToSysTime(lower);
         lParam.wYear1 = systemtime.wYear;
         lParam.wMonth1 = systemtime.wMonth;
         lParam.wDayOfWeek1 = systemtime.wDayOfWeek;
         lParam.wDay1 = systemtime.wDay;
         systemtime = DateTimePicker.DateTimeToSysTime(upper);
         lParam.wYear2 = systemtime.wYear;
         lParam.wMonth2 = systemtime.wMonth;
         lParam.wDayOfWeek2 = systemtime.wDayOfWeek;
         lParam.wDay2 = systemtime.wDay;
         System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x1006, 0, lParam);
     }
     if (flag)
     {
         this.OnDateChanged(new DateRangeEventArgs(lower, upper));
     }
 }
 private void SetRange(DateTime minDate, DateTime maxDate)
 {
     if (this.selectionStart < minDate)
     {
         this.selectionStart = minDate;
     }
     if (this.selectionStart > maxDate)
     {
         this.selectionStart = maxDate;
     }
     if (this.selectionEnd < minDate)
     {
         this.selectionEnd = minDate;
     }
     if (this.selectionEnd > maxDate)
     {
         this.selectionEnd = maxDate;
     }
     this.SetSelRange(this.selectionStart, this.selectionEnd);
     if (base.IsHandleCreated)
     {
         int wParam = 0;
         System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY lParam = new System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY();
         wParam |= 3;
         System.Windows.Forms.NativeMethods.SYSTEMTIME systemtime = DateTimePicker.DateTimeToSysTime(minDate);
         lParam.wYear1 = systemtime.wYear;
         lParam.wMonth1 = systemtime.wMonth;
         lParam.wDayOfWeek1 = systemtime.wDayOfWeek;
         lParam.wDay1 = systemtime.wDay;
         systemtime = DateTimePicker.DateTimeToSysTime(maxDate);
         lParam.wYear2 = systemtime.wYear;
         lParam.wMonth2 = systemtime.wMonth;
         lParam.wDayOfWeek2 = systemtime.wDayOfWeek;
         lParam.wDay2 = systemtime.wDay;
         if (((int) System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x1012, wParam, lParam)) == 0)
         {
             throw new InvalidOperationException(System.Windows.Forms.SR.GetString("MonthCalendarRange", new object[] { minDate.ToShortDateString(), maxDate.ToShortDateString() }));
         }
     }
 }
 private System.Windows.Forms.SelectionRange GetMonthRange(int flag)
 {
     System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY lParam = new System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY();
     System.Windows.Forms.SelectionRange range = new System.Windows.Forms.SelectionRange();
     System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x1007, flag, lParam);
     System.Windows.Forms.NativeMethods.SYSTEMTIME s = new System.Windows.Forms.NativeMethods.SYSTEMTIME {
         wYear = lParam.wYear1,
         wMonth = lParam.wMonth1,
         wDayOfWeek = lParam.wDayOfWeek1,
         wDay = lParam.wDay1
     };
     range.Start = DateTimePicker.SysTimeToDateTime(s);
     s.wYear = lParam.wYear2;
     s.wMonth = lParam.wMonth2;
     s.wDayOfWeek = lParam.wDayOfWeek2;
     s.wDay = lParam.wDay2;
     range.End = DateTimePicker.SysTimeToDateTime(s);
     return range;
 }