-- 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.uAssembly.Ref is access;
with type MSSyst.Security.IEvidenceFactory.Ref is access;
with type MSSyst.Reflection.ICustomAttributeProvider.Ref is access;
with type MSSyst.Runtime.Serialization.ISerializable.Ref is access;
with type MSSyst.Reflection.ModuleResolveEventHandler.Ref is access;
with type MSSyst.Object.Ref is access;
with type MSSyst.String.Ref is access;
with MSSyst.Reflection.BindingFlags;
with type MSSyst.Reflection.Binder.Ref is access;
with type MSSyst.Object.Ref_array is access;
with type MSSyst.Globalization.CultureInfo.Ref is access;
with type MSSyst.Reflection.MethodInfo.Ref is access;
with type MSSyst.Security.Policy.Evidence.Ref is access;
with type MSSyst.Type_k.Ref is access;
with type MSSyst.Type_k.Ref_array is access;
with type MSSyst.IO.FileStream.Ref is access;
with type MSSyst.IO.FileStream.Ref_array is access;
with type MSSyst.Reflection.Module.Ref_array is access;
with type MSSyst.Reflection.ManifestResourceInfo.Ref is access;
with type MSSyst.String.Ref_array is access;
with type MSSyst.IO.Stream.Ref is access;
with type MSSyst.Reflection.Module.Ref is access;
with type MSSyst.Reflection.AssemblyName.Ref is access;
with type MSSyst.Runtime.Serialization.SerializationInfo.Ref is access;
with type MSSyst.Runtime.Serialization.StreamingContext.Valuetype is tagged;
with type MSSyst.Reflection.AssemblyName.Ref_array is access;
with type MSSyst.Version.Ref is access;
with MSSyst.Configuration.Assemblies.AssemblyHashAlgorithm;
with MSSyst.Object;
package MSSyst.Reflection.Assembly 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_uAssembly : MSSyst.Runtime.InteropServices.uAssembly.Ref;
         I_IEvidenceFactory : MSSyst.Security.IEvidenceFactory.Ref;
         I_ICustomAttributeProvider : MSSyst.Reflection.ICustomAttributeProvider.Ref;
         I_ISerializable : MSSyst.Runtime.Serialization.ISerializable.Ref
      ) is new MSSyst.Object.Typ with record
      null;
   end record;
   procedure add_ModuleResolve(
      This : access Typ;
      value : MSSyst.Reflection.ModuleResolveEventHandler.Ref);
   function CreateInstance(
      This : access Typ;
      typeName : MSSyst.String.Ref;
      ignoreCase : Standard.Boolean;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype;
      binder : MSSyst.Reflection.Binder.Ref;
      args : MSSyst.Object.Ref_array;
      culture : MSSyst.Globalization.CultureInfo.Ref;
      activationAttributes : MSSyst.Object.Ref_array) return MSSyst.Object.Ref;
   function CreateInstance(
      This : access Typ;
      typeName : MSSyst.String.Ref;
      ignoreCase : Standard.Boolean) return MSSyst.Object.Ref;
   function CreateInstance(
      This : access Typ;
      typeName : MSSyst.String.Ref) return MSSyst.Object.Ref;
   function CreateQualifiedName(
      assemblyName : MSSyst.String.Ref;
      typeName : MSSyst.String.Ref) return MSSyst.String.Ref;
   function get_CodeBase(
      This : access Typ) return MSSyst.String.Ref;
   function get_EntryPoint(
      This : access Typ) return MSSyst.Reflection.MethodInfo.Ref;
   function get_EscapedCodeBase(
      This : access Typ) return MSSyst.String.Ref;
   function get_Evidence(
      This : access Typ) return MSSyst.Security.Policy.Evidence.Ref;
   function get_FullName(
      This : access Typ) return MSSyst.String.Ref;
   function get_GlobalAssemblyCache(
      This : access Typ) return Standard.Boolean;
   function get_ImageRuntimeVersion(
      This : access Typ) return MSSyst.String.Ref;
   function get_Location(
      This : access Typ) return MSSyst.String.Ref;
   function GetAssembly(
      type_k : MSSyst.Type_k.Ref) return MSSyst.Reflection.Assembly.Ref;
   function GetCallingAssembly return MSSyst.Reflection.Assembly.Ref;
   function GetCustomAttributes(
      This : access Typ;
      attributeType : MSSyst.Type_k.Ref;
      inherit : Standard.Boolean) return MSSyst.Object.Ref_array;
   function GetCustomAttributes(
      This : access Typ;
      inherit : Standard.Boolean) return MSSyst.Object.Ref_array;
   function GetEntryAssembly return MSSyst.Reflection.Assembly.Ref;
   function GetExecutingAssembly return MSSyst.Reflection.Assembly.Ref;
   function GetExportedTypes(
      This : access Typ) return MSSyst.Type_k.Ref_array;
   function GetFile(
      This : access Typ;
      name : MSSyst.String.Ref) return MSSyst.IO.FileStream.Ref;
   function GetFiles(
      This : access Typ;
      getResourceModules : Standard.Boolean) return MSSyst.IO.FileStream.Ref_array;
   function GetFiles(
      This : access Typ) return MSSyst.IO.FileStream.Ref_array;
   function GetLoadedModules(
      This : access Typ) return MSSyst.Reflection.Module.Ref_array;
   function GetLoadedModules(
      This : access Typ;
      getResourceModules : Standard.Boolean) return MSSyst.Reflection.Module.Ref_array;
   function GetManifestResourceInfo(
      This : access Typ;
      resourceName : MSSyst.String.Ref) return MSSyst.Reflection.ManifestResourceInfo.Ref;
   function GetManifestResourceNames(
      This : access Typ) return MSSyst.String.Ref_array;
   function GetManifestResourceStream(
      This : access Typ;
      type_k : MSSyst.Type_k.Ref;
      name : MSSyst.String.Ref) return MSSyst.IO.Stream.Ref;
   function GetManifestResourceStream(
      This : access Typ;
      name : MSSyst.String.Ref) return MSSyst.IO.Stream.Ref;
   function GetModule(
      This : access Typ;
      name : MSSyst.String.Ref) return MSSyst.Reflection.Module.Ref;
   function GetModules(
      This : access Typ) return MSSyst.Reflection.Module.Ref_array;
   function GetModules(
      This : access Typ;
      getResourceModules : Standard.Boolean) return MSSyst.Reflection.Module.Ref_array;
   function GetName(
      This : access Typ;
      copiedName : Standard.Boolean) return MSSyst.Reflection.AssemblyName.Ref;
   function GetName(
      This : access Typ) return MSSyst.Reflection.AssemblyName.Ref;
   procedure GetObjectData(
      This : access Typ;
      info : MSSyst.Runtime.Serialization.SerializationInfo.Ref;
      context : MSSyst.Runtime.Serialization.StreamingContext.Valuetype);
   function GetReferencedAssemblies(
      This : access Typ) return MSSyst.Reflection.AssemblyName.Ref_array;
   function GetSatelliteAssembly(
      This : access Typ;
      culture : MSSyst.Globalization.CultureInfo.Ref;
      version : MSSyst.Version.Ref) return MSSyst.Reflection.Assembly.Ref;
   function GetSatelliteAssembly(
      This : access Typ;
      culture : MSSyst.Globalization.CultureInfo.Ref) return MSSyst.Reflection.Assembly.Ref;
   function GetType(
      This : access Typ;
      name : MSSyst.String.Ref;
      throwOnError : Standard.Boolean) return MSSyst.Type_k.Ref;
   function GetType(
      This : access Typ;
      name : MSSyst.String.Ref;
      throwOnError : Standard.Boolean;
      ignoreCase : Standard.Boolean) return MSSyst.Type_k.Ref;
   function GetType(
      This : access Typ) return MSSyst.Type_k.Ref;
   function GetType(
      This : access Typ;
      name : MSSyst.String.Ref) return MSSyst.Type_k.Ref;
   function GetTypes(
      This : access Typ) return MSSyst.Type_k.Ref_array;
   function IsDefined(
      This : access Typ;
      attributeType : MSSyst.Type_k.Ref;
      inherit : Standard.Boolean) return Standard.Boolean;
   function Load(
      assemblyRef : MSSyst.Reflection.AssemblyName.Ref;
      assemblySecurity : MSSyst.Security.Policy.Evidence.Ref) return MSSyst.Reflection.Assembly.Ref;
   function Load(
      assemblyRef : MSSyst.Reflection.AssemblyName.Ref) return MSSyst.Reflection.Assembly.Ref;
   function Load(
      rawAssembly : MSIL_Types.unsigned_int8_Arr) return MSSyst.Reflection.Assembly.Ref;
   function Load(
      rawAssembly : MSIL_Types.unsigned_int8_Arr;
      rawSymbolStore : MSIL_Types.unsigned_int8_Arr;
      securityEvidence : MSSyst.Security.Policy.Evidence.Ref) return MSSyst.Reflection.Assembly.Ref;
   function Load(
      rawAssembly : MSIL_Types.unsigned_int8_Arr;
      rawSymbolStore : MSIL_Types.unsigned_int8_Arr) return MSSyst.Reflection.Assembly.Ref;
   function Load(
      assemblyString : MSSyst.String.Ref) return MSSyst.Reflection.Assembly.Ref;
   function Load(
      assemblyString : MSSyst.String.Ref;
      assemblySecurity : MSSyst.Security.Policy.Evidence.Ref) return MSSyst.Reflection.Assembly.Ref;
   function LoadFile(
      path : MSSyst.String.Ref) return MSSyst.Reflection.Assembly.Ref;
   function LoadFile(
      path : MSSyst.String.Ref;
      securityEvidence : MSSyst.Security.Policy.Evidence.Ref) return MSSyst.Reflection.Assembly.Ref;
   function LoadFrom(
      assemblyFile : MSSyst.String.Ref) return MSSyst.Reflection.Assembly.Ref;
   function LoadFrom(
      assemblyFile : MSSyst.String.Ref;
      securityEvidence : MSSyst.Security.Policy.Evidence.Ref) return MSSyst.Reflection.Assembly.Ref;
   function LoadFrom(
      assemblyFile : MSSyst.String.Ref;
      securityEvidence : MSSyst.Security.Policy.Evidence.Ref;
      hashValue : MSIL_Types.unsigned_int8_Arr;
      hashAlgorithm : MSSyst.Configuration.Assemblies.AssemblyHashAlgorithm.Valuetype) return MSSyst.Reflection.Assembly.Ref;
   function LoadModule(
      This : access Typ;
      moduleName : MSSyst.String.Ref;
      rawModule : MSIL_Types.unsigned_int8_Arr;
      rawSymbolStore : MSIL_Types.unsigned_int8_Arr) return MSSyst.Reflection.Module.Ref;
   function LoadModule(
      This : access Typ;
      moduleName : MSSyst.String.Ref;
      rawModule : MSIL_Types.unsigned_int8_Arr) return MSSyst.Reflection.Module.Ref;
   function LoadWithPartialName(
      partialName : MSSyst.String.Ref;
      securityEvidence : MSSyst.Security.Policy.Evidence.Ref) return MSSyst.Reflection.Assembly.Ref;
   function LoadWithPartialName(
      partialName : MSSyst.String.Ref) return MSSyst.Reflection.Assembly.Ref;
   procedure remove_ModuleResolve(
      This : access Typ;
      value : MSSyst.Reflection.ModuleResolveEventHandler.Ref);
   function ToString(
      This : access Typ) return MSSyst.String.Ref;
