-- 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.LocalDataStoreSlot.Ref is access;
with type MSSyst.String.Ref is access;
with type MSSyst.Runtime.Remoting.Contexts.CrossContextDelegate.Ref is access;
with type MSSyst.Object.Ref is access;
with type MSSyst.Runtime.Remoting.Contexts.IContextProperty.Ref_array is access;
with type MSSyst.Runtime.Remoting.Contexts.IContextProperty.Ref is access;
with type MSSyst.Type_k.Ref is access;
with type MSSyst.Runtime.Remoting.Contexts.IDynamicProperty.Ref is access;
with type MSSyst.ContextBoundObject.Ref is access;
with MSSyst.Object;
package MSSyst.Runtime.Remoting.Contexts.Context 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 new_Context(
      This : Ref := null) return Ref;
   function AllocateDataSlot return MSSyst.LocalDataStoreSlot.Ref;
   function AllocateNamedDataSlot(
      name : MSSyst.String.Ref) return MSSyst.LocalDataStoreSlot.Ref;
   procedure DoCallBack(
      This : access Typ;
      deleg : MSSyst.Runtime.Remoting.Contexts.CrossContextDelegate.Ref);
   procedure FreeNamedDataSlot(
      name : MSSyst.String.Ref);
   procedure Freeze(
      This : access Typ);
   function get_ContextID(
      This : access Typ) return Integer;
   function get_ContextProperties(
      This : access Typ) return MSSyst.Runtime.Remoting.Contexts.IContextProperty.Ref_array;
   function get_DefaultContext return MSSyst.Runtime.Remoting.Contexts.Context.Ref;
   function GetData(
      slot : MSSyst.LocalDataStoreSlot.Ref) return MSSyst.Object.Ref;
   function GetNamedDataSlot(
      name : MSSyst.String.Ref) return MSSyst.LocalDataStoreSlot.Ref;
   function GetProperty(
      This : access Typ;
      name : MSSyst.String.Ref) return MSSyst.Runtime.Remoting.Contexts.IContextProperty.Ref;
   function RegisterDynamicProperty(
      prop : MSSyst.Runtime.Remoting.Contexts.IDynamicProperty.Ref;
      obj : MSSyst.ContextBoundObject.Ref;
      ctx : MSSyst.Runtime.Remoting.Contexts.Context.Ref) return Standard.Boolean;
   procedure SetData(
      slot : MSSyst.LocalDataStoreSlot.Ref;
      data : MSSyst.Object.Ref);
   procedure SetProperty(
      This : access Typ;
      prop : MSSyst.Runtime.Remoting.Contexts.IContextProperty.Ref);
   function ToString(
      This : access Typ) return MSSyst.String.Ref;
   function UnregisterDynamicProperty(
      name : MSSyst.String.Ref;
      obj : MSSyst.ContextBoundObject.Ref;
      ctx : MSSyst.Runtime.Remoting.Contexts.Context.Ref) return Standard.Boolean;
private
   pragma Convention(MSIL,Typ);
   pragma MSIL_Constructor(new_Context);
   pragma Import(MSIL,AllocateDataSlot,"AllocateDataSlot");
   pragma Import(MSIL,AllocateNamedDataSlot,"AllocateNamedDataSlot");
   pragma Import(MSIL,DoCallBack,"DoCallBack");
   pragma Import(MSIL,FreeNamedDataSlot,"FreeNamedDataSlot");
   pragma Import(MSIL,Freeze,"Freeze");
   pragma Import(MSIL,get_ContextID,"get_ContextID");
   pragma Import(MSIL,get_ContextProperties,"get_ContextProperties");
   pragma Import(MSIL,get_DefaultContext,"get_DefaultContext");
   pragma Import(MSIL,GetData,"GetData");
   pragma Import(MSIL,GetNamedDataSlot,"GetNamedDataSlot");
   pragma Import(MSIL,GetProperty,"GetProperty");
   pragma Import(MSIL,RegisterDynamicProperty,"RegisterDynamicProperty");
   pragma Import(MSIL,SetData,"SetData");
   pragma Import(MSIL,SetProperty,"SetProperty");
   pragma Import(MSIL,ToString,"ToString");
   pragma Import(MSIL,UnregisterDynamicProperty,"UnregisterDynamicProperty");
end MSSyst.Runtime.Remoting.Contexts.Context;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Runtime.Remoting.Contexts.Context,
   ".ver 1.0.5000.0 .publickeytoken=( 96 9d b8 05 3d 33 22 ac )",
   "[mscorlib]System.Runtime.Remoting.Contexts.Context");
