-- 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.UCOMIBindCtx.Ref is access;
with MSSyst.Guid;
with type MSSyst.Object.Ref_addrof is access;
with type MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref_addrof is access;
with type MSSyst.Runtime.InteropServices.UCOMIEnumMoniker.Ref_addrof is access;
with type MSSyst.String.Ref_addrof is access;
with MSSyst.Runtime.InteropServices.FILETIME;
with type MSSyst.Runtime.InteropServices.UCOMIStream.Ref is access;
with type MSSyst.String.Ref is access;
package MSSyst.Runtime.InteropServices.UCOMIMoniker 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 (Self : access MSSyst.Object.Typ'Class)
      is abstract new MSSyst.Object.Typ with null record;
   pragma MSIL_Interface(Typ);
   procedure BindToObject(
      This : access Typ;
      pbc : MSSyst.Runtime.InteropServices.UCOMIBindCtx.Ref;
      pmkToLeft : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref;
      riidResult : MSSyst.Guid.Valuetype_addrof;
      ppvResult : MSSyst.Object.Ref_addrof) is abstract;
   procedure BindToStorage(
      This : access Typ;
      pbc : MSSyst.Runtime.InteropServices.UCOMIBindCtx.Ref;
      pmkToLeft : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref;
      riid : MSSyst.Guid.Valuetype_addrof;
      ppvObj : MSSyst.Object.Ref_addrof) is abstract;
   procedure CommonPrefixWith(
      This : access Typ;
      pmkOther : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref;
      ppmkPrefix : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref_addrof) is abstract;
   procedure ComposeWith(
      This : access Typ;
      pmkRight : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref;
      fOnlyIfNotGeneric : Standard.Boolean;
      ppmkComposite : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref_addrof) is abstract;
   procedure Enum(
      This : access Typ;
      fForward : Standard.Boolean;
      ppenumMoniker : MSSyst.Runtime.InteropServices.UCOMIEnumMoniker.Ref_addrof) is abstract;
   procedure GetClassID(
      This : access Typ;
      pClassID : MSSyst.Guid.Valuetype_addrof) is abstract;
   procedure GetDisplayName(
      This : access Typ;
      pbc : MSSyst.Runtime.InteropServices.UCOMIBindCtx.Ref;
      pmkToLeft : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref;
      ppszDisplayName : MSSyst.String.Ref_addrof) is abstract;
   procedure GetSizeMax(
      This : access Typ;
      pcbSize : MSIL_Types.Int64_addrof) is abstract;
   procedure GetTimeOfLastChange(
      This : access Typ;
      pbc : MSSyst.Runtime.InteropServices.UCOMIBindCtx.Ref;
      pmkToLeft : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref;
      pFileTime : MSSyst.Runtime.InteropServices.FILETIME.Valuetype_addrof) is abstract;
   procedure Hash(
      This : access Typ;
      pdwHash : MSIL_Types.Int32_addrof) is abstract;
   procedure Inverse(
      This : access Typ;
      ppmk : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref_addrof) is abstract;
   function IsDirty(
      This : access Typ) return Integer is abstract;
   procedure IsEqual(
      This : access Typ;
      pmkOtherMoniker : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref) is abstract;
   procedure IsRunning(
      This : access Typ;
      pbc : MSSyst.Runtime.InteropServices.UCOMIBindCtx.Ref;
      pmkToLeft : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref;
      pmkNewlyRunning : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref) is abstract;
   procedure IsSystemMoniker(
      This : access Typ;
      pdwMksys : MSIL_Types.Int32_addrof) is abstract;
   procedure Load(
      This : access Typ;
      pStm : MSSyst.Runtime.InteropServices.UCOMIStream.Ref) is abstract;
   procedure ParseDisplayName(
      This : access Typ;
      pbc : MSSyst.Runtime.InteropServices.UCOMIBindCtx.Ref;
      pmkToLeft : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref;
      pszDisplayName : MSSyst.String.Ref;
      pchEaten : MSIL_Types.Int32_addrof;
      ppmkOut : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref_addrof) is abstract;
   procedure Reduce(
      This : access Typ;
      pbc : MSSyst.Runtime.InteropServices.UCOMIBindCtx.Ref;
      dwReduceHowFar : Integer;
      ppmkToLeft : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref_addrof;
      ppmkReduced : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref_addrof) is abstract;
   procedure RelativePathTo(
      This : access Typ;
      pmkOther : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref;
      ppmkRelPath : MSSyst.Runtime.InteropServices.UCOMIMoniker.Ref_addrof) is abstract;
   procedure Save(
      This : access Typ;
      pStm : MSSyst.Runtime.InteropServices.UCOMIStream.Ref;
      fClearDirty : Standard.Boolean) is abstract;
private
   pragma Import(MSIL,BindToObject,"BindToObject");
   pragma Import(MSIL,BindToStorage,"BindToStorage");
   pragma Import(MSIL,CommonPrefixWith,"CommonPrefixWith");
   pragma Import(MSIL,ComposeWith,"ComposeWith");
   pragma Import(MSIL,Enum,"Enum");
   pragma Import(MSIL,GetClassID,"GetClassID");
   pragma Import(MSIL,GetDisplayName,"GetDisplayName");
   pragma Import(MSIL,GetSizeMax,"GetSizeMax");
   pragma Import(MSIL,GetTimeOfLastChange,"GetTimeOfLastChange");
   pragma Import(MSIL,Hash,"Hash");
   pragma Import(MSIL,Inverse,"Inverse");
   pragma Import(MSIL,IsDirty,"IsDirty");
   pragma Import(MSIL,IsEqual,"IsEqual");
   pragma Import(MSIL,IsRunning,"IsRunning");
   pragma Import(MSIL,IsSystemMoniker,"IsSystemMoniker");
   pragma Import(MSIL,Load,"Load");
   pragma Import(MSIL,ParseDisplayName,"ParseDisplayName");
   pragma Import(MSIL,Reduce,"Reduce");
   pragma Import(MSIL,RelativePathTo,"RelativePathTo");
   pragma Import(MSIL,Save,"Save");
end MSSyst.Runtime.InteropServices.UCOMIMoniker;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Runtime.InteropServices.UCOMIMoniker,
   ".ver 1:0:5000:0 .publickeytoken=( b7 7a 5c 56 19 34 e0 89 )",
   "[mscorlib]System.Runtime.InteropServices.UCOMIMoniker");
