--------------------------------------------------------------------------------
-- <auto-generated>                                                           --
--     This code was generated by a tool.                                     --
--                                                                            --
--     Changes to this file may cause incorrect behavior and will be lost if  --
--     the code is regenerated.                                               --
-- </auto-generated>                                                          --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--                                                                            --
--    Copyright(c) 2019 Alexander Gamper, All Rights Reserved.                --
--                                                                            --
--    Ada-NetFramework                                                        --
--    Version   : 1.0.0.0                                                     --
--                                                                            --
-- This program is free software: you can redistribute it and / or modify     --
-- it under the terms of the GNU Lesser General Public License as published by--
-- the Free Software Foundation, either version 3 of the License, or          --
-- (at your option) any later version.                                        --
--                                                                            --
-- This program is distributed in the hope that it will be useful,            --
-- but WITHOUT ANY WARRANTY; without even the implied warranty of             --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the               --
-- GNU Lesser General Public License for more details.                        --
--                                                                            --
-- You should have received a copy of the GNU Lesser General Public License   --
-- along with this program.If not, see http://www.gnu.org/licenses            --
--                                                                            --
--------------------------------------------------------------------------------
with NetFrameworkBase.System.Object;
limited with NetFrameworkBase.System.IFormatProvider;
limited with NetFrameworkBase.System.Type_x;
limited with NetFrameworkBase.System.Globalization.Calendar;
limited with NetFrameworkBase.System.DayOfWeek;
limited with NetFrameworkBase.System.Globalization.CalendarWeekRule;
--------------------------------------------------------------------------------
package NetFrameworkBase.System.Globalization.DateTimeFormatInfo is
   
   type Kind is new NetFrameworkBase.System.Object.Kind with null record;
   type Kind_Ptr is access all Kind;
   type Kind_Array is array(Natural range<>) of Kind_Ptr;
   type Kind_Array_Ptr is access all Kind_Array;
   
      function InvariantInfo
      return NetFrameworkBase.System.Globalization.DateTimeFormatInfo.Kind_Ptr;
      
      function CurrentInfo
      return NetFrameworkBase.System.Globalization.DateTimeFormatInfo.Kind_Ptr;
      
      function GetInstance
      (
         provider : NetFrameworkBase.System.IFormatProvider.Kind_Ptr
      )
      return NetFrameworkBase.System.Globalization.DateTimeFormatInfo.Kind_Ptr;
      
      function GetFormat
      (
         this : in out DateTimeFormatInfo.Kind;
         formatType : NetFrameworkBase.System.Type_x.Kind_Ptr
      )
      return NetFrameworkBase.System.Object.Kind_Ptr;
      
      function Clone
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.System.Object.Kind_Ptr;
      
      function AMDesignator
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure AMDesignator
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function Calendar
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.System.Globalization.Calendar.Kind_Ptr;
      
      procedure Calendar
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.System.Globalization.Calendar.Kind_Ptr
      );
      
      function GetEra
      (
         this : in out DateTimeFormatInfo.Kind;
         eraName : NetFrameworkBase.BSTR
      )
      return NetFrameworkBase.Int32;
      
      function GetEraName
      (
         this : in out DateTimeFormatInfo.Kind;
         era : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.BSTR;
      
      function GetAbbreviatedEraName
      (
         this : in out DateTimeFormatInfo.Kind;
         era : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.BSTR;
      
      function DateSeparator
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure DateSeparator
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function FirstDayOfWeek
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.System.DayOfWeek.Kind;
      
      procedure FirstDayOfWeek
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.System.DayOfWeek.Kind
      );
      
      function CalendarWeekRule
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.System.Globalization.CalendarWeekRule.Kind;
      
      procedure CalendarWeekRule
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.System.Globalization.CalendarWeekRule.Kind
      );
      
      procedure FullDateTimePattern
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function LongDatePattern
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure LongDatePattern
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function LongTimePattern
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure LongTimePattern
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function MonthDayPattern
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure MonthDayPattern
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function PMDesignator
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure PMDesignator
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function ShortDatePattern
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure ShortDatePattern
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function ShortTimePattern
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure ShortTimePattern
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function TimeSeparator
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure TimeSeparator
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function YearMonthPattern
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure YearMonthPattern
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR
      );
      
      function AbbreviatedDayNames
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR_Array;
      
      procedure AbbreviatedDayNames
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR_Array
      );
      
      function ShortestDayNames
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR_Array;
      
      procedure ShortestDayNames
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR_Array
      );
      
      function DayNames
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR_Array;
      
      procedure DayNames
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR_Array
      );
      
      function AbbreviatedMonthNames
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR_Array;
      
      procedure AbbreviatedMonthNames
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR_Array
      );
      
      function MonthNames
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR_Array;
      
      procedure MonthNames
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR_Array
      );
      
      function GetAbbreviatedDayName
      (
         this : in out DateTimeFormatInfo.Kind;
         dayofweek : NetFrameworkBase.System.DayOfWeek.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function GetShortestDayName
      (
         this : in out DateTimeFormatInfo.Kind;
         dayOfWeek : NetFrameworkBase.System.DayOfWeek.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function GetAllDateTimePatterns
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR_Array;
      
      function GetDayName
      (
         this : in out DateTimeFormatInfo.Kind;
         dayofweek : NetFrameworkBase.System.DayOfWeek.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function GetAbbreviatedMonthName
      (
         this : in out DateTimeFormatInfo.Kind;
         month : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.BSTR;
      
      function GetMonthName
      (
         this : in out DateTimeFormatInfo.Kind;
         month : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.BSTR;
      
      function ReadOnly
      (
         dtfi : NetFrameworkBase.System.Globalization.DateTimeFormatInfo.Kind_Ptr
      )
      return NetFrameworkBase.System.Globalization.DateTimeFormatInfo.Kind_Ptr;
      
      function IsReadOnly
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.Boolean;
      
      function NativeCalendarName
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      procedure SetAllDateTimePatterns
      (
         this : in out DateTimeFormatInfo.Kind;
         patterns : NetFrameworkBase.BSTR_Array; 
         format : NetFrameworkBase.Wide_Char
      );
      
      function AbbreviatedMonthGenitiveNames
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR_Array;
      
      procedure AbbreviatedMonthGenitiveNames
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR_Array
      );
      
      function MonthGenitiveNames
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR_Array;
      
      procedure MonthGenitiveNames
      (
         this : in out DateTimeFormatInfo.Kind;
         value : NetFrameworkBase.BSTR_Array
      );
      
      function FullDateTimePattern
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function RFC1123Pattern
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function SortableDateTimePattern
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function UniversalSortableDateTimePattern
      (
         this : in out DateTimeFormatInfo.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function GetAllDateTimePatterns
      (
         this : in out DateTimeFormatInfo.Kind;
         format : NetFrameworkBase.Wide_Char
      )
      return NetFrameworkBase.BSTR_Array;
      
      function Constructor return NetFrameworkBase.System.Globalization.DateTimeFormatInfo.Kind_Ptr;
      
end;
