-- Autogenerated by MSIL2Ada v. 2
-- By: Martin C. Carlisle
--     Department of Computer Science
--     US Air Force Academy
--     carlislem@acm.org
pragma Extensions_Allowed(On);
with MSSyst.Object;
with MSIL_Types;
use MSIL_Types;
with type MSSyst.ComponentModel.IComponent.Ref is access;
with type MSSyst.IDisposable.Ref is access;
with type MSSyst.ComponentModel.ISynchronizeInvoke.Ref is access;
with type MSSyst.Windows.Forms.IWin32Window.Ref is access;
with type MSSyst.EventHandler.Ref is access;
with type MSSyst.Windows.Forms.UICuesEventHandler.Ref is access;
with type MSSyst.Windows.Forms.ControlEventHandler.Ref is access;
with type MSSyst.Windows.Forms.DateRangeEventHandler.Ref is access;
with type MSSyst.Windows.Forms.DragEventHandler.Ref is access;
with type MSSyst.Windows.Forms.GiveFeedbackEventHandler.Ref is access;
with type MSSyst.Windows.Forms.HelpEventHandler.Ref is access;
with type MSSyst.Windows.Forms.InvalidateEventHandler.Ref is access;
with type MSSyst.Windows.Forms.KeyEventHandler.Ref is access;
with type MSSyst.Windows.Forms.KeyPressEventHandler.Ref is access;
with type MSSyst.Windows.Forms.LayoutEventHandler.Ref is access;
with type MSSyst.Windows.Forms.MouseEventHandler.Ref is access;
with type MSSyst.Windows.Forms.PaintEventHandler.Ref is access;
with type MSSyst.Windows.Forms.QueryAccessibilityHelpEventHandler.Ref is access;
with type MSSyst.Windows.Forms.QueryContinueDragEventHandler.Ref is access;
with type MSSyst.ComponentModel.CancelEventHandler.Ref is access;
with type MSSyst.DateTime.Valuetype is tagged;
with type MSSyst.IAsyncResult.Ref is access;
with type MSSyst.Delegate.Ref is access;
with type MSSyst.Object.Ref_array is access;
with type MSSyst.Windows.Forms.Control.Ref is access;
with type MSSyst.Drawing.Graphics.Ref is access;
with type MSSyst.Runtime.Remoting.ObjRef.Ref is access;
with type MSSyst.Type_k.Ref is access;
with MSSyst.Windows.Forms.DragDropEffects;
with type MSSyst.Object.Ref is access;
with type MSSyst.Windows.Forms.Form.Ref is access;
with type MSSyst.Windows.Forms.AccessibleObject.Ref is access;
with type MSSyst.String.Ref is access;
with MSSyst.Windows.Forms.AccessibleRole;
with MSSyst.Windows.Forms.AnchorStyles;
with MSSyst.DateTime;
with type MSSyst.Drawing.Color.Valuetype is tagged;
with type MSSyst.Drawing.Image.Ref is access;
with type MSSyst.Windows.Forms.BindingContext.Ref is access;
with type MSSyst.Drawing.Rectangle.Valuetype is tagged;
with type MSSyst.Drawing.Size.Valuetype is tagged;
with type MSSyst.ComponentModel.IContainer.Ref is access;
with type MSSyst.Windows.Forms.ContextMenu.Ref is access;
with type MSSyst.Windows.Forms.Control.ControlCollection.Ref is access;
with type MSSyst.Windows.Forms.Cursor.Ref is access;
with type MSSyst.Windows.Forms.ControlBindingsCollection.Ref is access;
with MSSyst.Windows.Forms.DockStyle;
with MSSyst.Windows.Forms.Day;
with type MSSyst.Drawing.Font.Ref is access;
with MSSyst.Windows.Forms.ImeMode;
with type MSSyst.Drawing.Point.Valuetype is tagged;
with type MSSyst.Drawing.Region.Ref is access;
with MSSyst.Windows.Forms.RightToLeft;
with type MSSyst.Windows.Forms.SelectionRange.Ref is access;
with type MSSyst.ComponentModel.ISite.Ref is access;
with type MSSyst.Windows.Forms.IWindowTarget.Ref is access;
with type MSSyst.Windows.Forms.IContainerControl.Ref is access;
with type MSSyst.Windows.Forms.MonthCalendar.HitTestInfo.Ref is access;
with MSSyst.Windows.Forms.Message;
with MSSyst.Windows.Forms.BoundsSpecified;
with MSSyst.Windows.Forms.Control;
package MSSyst.Windows.Forms.MonthCalendar is
   type Typ;
   type Ref is access all Typ'Class;
   type Ref_addrof is access all Ref;
   type Ref_Arr is array(Natural range <>) of Ref;
   type Ref_Array is access all Ref_Arr;
   type Ref_Array_addrof is access all Ref_Array;
   type Typ(
         I_IComponent : MSSyst.ComponentModel.IComponent.Ref;
         I_IDisposable : MSSyst.IDisposable.Ref;
         I_ISynchronizeInvoke : MSSyst.ComponentModel.ISynchronizeInvoke.Ref;
         I_IWin32Window : MSSyst.Windows.Forms.IWin32Window.Ref
      ) is new MSSyst.Windows.Forms.Control.Typ(
         I_IComponent => I_IComponent,
         I_IDisposable => I_IDisposable,
         I_ISynchronizeInvoke => I_ISynchronizeInvoke,
         I_IWin32Window => I_IWin32Window
      ) with record
      null;
   end record;
   function new_MonthCalendar(
      This : Ref := null) return Ref;
   procedure add_Click(
      This : access Typ;
      value : MSSyst.EventHandler.Ref);
   procedure add_DateChanged(
      This : access Typ;
      value : MSSyst.Windows.Forms.DateRangeEventHandler.Ref);
   procedure add_DateSelected(
      This : access Typ;
      value : MSSyst.Windows.Forms.DateRangeEventHandler.Ref);
   procedure add_DoubleClick(
      This : access Typ;
      value : MSSyst.EventHandler.Ref);
   procedure add_Paint(
      This : access Typ;
      value : MSSyst.Windows.Forms.PaintEventHandler.Ref);
   procedure AddAnnuallyBoldedDate(
      This : access Typ;
      date : MSSyst.DateTime.Valuetype);
   procedure AddBoldedDate(
      This : access Typ;
      date : MSSyst.DateTime.Valuetype);
   procedure AddMonthlyBoldedDate(
      This : access Typ;
      date : MSSyst.DateTime.Valuetype);
   function get_AnnuallyBoldedDates(
      This : access Typ) return MSSyst.DateTime.Valuetype_array;
   function get_BackColor(
      This : access Typ) return MSSyst.Drawing.Color.Valuetype;
   function get_BackgroundImage(
      This : access Typ) return MSSyst.Drawing.Image.Ref;
   function get_BoldedDates(
      This : access Typ) return MSSyst.DateTime.Valuetype_array;
   function get_CalendarDimensions(
      This : access Typ) return MSSyst.Drawing.Size.Valuetype;
   function get_FirstDayOfWeek(
      This : access Typ) return MSSyst.Windows.Forms.Day.Valuetype;
   function get_ForeColor(
      This : access Typ) return MSSyst.Drawing.Color.Valuetype;
   function get_ImeMode(
      This : access Typ) return MSSyst.Windows.Forms.ImeMode.Valuetype;
   function get_MaxDate(
      This : access Typ) return MSSyst.DateTime.Valuetype;
   function get_MaxSelectionCount(
      This : access Typ) return Integer;
   function get_MinDate(
      This : access Typ) return MSSyst.DateTime.Valuetype;
   function get_MonthlyBoldedDates(
      This : access Typ) return MSSyst.DateTime.Valuetype_array;
   function get_ScrollChange(
      This : access Typ) return Integer;
   function get_SelectionEnd(
      This : access Typ) return MSSyst.DateTime.Valuetype;
   function get_SelectionRange(
      This : access Typ) return MSSyst.Windows.Forms.SelectionRange.Ref;
   function get_SelectionStart(
      This : access Typ) return MSSyst.DateTime.Valuetype;
   function get_ShowToday(
      This : access Typ) return Standard.Boolean;
   function get_ShowTodayCircle(
      This : access Typ) return Standard.Boolean;
   function get_ShowWeekNumbers(
      This : access Typ) return Standard.Boolean;
   function get_SingleMonthSize(
      This : access Typ) return MSSyst.Drawing.Size.Valuetype;
   function get_Text(
      This : access Typ) return MSSyst.String.Ref;
   function get_TitleBackColor(
      This : access Typ) return MSSyst.Drawing.Color.Valuetype;
   function get_TitleForeColor(
      This : access Typ) return MSSyst.Drawing.Color.Valuetype;
   function get_TodayDate(
      This : access Typ) return MSSyst.DateTime.Valuetype;
   function get_TodayDateSet(
      This : access Typ) return Standard.Boolean;
   function get_TrailingForeColor(
      This : access Typ) return MSSyst.Drawing.Color.Valuetype;
   function GetDisplayRange(
      This : access Typ;
      visible : Standard.Boolean) return MSSyst.Windows.Forms.SelectionRange.Ref;
   function HitTest(
      This : access Typ;
      point : MSSyst.Drawing.Point.Valuetype) return MSSyst.Windows.Forms.MonthCalendar.HitTestInfo.Ref;
   function HitTest(
      This : access Typ;
      x : Integer;
      y : Integer) return MSSyst.Windows.Forms.MonthCalendar.HitTestInfo.Ref;
   procedure remove_Click(
      This : access Typ;
      value : MSSyst.EventHandler.Ref);
   procedure remove_DateChanged(
      This : access Typ;
      value : MSSyst.Windows.Forms.DateRangeEventHandler.Ref);
   procedure remove_DateSelected(
      This : access Typ;
      value : MSSyst.Windows.Forms.DateRangeEventHandler.Ref);
   procedure remove_DoubleClick(
      This : access Typ;
      value : MSSyst.EventHandler.Ref);
   procedure remove_Paint(
      This : access Typ;
      value : MSSyst.Windows.Forms.PaintEventHandler.Ref);
   procedure RemoveAllAnnuallyBoldedDates(
      This : access Typ);
   procedure RemoveAllBoldedDates(
      This : access Typ);
   procedure RemoveAllMonthlyBoldedDates(
      This : access Typ);
   procedure RemoveAnnuallyBoldedDate(
      This : access Typ;
      date : MSSyst.DateTime.Valuetype);
   procedure RemoveBoldedDate(
      This : access Typ;
      date : MSSyst.DateTime.Valuetype);
   procedure RemoveMonthlyBoldedDate(
      This : access Typ;
      date : MSSyst.DateTime.Valuetype);
   procedure set_AnnuallyBoldedDates(
      This : access Typ;
      value : MSSyst.DateTime.Valuetype_array);
   procedure set_BackColor(
      This : access Typ;
      value : MSSyst.Drawing.Color.Valuetype);
   procedure set_BackgroundImage(
      This : access Typ;
      value : MSSyst.Drawing.Image.Ref);
   procedure set_BoldedDates(
      This : access Typ;
      value : MSSyst.DateTime.Valuetype_array);
   procedure set_CalendarDimensions(
      This : access Typ;
      value : MSSyst.Drawing.Size.Valuetype);
   procedure set_FirstDayOfWeek(
      This : access Typ;
      value : MSSyst.Windows.Forms.Day.Valuetype);
   procedure set_ForeColor(
      This : access Typ;
      value : MSSyst.Drawing.Color.Valuetype);
   procedure set_ImeMode(
      This : access Typ;
      value : MSSyst.Windows.Forms.ImeMode.Valuetype);
   procedure set_MaxDate(
      This : access Typ;
      value : MSSyst.DateTime.Valuetype);
   procedure set_MaxSelectionCount(
      This : access Typ;
      value : Integer);
   procedure set_MinDate(
      This : access Typ;
      value : MSSyst.DateTime.Valuetype);
   procedure set_MonthlyBoldedDates(
      This : access Typ;
      value : MSSyst.DateTime.Valuetype_array);
   procedure set_ScrollChange(
      This : access Typ;
      value : Integer);
   procedure set_SelectionEnd(
      This : access Typ;
      value : MSSyst.DateTime.Valuetype);
   procedure set_SelectionRange(
      This : access Typ;
      value : MSSyst.Windows.Forms.SelectionRange.Ref);
   procedure set_SelectionStart(
      This : access Typ;
      value : MSSyst.DateTime.Valuetype);
   procedure set_ShowToday(
      This : access Typ;
      value : Standard.Boolean);
   procedure set_ShowTodayCircle(
      This : access Typ;
      value : Standard.Boolean);
   procedure set_ShowWeekNumbers(
      This : access Typ;
      value : Standard.Boolean);
   procedure set_Text(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_TitleBackColor(
      This : access Typ;
      value : MSSyst.Drawing.Color.Valuetype);
   procedure set_TitleForeColor(
      This : access Typ;
      value : MSSyst.Drawing.Color.Valuetype);
   procedure set_TodayDate(
      This : access Typ;
      value : MSSyst.DateTime.Valuetype);
   procedure set_TrailingForeColor(
      This : access Typ;
      value : MSSyst.Drawing.Color.Valuetype);
   procedure SetCalendarDimensions(
      This : access Typ;
      x : Integer;
      y : Integer);
   procedure SetDate(
      This : access Typ;
      date : MSSyst.DateTime.Valuetype);
   procedure SetSelectionRange(
      This : access Typ;
      date1 : MSSyst.DateTime.Valuetype;
      date2 : MSSyst.DateTime.Valuetype);
   function ToString(
      This : access Typ) return MSSyst.String.Ref;
   procedure UpdateBoldedDates(
      This : access Typ);
private
   pragma Convention(MSIL,Typ);
   pragma MSIL_Constructor(new_MonthCalendar);
   pragma Import(MSIL,add_Click,"add_Click");
   pragma Import(MSIL,add_DateChanged,"add_DateChanged");
   pragma Import(MSIL,add_DateSelected,"add_DateSelected");
   pragma Import(MSIL,add_DoubleClick,"add_DoubleClick");
   pragma Import(MSIL,add_Paint,"add_Paint");
   pragma Import(MSIL,AddAnnuallyBoldedDate,"AddAnnuallyBoldedDate");
   pragma Import(MSIL,AddBoldedDate,"AddBoldedDate");
   pragma Import(MSIL,AddMonthlyBoldedDate,"AddMonthlyBoldedDate");
   pragma Import(MSIL,get_AnnuallyBoldedDates,"get_AnnuallyBoldedDates");
   pragma Import(MSIL,get_BackColor,"get_BackColor");
   pragma Import(MSIL,get_BackgroundImage,"get_BackgroundImage");
   pragma Import(MSIL,get_BoldedDates,"get_BoldedDates");
   pragma Import(MSIL,get_CalendarDimensions,"get_CalendarDimensions");
   pragma Import(MSIL,get_FirstDayOfWeek,"get_FirstDayOfWeek");
   pragma Import(MSIL,get_ForeColor,"get_ForeColor");
   pragma Import(MSIL,get_ImeMode,"get_ImeMode");
   pragma Import(MSIL,get_MaxDate,"get_MaxDate");
   pragma Import(MSIL,get_MaxSelectionCount,"get_MaxSelectionCount");
   pragma Import(MSIL,get_MinDate,"get_MinDate");
   pragma Import(MSIL,get_MonthlyBoldedDates,"get_MonthlyBoldedDates");
   pragma Import(MSIL,get_ScrollChange,"get_ScrollChange");
   pragma Import(MSIL,get_SelectionEnd,"get_SelectionEnd");
   pragma Import(MSIL,get_SelectionRange,"get_SelectionRange");
   pragma Import(MSIL,get_SelectionStart,"get_SelectionStart");
   pragma Import(MSIL,get_ShowToday,"get_ShowToday");
   pragma Import(MSIL,get_ShowTodayCircle,"get_ShowTodayCircle");
   pragma Import(MSIL,get_ShowWeekNumbers,"get_ShowWeekNumbers");
   pragma Import(MSIL,get_SingleMonthSize,"get_SingleMonthSize");
   pragma Import(MSIL,get_Text,"get_Text");
   pragma Import(MSIL,get_TitleBackColor,"get_TitleBackColor");
   pragma Import(MSIL,get_TitleForeColor,"get_TitleForeColor");
   pragma Import(MSIL,get_TodayDate,"get_TodayDate");
   pragma Import(MSIL,get_TodayDateSet,"get_TodayDateSet");
   pragma Import(MSIL,get_TrailingForeColor,"get_TrailingForeColor");
   pragma Import(MSIL,GetDisplayRange,"GetDisplayRange");
   pragma Import(MSIL,HitTest,"HitTest");
   pragma Import(MSIL,remove_Click,"remove_Click");
   pragma Import(MSIL,remove_DateChanged,"remove_DateChanged");
   pragma Import(MSIL,remove_DateSelected,"remove_DateSelected");
   pragma Import(MSIL,remove_DoubleClick,"remove_DoubleClick");
   pragma Import(MSIL,remove_Paint,"remove_Paint");
   pragma Import(MSIL,RemoveAllAnnuallyBoldedDates,"RemoveAllAnnuallyBoldedDates");
   pragma Import(MSIL,RemoveAllBoldedDates,"RemoveAllBoldedDates");
   pragma Import(MSIL,RemoveAllMonthlyBoldedDates,"RemoveAllMonthlyBoldedDates");
   pragma Import(MSIL,RemoveAnnuallyBoldedDate,"RemoveAnnuallyBoldedDate");
   pragma Import(MSIL,RemoveBoldedDate,"RemoveBoldedDate");
   pragma Import(MSIL,RemoveMonthlyBoldedDate,"RemoveMonthlyBoldedDate");
   pragma Import(MSIL,set_AnnuallyBoldedDates,"set_AnnuallyBoldedDates");
   pragma Import(MSIL,set_BackColor,"set_BackColor");
   pragma Import(MSIL,set_BackgroundImage,"set_BackgroundImage");
   pragma Import(MSIL,set_BoldedDates,"set_BoldedDates");
   pragma Import(MSIL,set_CalendarDimensions,"set_CalendarDimensions");
   pragma Import(MSIL,set_FirstDayOfWeek,"set_FirstDayOfWeek");
   pragma Import(MSIL,set_ForeColor,"set_ForeColor");
   pragma Import(MSIL,set_ImeMode,"set_ImeMode");
   pragma Import(MSIL,set_MaxDate,"set_MaxDate");
   pragma Import(MSIL,set_MaxSelectionCount,"set_MaxSelectionCount");
   pragma Import(MSIL,set_MinDate,"set_MinDate");
   pragma Import(MSIL,set_MonthlyBoldedDates,"set_MonthlyBoldedDates");
   pragma Import(MSIL,set_ScrollChange,"set_ScrollChange");
   pragma Import(MSIL,set_SelectionEnd,"set_SelectionEnd");
   pragma Import(MSIL,set_SelectionRange,"set_SelectionRange");
   pragma Import(MSIL,set_SelectionStart,"set_SelectionStart");
   pragma Import(MSIL,set_ShowToday,"set_ShowToday");
   pragma Import(MSIL,set_ShowTodayCircle,"set_ShowTodayCircle");
   pragma Import(MSIL,set_ShowWeekNumbers,"set_ShowWeekNumbers");
   pragma Import(MSIL,set_Text,"set_Text");
   pragma Import(MSIL,set_TitleBackColor,"set_TitleBackColor");
   pragma Import(MSIL,set_TitleForeColor,"set_TitleForeColor");
   pragma Import(MSIL,set_TodayDate,"set_TodayDate");
   pragma Import(MSIL,set_TrailingForeColor,"set_TrailingForeColor");
   pragma Import(MSIL,SetCalendarDimensions,"SetCalendarDimensions");
   pragma Import(MSIL,SetDate,"SetDate");
   pragma Import(MSIL,SetSelectionRange,"SetSelectionRange");
   pragma Import(MSIL,ToString,"ToString");
   pragma Import(MSIL,UpdateBoldedDates,"UpdateBoldedDates");
end MSSyst.Windows.Forms.MonthCalendar;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Windows.Forms.MonthCalendar,
   ".ver 1:0:3300:0 .publickeytoken=( b7 7a 5c 56 19 34 e0 89 )",
   "[System.Windows.Forms]System.Windows.Forms.MonthCalendar");
