' Copyright ⌐ 1997 by Desaware Inc. All Rights Reserved
' QuikDraw program example
' Porting notes:
' Win16 API's defined as Sub are changed to functions returning
' integers. This is safe (we ignore the values) as sub vs return
' integer or long has same stack frames.
#If Win32 Then
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Type POINTAPI
x As Long
y As Long
End Type
Type SIZE
cx As Long
cy As Long
End Type
Type METAFILEPICT
mm As Long
xExt As Long
yExt As Long
hMF As Long
End Type
Type METARECORD
rdSize As Long
rdFunction As Integer
rdParm(1) As Integer
End Type
Declare Function Arc& Lib "gdi32" (ByVal hDC As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long)
Declare Function Chord& Lib "gdi32" (ByVal hDC As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long)
Declare Function CloseClipboard& Lib "user32" ()
Declare Function CloseMetaFile& Lib "gdi32" (ByVal hMF As Long)
Declare Function CreateHatchBrush& Lib "gdi32" (ByVal nIndex As Long, ByVal crColor As Long)
Declare Function CreateMetaFile& Lib "gdi32" Alias "CreateMetaFileA" (ByVal lpstring As String)
Declare Function CreatePen& Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long)
Declare Function CreateSolidBrush& Lib "gdi32" (ByVal crColor As Long)
Declare Function DeleteMetaFile& Lib "gdi32" (ByVal hMF As Long)
Declare Function DeleteObject& Lib "gdi32" (ByVal hObject As Long)
Declare Function DrawFocusRect& Lib "user32" (ByVal hDC As Long, lpRect As RECT)
Declare Function Ellipse& Lib "gdi32" (ByVal hDC As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long)
Declare Function EmptyClipboard& Lib "user32" ()
Declare Function EnumMetaFile Lib "gdi32" (ByVal hDC As Long, ByVal hMF As Long, ByVal lpCallbackFunc As Long, ByVal lpClientData As Long) As Long
Declare Function GetClientRect& Lib "user32" (ByVal hwnd As Long, lpRect As RECT)
Declare Function GetMetaFileBitsEx& Lib "gdi32" (ByVal hMF As Long, ByVal nSize As Long, lpvData As Any)
Declare Function GlobalAlloc& Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long)
Declare Function GlobalFree& Lib "kernel32" (ByVal hMem As Long)
Declare Function GlobalLock& Lib "kernel32" (ByVal hMem As Long)
Declare Function GetObjectType& Lib "gdi32" (ByVal hgdiobj As Long)
Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
Declare Function GlobalUnlock& Lib "kernel32" (ByVal hMem As Long)
Declare Function InflateRect& Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long)
Declare Function LineTo& Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long)
Declare Function MoveToEx Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI) As Long
Declare Function OpenClipboard& Lib "user32" (ByVal hwnd As Long)
Declare Function Pie& Lib "gdi32" (ByVal hDC As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long)
Declare Function PlayMetaFile& Lib "gdi32" (ByVal hDC As Long, ByVal hMF As Long)
Declare Function PlayMetaFileRecord& Lib "gdi32" (ByVal hDC As Long, ByVal lpHandletable As Long, lpMetaRecord As Any, ByVal nHandles As Long)
Declare Function Polyline& Lib "gdi32" (ByVal hDC As Long, lpPoint As POINTAPI, ByVal nCount As Long)
Declare Function Polygon& Lib "gdi32" (ByVal hDC As Long, lpPoint As POINTAPI, ByVal nCount As Long)
Declare Function Rectangle& Lib "gdi32" (ByVal hDC As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long)
Declare Function RestoreDC& Lib "gdi32" (ByVal hDC As Long, ByVal nSavedDC As Long)
Declare Function SaveDC& Lib "gdi32" (ByVal hDC As Long)
Declare Function SelectObject& Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long)
Declare Function SetClipboardData& Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long)
Declare Function SetMapMode& Lib "gdi32" (ByVal hDC As Long, ByVal nMapMode As Long)
Declare Function SetMetaFileBitsEx& Lib "gdi32" (ByVal nSize As Long, lpData As Byte)
Declare Function SetMetaFileBitsBuffer& Lib "gdi32" Alias "SetMetaFileBitsEx" (ByVal nSize As Long, ByVal lpData As Long)
Declare Function SetPolyFillMode& Lib "gdi32" (ByVal hDC As Long, ByVal nPolyFillMode As Long)
Declare Function SetRect& Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long)
Declare Function SetViewportExtEx& Lib "gdi32" (ByVal hDC As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE)
Declare Function SetViewportOrgEx& Lib "gdi32" (ByVal hDC As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI)
Declare Function SetWindowOrgEx& Lib "gdi32" (ByVal hDC As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI)
Declare Function SetWindowExtEx& Lib "gdi32" (ByVal hDC As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE)
Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long
Declare Function lcreat Lib "kernel32" Alias "_lcreat" (ByVal lpPathName As String, ByVal iAttribute As Long) As Long
Declare Function llseek Lib "kernel32" Alias "_llseek" (ByVal hFile As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long
Declare Function lread Lib "kernel32" Alias "_lread" (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As Long
Declare Function lwrite Lib "kernel32" Alias "_lwrite" (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As Long
Declare Function hread Lib "kernel32" Alias "_hread" (ByVal hFile As Long, lpBuffer As Any, ByVal lBytes As Long) As Long
Declare Function hwrite Lib "kernel32" Alias "_hwrite" (ByVal hFile As Long, lpBuffer As Any, ByVal lBytes As Long) As Long