$Id: WinDef.i3,v 1.7 2010-05-09 09:41:19 jkrell Exp $
INTERFACECorresponds to build version 0001 of windef.hWinDef ;
IMPORT WinBaseTypes; TYPE (* reexport base types *) UINT8 = WinBaseTypes.UINT8; UINT16 = WinBaseTypes.UINT16; UINT32 = WinBaseTypes.UINT32; UINT64 = WinBaseTypes.UINT64; INT8 = WinBaseTypes.INT8; INT16 = WinBaseTypes.INT16; INT32 = WinBaseTypes.INT32; INT64 = WinBaseTypes.INT64; SIZE_T = WinBaseTypes.SIZE_T; (* same size as a pointer, unsigned *) SSIZE_T = WinBaseTypes.SSIZE_T; (* same size as a pointer, signed *) PSIZE_T = WinBaseTypes.PSIZE_T; PUINT8 = WinBaseTypes.PUINT8; PUINT16 = WinBaseTypes.PUINT16; PUINT32 = WinBaseTypes.PUINT32; PUINT64 = WinBaseTypes.PUINT64; PINT8 = WinBaseTypes.PINT8; PINT16 = WinBaseTypes.PINT16; PINT32 = WinBaseTypes.PINT32; PINT64 = WinBaseTypes.PINT64; PVOID = WinBaseTypes.PVOID; PCVOID = WinBaseTypes.PCVOID; BOOL = WinBaseTypes.BOOL; CCHAR = WinBaseTypes.CCHAR; HANDLE = WinBaseTypes.HANDLE; PBOOL = WinBaseTypes.PBOOL; PFLOAT = WinBaseTypes.PFLOAT; PHANDLE = WinBaseTypes.PHANDLE; WFLOAT = WinBaseTypes.WFLOAT; WCHAR = WinBaseTypes.WCHAR; PSTR = WinBaseTypes.PSTR; PCSTR = WinBaseTypes.PCSTR; PWSTR = WinBaseTypes.PWSTR; PCWSTR = WinBaseTypes.PCWSTR; TCHAR = WinBaseTypes.TCHAR; PTSTR = WinBaseTypes.PTSTR; PCTSTR = WinBaseTypes.PCTSTR; PSZ = WinBaseTypes.PSZ; (* funny names for base types *) BYTE = UINT8; UCHAR = UINT8; PUCHAR = PUINT8; PBYTE = PUINT8; PSHORT = PINT16; SHORT = INT16; USHORT = UINT16; PUSHORT = PUINT16; WORD = UINT16; PWORD = PUINT16; ULONG = UINT32; DWORD = UINT32; UINT = UINT32; INT = INT32; PULONG = PUINT32; LONG = INT32; PINT = PINT32; LPINT = PINT32; LPLONG = PINT32; PDWORD = PUINT32; PUINT = PUINT32; PLONG = PINT32; LPBOOL = PBOOL; LPBYTE = PBYTE; LPWORD = PWORD; LPDWORD = PDWORD; LPVOID = PVOID; LPCVOID = PCVOID; CONST MAX_PATH = 260;Types use for passing & returning polymorphic values
TYPE
  WPARAM = SIZE_T;
  LPARAM = SSIZE_T;
  LRESULT = SSIZE_T;
<* INLINE *>
PROCEDURE MAKEWORD(a, b: UINT8): UINT16;
<* INLINE *>
PROCEDURE MAKELONG(a, b: UINT16): INT32;
<* INLINE *>
PROCEDURE LOWORD(l: INT32): UINT16;
<* INLINE *>
PROCEDURE HIWORD(l: INT32): UINT16;
<* INLINE *>
PROCEDURE LOBYTE(w: UINT16): UINT8;
<* INLINE *>
PROCEDURE HIBYTE(w: UINT16): UINT8;
TYPE
  ATOM = UINT16;
  SPHANDLE     = PHANDLE; (* compat *)
  LPHANDLE     = PHANDLE; (* compat *)
  HGLOBAL      = HANDLE;
  HLOCAL       = HANDLE;
  GLOBALHANDLE = HANDLE;
  LOCALHANDLE  = HANDLE;
  PROC     = <*WINAPI*> PROCEDURE ();
  NEARPROC = <*WINAPI*> PROCEDURE ();
  FARPROC  = <*WINAPI*> 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 = SSIZE_T;   (* Polymorphic with C runtime file handle type, and with CreateFile Win32 HANDLE *)
  HCURSOR = HICON;   (* HICONs & HCURSORs are polymorphic *)
  COLORREF = UINT32;
  PCOLORREF = UNTRACED REF UINT32;
  LPCOLORREF = PCOLORREF; (* compat *)
CONST
  HFILE_ERROR: HFILE = -1;
TYPE
  PRECT = UNTRACED REF RECT;
  NPRECT = PRECT; (* compat *)
  LPRECT = PRECT; (* compat *)
  RECT = RECORD
    left  : INT32;
    top   : INT32;
    right : INT32;
    bottom: INT32;
  END;
  PRECTL = UNTRACED REF RECTL;
  RECTL = RECORD
    left  : INT32;
    top   : INT32;
    right : INT32;
    bottom: INT32;
  END;
  PPOINT = UNTRACED REF POINT;
  NPPOINT = PPOINT; (* compat *)
  LPPOINT = PPOINT; (* compat *)
  POINT = RECORD
    x: INT32;
    y: INT32;
  END;
  PPOINTL = UNTRACED REF POINTL;
  POINTL = RECORD
    x: INT32;
    y: INT32;
  END;
  PSIZE = UNTRACED REF SIZE;
  LPSIZE = PSIZE; (* compat *)
  SIZE = RECORD
    cx: INT32;
    cy: INT32;
  END;
  SIZEL = SIZE;
  PSIZEL = UNTRACED REF SIZE;
  PPOINTS = UNTRACED REF POINTS;
  LPPOINTS = PPOINTS; (* compat *)
  POINTS = RECORD
    x: INT16;
    y: INT16;
  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.