-- 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 MSSyst.Runtime.InteropServices.UnmanagedType;
with type MSSyst.Object.Ref is access;
with type MSSyst.Guid.Valuetype is tagged;
with type MSSyst.Type_k.Ref is access;
with type MSSyst.String.Ref is access;
with MSSyst.Object;
package MSSyst.Reflection.Emit.UnmanagedMarshal 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 is new MSSyst.Object.Typ with record
      null;
   end record;
   function DefineByValArray(
      elemCount : Integer) return MSSyst.Reflection.Emit.UnmanagedMarshal.Ref;
   function DefineByValTStr(
      elemCount : Integer) return MSSyst.Reflection.Emit.UnmanagedMarshal.Ref;
   function DefineLPArray(
      elemType : MSSyst.Runtime.InteropServices.UnmanagedType.Valuetype) return MSSyst.Reflection.Emit.UnmanagedMarshal.Ref;
   function DefineSafeArray(
      elemType : MSSyst.Runtime.InteropServices.UnmanagedType.Valuetype) return MSSyst.Reflection.Emit.UnmanagedMarshal.Ref;
   function DefineUnmanagedMarshal(
      unmanagedType : MSSyst.Runtime.InteropServices.UnmanagedType.Valuetype) return MSSyst.Reflection.Emit.UnmanagedMarshal.Ref;
   function get_BaseType(
      This : access Typ) return MSSyst.Runtime.InteropServices.UnmanagedType.Valuetype;
   function get_ElementCount(
      This : access Typ) return Integer;
   function get_GetUnmanagedType(
      This : access Typ) return MSSyst.Runtime.InteropServices.UnmanagedType.Valuetype;
   function get_IIDGuid(
      This : access Typ) return MSSyst.Guid.Valuetype;
private
   pragma Convention(MSIL,Typ);
   pragma Import(MSIL,DefineByValArray,"DefineByValArray");
   pragma Import(MSIL,DefineByValTStr,"DefineByValTStr");
   pragma Import(MSIL,DefineLPArray,"DefineLPArray");
   pragma Import(MSIL,DefineSafeArray,"DefineSafeArray");
   pragma Import(MSIL,DefineUnmanagedMarshal,"DefineUnmanagedMarshal");
   pragma Import(MSIL,get_BaseType,"get_BaseType");
   pragma Import(MSIL,get_ElementCount,"get_ElementCount");
   pragma Import(MSIL,get_GetUnmanagedType,"get_GetUnmanagedType");
   pragma Import(MSIL,get_IIDGuid,"get_IIDGuid");
end MSSyst.Reflection.Emit.UnmanagedMarshal;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Reflection.Emit.UnmanagedMarshal,
   ".ver 1.0.5000.0 .publickeytoken=( 96 9d b8 05 3d 33 22 ac )",
   "[mscorlib]System.Reflection.Emit.UnmanagedMarshal");
