winprocsh.inc 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473
  1. function LOBYTE(w: Word): Byte; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  2. function HIBYTE(w: Word): Byte; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  3. function LOWORD(l: LongInt): Word; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  4. function HIWORD(l: LongInt): Word; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  5. function MAKELONG(low, high: Word): LONG; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  6. function MAKELPARAM(low, high: Word): LPARAM; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  7. function MAKELRESULT(low, high: Word): LRESULT; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  8. function MAKELP(sel, off: Word): FarPointer; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  9. function SELECTOROF(lp: FarPointer): Word; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  10. function OFFSETOF(lp: FarPointer): Word; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  11. // FIELDOFFSET
  12. { System Information }
  13. function GetVersion: DWORD; external 'KERNEL';
  14. function GetFreeSpace(Flag: UINT): DWORD; external 'KERNEL';
  15. function GetCurrentPDB: UINT; external 'KERNEL';
  16. function GetWindowsDirectory(Buffer: LPSTR; Size: UINT): UINT; external 'KERNEL';
  17. function GetSystemDirectory(Buffer: LPSTR; Size: UINT): UINT; external 'KERNEL';
  18. function GetWinFlags: DWORD; external 'KERNEL';
  19. function GetDOSEnvironment: LPSTR; external 'KERNEL';
  20. function GetCurrentTime: DWORD; external 'USER';
  21. function GetTickCount: DWORD; external 'USER';
  22. function GetTimerResolution: DWORD; external 'USER';
  23. { Error handling }
  24. procedure FatalExit(Code: SmallInt); external 'KERNEL';
  25. procedure FatalAppExit(Action: UINT; MessageText: LPCSTR); external 'KERNEL';
  26. function ExitWindows(dwReturnCode: DWORD; wReserved: UINT): BOOL; external 'USER';
  27. procedure DebugBreak; external 'KERNEL';
  28. procedure OutputDebugString(OutputString: LPCSTR); external 'KERNEL';
  29. function SetErrorMode(Mode: UINT): UINT; external 'KERNEL';
  30. { Catch/Throw and stack management }
  31. function Catch(CatchBuf: LPCATCHBUF): SmallInt; external 'KERNEL';
  32. procedure Throw(CatchBuf: LPCATCHBUF; ThrowBack: SmallInt); external 'KERNEL';
  33. {$ifdef VAR_PARAMS_ARE_FAR}
  34. function Catch(var CatchBuf: TCatchBuf): SmallInt; external 'KERNEL';
  35. procedure Throw(var CatchBuf: TCatchBuf; ThrowBack: SmallInt); external 'KERNEL';
  36. {$endif}
  37. procedure SwitchStackBack; external 'KERNEL';
  38. procedure SwitchStackTo(StackSegment, StackPointer, StackTop: UINT); external 'KERNEL';
  39. { Module Management }
  40. function LoadModule(ModuleName: LPCSTR; ParameterName: LPVOID): HINST; external 'KERNEL';
  41. function FreeModule(Module: HINST): BOOL; external 'KERNEL';
  42. function LoadLibrary(LibFileName: LPCSTR): HINST; external 'KERNEL';
  43. procedure FreeLibrary(LibModule: HINST); external 'KERNEL';
  44. function WinExec(CmdLine: LPCSTR; CmdShow: UINT): UINT; external 'KERNEL';
  45. function GetModuleHandle(ModuleName: LPCSTR): HMODULE; external 'KERNEL';
  46. function GetModuleUsage(Module: HINST): SmallInt; external 'KERNEL';
  47. function GetModuleFileName(Module: HINST; FileName: LPSTR; Size: SmallInt): SmallInt; external 'KERNEL';
  48. function GetProcAddress(Module: HINST; ProcName: LPCSTR): FARPROC; external 'KERNEL';
  49. function GetInstanceData(Instance: HINST; Data: PBYTE; Count: SmallInt): SmallInt; external 'KERNEL';
  50. function GetCodeHandle(Proc: FARPROC): HGLOBAL; external 'KERNEL';
  51. procedure GetCodeInfo(lpProc: FARPROC; lpSegInfo: LPSEGINFO); external 'KERNEL';
  52. function MakeProcInstance(Proc: FARPROC; Instance: HINST): FARPROC; external 'KERNEL';
  53. procedure FreeProcInstance(Proc: FARPROC); external 'KERNEL';
  54. {#ifdef _LAX
  55. #define MakeProcInstance(__F, __H) MakeProcInstance((FARPROC)__F, __H)
  56. #define FreeProcInstance(__F) FreeProcInstance((FARPROC)__F)
  57. #endif /* _LAX */}
  58. function SetSwapAreaSize(Size: UINT): LONG; external 'KERNEL';
  59. procedure SwapRecording(Flag: UINT); external 'KERNEL';
  60. procedure ValidateCodeSegments; external 'KERNEL';
  61. { Task Management }
  62. function GetNumTasks: UINT; external 'KERNEL';
  63. function GetCurrentTask: HTASK; external 'KERNEL';
  64. procedure Yield; external 'KERNEL';
  65. procedure DirectedYield(Task: HTASK); external 'KERNEL';
  66. { Global memory management }
  67. function GlobalDiscard(h: HGLOBAL): HGLOBAL; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  68. function GlobalAlloc(Flags: UINT; Bytes: DWORD): HGLOBAL; external 'KERNEL';
  69. function GlobalReAlloc(Mem: HGLOBAL; Bytes: DWORD; Flags: UINT): HGLOBAL; external 'KERNEL';
  70. function GlobalFree(Mem: HGLOBAL): HGLOBAL; external 'KERNEL';
  71. function GlobalDosAlloc(Bytes: DWORD): DWORD; external 'KERNEL';
  72. function GlobalDosFree(Selector: UINT): UINT; external 'KERNEL';
  73. function GlobalLock(Mem: HGLOBAL): FarPointer; external 'KERNEL';
  74. function GlobalUnlock(Mem: HGLOBAL): BOOL; external 'KERNEL';
  75. function GlobalSize(Mem: HGLOBAL): DWORD; external 'KERNEL';
  76. function GlobalHandle(Mem: UINT): DWORD; external 'KERNEL';
  77. function GlobalFlags(Mem: HGLOBAL): UINT; external 'KERNEL';
  78. function GlobalWire(Mem: HGLOBAL): FarPointer; external 'KERNEL';
  79. function GlobalUnWire(Mem: HGLOBAL): BOOL; external 'KERNEL';
  80. function GlobalPageLock(Selector: HGLOBAL): UINT; external 'KERNEL';
  81. function GlobalPageUnlock(Selector: HGLOBAL): UINT; external 'KERNEL';
  82. procedure GlobalFix(Mem: HGLOBAL); external 'KERNEL';
  83. procedure GlobalUnfix(Mem: HGLOBAL); external 'KERNEL';
  84. function GlobalLRUNewest(Mem: HGLOBAL): HGLOBAL; external 'KERNEL';
  85. function GlobalLRUOldest(Mem: HGLOBAL): HGLOBAL; external 'KERNEL';
  86. function GlobalCompact(MinFree: DWORD): DWORD; external 'KERNEL';
  87. procedure GlobalNotify(NotifyProc: GNOTIFYPROC); external 'KERNEL';
  88. function LockSegment(Segment: UINT): HGLOBAL; external 'KERNEL';
  89. procedure UnlockSegment(Segment: UINT); external 'KERNEL';
  90. function LockData(dummy: SmallInt): HGLOBAL; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  91. procedure UnlockData(dummy: SmallInt); {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  92. function AllocSelector(Selector: UINT): UINT; external 'KERNEL';
  93. function FreeSelector(Selector: UINT): UINT; external 'KERNEL';
  94. function AllocDStoCSAlias(Selector: UINT): UINT; external 'KERNEL';
  95. function PrestoChangoSelector(sourceSel, destSel: UINT): UINT; external 'KERNEL';
  96. function GetSelectorBase(Selector: UINT): DWORD; external 'KERNEL';
  97. function SetSelectorBase(Selector: UINT; Base: DWORD): UINT; external 'KERNEL';
  98. function GetSelectorLimit(Selector: UINT): DWORD; external 'KERNEL';
  99. function SetSelectorLimit(Selector: UINT; Base: DWORD): UINT; external 'KERNEL';
  100. procedure LimitEmsPages(Kbytes: DWORD); external 'KERNEL';
  101. procedure ValidateFreeSpaces; external 'KERNEL';
  102. { Local Memory Management }
  103. function LocalDiscard(h: HLOCAL): HLOCAL; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  104. function LocalAlloc(Flags, Bytes: UINT): HLOCAL; external 'KERNEL';
  105. function LocalReAlloc(Mem: HLOCAL; Bytes, Flags: UINT): HLOCAL; external 'KERNEL';
  106. function LocalFree(Mem: HLOCAL): HLOCAL; external 'KERNEL';
  107. function LocalLock(Mem: HLOCAL): NearPointer; external 'KERNEL';
  108. function LocalUnlock(Mem: HLOCAL): BOOL; external 'KERNEL';
  109. function LocalSize(Mem: HLOCAL): UINT; external 'KERNEL';
  110. function LocalHandle(Mem: NearPointer): HLOCAL; external 'KERNEL';
  111. function LocalFlags(Mem: HLOCAL): UINT; external 'KERNEL';
  112. function LocalInit(Segment, Start, EndPos: UINT): BOOL; external 'KERNEL';
  113. function LocalCompact(MinFree: UINT): UINT; external 'KERNEL';
  114. function LocalShrink(Seg: HLOCAL; Size: UINT): UINT; external 'KERNEL';
  115. { File I/O }
  116. function OpenFile(FileName: LPCSTR; ReOpenBuff: LPOFSTRUCT; Style: UINT): HFILE; external 'KERNEL';
  117. {$ifdef VAR_PARAMS_ARE_FAR}
  118. function OpenFile(FileName: LPCSTR; var ReOpenBuff: TOFStruct; Style: UINT): HFILE; external 'KERNEL';
  119. {$endif}
  120. function _lopen(PathName: LPCSTR; ReadWrite: SmallInt): HFILE; external 'KERNEL';
  121. function _lcreat(PathName: LPCSTR; Attribute: SmallInt): HFILE; external 'KERNEL';
  122. function _lclose(FileHandle: HFILE): HFILE; external 'KERNEL';
  123. function _llseek(FileHandle: HFILE; Offset: LONG; Origin: SmallInt): LONG; external 'KERNEL';
  124. function _lread(FileHandle: HFILE; Buffer: HugePointer; Bytes: UINT): UINT; external 'KERNEL';
  125. function _lread(FileHandle: HFILE; Buffer: FarPointer; Bytes: UINT): UINT; external 'KERNEL';
  126. function _lwrite(FileHandle: HFILE; Buffer: HugePointer; Bytes: UINT): UINT; external 'KERNEL';
  127. function _lwrite(FileHandle: HFILE; Buffer: FarPointer; Bytes: UINT): UINT; external 'KERNEL';
  128. function GetTempFileName(DriveLetter: BYTE; PrefixString: LPCSTR; Unique: UINT; TempFileName: LPSTR): SmallInt; external 'KERNEL';
  129. function GetTempFileName(DriveLetter: Char; PrefixString: LPCSTR; Unique: UINT; TempFileName: LPSTR): SmallInt; external 'KERNEL';
  130. function GetTempDrive(DriveLetter: Char): BYTE; external 'KERNEL';
  131. function GetDriveType(Drive: SmallInt): UINT; external 'KERNEL';
  132. function SetHandleCount(Number: UINT): UINT; external 'KERNEL';
  133. { Network support }
  134. function WNetAddConnection(lpszNetPath, lpszPassword, lpszLocalName: LPSTR): UINT; external 'USER';
  135. function WNetGetConnection(lpszLocalName, lpszRemoteName: LPSTR; cbBufferSize: LPUINT): UINT; external 'USER';
  136. function WNetCancelConnection(lpszName: LPSTR; tForce: BOOL): UINT; external 'USER';
  137. { Resource Management }
  138. function FindResource(hInstance: HINST; lpName, lpType: LPCSTR): HRSRC; external 'KERNEL';
  139. function LoadResource(hInstance: HINST; hResInfo: HRSRC): HGLOBAL; external 'KERNEL';
  140. function FreeResource(hResData: HGLOBAL): BOOL; external 'KERNEL';
  141. function LockResource(hResData: HGLOBAL): FarPointer; external 'KERNEL';
  142. function UnlockResource(hResData: HGLOBAL): BOOL; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  143. function SizeofResource(hInstance: HINST; hResInfo: HRSRC): DWORD; external 'KERNEL';
  144. function AccessResource(hInstance: HINST; hResInfo: HRSRC): SmallInt; external 'KERNEL';
  145. function AllocResource(hInstance: HINST; hResInfo: HRSRC; dwSize: DWORD): HGLOBAL; external 'KERNEL';
  146. function SetResourceHandler(hInstance: HINST; lpType: LPCSTR; lpLoadFunc: RSRCHDLRPROC): RSRCHDLRPROC; external 'KERNEL';
  147. { Atom Management }
  148. function InitAtomTable(cTableEntries: SmallInt): BOOL; external 'KERNEL';
  149. function AddAtom(lpszName: LPCSTR): ATOM; external 'KERNEL';
  150. function DeleteAtom(atm: ATOM): ATOM; external 'KERNEL';
  151. function FindAtom(lpszString: LPCSTR): ATOM; external 'KERNEL';
  152. function GetAtomName(atm: ATOM; lpszBuffer: LPSTR; cbBuffer: SmallInt): UINT; external 'KERNEL';
  153. function GlobalAddAtom(lpszString: LPCSTR): ATOM; external 'USER';
  154. function GlobalDeleteAtom(atm: ATOM): ATOM; external 'USER';
  155. function GlobalFindAtom(lpszString: LPCSTR): ATOM; external 'USER';
  156. function GlobalGetAtomName(atom: ATOM; lpszBuffer: LPSTR; cbBuffer: SmallInt): UINT; external 'USER';
  157. function GetAtomHandle(atm: ATOM): HLOCAL; external 'KERNEL';
  158. { WIN.INI Support }
  159. { User Profile Routines }
  160. function GetProfileInt(lpszSection: LPCSTR; lpszEntry: LPCSTR; default: SmallInt): UINT; external 'KERNEL';
  161. function GetProfileString(lpszSection, lpszEntry, lpszDefault: LPCSTR; lpszReturnBuffer: LPSTR; cbReturnBuffer: SmallInt): SmallInt; external 'KERNEL';
  162. function WriteProfileString(lpszSection, lpszEntry, lpszString: LPCSTR): BOOL; external 'KERNEL';
  163. function GetPrivateProfileInt(lpszSection, lpszEntry: LPCSTR; default: SmallInt; lpszFilename: LPCSTR): UINT; external 'KERNEL';
  164. function GetPrivateProfileString(lpszSection, lpszEntry, lpszDefault: LPCSTR; lpszReturnBuffer: LPSTR; cbReturnBuffer: SmallInt; lpszFilename: LPCSTR): SmallInt; external 'KERNEL';
  165. function WritePrivateProfileString(lpszSection, lpszEntry, lpszString, lpszFilename: LPCSTR): BOOL; external 'KERNEL';
  166. { International & Char Translation Support }
  167. procedure AnsiToOem(hpszWindows, hpszOem: PHugeChar); external 'KEYBOARD';
  168. procedure AnsiToOem(hpszWindows, hpszOem: PFarChar); external 'KEYBOARD';
  169. procedure OemToAnsi(hpszOemStr, hpszWindowsStr: PHugeChar); external 'KEYBOARD';
  170. procedure OemToAnsi(hpszOemStr, hpszWindowsStr: PFarChar); external 'KEYBOARD';
  171. procedure AnsiToOemBuff(lpszWindowsStr: LPCSTR; lpszOemStr: LPSTR; cbWindowsStr: UINT); external 'KEYBOARD';
  172. procedure OemToAnsiBuff(lpszOemStr: LPCSTR; lpszWindowsStr: LPSTR; cbOemStr: UINT); external 'KEYBOARD';
  173. function AnsiNext(lpchCurrentChar: LPCSTR): LPSTR; external 'USER';
  174. function AnsiPrev(lpchStart, lpchCurrentChar: LPCSTR): LPSTR; external 'USER';
  175. function AnsiUpper(lpszString: LPSTR): LPSTR; external 'USER';
  176. function AnsiLower(lpsz: LPSTR): LPSTR; external 'USER';
  177. function AnsiUpperBuff(lpszString: LPSTR; cbString: UINT): UINT; external 'USER';
  178. function AnsiLowerBuff(lpszString: LPSTR; cbString: UINT): UINT; external 'USER';
  179. function IsCharAlpha(chTest: char): BOOL; external 'USER';
  180. function IsCharAlphaNumeric(chTest: char): BOOL; external 'USER';
  181. function IsCharUpper(chTest: char): BOOL; external 'USER';
  182. function IsCharLower(chTest: char): BOOL; external 'USER';
  183. function lstrcmp(lpszString1, lpszString2: LPCSTR): SmallInt; external 'USER';
  184. function lstrcmpi(lpszString1, lpszString2: LPCSTR): SmallInt; external 'USER';
  185. function lstrcpy(lpszString1: LPSTR; lpszString2: LPCSTR): LPSTR; external 'KERNEL';
  186. function lstrcat(lpszString1: LPSTR; lpszString2: LPCSTR): LPSTR; external 'KERNEL';
  187. function lstrlen(lpszString: LPCSTR): SmallInt; external 'KERNEL';
  188. function LoadString(hints: HINST; idResrouce: UINT; lpszBuffer: LPSTR; cbBuffer: SmallInt): SmallInt; external 'USER';
  189. { Keyboard Driver Functions }
  190. function OemKeyScan(uOemChar: UINT): DWORD; external 'KEYBOARD';
  191. function VkKeyScan(uChar: UINT): UINT; external 'KEYBOARD';
  192. function GetKeyboardType(fnKeybInfo: SmallInt): SmallInt; external 'KEYBOARD';
  193. function MapVirtualKey(uKeyCode, fuMapType: UINT): UINT; external 'KEYBOARD';
  194. function GetKBCodePage: SmallInt; external 'KEYBOARD';
  195. function GetKeyNameText(lParam: LONG; lpszBuffer: LPSTR; cbMaxKey: SmallInt): SmallInt; external 'KEYBOARD';
  196. function ToAscii(wVirtKey, wScanCode: UINT; lpKeyState: LPBYTE; lpChar: LPDWORD; wFlags: UINT): SmallInt; external 'KEYBOARD';
  197. { DC Management }
  198. function CreateDC(lpszDriver, lpszDevice, lpszOutput: LPCSTR; lpvInitData: FarPointer): HDC; external 'GDI';
  199. function CreateIC(lpszDriver, lpszDevice, lpszOutput: LPCSTR; lpvInitData: FarPointer): HDC; external 'GDI';
  200. function CreateCompatibleDC(hdc: HDC): HDC; external 'GDI';
  201. function DeleteDC(hdc: HDC): BOOL; external 'GDI';
  202. function GetDCOrg(hdc: HDC): DWORD; external 'GDI';
  203. function SaveDC(hdc: HDC): SmallInt; external 'GDI';
  204. function RestoreDC(hdc: HDC; nSavedDC: SmallInt): BOOL; external 'GDI';
  205. function SetEnvironment(lpPortName: LPCSTR; lpdev: FarPointer; nCount: UINT): SmallInt; external 'GDI';
  206. function GetEnvironment(lpPortName: LPCSTR; lpdev: FarPointer; nMaxSize: UINT): SmallInt; external 'GDI';
  207. function MulDiv(nMultiplicand, nMultiplier, nDivisor: SmallInt): SmallInt; external 'GDI';
  208. { Device Capabilities }
  209. function GetDeviceCaps(hdc: HDC; iCapability: SmallInt): SmallInt; external 'GDI';
  210. { Coordinate transformation support }
  211. function SetMapMode(hdc: HDC; fnMapMode: SmallInt): SmallInt; external 'GDI';
  212. function GetMapMode(hdc: HDC): SmallInt; external 'GDI';
  213. function SetWindowOrg(hdc: HDC; nXOrigin, nYOrigin: SmallInt): DWORD; external 'GDI';
  214. function GetWindowOrg(hdc: HDC): DWORD; external 'GDI';
  215. function SetWindowExt(hdc: HDC; nXExtent, nYExtent: SmallInt): DWORD; external 'GDI';
  216. function GetWindowExt(hdc: HDC): DWORD; external 'GDI';
  217. function OffsetWindowOrg(hdc: HDC; nXOffset, nYOffset: SmallInt): DWORD; external 'GDI';
  218. function ScaleWindowExt(hdc: HDC; nXNum, nXDenom, nYNum, nYDenom: SmallInt): DWORD; external 'GDI';
  219. function SetViewportOrg(hdc: HDC; nXOrigin, nYOrigin: SmallInt): DWORD; external 'GDI';
  220. function GetViewportOrg(hdc: HDC): DWORD; external 'GDI';
  221. function SetViewportExt(hdc: HDC; nXExtent, nYExtent: SmallInt): DWORD; external 'GDI';
  222. function GetViewportExt(hdc: HDC): DWORD; external 'GDI';
  223. function OffsetViewportOrg(hdc: HDC; nXOffset, nYOffset: SmallInt): DWORD; external 'GDI';
  224. function ScaleViewportExt(hdc: HDC; nXNum, nXDenom, nYNum, nYDenom: SmallInt): DWORD; external 'GDI';
  225. function DPtoLP(hdc: HDC; lppt: LPPOINT; cPoints: SmallInt): BOOL; external 'GDI';
  226. function LPtoDP(hdc: HDC; lppt: LPPOINT; cPoints: SmallInt): BOOL; external 'GDI';
  227. {$ifdef VAR_PARAMS_ARE_FAR}
  228. function DPtoLP(hdc: HDC; var pt; cPoints: SmallInt): BOOL; external 'GDI';
  229. function LPtoDP(hdc: HDC; var pt; cPoints: SmallInt): BOOL; external 'GDI';
  230. {$endif}
  231. { Color support }
  232. function RGB(cRed, cGreen, cBlue: BYTE): COLORREF; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  233. function GetRValue(rgb: DWORD): BYTE; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  234. function GetGValue(rgb: DWORD): BYTE; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  235. function GetBValue(rgb: DWORD): BYTE; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  236. function GetNearestColor(hdc: HDC; clrref: COLORREF): COLORREF; external 'GDI';
  237. function GetSysColor(nDspElement: SmallInt): COLORREF; external 'USER';
  238. procedure SetSysColors(cDspElements: SmallInt; lpnDspElements: LPINT; lpdwRgbValues: LPCOLORREF); external 'USER';
  239. {$ifdef VAR_PARAMS_ARE_FAR}
  240. procedure SetSysColors(cDspElements: SmallInt; var DspElements; var RgbValues); external 'USER';
  241. {$endif}
  242. { GDI Object Support }
  243. function GetStockObject(fnObject: SmallInt): HGDIOBJ; external 'GDI';
  244. function IsGDIObject(hgdiobj: HGDIOBJ): BOOL; external 'GDI';
  245. function DeleteObject(hgdiobj: HGDIOBJ): BOOL; external 'GDI';
  246. function SelectObject(hdc: HDC; hgdiobj: HGDIOBJ): HGDIOBJ; external 'GDI';
  247. function GetObject(hgdiobj: HGDIOBJ; cbBuffer: SmallInt; lpvObject: FarPointer): SmallInt; external 'GDI';
  248. function UnrealizeObject(hgdiobj: HGDIOBJ): BOOL; external 'GDI';
  249. function EnumObjects(hdc: HDC; fnObjectType: SmallInt; goenmprc: GOBJENUMPROC; lParam: LPARAM): SmallInt; external 'GDI';
  250. function EnumObjects(hdc: HDC; fnObjectType: SmallInt; goenmprc: FARPROC; lParam: LPARAM): SmallInt; external 'GDI';
  251. { Pen support }
  252. function CreatePen(fnPenStyle, nWidth: SmallInt; clrref: COLORREF): HPEN; external 'GDI';
  253. function CreatePenIndirect(lplgpn: LPLOGPEN): HPEN; external 'GDI';
  254. {$ifdef VAR_PARAMS_ARE_FAR}
  255. function CreatePenIndirect(var lgpn: LOGPEN): HPEN; external 'GDI';
  256. {$endif}
  257. { Brush support }
  258. function CreateSolidBrush(clrref: COLORREF): HBRUSH; external 'GDI';
  259. function CreateHatchBrush(fnStyle: SmallInt; clrref: COLORREF): HBRUSH; external 'GDI';
  260. function CreatePatternBrush(hbmp: HBITMAP): HBRUSH; external 'GDI';
  261. function CreateDIBPatternBrush(hglbDIBPacked: HGLOBAL; fnColorSpec: UINT): HBRUSH; external 'GDI';
  262. function CreateBrushIndirect(lplb: LPLOGBRUSH): HBRUSH; external 'GDI';
  263. {$ifdef VAR_PARAMS_ARE_FAR}
  264. function CreateBrushIndirect(var lb: LOGBRUSH): HBRUSH; external 'GDI';
  265. {$endif}
  266. function SetBrushOrg(hdc: HDC; nXOrg, nYOrg: SmallInt): DWORD; external 'GDI';
  267. function GetBrushOrg(hdc: HDC): DWORD; external 'GDI';
  268. { Region support }
  269. function CreateRectRgn(nLeftRect, nTopRect, nRightRect, nBottomRect: SmallInt): HRGN; external 'GDI';
  270. function CreateRectRgnIndirect(lprc: LPRECT): HRGN; external 'GDI';
  271. {$ifdef VAR_PARAMS_ARE_FAR}
  272. function CreateRectRgnIndirect(var rc: RECT): HRGN; external 'GDI';
  273. {$endif}
  274. function CreateEllipticRgnIndirect(lprc: LPRECT): HRGN; external 'GDI';
  275. {$ifdef VAR_PARAMS_ARE_FAR}
  276. function CreateEllipticRgnIndirect(var rc: RECT): HRGN; external 'GDI';
  277. {$endif}
  278. function CreateEllipticRgn(nLeftRect, nTopRect, nRightRect, nBottomRect: SmallInt): HRGN; external 'GDI';
  279. function CreatePolygonRgn(lppt: LPPOINT; cPoints, fnPolyFillMode: SmallInt): HRGN; external 'GDI';
  280. {$ifdef VAR_PARAMS_ARE_FAR}
  281. function CreatePolygonRgn(var pt; cPoints, fnPolyFillMode: SmallInt): HRGN; external 'GDI';
  282. {$endif}
  283. function CreatePolyPolygonRgn(lppt: LPPOINT; lpnPolyCount: LPINT; cIntegers, fnPolyFillMode: SmallInt): HRGN; external 'GDI';
  284. {$ifdef VAR_PARAMS_ARE_FAR}
  285. function CreatePolyPolygonRgn(var pt; var nPolyCount; cIntegers, fnPolyFillMode: SmallInt): HRGN; external 'GDI';
  286. {$endif}
  287. function CreateRoundRectRgn(nLeftRect, nTopRect, nRightRect, nBottomRect, nWidthEllipse, nHeightEllipse: SmallInt): HRGN; external 'GDI';
  288. procedure SetRectRgn(hrgn: HRGN; nLeftRect, nTopRect, nRightRect, nBottomRect: SmallInt); external 'GDI';
  289. function CombineRgn(hrgnDest, hrgnSrc1, hrgnSrc2: HRGN; fCombineMode: SmallInt): SmallInt; external 'GDI';
  290. function EqualRgn(hrgnSrc1, hrgnSrc2: HRGN): BOOL; external 'GDI';
  291. function OffsetRgn(hrgn: HRGN; nXOffset, nYOffset: SmallInt): SmallInt; external 'GDI';
  292. function GetRgnBox(hrgn: HRGN; lprc: LPRECT): SmallInt; external 'GDI';
  293. {$ifdef VAR_PARAMS_ARE_FAR}
  294. function GetRgnBox(hrgn: HRGN; var rc: RECT): SmallInt; external 'GDI';
  295. {$endif}
  296. function RectInRegion(hrgn: HRGN; lprc: LPRECT): BOOL; external 'GDI';
  297. {$ifdef VAR_PARAMS_ARE_FAR}
  298. function RectInRegion(hrgn: HRGN; var rc: RECT): BOOL; external 'GDI';
  299. {$endif}
  300. function PtInRegion(hrgn: HRGN; nXPos, nYPos: SmallInt): BOOL; external 'GDI';
  301. { Color palette Support }
  302. function PALETTERGB(cRed, cGreen, cBlue: BYTE): COLORREF; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  303. function PALETTEINDEX(wPaletteIndex: WORD): COLORREF; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
  304. function CreatePalette(lplgpl: LPLOGPALETTE): HPALETTE; external 'GDI';
  305. {$ifdef VAR_PARAMS_ARE_FAR}
  306. function CreatePalette(var lgpl: LOGPALETTE): HPALETTE; external 'GDI';
  307. {$endif}
  308. function SelectPalette(hdc: HDC; hpal: HPALETTE; fPalBack: BOOL): HPALETTE; external 'USER';
  309. function RealizePalette(hdc: HDC): UINT; external 'USER';
  310. function UpdateColors(hdc: HDC): SmallInt; external 'GDI';
  311. procedure AnimatePalette(hpal: HPALETTE; iStart, cEntries: UINT; lppe: LPPALETTEENTRY); external 'GDI';
  312. {$ifdef VAR_PARAMS_ARE_FAR}
  313. procedure AnimatePalette(hpal: HPALETTE; iStart, cEntries: UINT; var pe); external 'GDI';
  314. {$endif}
  315. function SetPaletteEntries(hpal: HPALETTE; iStart, cEntries: UINT; lppe: LPPALETTEENTRY): UINT; external 'GDI';
  316. function GetPaletteEntries(hpal: HPALETTE; iStart, cEntries: UINT; lppe: LPPALETTEENTRY): UINT; external 'GDI';
  317. {$ifdef VAR_PARAMS_ARE_FAR}
  318. function SetPaletteEntries(hpal: HPALETTE; iStart, cEntries: UINT; var pe): UINT; external 'GDI';
  319. function GetPaletteEntries(hpal: HPALETTE; iStart, cEntries: UINT; var pe): UINT; external 'GDI';
  320. {$endif}
  321. function GetNearestPaletteIndex(hpal: HPALETTE; clrref: COLORREF): UINT; external 'GDI';
  322. function ResizePalette(hpal: HPALETTE; cEntries: UINT): BOOL; external 'GDI';
  323. function GetSystemPaletteEntries(hdc: HDC; iStart, cEntries: UINT; lppe: LPPALETTEENTRY): UINT; external 'GDI';
  324. {$ifdef VAR_PARAMS_ARE_FAR}
  325. function GetSystemPaletteEntries(hdc: HDC; iStart, cEntries: UINT; var pe): UINT; external 'GDI';
  326. {$endif}
  327. function GetSystemPaletteUse(hdc: HDC): UINT; external 'GDI';
  328. function SetSystemPaletteUse(hdc: HDC; fuStatic: UINT): UINT; external 'GDI';