Metropoli BBS
VIEWER: pmobj.pas MODE: TEXT (CP437)
{█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█}
{█                                                       █}
{█      Virtual Pascal Examples. Version 1.0.            █}
{█      Simple base objects for Presentation Manager.    █}
{█      ─────────────────────────────────────────────────█}
{█      Copyright (C) 1995 fPrint UK Ltd                 █}
{█                                                       █}
{▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀}

unit PmObj;

interface

{$PureInt+}

uses Os2Def, Os2PmApi, Use32;

{ Resource ID for main client window }

const
  idClientWindow = 11000;

{ Base PM object }

type
  PPMObject = ^PMObject;
  PMObject = object
    constructor Init;
    procedure Free;
    destructor Done; virtual;
  end;

{ PM Application }

  PPMApplication = ^PMApplication;
  PMApplication = object(PMObject)
    constructor Init;
    procedure   Run;
    destructor  Done; virtual;
  end;

 { PM Window }

  PPMWindow = ^PMWindow;
  PMWindow  = object(PMObject)
    ClassName: PChar;                   { Name of then window class }
    Title: PChar;
    FrameWindow,ClientWindow: HWnd;
    constructor Init(ATitle,AClassName: PChar; ACreateFlags: Longint);
    procedure Register;
    function HandleMessage(Window: HWnd; Msg: ULong; Mp1,Mp2 : MParam): MResult; virtual;
    procedure StartupAction; virtual;
    destructor Done; virtual;
  end;

{ Type cast records }

  WordRec = record
   Lo,Hi: Byte;
  end;

  LongRec = record
   Lo,Hi: SmallWord;
  end;

{ Public variables }

var
  Anchor: HAB;
  MsgQue: HMQ;
  DesktopSize: PointL;

const
  HWndParent: HWnd = hwnd_Desktop;

function ClientWndProc(Window: HWnd; Msg: ULong; Mp1,Mp2: MParam): MResult; cdecl; export;

implementation

end.
[ RETURN TO DIRECTORY ]