private
   pragma Convention(MSIL,Typ);
   pragma Import(MSIL,add_ModuleResolve,"add_ModuleResolve");
   pragma Import(MSIL,CreateInstance,"CreateInstance");
   pragma Import(MSIL,CreateQualifiedName,"CreateQualifiedName");
   pragma Import(MSIL,get_CodeBase,"get_CodeBase");
   pragma Import(MSIL,get_EntryPoint,"get_EntryPoint");
   pragma Import(MSIL,get_EscapedCodeBase,"get_EscapedCodeBase");
   pragma Import(MSIL,get_Evidence,"get_Evidence");
   pragma Import(MSIL,get_FullName,"get_FullName");
   pragma Import(MSIL,get_GlobalAssemblyCache,"get_GlobalAssemblyCache");
   pragma Import(MSIL,get_ImageRuntimeVersion,"get_ImageRuntimeVersion");
   pragma Import(MSIL,get_Location,"get_Location");
   pragma Import(MSIL,GetAssembly,"GetAssembly");
   pragma Import(MSIL,GetCallingAssembly,"GetCallingAssembly");
   pragma Import(MSIL,GetCustomAttributes,"GetCustomAttributes");
   pragma Import(MSIL,GetEntryAssembly,"GetEntryAssembly");
   pragma Import(MSIL,GetExecutingAssembly,"GetExecutingAssembly");
   pragma Import(MSIL,GetExportedTypes,"GetExportedTypes");
   pragma Import(MSIL,GetFile,"GetFile");
   pragma Import(MSIL,GetFiles,"GetFiles");
   pragma Import(MSIL,GetLoadedModules,"GetLoadedModules");
   pragma Import(MSIL,GetManifestResourceInfo,"GetManifestResourceInfo");
   pragma Import(MSIL,GetManifestResourceNames,"GetManifestResourceNames");
   pragma Import(MSIL,GetManifestResourceStream,"GetManifestResourceStream");
   pragma Import(MSIL,GetModule,"GetModule");
   pragma Import(MSIL,GetModules,"GetModules");
   pragma Import(MSIL,GetName,"GetName");
   pragma Import(MSIL,GetObjectData,"GetObjectData");
   pragma Import(MSIL,GetReferencedAssemblies,"GetReferencedAssemblies");
   pragma Import(MSIL,GetSatelliteAssembly,"GetSatelliteAssembly");
   pragma Import(MSIL,GetType,"GetType");
   pragma Import(MSIL,GetTypes,"GetTypes");
   pragma Import(MSIL,IsDefined,"IsDefined");
   pragma Import(MSIL,Load,"Load");
   pragma Import(MSIL,LoadFile,"LoadFile");
   pragma Import(MSIL,LoadFrom,"LoadFrom");
   pragma Import(MSIL,LoadModule,"LoadModule");
   pragma Import(MSIL,LoadWithPartialName,"LoadWithPartialName");
   pragma Import(MSIL,remove_ModuleResolve,"remove_ModuleResolve");
   pragma Import(MSIL,ToString,"ToString");
end MSSyst.Reflection.Assembly;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Reflection.Assembly,
   ".ver 1:0:5000:0 .publickeytoken=( b7 7a 5c 56 19 34 e0 89 )",
   "[mscorlib]System.Reflection.Assembly");
