-- 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.Runtime.InteropServices.uAssemblyName.Ref is access;
with type MSSyst.ICloneable.Ref is access;
with type MSSyst.Runtime.Serialization.ISerializable.Ref is access;
with type MSSyst.Runtime.Serialization.IDeserializationCallback.Ref is access;
with type MSSyst.Object.Ref is access;
with type MSSyst.String.Ref is access;
with type MSSyst.Globalization.CultureInfo.Ref is access;
with MSSyst.Reflection.AssemblyNameFlags;
with MSSyst.Configuration.Assemblies.AssemblyHashAlgorithm;
with type MSSyst.Reflection.StrongNameKeyPair.Ref is access;
with type MSSyst.Version.Ref is access;
with MSSyst.Configuration.Assemblies.AssemblyVersionCompatibility;
with type MSSyst.Runtime.Serialization.SerializationInfo.Ref is access;
with type MSSyst.Runtime.Serialization.StreamingContext.Valuetype is tagged;
with type MSSyst.Type_k.Ref is access;
with MSSyst.Object;
package MSSyst.Reflection.AssemblyName 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_uAssemblyName : MSSyst.Runtime.InteropServices.uAssemblyName.Ref;
         I_ICloneable : MSSyst.ICloneable.Ref;
         I_ISerializable : MSSyst.Runtime.Serialization.ISerializable.Ref;
         I_IDeserializationCallback : MSSyst.Runtime.Serialization.IDeserializationCallback.Ref
      ) is new MSSyst.Object.Typ with record
      null;
   end record;
   function new_AssemblyName(
      This : Ref := null) return Ref;
   function Clone(
      This : access Typ) return MSSyst.Object.Ref;
   function get_CodeBase(
      This : access Typ) return MSSyst.String.Ref;
   function get_CultureInfo(
      This : access Typ) return MSSyst.Globalization.CultureInfo.Ref;
   function get_EscapedCodeBase(
      This : access Typ) return MSSyst.String.Ref;
   function get_Flags(
      This : access Typ) return MSSyst.Reflection.AssemblyNameFlags.Valuetype;
   function get_FullName(
      This : access Typ) return MSSyst.String.Ref;
   function get_HashAlgorithm(
      This : access Typ) return MSSyst.Configuration.Assemblies.AssemblyHashAlgorithm.Valuetype;
   function get_KeyPair(
      This : access Typ) return MSSyst.Reflection.StrongNameKeyPair.Ref;
   function get_Name(
      This : access Typ) return MSSyst.String.Ref;
   function get_Version(
      This : access Typ) return MSSyst.Version.Ref;
   function get_VersionCompatibility(
      This : access Typ) return MSSyst.Configuration.Assemblies.AssemblyVersionCompatibility.Valuetype;
   function GetAssemblyName(
      assemblyFile : MSSyst.String.Ref) return MSSyst.Reflection.AssemblyName.Ref;
   procedure GetObjectData(
      This : access Typ;
      info : MSSyst.Runtime.Serialization.SerializationInfo.Ref;
      context : MSSyst.Runtime.Serialization.StreamingContext.Valuetype);
   function GetPublicKey(
      This : access Typ) return MSIL_Types.unsigned_int8_Array;
   function GetPublicKeyToken(
      This : access Typ) return MSIL_Types.unsigned_int8_Array;
   procedure OnDeserialization(
      This : access Typ;
      sender : MSSyst.Object.Ref);
   procedure set_CodeBase(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_CultureInfo(
      This : access Typ;
      value : MSSyst.Globalization.CultureInfo.Ref);
   procedure set_Flags(
      This : access Typ;
      value : MSSyst.Reflection.AssemblyNameFlags.Valuetype);
   procedure set_HashAlgorithm(
      This : access Typ;
      value : MSSyst.Configuration.Assemblies.AssemblyHashAlgorithm.Valuetype);
   procedure set_KeyPair(
      This : access Typ;
      value : MSSyst.Reflection.StrongNameKeyPair.Ref);
   procedure set_Name(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_Version(
      This : access Typ;
      value : MSSyst.Version.Ref);
   procedure set_VersionCompatibility(
      This : access Typ;
      value : MSSyst.Configuration.Assemblies.AssemblyVersionCompatibility.Valuetype);
   procedure SetPublicKey(
      This : access Typ;
      publicKey : MSIL_Types.unsigned_int8_Arr);
   procedure SetPublicKeyToken(
      This : access Typ;
      publicKeyToken : MSIL_Types.unsigned_int8_Arr);
   function ToString(
      This : access Typ) return MSSyst.String.Ref;
private
   pragma Convention(MSIL,Typ);
   pragma MSIL_Constructor(new_AssemblyName);
   pragma Import(MSIL,Clone,"Clone");
   pragma Import(MSIL,get_CodeBase,"get_CodeBase");
   pragma Import(MSIL,get_CultureInfo,"get_CultureInfo");
   pragma Import(MSIL,get_EscapedCodeBase,"get_EscapedCodeBase");
   pragma Import(MSIL,get_Flags,"get_Flags");
   pragma Import(MSIL,get_FullName,"get_FullName");
   pragma Import(MSIL,get_HashAlgorithm,"get_HashAlgorithm");
   pragma Import(MSIL,get_KeyPair,"get_KeyPair");
   pragma Import(MSIL,get_Name,"get_Name");
   pragma Import(MSIL,get_Version,"get_Version");
   pragma Import(MSIL,get_VersionCompatibility,"get_VersionCompatibility");
   pragma Import(MSIL,GetAssemblyName,"GetAssemblyName");
   pragma Import(MSIL,GetObjectData,"GetObjectData");
   pragma Import(MSIL,GetPublicKey,"GetPublicKey");
   pragma Import(MSIL,GetPublicKeyToken,"GetPublicKeyToken");
   pragma Import(MSIL,OnDeserialization,"OnDeserialization");
   pragma Import(MSIL,set_CodeBase,"set_CodeBase");
   pragma Import(MSIL,set_CultureInfo,"set_CultureInfo");
   pragma Import(MSIL,set_Flags,"set_Flags");
   pragma Import(MSIL,set_HashAlgorithm,"set_HashAlgorithm");
   pragma Import(MSIL,set_KeyPair,"set_KeyPair");
   pragma Import(MSIL,set_Name,"set_Name");
   pragma Import(MSIL,set_Version,"set_Version");
   pragma Import(MSIL,set_VersionCompatibility,"set_VersionCompatibility");
   pragma Import(MSIL,SetPublicKey,"SetPublicKey");
   pragma Import(MSIL,SetPublicKeyToken,"SetPublicKeyToken");
   pragma Import(MSIL,ToString,"ToString");
end MSSyst.Reflection.AssemblyName;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Reflection.AssemblyName,
   ".ver 1:0:5000:0 .publickeytoken=( b7 7a 5c 56 19 34 e0 89 )",
   "[mscorlib]System.Reflection.AssemblyName");
