-- 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.IComparable.Ref is access;
with type MSSyst.IFormattable.Ref is access;
with type MSSyst.IConvertible.Ref is access;
with type MSSyst.Object.Ref is access;
with type MSSyst.Type_k.Ref is access;
with MSSyst.TypeCode;
with type MSSyst.String.Ref is access;
with type MSSyst.IFormatProvider.Ref is access;
package MSSyst.Runtime.InteropServices.UnmanagedType is
   type ValueType is (
      Bool,
      I1,
      U1,
      I2,
      U2,
      I4,
      U4,
      I8,
      U8,
      R4,
      R8,
      Currency,
      BStr,
      LPStr,
      LPWStr,
      LPTStr,
      ByValTStr,
      IUnknown,
      IDispatch,
      Struct,
      Interface,
      SafeArray,
      ByValArray,
      SysInt,
      SysUInt,
      VBByRefStr,
      AnsiBStr,
      TBStr,
      VariantBool,
      FunctionPtr,
      AsAny,
      LPArray,
      LPStruct,
      CustomMarshaler,
      Error);
   pragma Convention (MSIL, ValueType);
   for ValueType use (
      Bool =>  2,
      I1 =>  3,
      U1 =>  4,
      I2 =>  5,
      U2 =>  6,
      I4 =>  7,
      U4 =>  8,
      I8 =>  9,
      U8 =>  10,
      R4 =>  11,
      R8 =>  12,
      Currency =>  15,
      BStr =>  19,
      LPStr =>  20,
      LPWStr =>  21,
      LPTStr =>  22,
      ByValTStr =>  23,
      IUnknown =>  25,
      IDispatch =>  26,
      Struct =>  27,
      Interface =>  28,
      SafeArray =>  29,
      ByValArray =>  30,
      SysInt =>  31,
      SysUInt =>  32,
      VBByRefStr =>  34,
      AnsiBStr =>  35,
      TBStr =>  36,
      VariantBool =>  37,
      FunctionPtr =>  38,
      AsAny =>  40,
      LPArray =>  42,
      LPStruct =>  43,
      CustomMarshaler =>  44,
      Error =>  45);
   type ValueType_Arr is array (Natural range <>) of ValueType; -- start at 0
   type ValueType_Array is access all ValueType_Arr;
   type ValueType_addrof is access all ValueType;
   type ValueType_array_addrof is access all ValueType_Array;
   function CompareTo(
      This : Valuetype;
      target : MSSyst.Object.Ref) return Integer;
   function Equals(
      This : Valuetype;
      obj : MSSyst.Object.Ref) return Standard.Boolean;
   function GetHashCode(
      This : Valuetype) return Integer;
   function GetType(
      This : Valuetype) return MSSyst.Type_k.Ref;
   function GetTypeCode(
      This : Valuetype) return MSSyst.TypeCode.Valuetype;
   function ToString(
      This : Valuetype;
      format : MSSyst.String.Ref) return MSSyst.String.Ref;
   function ToString(
      This : Valuetype) return MSSyst.String.Ref;
   function ToString(
      This : Valuetype;
      format : MSSyst.String.Ref;
      provider : MSSyst.IFormatProvider.Ref) return MSSyst.String.Ref;
   function ToString(
      This : Valuetype;
      provider : MSSyst.IFormatProvider.Ref) return MSSyst.String.Ref;
private
   pragma Import(MSIL,CompareTo,"CompareTo");
   pragma Import(MSIL,Equals,"Equals");
   pragma Import(MSIL,GetHashCode,"GetHashCode");
   pragma Import(MSIL,GetType,"GetType");
   pragma Import(MSIL,GetTypeCode,"GetTypeCode");
   pragma Import(MSIL,ToString,"ToString");
end MSSyst.Runtime.InteropServices.UnmanagedType;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Runtime.InteropServices.UnmanagedType,
   ".ver 1:0:5000:0 .publickeytoken=( b7 7a 5c 56 19 34 e0 89 )",
   "[mscorlib]System.Runtime.InteropServices.UnmanagedType");
