win32/src/WinDef.i3


Copyright (C) 1994, Digital Equipment Corp.
 by Stephen Harrison                                       
                                                           

INTERFACE WinDef;
Corresponds to build version 0001 of windef.h

IMPORT Ctypes, WinBaseTypes;

TYPE
  ULONG = WinBaseTypes.ULONG;
  PULONG = WinBaseTypes.PULONG;
  USHORT = WinBaseTypes.USHORT;
  PUSHORT = WinBaseTypes.PUSHORT;
  UCHAR = WinBaseTypes.UCHAR;
  PUCHAR = WinBaseTypes.PUCHAR;
  PSZ = WinBaseTypes.PSZ;
  DWORD = WinBaseTypes.DWORD;
  BOOL = WinBaseTypes.BOOL;
  BYTE = WinBaseTypes.BYTE;
  WORD = WinBaseTypes.WORD;
  WFLOAT = WinBaseTypes.WFLOAT;
  PFLOAT = WinBaseTypes.PFLOAT;
  PBOOL = WinBaseTypes.PBOOL;
  LPBOOL = WinBaseTypes.LPBOOL;
  PBYTE = WinBaseTypes.PBYTE;
  LPBYTE = WinBaseTypes.LPBYTE;
  PINT = WinBaseTypes.PINT;
  LPINT = WinBaseTypes.LPINT;
  PWORD = WinBaseTypes.PWORD;
  LPWORD = WinBaseTypes.LPWORD;
  LPLONG = WinBaseTypes.LPLONG;
  PDWORD = WinBaseTypes.PDWORD;
  LPDWORD = WinBaseTypes.LPDWORD;
  LPVOID = WinBaseTypes.LPVOID;
  INT = WinBaseTypes.INT;
  UINT = WinBaseTypes.UINT;
  PUINT = WinBaseTypes.PUINT;

  CCHAR = Ctypes.char;
  LONG = Ctypes.long;
  PLONG = Ctypes.long_star;
  PSHORT = Ctypes.short_star;
  SHORT = Ctypes.short;

CONST
  MAX_PATH = 260;
Types use for passing & returning polymorphic values
TYPE
  WPARAM = UINT;
  LPARAM = LONG;
  LRESULT = LONG;

<* INLINE *>
PROCEDURE MAKEWORD(a, b: BYTE): WORD;
<* INLINE *>
PROCEDURE MAKELONG(a, b: WORD): LONG;
<* INLINE *>
PROCEDURE LOWORD(l: LONG): WORD;
<* INLINE *>
PROCEDURE HIWORD(l: LONG): WORD;
<* INLINE *>
PROCEDURE LOBYTE(w: WORD): BYTE;
<* INLINE *>
PROCEDURE HIBYTE(w: WORD): BYTE;

TYPE
  ATOM = WORD;

  HANDLE       = WinBaseTypes.HANDLE;
  SPHANDLE     = UNTRACED REF WinBaseTypes.HANDLE;
  LPHANDLE     = UNTRACED REF WinBaseTypes.HANDLE;
  HGLOBAL      = WinBaseTypes.HANDLE;
  HLOCAL       = WinBaseTypes.HANDLE;
  GLOBALHANDLE = WinBaseTypes.HANDLE;
  LOCALHANDLE  = WinBaseTypes.HANDLE;

  PROC     = PROCEDURE ();
  NEARPROC = PROCEDURE ();
  FARPROC  = PROCEDURE ();

TYPE
  HWND         <: HANDLE;
  HHOOK        <: HANDLE;
  HGDIOBJ      =  HANDLE; (*?? <: HANDLE *)
  HACCEL       <: HANDLE;
  HBITMAP      <: HANDLE;
  HBRUSH       <: HANDLE;
  HDC          <: HANDLE;
  HGLRC        <: HANDLE;
  HDESK        <: HANDLE;
  HENHMETAFILE <: HANDLE;
  HMF          <: HANDLE;
  HEMF         <: HANDLE;
  HFONT        <: HANDLE;
  HICON        <: HANDLE;
  HMENU        <: HANDLE;
  HMETAFILE    <: HANDLE;
  HINSTANCE    <: HANDLE;
  HMODULE      = HINSTANCE;
  HPALETTE     <: HANDLE;
  HPEN         <: HANDLE;
  HRGN         <: HANDLE;
  HRSRC        <: HANDLE;
  HSTR         <: HANDLE;
  HWINSTA      <: HANDLE;
  HKL          <: HANDLE;

TYPE
  HFILE = Ctypes.int;   (* Polymorphic with C runtime file handle type *)
  HCURSOR = HICON;      (* HICONs & HCURSORs are polymorphic *)

  COLORREF = DWORD;
  LPCOLORREF = UNTRACED REF DWORD;

CONST
  HFILE_ERROR: HFILE = -1;

TYPE
  PRECT = UNTRACED REF RECT;
  NPRECT =  UNTRACED REF RECT;
  LPRECT =  UNTRACED REF RECT;
  RECT = RECORD
    left  : LONG;
    top   : LONG;
    right : LONG;
    bottom: LONG;
  END;

  PRECTL = UNTRACED REF RECTL;
  RECTL = RECORD
    left  : LONG;
    top   : LONG;
    right : LONG;
    bottom: LONG;
  END;

  PPOINT = UNTRACED REF POINT;
  NPPOINT =  UNTRACED REF POINT;
  LPPOINT =  UNTRACED REF POINT;
  POINT = RECORD
    x: LONG;
    y: LONG;
  END;

  PPOINTL = UNTRACED REF POINTL;
  POINTL = RECORD
    x: LONG;
    y: LONG;
  END;

  PSIZE = UNTRACED REF SIZE;
  LPSIZE = UNTRACED REF SIZE;
  SIZE = RECORD
    cx: LONG;
    cy: LONG;
  END;

  SIZEL = SIZE;
  PSIZEL = UNTRACED REF SIZE;

  PPOINTS = UNTRACED REF POINTS;
  LPPOINTS = UNTRACED REF POINTS;
  POINTS = RECORD
    x: SHORT;
    y: SHORT;
  END;

CONST
  (* mode selections for the device mode function *)
  DM_UPDATE = 1;
  DM_COPY   = 2;
  DM_PROMPT = 4;
  DM_MODIFY = 8;

  DM_IN_BUFFER   = DM_MODIFY;
  DM_IN_PROMPT   = DM_PROMPT;
  DM_OUT_BUFFER  = DM_COPY;
  DM_OUT_DEFAULT = DM_UPDATE;

  (* device capabilities indices *)
  DC_FIELDS           = 1;
  DC_PAPERS           = 2;
  DC_PAPERSIZE        = 3;
  DC_MINEXTENT        = 4;
  DC_MAXEXTENT        = 5;
  DC_BINS             = 6;
  DC_DUPLEX           = 7;
  DC_SIZE             = 8;
  DC_EXTRA            = 9;
  DC_VERSION          = 10;
  DC_DRIVER           = 11;
  DC_BINNAMES         = 12;
  DC_ENUMRESOLUTIONS  = 13;
  DC_FILEDEPENDENCIES = 14;
  DC_TRUETYPE         = 15;
  DC_PAPERNAMES       = 16;
  DC_ORIENTATION      = 17;
  DC_COPIES           = 18;

END WinDef.