-- 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.ICloneable.Ref is access;
with type MSSyst.IFormatProvider.Ref is access;
with type MSSyst.Object.Ref is access;
with type MSSyst.String.Ref_array is access;
with type MSSyst.String.Ref is access;
with type MSSyst.Globalization.Calendar.Ref is access;
with MSSyst.Globalization.CalendarWeekRule;
with MSSyst.DayOfWeek;
with type MSSyst.Type_k.Ref is access;
with MSSyst.Object;
package MSSyst.Globalization.DateTimeFormatInfo 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_ICloneable : MSSyst.ICloneable.Ref;
         I_IFormatProvider : MSSyst.IFormatProvider.Ref
      ) is new MSSyst.Object.Typ with record
      null;
   end record;
   function new_DateTimeFormatInfo(
      This : Ref := null) return Ref;
   function Clone(
      This : access Typ) return MSSyst.Object.Ref;
   function get_AbbreviatedDayNames(
      This : access Typ) return MSSyst.String.Ref_array;
   function get_AbbreviatedMonthNames(
      This : access Typ) return MSSyst.String.Ref_array;
   function get_AMDesignator(
      This : access Typ) return MSSyst.String.Ref;
   function get_Calendar(
      This : access Typ) return MSSyst.Globalization.Calendar.Ref;
   function get_CalendarWeekRule(
      This : access Typ) return MSSyst.Globalization.CalendarWeekRule.Valuetype;
   function get_CurrentInfo return MSSyst.Globalization.DateTimeFormatInfo.Ref;
   function get_DateSeparator(
      This : access Typ) return MSSyst.String.Ref;
   function get_DayNames(
      This : access Typ) return MSSyst.String.Ref_array;
   function get_FirstDayOfWeek(
      This : access Typ) return MSSyst.DayOfWeek.Valuetype;
   function get_FullDateTimePattern(
      This : access Typ) return MSSyst.String.Ref;
   function get_InvariantInfo return MSSyst.Globalization.DateTimeFormatInfo.Ref;
   function get_IsReadOnly(
      This : access Typ) return Standard.Boolean;
   function get_LongDatePattern(
      This : access Typ) return MSSyst.String.Ref;
   function get_LongTimePattern(
      This : access Typ) return MSSyst.String.Ref;
   function get_MonthDayPattern(
      This : access Typ) return MSSyst.String.Ref;
   function get_MonthNames(
      This : access Typ) return MSSyst.String.Ref_array;
   function get_PMDesignator(
      This : access Typ) return MSSyst.String.Ref;
   function get_RFC1123Pattern(
      This : access Typ) return MSSyst.String.Ref;
   function get_ShortDatePattern(
      This : access Typ) return MSSyst.String.Ref;
   function get_ShortTimePattern(
      This : access Typ) return MSSyst.String.Ref;
   function get_SortableDateTimePattern(
      This : access Typ) return MSSyst.String.Ref;
   function get_TimeSeparator(
      This : access Typ) return MSSyst.String.Ref;
   function get_UniversalSortableDateTimePattern(
      This : access Typ) return MSSyst.String.Ref;
   function get_YearMonthPattern(
      This : access Typ) return MSSyst.String.Ref;
   function GetAbbreviatedDayName(
      This : access Typ;
      dayofweek : MSSyst.DayOfWeek.Valuetype) return MSSyst.String.Ref;
   function GetAbbreviatedEraName(
      This : access Typ;
      era : Integer) return MSSyst.String.Ref;
   function GetAbbreviatedMonthName(
      This : access Typ;
      month : Integer) return MSSyst.String.Ref;
   function GetAllDateTimePatterns(
      This : access Typ) return MSSyst.String.Ref_array;
   function GetAllDateTimePatterns(
      This : access Typ;
      format : Wide_Character) return MSSyst.String.Ref_array;
   function GetDayName(
      This : access Typ;
      dayofweek : MSSyst.DayOfWeek.Valuetype) return MSSyst.String.Ref;
   function GetEra(
      This : access Typ;
      eraName : MSSyst.String.Ref) return Integer;
   function GetEraName(
      This : access Typ;
      era : Integer) return MSSyst.String.Ref;
   function GetFormat(
      This : access Typ;
      formatType : MSSyst.Type_k.Ref) return MSSyst.Object.Ref;
   function GetInstance(
      provider : MSSyst.IFormatProvider.Ref) return MSSyst.Globalization.DateTimeFormatInfo.Ref;
   function GetMonthName(
      This : access Typ;
      month : Integer) return MSSyst.String.Ref;
   function ReadOnly(
      dtfi : MSSyst.Globalization.DateTimeFormatInfo.Ref) return MSSyst.Globalization.DateTimeFormatInfo.Ref;
   procedure set_AbbreviatedDayNames(
      This : access Typ;
      value : MSSyst.String.Ref_array);
   procedure set_AbbreviatedMonthNames(
      This : access Typ;
      value : MSSyst.String.Ref_array);
   procedure set_AMDesignator(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_Calendar(
      This : access Typ;
      value : MSSyst.Globalization.Calendar.Ref);
   procedure set_CalendarWeekRule(
      This : access Typ;
      value : MSSyst.Globalization.CalendarWeekRule.Valuetype);
   procedure set_DateSeparator(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_DayNames(
      This : access Typ;
      value : MSSyst.String.Ref_array);
   procedure set_FirstDayOfWeek(
      This : access Typ;
      value : MSSyst.DayOfWeek.Valuetype);
   procedure set_FullDateTimePattern(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_LongDatePattern(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_LongTimePattern(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_MonthDayPattern(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_MonthNames(
      This : access Typ;
      value : MSSyst.String.Ref_array);
   procedure set_PMDesignator(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_ShortDatePattern(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_ShortTimePattern(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_TimeSeparator(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_YearMonthPattern(
      This : access Typ;
      value : MSSyst.String.Ref);
private
   pragma Convention(MSIL,Typ);
   pragma MSIL_Constructor(new_DateTimeFormatInfo);
   pragma Import(MSIL,Clone,"Clone");
   pragma Import(MSIL,get_AbbreviatedDayNames,"get_AbbreviatedDayNames");
   pragma Import(MSIL,get_AbbreviatedMonthNames,"get_AbbreviatedMonthNames");
   pragma Import(MSIL,get_AMDesignator,"get_AMDesignator");
   pragma Import(MSIL,get_Calendar,"get_Calendar");
   pragma Import(MSIL,get_CalendarWeekRule,"get_CalendarWeekRule");
   pragma Import(MSIL,get_CurrentInfo,"get_CurrentInfo");
   pragma Import(MSIL,get_DateSeparator,"get_DateSeparator");
   pragma Import(MSIL,get_DayNames,"get_DayNames");
   pragma Import(MSIL,get_FirstDayOfWeek,"get_FirstDayOfWeek");
   pragma Import(MSIL,get_FullDateTimePattern,"get_FullDateTimePattern");
   pragma Import(MSIL,get_InvariantInfo,"get_InvariantInfo");
   pragma Import(MSIL,get_IsReadOnly,"get_IsReadOnly");
   pragma Import(MSIL,get_LongDatePattern,"get_LongDatePattern");
   pragma Import(MSIL,get_LongTimePattern,"get_LongTimePattern");
   pragma Import(MSIL,get_MonthDayPattern,"get_MonthDayPattern");
   pragma Import(MSIL,get_MonthNames,"get_MonthNames");
   pragma Import(MSIL,get_PMDesignator,"get_PMDesignator");
   pragma Import(MSIL,get_RFC1123Pattern,"get_RFC1123Pattern");
   pragma Import(MSIL,get_ShortDatePattern,"get_ShortDatePattern");
   pragma Import(MSIL,get_ShortTimePattern,"get_ShortTimePattern");
   pragma Import(MSIL,get_SortableDateTimePattern,"get_SortableDateTimePattern");
   pragma Import(MSIL,get_TimeSeparator,"get_TimeSeparator");
   pragma Import(MSIL,get_UniversalSortableDateTimePattern,"get_UniversalSortableDateTimePattern");
   pragma Import(MSIL,get_YearMonthPattern,"get_YearMonthPattern");
   pragma Import(MSIL,GetAbbreviatedDayName,"GetAbbreviatedDayName");
   pragma Import(MSIL,GetAbbreviatedEraName,"GetAbbreviatedEraName");
   pragma Import(MSIL,GetAbbreviatedMonthName,"GetAbbreviatedMonthName");
   pragma Import(MSIL,GetAllDateTimePatterns,"GetAllDateTimePatterns");
   pragma Import(MSIL,GetDayName,"GetDayName");
   pragma Import(MSIL,GetEra,"GetEra");
   pragma Import(MSIL,GetEraName,"GetEraName");
   pragma Import(MSIL,GetFormat,"GetFormat");
   pragma Import(MSIL,GetInstance,"GetInstance");
   pragma Import(MSIL,GetMonthName,"GetMonthName");
   pragma Import(MSIL,ReadOnly,"ReadOnly");
   pragma Import(MSIL,set_AbbreviatedDayNames,"set_AbbreviatedDayNames");
   pragma Import(MSIL,set_AbbreviatedMonthNames,"set_AbbreviatedMonthNames");
   pragma Import(MSIL,set_AMDesignator,"set_AMDesignator");
   pragma Import(MSIL,set_Calendar,"set_Calendar");
   pragma Import(MSIL,set_CalendarWeekRule,"set_CalendarWeekRule");
   pragma Import(MSIL,set_DateSeparator,"set_DateSeparator");
   pragma Import(MSIL,set_DayNames,"set_DayNames");
   pragma Import(MSIL,set_FirstDayOfWeek,"set_FirstDayOfWeek");
   pragma Import(MSIL,set_FullDateTimePattern,"set_FullDateTimePattern");
   pragma Import(MSIL,set_LongDatePattern,"set_LongDatePattern");
   pragma Import(MSIL,set_LongTimePattern,"set_LongTimePattern");
   pragma Import(MSIL,set_MonthDayPattern,"set_MonthDayPattern");
   pragma Import(MSIL,set_MonthNames,"set_MonthNames");
   pragma Import(MSIL,set_PMDesignator,"set_PMDesignator");
   pragma Import(MSIL,set_ShortDatePattern,"set_ShortDatePattern");
   pragma Import(MSIL,set_ShortTimePattern,"set_ShortTimePattern");
   pragma Import(MSIL,set_TimeSeparator,"set_TimeSeparator");
   pragma Import(MSIL,set_YearMonthPattern,"set_YearMonthPattern");
end MSSyst.Globalization.DateTimeFormatInfo;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Globalization.DateTimeFormatInfo,
   ".ver 1.0.5000.0 .publickeytoken=( 96 9d b8 05 3d 33 22 ac )",
   "[mscorlib]System.Globalization.DateTimeFormatInfo");
