winprocsh.inc 64 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311
  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 WinLoadLibrary(LibFileName: LPCSTR): HINST; external 'KERNEL' name 'LoadLibrary';
  43. procedure WinFreeLibrary(LibModule: HINST); external 'KERNEL' name 'FreeLibrary';
  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 WinGetProcAddress(Module: HINST; ProcName: LPCSTR): FARPROC; external 'KERNEL' name 'GetProcAddress';
  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: AnsiChar; PrefixString: LPCSTR; Unique: UINT; TempFileName: LPSTR): SmallInt; external 'KERNEL';
  130. function GetTempDrive(DriveLetter: AnsiChar): 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 & AnsiChar 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: AnsiChar): BOOL; external 'USER';
  180. function IsCharAlphaNumeric(chTest: AnsiChar): BOOL; external 'USER';
  181. function IsCharUpper(chTest: AnsiChar): BOOL; external 'USER';
  182. function IsCharLower(chTest: AnsiChar): 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';
  329. { Clipping support }
  330. function SelectClipRgn(hdc: HDC; hrgn: HRGN): SmallInt; external 'GDI';
  331. function GetClipBox(hdc: HDC; lprc: LPRECT): SmallInt; external 'GDI';
  332. {$ifdef VAR_PARAMS_ARE_FAR}
  333. function GetClipBox(hdc: HDC; var rc: RECT): SmallInt; external 'GDI';
  334. {$endif}
  335. function IntersectClipRect(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect: SmallInt): SmallInt; external 'GDI';
  336. function OffsetClipRgn(hdc: HDC; nXOffset, nYOffset: SmallInt): SmallInt; external 'GDI';
  337. function ExcludeClipRect(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect: SmallInt): SmallInt; external 'GDI';
  338. function PtVisible(hdc: HDC; nXPos, nYPos: SmallInt): BOOL; external 'GDI';
  339. function RectVisible(hdc: HDC; lprc: LPRECT): BOOL; external 'GDI';
  340. {$ifdef VAR_PARAMS_ARE_FAR}
  341. function RectVisible(hdc: HDC; var rc: RECT): BOOL; external 'GDI';
  342. {$endif}
  343. { General drawing support }
  344. function MoveTo(hdc: HDC; x, y: SmallInt): DWORD; external 'GDI';
  345. function GetCurrentPosition(hdc: HDC): DWORD; external 'GDI';
  346. function LineTo(hdc: HDC; xEnd, yEnd: SmallInt): BOOL; external 'GDI';
  347. function Polyline(hdc: HDC; lppt: LPPOINT; cPoints: SmallInt): BOOL; external 'GDI';
  348. procedure LineDDA(nXStart, nYStart, nXEnd, nYEnd: SmallInt; lnddaprc: LINEDDAPROC; lParam: LPARAM); external 'GDI';
  349. procedure LineDDA(nXStart, nYStart, nXEnd, nYEnd: SmallInt; lnddaprc: TFarProc; lParam: FarPointer); external 'GDI';
  350. function Rectangle(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect: SmallInt): BOOL; external 'GDI';
  351. function RoundRect(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect, nEllipseWidth, nEllipseHeight: SmallInt): BOOL; external 'GDI';
  352. function Ellipse(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect: SmallInt): BOOL; external 'GDI';
  353. function Arc(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect, nXStartArc, nYStartArc, nXEndArc, nYEndArc: SmallInt): BOOL; external 'GDI';
  354. function Chord(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect, nXStartLine, nYStartLine, nXEndLine, nYEndLine: SmallInt): BOOL; external 'GDI';
  355. function Pie(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect, nxStartArc, nyStartArc, nxEndArc, nyEndArc: SmallInt): BOOL; external 'GDI';
  356. function Polygon(hdc: HDC; lppt: LPPOINT; cPoints: SmallInt): BOOL; external 'GDI';
  357. function PolyPolygon(hdc: HDC; lppt: LPPOINT; lpnPolyCounts: LPINT; cPolygons: SmallInt): BOOL; external 'GDI';
  358. {$ifdef VAR_PARAMS_ARE_FAR}
  359. function Polygon(hdc: HDC; var pt; cPoints: SmallInt): BOOL; external 'GDI';
  360. function PolyPolygon(hdc: HDC; var pt; var nPolyCounts; cPolygons: SmallInt): BOOL; external 'GDI';
  361. {$endif}
  362. function SetPolyFillMode(hdc: HDC; fnMode: SmallInt): SmallInt; external 'GDI';
  363. function GetPolyFillMode(hdc: HDC): SmallInt; external 'GDI';
  364. function FloodFill(hdc: HDC; nXStart, nYStart: SmallInt; clrref: COLORREF): BOOL; external 'GDI';
  365. function ExtFloodFill(hdc: HDC; nXStart, nYStart: SmallInt; clrref: COLORREF; fuFillType: UINT): BOOL; external 'GDI';
  366. function FillRgn(hdc: HDC; hrgn: HRGN; hbr: HBRUSH): BOOL; external 'GDI';
  367. function FrameRgn(hdc: HDC; hrgn: HRGN; hbr: HBRUSH; nWidth, nHeight: SmallInt): BOOL; external 'GDI';
  368. function InvertRgn(hdc: HDC; hrgn: HRGN): BOOL; external 'GDI';
  369. function PaintRgn(hdc: HDC; hrgn: HRGN): BOOL; external 'GDI';
  370. { Rectangle output routines }
  371. function FillRect(hdc: HDC; lprc: LPRECT; hbr: HBRUSH): SmallInt; external 'USER';
  372. function FrameRect(hdc: HDC; lprc: LPRECT; hbr: HBRUSH): SmallInt; external 'USER';
  373. procedure InvertRect(hdc: HDC; lprc: LPRECT); external 'USER';
  374. {$ifdef VAR_PARAMS_ARE_FAR}
  375. function FillRect(hdc: HDC; var rc: RECT; hbr: HBRUSH): SmallInt; external 'USER';
  376. function FrameRect(hdc: HDC; var rc: RECT; hbr: HBRUSH): SmallInt; external 'USER';
  377. procedure InvertRect(hdc: HDC; var rc: RECT); external 'USER';
  378. {$endif}
  379. procedure DrawFocusRect(hdc: HDC; lprc: LPRECT); external 'USER';
  380. {$ifdef VAR_PARAMS_ARE_FAR}
  381. procedure DrawFocusRect(hdc: HDC; var rc: RECT); external 'USER';
  382. {$endif}
  383. { Text support }
  384. function TextOut(hdc: HDC; nXStart, nYStart: SmallInt; lpszString: LPCSTR; cbString: SmallInt): BOOL; external 'GDI';
  385. function TabbedTextOut(hdc: HDC; xPosStart, yPosStart: SmallInt; lpszString: LPCSTR; cbString, cTabStops: SmallInt; lpnTabPositions: LPINT; nTabOrigin: SmallInt): LONG; external 'USER';
  386. {$ifdef VAR_PARAMS_ARE_FAR}
  387. function TabbedTextOut(hdc: HDC; xPosStart, yPosStart: SmallInt; lpszString: LPCSTR; cbString, cTabStops: SmallInt; var nTabPositions; nTabOrigin: SmallInt): LONG; external 'USER';
  388. {$endif}
  389. function ExtTextOut(hdc: HDC; nXStart, nYStart: SmallInt; fuOptions: UINT; lprc: LPRECT; lpszString: LPCSTR; cbString: UINT; lpDx: LPINT): BOOL; external 'GDI';
  390. function GetTextExtent(hdc: HDC; lpszString: LPCSTR; cbString: SmallInt): DWORD; external 'GDI';
  391. function GetTabbedTextExtent(hdc: HDC; lpszString: LPCSTR; cChars, cTabs: SmallInt; lpnTabs: LPINT): DWORD; external 'USER';
  392. {$ifdef VAR_PARAMS_ARE_FAR}
  393. function GetTabbedTextExtent(hdc: HDC; lpszString: LPCSTR; cChars, cTabs: SmallInt; var nTabs): DWORD; external 'USER';
  394. {$endif}
  395. function DrawText(hdc: HDC; lpsz: LPCSTR; cb: SmallInt; lprc: LPRECT; fuFormat: UINT): SmallInt; external 'USER';
  396. {$ifdef VAR_PARAMS_ARE_FAR}
  397. function DrawText(hdc: HDC; lpsz: LPCSTR; cb: SmallInt; var rc: RECT; fuFormat: UINT): SmallInt; external 'USER';
  398. {$endif}
  399. function GrayString(hdc: HDC; hbr: HBRUSH; gsprc: GRAYSTRINGPROC; lParam: LPARAM; cch, x, y, cx, cy: SmallInt): BOOL; external 'USER';
  400. function GrayString(hdc: HDC; hbr: HBRUSH; gsprc: TFarProc; lParam: LPARAM; cch, x, y, cx, cy: SmallInt): BOOL; external 'USER';
  401. function GetCharWidth(hdc: HDC; uFirstChar, uLastChar: UINT; lpnWidths: LPINT): BOOL; external 'GDI';
  402. {$ifdef VAR_PARAMS_ARE_FAR}
  403. function GetCharWidth(hdc: HDC; uFirstChar, uLastChar: UINT; var nWidths): BOOL; external 'GDI';
  404. {$endif}
  405. function SetTextColor(hdc: HDC; clrref: COLORREF): COLORREF; external 'GDI';
  406. function GetTextColor(hdc: HDC): COLORREF; external 'GDI';
  407. function SetBkColor(hdc: HDC; clrref: COLORREF): COLORREF; external 'GDI';
  408. function GetBkColor(hdc: HDC): COLORREF; external 'GDI';
  409. function SetBkMode(hdc: HDC; fnBkMode: SmallInt): SmallInt; external 'GDI';
  410. function GetBkMode(hdc: HDC): SmallInt; external 'GDI';
  411. function SetTextAlign(hdc: HDC; fuAlign: UINT): UINT; external 'GDI';
  412. function GetTextAlign(hdc: HDC): UINT; external 'GDI';
  413. function SetTextCharacterExtra(hdc: HDC; nExtraSpace: SmallInt): SmallInt; external 'GDI';
  414. function GetTextCharacterExtra(hdc: HDC): SmallInt; external 'GDI';
  415. function SetTextJustification(hdc: HDC; nExtraSpace, cBreakChars: SmallInt): SmallInt; external 'GDI';
  416. { Font support }
  417. function CreateFont(nHeight, nWidth, nEscapement, nOrientation, fnWeight: SmallInt;
  418. fbItalic, fbUnderline, fbStrikeOut, fbCharSet,
  419. fbOutputPrecision, fbClipPrecision, fbQuality, fbPitchAndFamily: BYTE; lpszFace: LPCSTR): HFONT; external 'GDI';
  420. function CreateFontIndirect(lplf: LPLOGFONT): HFONT; external 'GDI';
  421. {$ifdef VAR_PARAMS_ARE_FAR}
  422. function CreateFontIndirect(var lf: LOGFONT): HFONT; external 'GDI';
  423. {$endif}
  424. function SetMapperFlags(hdc: HDC; fdwMatch: DWORD): DWORD; external 'GDI';
  425. function AddFontResource(lpszFilename: LPCSTR): SmallInt; external 'GDI';
  426. function RemoveFontResource(lpszFile: LPCSTR): BOOL; external 'GDI';
  427. function GetTextFace(hdc: HDC; cbBuffer: SmallInt; lpszFace: LPSTR): SmallInt; external 'GDI';
  428. function GetAspectRatioFilter(hdc: HDC): DWORD; external 'GDI';
  429. function GetTextMetrics(hdc: HDC; lptm: LPTEXTMETRIC): BOOL; external 'GDI';
  430. {$ifdef VAR_PARAMS_ARE_FAR}
  431. function GetTextMetrics(hdc: HDC; var tm: TEXTMETRIC): BOOL; external 'GDI';
  432. {$endif}
  433. function EnumFonts(hdc: HDC; lpszFace: LPCSTR; fntenmprc: OLDFONTENUMPROC; lParam: LPARAM): SmallInt; external 'GDI';
  434. function EnumFonts(hdc: HDC; lpszFace: LPCSTR; fntenmprc: TFarProc; lParam: LPARAM): SmallInt; external 'GDI';
  435. { Bitmap support }
  436. function CreateBitmap(nWidth, nHeight: SmallInt; cbPlanes, cbBits: UINT; lpvBits: FarPointer): HBITMAP; external 'GDI';
  437. function CreateBitmapIndirect(lpbm: LPBITMAP): HBITMAP; external 'GDI';
  438. {$ifdef VAR_PARAMS_ARE_FAR}
  439. function CreateBitmapIndirect(var bm: BITMAP): HBITMAP; external 'GDI';
  440. {$endif}
  441. function CreateCompatibleBitmap(hdc: HDC; nWidth, nHeight: SmallInt): HBITMAP; external 'GDI';
  442. function CreateDiscardableBitmap(hdc: HDC; nWidth, nHeight: SmallInt): HBITMAP; external 'GDI';
  443. function CreateDIBitmap(hdc: HDC; lpbmih: LPBITMAPINFOHEADER; dwInit: DWORD; lpvBits: FarPointer; lpbmi: LPBITMAPINFO; fnColorUse: UINT): HBITMAP; external 'GDI';
  444. {$ifdef VAR_PARAMS_ARE_FAR}
  445. function CreateDIBitmap(hdc: HDC; var bmih: BITMAPINFOHEADER; dwInit: DWORD; lpvBits: FarPointer; var bmi: BITMAPINFO; fnColorUse: UINT): HBITMAP; external 'GDI';
  446. {$endif}
  447. function LoadBitmap(hinst: HINST; lpszBitmap: LPCSTR): HBITMAP; external 'USER';
  448. function BitBlt(hdcDest: HDC; nXDest, nYDest, nWidth, nHeight: SmallInt; hdcSrc: HDC; nXSrc, nYSrc: SmallInt; dwRop: DWORD): BOOL; external 'GDI';
  449. function PatBlt(hdc: HDC; nLeftRect, nTopRect, nwidth, nheight: SmallInt; fdwRop: DWORD): BOOL; external 'GDI';
  450. function StretchBlt(hdcDest: HDC; nXOriginDest, nYOriginDest, nWidthDest, nHeightDest: SmallInt; hdcSrc: HDC; nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc: SmallInt; fdwRop: DWORD): BOOL; external 'GDI';
  451. function StretchDIBits(hdc: HDC; XDest, YDest, cxDest, cyDest, XSrc, YSrc, cxSrc, cySrc: SmallInt;
  452. lpvBits: FarPointer; lpbmi: LPBITMAPINFO; fuColorUse: UINT; fdwRop: DWORD): SmallInt; external 'GDI';
  453. {$ifdef VAR_PARAMS_ARE_FAR}
  454. function StretchDIBits(hdc: HDC; XDest, YDest, cxDest, cyDest, XSrc, YSrc, cxSrc, cySrc: SmallInt;
  455. lpvBits: FarPointer; var bmi: BITMAPINFO; fuColorUse: UINT; fdwRop: DWORD): SmallInt; external 'GDI';
  456. {$endif}
  457. function SetPixel(hdc: HDC; nXPos, nYPos: SmallInt; clrref: COLORREF): COLORREF; external 'GDI';
  458. function GetPixel(hdc: HDC; nXPos, nYPos: SmallInt): COLORREF; external 'GDI';
  459. function SetStretchBltMode(hdc: HDC; fnStretchMode: SmallInt): SmallInt; external 'GDI';
  460. function GetStretchBltMode(hdc: HDC): SmallInt; external 'GDI';
  461. function SetBitmapDimension(hbmp: HBITMAP; nWidth, nHeight: SmallInt): DWORD; external 'GDI';
  462. function GetBitmapDimension(hbm: HBITMAP): DWORD; external 'GDI';
  463. function SetROP2(hdc: HDC; fnDrawMode: SmallInt): SmallInt; external 'GDI';
  464. function GetROP2(hdc: HDC): SmallInt; external 'GDI';
  465. function SetBitmapBits(hbmp: HBITMAP; cBits: DWORD; lpvBits: FarPointer): LONG; external 'GDI';
  466. function GetBitmapBits(hbm: HBITMAP; cbBuffer: LONG; lpvBits: FarPointer): LONG; external 'GDI';
  467. function SetDIBits(hdc: HDC; hbmp: HBITMAP; uStartScan, cScanLines: UINT; lpvBits: FarPointer; lpbmi: LPBITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
  468. function GetDIBits(hdc: HDC; hbmp: HBITMAP; nStartScan, cScanLines: UINT; lpvBits: FarPointer; lpbmi: LPBITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
  469. {$ifdef VAR_PARAMS_ARE_FAR}
  470. function SetDIBits(hdc: HDC; hbmp: HBITMAP; uStartScan, cScanLines: UINT; lpvBits: FarPointer; var bmi: BITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
  471. function GetDIBits(hdc: HDC; hbmp: HBITMAP; nStartScan, cScanLines: UINT; lpvBits: FarPointer; var bmi: BITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
  472. {$endif}
  473. function SetDIBitsToDevice(hdc: HDC; XDest, YDest, cx, cy, XSrc, YSrc: SmallInt; uStartScan, cScanLines: UINT;
  474. lpvBits: FarPointer; lpbmi: LPBITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
  475. {$ifdef VAR_PARAMS_ARE_FAR}
  476. function SetDIBitsToDevice(hdc: HDC; XDest, YDest, cx, cy, XSrc, YSrc: SmallInt; uStartScan, cScanLines: UINT;
  477. lpvBits: FarPointer; var bmi: BITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
  478. {$endif}
  479. { Metafile support }
  480. function CreateMetaFile(lpszFile: LPCSTR): HDC; external 'GDI';
  481. function CloseMetaFile(hdc: HDC): HMETAFILE; external 'GDI';
  482. function GetMetaFile(lpszFile: LPCSTR): HMETAFILE; external 'GDI';
  483. function DeleteMetaFile(hmf: HMETAFILE): BOOL; external 'GDI';
  484. function CopyMetaFile(hmfSrc: HMETAFILE; lpszFile: LPCSTR): HMETAFILE; external 'GDI';
  485. function PlayMetaFile(hdc: HDC; hmf: HMETAFILE): BOOL; external 'GDI';
  486. function GetMetaFileBits(hmf: HMETAFILE): HGLOBAL; external 'GDI';
  487. function SetMetaFileBits(hmf: HGLOBAL): HMETAFILE; external 'GDI';
  488. procedure PlayMetaFileRecord(hdc: HDC; lpht: LPHANDLETABLE; lpmr: LPMETARECORD; cHandles: UINT); external 'GDI';
  489. {$ifdef VAR_PARAMS_ARE_FAR}
  490. procedure PlayMetaFileRecord(hdc: HDC; var ht: HANDLETABLE; var mr: METARECORD; cHandles: UINT); external 'GDI';
  491. {$endif}
  492. function EnumMetaFile(hdc: HDC; hmf: HMETAFILE; mfenmprc: MFENUMPROC; lParam: LPARAM): BOOL; external 'GDI';
  493. function EnumMetaFile(hdc: HDC; hmf: HMETAFILE; mfenmprc: TFarProc; lParam: LPARAM): BOOL; external 'GDI';
  494. { Printing support }
  495. function QueryAbort(hdc: HDC; reserved: SmallInt): BOOL; external 'GDI';
  496. { GDI Escape support }
  497. function Escape(hdc: HDC; nEscape, cbInput: SmallInt; lpszInData: LPCSTR; lpvOutData: FarPointer): SmallInt; external 'GDI';
  498. { System Metrics }
  499. function GetSystemMetrics(nIndex: SmallInt): SmallInt; external 'USER';
  500. function GetDoubleClickTime: UINT; external 'USER';
  501. procedure SetDoubleClickTime(uInterval: UINT); external 'USER';
  502. { Rectangle support }
  503. procedure SetRect(lprc: LPRECT; nLeft, nTop, nRight, nBottom: SmallInt); external 'USER';
  504. procedure SetRectEmpty(lprc: LPRECT); external 'USER';
  505. procedure CopyRect(lprcDst: LPRECT; lprcSrc: LPRECT); external 'USER';
  506. function IsRectEmpty(lprc: LPRECT): BOOL; external 'USER';
  507. function EqualRect(lprc1, lprc2: LPRECT): BOOL; external 'USER';
  508. function IntersectRect(lprcDest: LPRECT; lprcSrc1, lprcSrc2: LPRECT): BOOL; external 'USER';
  509. function UnionRect(lprcDest: LPRECT; lprcSrc1, lprcSrc2: LPRECT): BOOL; external 'USER';
  510. procedure OffsetRect(lprc: LPRECT; x, y: SmallInt); external 'USER';
  511. procedure InflateRect(lprc: LPRECT; xAmt, yAmt: SmallInt); external 'USER';
  512. function PtInRect(lprc: LPRECT; pt: POINT): BOOL; external 'USER';
  513. {$ifdef VAR_PARAMS_ARE_FAR}
  514. procedure SetRect(var rc: RECT; nLeft, nTop, nRight, nBottom: SmallInt); external 'USER';
  515. procedure SetRectEmpty(var rc: RECT); external 'USER';
  516. procedure CopyRect(var rcDst: RECT; var rcSrc: RECT); external 'USER';
  517. function IsRectEmpty(var rc: RECT): BOOL; external 'USER';
  518. function EqualRect(var rc1, rc2: RECT): BOOL; external 'USER';
  519. function IntersectRect(var rcDest: RECT; var rcSrc1, rcSrc2: RECT): BOOL; external 'USER';
  520. function UnionRect(var rcDest: RECT; var rcSrc1, rcSrc2: RECT): BOOL; external 'USER';
  521. procedure OffsetRect(var rc: RECT; x, y: SmallInt); external 'USER';
  522. procedure InflateRect(var rc: RECT; xAmt, yAmt: SmallInt); external 'USER';
  523. function PtInRect(var rc: RECT; pt: POINT): BOOL; external 'USER';
  524. {$endif}
  525. { Window message support }
  526. function RegisterWindowMessage(lpsz: LPCSTR): UINT; external 'USER';
  527. function GetMessage(lpmsg: LPMSG; hwnd: HWND; uMsgFilterMin, uMsgFilterMax: UINT): BOOL; external 'USER';
  528. function PeekMessage(lpmsg: LPMSG; hwnd: HWND; uFilterFirst, uFilterLast, fuRemove: UINT): BOOL; external 'USER';
  529. {$ifdef VAR_PARAMS_ARE_FAR}
  530. function GetMessage(var msg: MSG; hwnd: HWND; uMsgFilterMin, uMsgFilterMax: UINT): BOOL; external 'USER';
  531. function PeekMessage(var msg: MSG; hwnd: HWND; uFilterFirst, uFilterLast, fuRemove: UINT): BOOL; external 'USER';
  532. {$endif}
  533. procedure WaitMessage; external 'USER';
  534. function GetMessagePos: DWORD; external 'USER';
  535. function GetMessageTime: LONG; external 'USER';
  536. function TranslateMessage(lpmsg: LPMSG): BOOL; external 'USER';
  537. function DispatchMessage(lpmsg: LPMSG): LONG; external 'USER';
  538. {$ifdef VAR_PARAMS_ARE_FAR}
  539. function TranslateMessage(var msg: MSG): BOOL; external 'USER';
  540. function DispatchMessage(var msg: MSG): LONG; external 'USER';
  541. {$endif}
  542. function SetMessageQueue(cMsg: SmallInt): BOOL; external 'USER';
  543. function GetInputState: BOOL; external 'USER';
  544. function PostMessage(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; external 'USER';
  545. function SendMessage(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'USER';
  546. function PostAppMessage(htask: HTASK; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; external 'USER';
  547. procedure ReplyMessage(lResult: LRESULT); external 'USER';
  548. function InSendMessage: BOOL; external 'USER';
  549. function CallMsgFilter(lpmsg: LPMSG; nCode: SmallInt): BOOL; external 'USER';
  550. {$ifdef VAR_PARAMS_ARE_FAR}
  551. function CallMsgFilter(var msg: MSG; nCode: SmallInt): BOOL; external 'USER';
  552. {$endif}
  553. { Application termination }
  554. procedure PostQuitMessage(nExitCode: SmallInt); external 'USER';
  555. { Window class management }
  556. { in Windows 3.1+, RegisterClass returns an ATOM that unquely identifies the
  557. class. In Windows 3.0 and earlier, the return value is BOOL. That's why we
  558. redefine this function in the win31 unit. }
  559. function RegisterClass(lpwc: LPWNDCLASS): BOOL; external 'USER';
  560. {$ifdef VAR_PARAMS_ARE_FAR}
  561. function RegisterClass(var wc: WNDCLASS): BOOL; external 'USER';
  562. {$endif}
  563. function UnregisterClass(lpszClassName: LPCSTR; hinst: HINST): BOOL; external 'USER';
  564. function GetClassInfo(hinst: HINST; lpszClassName: LPCSTR; lpwc: LPWNDCLASS): BOOL; external 'USER';
  565. {$ifdef VAR_PARAMS_ARE_FAR}
  566. function GetClassInfo(hinst: HINST; lpszClassName: LPCSTR; var wc: WNDCLASS): BOOL; external 'USER';
  567. {$endif}
  568. function GetClassName(hwnd: HWND; lpszClassName: LPSTR; cchClassName: SmallInt): SmallInt; external 'USER';
  569. function GetClassWord(hwnd: HWND; offset: SmallInt): WORD; external 'USER';
  570. function SetClassWord(hwnd: HWND; nIndex: SmallInt; wNewWord: WORD): WORD; external 'USER';
  571. function GetClassLong(hwnd: HWND; offset: SmallInt): LONG; external 'USER';
  572. function SetClassLong(hwnd: HWND; nIndex: SmallInt; nVal: LONG): LONG; external 'USER';
  573. { Window creation/destroy }
  574. function IsWindow(hwnd: HWND): BOOL; external 'USER';
  575. function CreateWindowEx(dwExStyle: DWORD; lpszClassName, lpszWindowName: LPCSTR; dwStyle: DWORD; x, y, nWidth, nHeight: SmallInt; hwndParent: HWND; hmenu: HMENU; hinst: HINST; lpvCreateParams: FarPointer): HWND; external 'USER';
  576. function CreateWindow(lpszClassName, lpszWindowName: LPCSTR; dwStyle: DWORD; x, y, nWidth, nHeight: SmallInt; hwndParent: HWND; hmenu: HMENU; hinst: HINST; lpvParam: FarPointer): HWND; external 'USER';
  577. function DestroyWindow(hwnd: HWND): BOOL; external 'USER';
  578. { Basic window attributes }
  579. function GetWindowTask(hwnd: HWND): HTASK; external 'USER';
  580. function IsChild(hwndParent, hwndChild: HWND): BOOL; external 'USER';
  581. function GetParent(hwnd: HWND): HWND; external 'USER';
  582. function SetParent(hwndChild, hwndNewParent: HWND): HWND; external 'USER';
  583. function IsWindowVisible(hwnd: HWND): BOOL; external 'USER';
  584. function ShowWindow(hwnd: HWND; nCmdShow: SmallInt): BOOL; external 'USER';
  585. { Enabled state }
  586. function EnableWindow(hwnd: HWND; fEnable: BOOL): BOOL; external 'USER';
  587. function IsWindowEnabled(hwnd: HWND): BOOL; external 'USER';
  588. { Window text }
  589. procedure SetWindowText(hwnd: HWND; lpsz: LPCSTR); external 'USER';
  590. function GetWindowText(hwnd: HWND; lpsz: LPSTR; cbMax: SmallInt): SmallInt; external 'USER';
  591. function GetWindowTextLength(hwnd: HWND): SmallInt; external 'USER';
  592. { Window words }
  593. function GetWindowWord(hwnd: HWND; nOffset: SmallInt): WORD; external 'USER';
  594. function SetWindowWord(hwnd: HWND; nOffset: SmallInt; nVal: WORD): WORD; external 'USER';
  595. function GetWindowLong(hwnd: HWND; nOffset: SmallInt): LONG; external 'USER';
  596. function SetWindowLong(hwnd: HWND; nOffset: SmallInt; nVal: LONG): LONG; external 'USER';
  597. { Window size, position, Z-order, and visibility }
  598. procedure GetClientRect(hwnd: HWND; lprc: LPRECT); external 'USER';
  599. procedure GetWindowRect(hwnd: HWND; lprc: LPRECT); external 'USER';
  600. {$ifdef VAR_PARAMS_ARE_FAR}
  601. procedure GetClientRect(hwnd: HWND; var rc: RECT); external 'USER';
  602. procedure GetWindowRect(hwnd: HWND; var rc: RECT); external 'USER';
  603. {$endif}
  604. function SetWindowPos(hwnd, hwndInsertAfter: HWND; x, y, cx, cy: SmallInt; fuFlags: UINT): BOOL; external 'USER';
  605. function BeginDeferWindowPos(cWindows: SmallInt): HDWP; external 'USER';
  606. function DeferWindowPos(hdwp: HDWP; hwnd, hwndInsertAfter: HWND; x, y, cx, cy: SmallInt; flags: UINT): HDWP; external 'USER';
  607. function EndDeferWindowPos(hdwp: HDWP): BOOL; external 'USER';
  608. function MoveWindow(hwnd: HWND; nLeft, nTop, nWidth, nHeight: SmallInt; fRepaint: BOOL): BOOL; external 'USER';
  609. function BringWindowToTop(hwnd: HWND): BOOL; external 'USER';
  610. { Window proc implementation & subclassing support }
  611. function DefWindowProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'USER';
  612. function CallWindowProc(wndprcPrev: WNDPROC; hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'USER';
  613. function CallWindowProc(wndprcPrev: TFarProc; hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'USER';
  614. { Main window support }
  615. procedure AdjustWindowRect(lprc: LPRECT; dwStyle: DWORD; fMenu: BOOL); external 'USER';
  616. procedure AdjustWindowRectEx(lprc: LPRECT; dwStyle: DWORD; fMenu: BOOL; dwExStyle: DWORD); external 'USER';
  617. {$ifdef VAR_PARAMS_ARE_FAR}
  618. procedure AdjustWindowRect(var rc: RECT; dwStyle: DWORD; fMenu: BOOL); external 'USER';
  619. procedure AdjustWindowRectEx(var rc: RECT; dwStyle: DWORD; fMenu: BOOL; dwExStyle: DWORD); external 'USER';
  620. {$endif}
  621. function FlashWindow(hwnd: HWND; fInvert: BOOL): BOOL; external 'USER';
  622. procedure ShowOwnedPopups(hwnd: HWND; fShow: BOOL); external 'USER';
  623. { Obsolete functions }
  624. function OpenIcon(hwnd: HWND): BOOL; external 'USER';
  625. procedure CloseWindow(hwnd: HWND); external 'USER';
  626. function AnyPopup: BOOL; external 'USER';
  627. function IsIconic(hwnd: HWND): BOOL; external 'USER';
  628. function IsZoomed(hwnd: HWND): BOOL; external 'USER';
  629. { Window coordinate mapping and hit-testing }
  630. procedure ClientToScreen(hwnd: HWND; lppt: LPPOINT); external 'USER';
  631. procedure ScreenToClient(hwnd: HWND; lppt: LPPOINT); external 'USER';
  632. {$ifdef VAR_PARAMS_ARE_FAR}
  633. procedure ClientToScreen(hwnd: HWND; var pt: POINT); external 'USER';
  634. procedure ScreenToClient(hwnd: HWND; var pt: POINT); external 'USER';
  635. {$endif}
  636. function WindowFromPoint(pt: POINT): HWND; external 'USER';
  637. function ChildWindowFromPoint(hwndParent: HWND; pt: POINT): HWND; external 'USER';
  638. { Window query and enumeration }
  639. function GetDesktopWindow: HWND; external 'USER';
  640. function FindWindow(lpszClassName, lpszWindow: LPCSTR): HWND; external 'USER';
  641. function EnumWindows(wndenmprc: WNDENUMPROC; lParam: LPARAM): BOOL; external 'USER';
  642. function EnumWindows(wndenmprc: TFarProc; lParam: LPARAM): BOOL; external 'USER';
  643. function EnumChildWindows(hwndParent: HWND; wndenmprc: WNDENUMPROC; lParam: LPARAM): BOOL; external 'USER';
  644. function EnumChildWindows(hwndParent: HWND; wndenmprc: TFarProc; lParam: LPARAM): BOOL; external 'USER';
  645. function EnumTaskWindows(htask: HTASK; wndenmprc: WNDENUMPROC; lParam: LPARAM): BOOL; external 'USER';
  646. function EnumTaskWindows(htask: HTASK; wndenmprc: TFarProc; lParam: LPARAM): BOOL; external 'USER';
  647. function GetTopWindow(hwnd: HWND): HWND; external 'USER';
  648. function GetWindow(hwnd: HWND; fuRel: UINT): HWND; external 'USER';
  649. function GetNextWindow(hwnd: HWND; uFlag: UINT): HWND; external 'USER';
  650. { Window property support }
  651. function SetProp(hwnd: HWND; lpsz: LPCSTR; hData: HANDLE): BOOL; external 'USER';
  652. function GetProp(hwnd: HWND; lpsz: LPCSTR): HANDLE; external 'USER';
  653. function RemoveProp(hwnd: HWND; lpsz: LPCSTR): HANDLE; external 'USER';
  654. function EnumProps(hwnd: HWND; prpenmprc: PROPENUMPROC): SmallInt; external 'USER';
  655. function EnumProps(hwnd: HWND; prpenmprc: TFarProc): SmallInt; external 'USER';
  656. { Window drawing support }
  657. function GetDC(hwnd: HWND): HDC; external 'USER';
  658. function ReleaseDC(hwnd: HWND; hdc: HDC): SmallInt; external 'USER';
  659. function GetWindowDC(hwnd: HWND): HDC; external 'USER';
  660. { Window repainting }
  661. function BeginPaint(hwnd: HWND; lpps: LPPAINTSTRUCT): HDC; external 'USER';
  662. procedure EndPaint(hwnd: HWND; lpps: LPPAINTSTRUCT); external 'USER';
  663. {$ifdef VAR_PARAMS_ARE_FAR}
  664. function BeginPaint(hwnd: HWND; var ps: PAINTSTRUCT): HDC; external 'USER';
  665. procedure EndPaint(hwnd: HWND; var ps: PAINTSTRUCT); external 'USER';
  666. {$endif}
  667. procedure UpdateWindow(hwnd: HWND); external 'USER';
  668. function ExcludeUpdateRgn(hdc: HDC; hwnd: HWND): SmallInt; external 'USER';
  669. function GetUpdateRect(hwnd: HWND; lprc: LPRECT; fErase: BOOL): BOOL; external 'USER';
  670. {$ifdef VAR_PARAMS_ARE_FAR}
  671. function GetUpdateRect(hwnd: HWND; var rc: RECT; fErase: BOOL): BOOL; external 'USER';
  672. {$endif}
  673. function GetUpdateRgn(hwnd: HWND; hrgn: HRGN; fErase: BOOL): SmallInt; external 'USER';
  674. procedure InvalidateRect(hwnd: HWND; lprc: LPRECT; fErase: BOOL); external 'USER';
  675. procedure ValidateRect(hwnd: HWND; lprc: LPRECT); external 'USER';
  676. procedure InvalidateRgn(hwnd: HWND; hrgn: HRGN; fErase: BOOL); external 'USER';
  677. procedure ValidateRgn(hwnd: HWND; hrgn: HRGN); external 'USER';
  678. { Window scrolling }
  679. procedure ScrollWindow(hwnd: HWND; dx, dy: SmallInt; lprcScroll, lprcClip: LPRECT); external 'USER';
  680. function ScrollDC(hdc: HDC; dx, dy: SmallInt; lprcScroll, lprcClip: LPRECT; hrgnUpdate: HRGN; lprcUpdate: LPRECT): BOOL; external 'USER';
  681. {$ifdef VAR_PARAMS_ARE_FAR}
  682. function ScrollDC(hdc: HDC; dx, dy: SmallInt; var rcScroll, rcClip: RECT; hrgnUpdate: HRGN; lprcUpdate: LPRECT): BOOL; external 'USER';
  683. {$endif}
  684. { Window activation }
  685. function SetActiveWindow(hwnd: HWND): HWND; external 'USER';
  686. function GetActiveWindow: HWND; external 'USER';
  687. function GetLastActivePopup(hwndOwner: HWND): HWND; external 'USER';
  688. { Keyboard input support }
  689. function SetFocus(hwnd: HWND): HWND; external 'USER';
  690. function GetFocus: HWND; external 'USER';
  691. function GetKeyState(vkey: SmallInt): SmallInt; external 'USER';
  692. function GetAsyncKeyState(vkey: SmallInt): SmallInt; external 'USER';
  693. procedure GetKeyboardState(lpbKeyState: LPBYTE); external 'USER';
  694. procedure SetKeyboardState(lpbKeyState: LPBYTE); external 'USER';
  695. {$ifdef VAR_PARAMS_ARE_FAR}
  696. procedure GetKeyboardState(var bKeyState: TKeyboardState); external 'USER';
  697. procedure SetKeyboardState(var bKeyState: TKeyboardState); external 'USER';
  698. {$endif}
  699. { Mouse input support }
  700. function SetCapture(hwnd: HWND): HWND; external 'USER';
  701. procedure ReleaseCapture; external 'USER';
  702. function GetCapture: HWND; external 'USER';
  703. function SwapMouseButton(fSwap: BOOL): BOOL; external 'USER';
  704. { System modal window support }
  705. function GetSysModalWindow: HWND; external 'USER';
  706. function SetSysModalWindow(hwnd: HWND): HWND; external 'USER';
  707. { Timer support }
  708. function SetTimer(hwnd: HWND; idTimer, uTimeout: UINT; tmprc: TIMERPROC): UINT; external 'USER';
  709. function SetTimer(hwnd: HWND; idTimer, uTimeout: UINT; tmprc: TFarProc): UINT; external 'USER';
  710. function KillTimer(hwnd: HWND; idTimer: UINT): BOOL; external 'USER';
  711. { Accelerator support }
  712. function LoadAccelerators(hinst: HINST; lpszTableName: LPCSTR): HACCEL; external 'USER';
  713. function TranslateAccelerator(hwnd: HWND; haccl: HACCEL; lpmsg: LPMSG): SmallInt; external 'USER';
  714. {$ifdef VAR_PARAMS_ARE_FAR}
  715. function TranslateAccelerator(hwnd: HWND; haccl: HACCEL; var msg: MSG): SmallInt; external 'USER';
  716. {$endif}
  717. { Menu support }
  718. function CreateMenu: HMENU; external 'USER';
  719. function CreatePopupMenu: HMENU; external 'USER';
  720. function LoadMenu(hinst: HINST; lpszMenuName: LPCSTR): HMENU; external 'USER';
  721. function LoadMenuIndirect(lpmith: LPVOID): HMENU; external 'USER';
  722. function DestroyMenu(hmenu: HMENU): BOOL; external 'USER';
  723. function GetMenu(hwnd: HWND): HMENU; external 'USER';
  724. function SetMenu(hwnd: HWND; hmenu: HMENU): BOOL; external 'USER';
  725. function GetSystemMenu(hwnd: HWND; fRevert: BOOL): HMENU; external 'USER';
  726. procedure DrawMenuBar(hwnd: HWND); external 'USER';
  727. function HiliteMenuItem(hwnd: HWND; hmenu: HMENU; idHiliteItem, fuHilite: UINT): BOOL; external 'USER';
  728. function InsertMenu(hmenu: HMENU; idItem, fuFlags, idNewItem: UINT; lpNewItem: LPCSTR): BOOL; external 'USER';
  729. function AppendMenu(hmenu: HMENU; fuFlags, idNewItem: UINT; lpNewItem: LPCSTR): BOOL; external 'USER';
  730. function ModifyMenu(hmenu: HMENU; idItem, fuFlags, idNewItem: UINT; lpNewItem: LPCSTR): BOOL; external 'USER';
  731. function RemoveMenu(hmenu: HMENU; idItem, fuFlags: UINT): BOOL; external 'USER';
  732. function DeleteMenu(hmenu: HMENU; idItem, fuFlags: UINT): BOOL; external 'USER';
  733. function ChangeMenu(hmenu: HMENU; uPosition: UINT; lpNewItem: LPCSTR; idNewItem, fuFlags: UINT): BOOL; external 'USER';
  734. function EnableMenuItem(hmenu: HMENU; idEnableItem, uEnable: UINT): BOOL; external 'USER';
  735. function CheckMenuItem(hmenu: HMENU; idCheckItem, uCheck: UINT): BOOL; external 'USER';
  736. function GetSubMenu(hmenu: HMENU; nPos: SmallInt): HMENU; external 'USER';
  737. function GetMenuItemCount(hmenu: HMENU): SmallInt; external 'USER';
  738. function GetMenuItemID(hmenu: HMENU; pos: SmallInt): UINT; external 'USER';
  739. function GetMenuString(hmenu: HMENU; idItem: UINT; lpsz: LPSTR; cbMax: SmallInt; fwFlags: UINT): SmallInt; external 'USER';
  740. function GetMenuState(hmenu: HMENU; idItem, fuFlags: UINT): UINT; external 'USER';
  741. function SetMenuItemBitmaps(hmenu: HMENU; idItem, fuFlags: UINT; hbmUnchecked, hbmChecked: HBITMAP): BOOL; external 'USER';
  742. function GetMenuCheckMarkDimensions: DWORD; external 'USER';
  743. function TrackPopupMenu(hmenu: HMENU; fuFlags: UINT; x, y, nReserved: SmallInt; hwnd: HWND; lprc: LPRECT): BOOL; external 'USER';
  744. { Scroll bar support }
  745. function SetScrollPos(hwnd: HWND; fnBar, nPos: SmallInt; fRepaint: BOOL): SmallInt; external 'USER';
  746. function GetScrollPos(hwnd: HWND; fnBar: SmallInt): SmallInt; external 'USER';
  747. procedure SetScrollRange(hwnd: HWND; fnBar, nMin, nMax: SmallInt; fRedraw: BOOL); external 'USER';
  748. procedure GetScrollRange(hwnd: HWND; fnBar: SmallInt; lpnMinPos, lpnMaxPos: LPINT); external 'USER';
  749. {$ifdef VAR_PARAMS_ARE_FAR}
  750. procedure GetScrollRange(hwnd: HWND; fnBar: SmallInt; var nMinPos, nMaxPos: SmallInt); external 'USER';
  751. {$endif}
  752. procedure ShowScrollBar(hwnd: HWND; fnBar: SmallInt; fShow: BOOL); external 'USER';
  753. { Clipboard manager }
  754. { Clipboard Manager Functions }
  755. function OpenClipboard(hwnd: HWND): BOOL; external 'USER';
  756. function CloseClipboard: BOOL; external 'USER';
  757. function EmptyClipboard: BOOL; external 'USER';
  758. function GetClipboardOwner: HWND; external 'USER';
  759. function SetClipboardViewer(hwnd: HWND): HWND; external 'USER';
  760. function GetClipboardViewer: HWND; external 'USER';
  761. function SetClipboardData(uFormat: UINT; hData: HANDLE): HANDLE; external 'USER';
  762. function GetClipboardData(uFormat: UINT): HANDLE; external 'USER';
  763. function IsClipboardFormatAvailable(uFormat: UINT): BOOL; external 'USER';
  764. function GetPriorityClipboardFormat(lpuPriorityList: LPUINT; cEntries: SmallInt): SmallInt; external 'USER';
  765. {$ifdef VAR_PARAMS_ARE_FAR}
  766. function GetPriorityClipboardFormat(var uPriorityList; cEntries: SmallInt): SmallInt; external 'USER';
  767. {$endif}
  768. function RegisterClipboardFormat(lpszFormatName: LPCSTR): UINT; external 'USER';
  769. function CountClipboardFormats: SmallInt; external 'USER';
  770. function EnumClipboardFormats(uFormat: UINT): UINT; external 'USER';
  771. function GetClipboardFormatName(uFormat: UINT; lpszFormatName: LPSTR; cbMax: SmallInt): SmallInt; external 'USER';
  772. function ChangeClipboardChain(hwnd, hwndNext: HWND): BOOL; external 'USER';
  773. { Mouse cursor support }
  774. function LoadCursor(hinst: HINST; pszCursor: LPCSTR): HCURSOR; external 'USER';
  775. function CreateCursor(hinst: HINST; xHotSpot, yHotSpot, nWidth, nHeight: SmallInt; lpvANDplane, lpvXORplane: LPVOID): HCURSOR; external 'USER';
  776. function DestroyCursor(hcur: HCURSOR): BOOL; external 'USER';
  777. function ShowCursor(fShow: BOOL): SmallInt; external 'USER';
  778. procedure SetCursorPos(x, y: SmallInt); external 'USER';
  779. procedure GetCursorPos(lppt: LPPOINT); external 'USER';
  780. {$ifdef VAR_PARAMS_ARE_FAR}
  781. procedure GetCursorPos(var pt: POINT); external 'USER';
  782. {$endif}
  783. function SetCursor(hcur: HCURSOR): HCURSOR; external 'USER';
  784. procedure ClipCursor(lprc: LPRECT); external 'USER';
  785. { Icon support }
  786. function LoadIcon(hinst: HINST; pszIcon: LPCSTR): HICON; external 'USER';
  787. function CreateIcon(hinst: HINST; nWidth, nHeight: SmallInt; bPlanes, bBitsPerPixel: BYTE; lpvANDbits, lpvXORbits: LPVOID): HICON; external 'USER';
  788. function DestroyIcon(hicon: HICON): BOOL; external 'USER';
  789. function DrawIcon(hdc: HDC; x, y: SmallInt; hicon: HICON): BOOL; external 'USER';
  790. { Message Box support }
  791. function MessageBox(hwndParent: HWND; lpszText, lpszTitle: LPCSTR; fuStyle: UINT): SmallInt; external 'USER';
  792. procedure MessageBeep(uAlert: UINT); external 'USER';
  793. { Caret support }
  794. procedure CreateCaret(hwnd: HWND; hbmp: HBITMAP; nWidth, nHeight: SmallInt); external 'USER';
  795. procedure DestroyCaret; external 'USER';
  796. procedure SetCaretPos(x, y: SmallInt); external 'USER';
  797. procedure GetCaretPos(lppt: LPPOINT); external 'USER';
  798. {$ifdef VAR_PARAMS_ARE_FAR}
  799. procedure GetCaretPos(var pt: POINT); external 'USER';
  800. {$endif}
  801. procedure HideCaret(hwnd: HWND); external 'USER';
  802. procedure ShowCaret(hwnd: HWND); external 'USER';
  803. function GetCaretBlinkTime: UINT; external 'USER';
  804. procedure SetCaretBlinkTime(uMSeconds: UINT); external 'USER';
  805. { MDI Support }
  806. function DefFrameProc(hwnd, hwndMDIClient: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'USER';
  807. function DefMDIChildProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'USER';
  808. function TranslateMDISysAccel(hwndClient: HWND; lpmsg: LPMSG): BOOL; external 'USER';
  809. {$ifdef VAR_PARAMS_ARE_FAR}
  810. function TranslateMDISysAccel(hwndClient: HWND; var msg: MSG): BOOL; external 'USER';
  811. {$endif}
  812. function ArrangeIconicWindows(hwnd: HWND): UINT; external 'USER';
  813. { Dialog and Control Management }
  814. function IsDialogMessage(hwndDlg: HWND; lpmsg: LPMSG): BOOL; external 'USER';
  815. {$ifdef VAR_PARAMS_ARE_FAR}
  816. function IsDialogMessage(hwndDlg: HWND; var msg: MSG): BOOL; external 'USER';
  817. {$endif}
  818. function DefDlgProc(hwndDlg: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'USER';
  819. function CreateDialog(hinst: HINST; lpszDlgTemp: LPCSTR; hwndOwner: HWND; dlgprc: DLGPROC): HWND; external 'USER';
  820. function CreateDialog(hinst: HINST; lpszDlgTemp: LPCSTR; hwndOwner: HWND; dlgprc: TFarProc): HWND; external 'USER';
  821. function CreateDialogIndirect(hinst: HINST; lpvDlgTmp: FarPointer; hwndOwner: HWND; dlgprc: DLGPROC): HWND; external 'USER';
  822. function CreateDialogIndirect(hinst: HINST; lpvDlgTmp: FarPointer; hwndOwner: HWND; dlgprc: TFarProc): HWND; external 'USER';
  823. function CreateDialogParam(hinst: HINST; lpszDlgTemp: LPCSTR; hwndOwner: HWND; dlgprc: DLGPROC; lParamInit: LPARAM): HWND; external 'USER';
  824. function CreateDialogParam(hinst: HINST; lpszDlgTemp: LPCSTR; hwndOwner: HWND; dlgprc: TFarProc; lParamInit: LPARAM): HWND; external 'USER';
  825. function CreateDialogIndirectParam(hinst: HINST; lpvDlgTmp: FarPointer; hwndOwner: HWND; dlgprc: DLGPROC; lParamInit: LPARAM): HWND; external 'USER';
  826. function CreateDialogIndirectParam(hinst: HINST; lpvDlgTmp: FarPointer; hwndOwner: HWND; dlgprc: TFarProc; lParamInit: LPARAM): HWND; external 'USER';
  827. function DialogBox(hinst: HINST; lpszDlgTemp: LPCSTR; hwndOwner: HWND; dlgprc: DLGPROC): SmallInt; external 'USER';
  828. function DialogBox(hinst: HINST; lpszDlgTemp: LPCSTR; hwndOwner: HWND; dlgprc: TFarProc): SmallInt; external 'USER';
  829. function DialogBoxIndirect(hinst: HINST; hglbDlgTemp: HGLOBAL; hwndOwner: HWND; dlgprc: DLGPROC): SmallInt; external 'USER';
  830. function DialogBoxIndirect(hinst: HINST; hglbDlgTemp: HGLOBAL; hwndOwner: HWND; dlgprc: TFarProc): SmallInt; external 'USER';
  831. function DialogBoxParam(hinst: HINST; lpszDlgTemp: LPCSTR; hwndOwner: HWND; dlgprc: DLGPROC; lParamInit: LPARAM): SmallInt; external 'USER';
  832. function DialogBoxParam(hinst: HINST; lpszDlgTemp: LPCSTR; hwndOwner: HWND; dlgprc: TFarProc; lParamInit: LPARAM): SmallInt; external 'USER';
  833. function DialogBoxIndirectParam(hinst: HINST; hglbDlgTemp: HGLOBAL; hwndOwner: HWND; dlgprc: DLGPROC; lParamInit: LPARAM): SmallInt; external 'USER';
  834. function DialogBoxIndirectParam(hinst: HINST; hglbDlgTemp: HGLOBAL; hwndOwner: HWND; dlgprc: TFarProc; lParamInit: LPARAM): SmallInt; external 'USER';
  835. procedure EndDialog(hwndDlg: HWND; nResult: SmallInt); external 'USER';
  836. function GetDlgCtrlID(hwnd: HWND): SmallInt; external 'USER';
  837. function GetDlgItem(hwndDlg: HWND; idControl: SmallInt): HWND; external 'USER';
  838. function SendDlgItemMessage(hwndDlg: HWND; idDlgItem: SmallInt; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'USER';
  839. procedure SetDlgItemInt(hwndDlg: HWND; idControl: SmallInt; uValue: UINT; fSigned: BOOL); external 'USER';
  840. function GetDlgItemInt(hwndDlg: HWND; idControl: SmallInt; lpfTranslated: LPBOOL; fSigned: BOOL): UINT; external 'USER';
  841. procedure SetDlgItemText(hwndDlg: HWND; idControl: SmallInt; lpsz: LPCSTR); external 'USER';
  842. function GetDlgItemText(hwndDlg: HWND; idControl: SmallInt; lpsz: LPSTR; cbMax: SmallInt): SmallInt; external 'USER';
  843. procedure CheckDlgButton(hwndDlg: HWND; idButton: SmallInt; uCheck: UINT); external 'USER';
  844. procedure CheckRadioButton(hwndDlg: HWND; idFirstButton, idLastButton, idCheckButton: SmallInt); external 'USER';
  845. function IsDlgButtonChecked(hwndDlg: HWND; idButton: SmallInt): UINT; external 'USER';
  846. function GetNextDlgGroupItem(hwndDlg, hwndCtrl: HWND; fPrevious: BOOL): HWND; external 'USER';
  847. function GetNextDlgTabItem(hwndDlg, hwndCtrl: HWND; fPrevious: BOOL): HWND; external 'USER';
  848. procedure MapDialogRect(hwndDlg: HWND; lprc: LPRECT); external 'USER';
  849. {$ifdef VAR_PARAMS_ARE_FAR}
  850. procedure MapDialogRect(hwndDlg: HWND; var rc: RECT); external 'USER';
  851. {$endif}
  852. function GetDialogBaseUnits: DWORD; external 'USER';
  853. { Dialog directory support }
  854. function DlgDirList(hwndDlg: HWND; lpszPath: LPSTR; idListBox, idStaticPath: SmallInt; uFileType: UINT): SmallInt; external 'USER';
  855. function DlgDirSelect(hwndDlg: HWND; lpszPath: LPSTR; idListBox: SmallInt): BOOL; external 'USER';
  856. function DlgDirListComboBox(hwndDlg: HWND; lpszPath: LPSTR; idComboBox, idStaticPath: SmallInt; uFileType: UINT): SmallInt; external 'USER';
  857. function DlgDirSelectComboBox(hwndDlg: HWND; lpszPath: LPSTR; idComboBox: SmallInt): BOOL; external 'USER';
  858. { Windows hook support }
  859. function SetWindowsHook(idHook: SmallInt; hkprc: HOOKPROC): HHOOK; external 'USER';
  860. function SetWindowsHook(idHook: SmallInt; hkprc: TFarProc): TFarProc; external 'USER';
  861. function DefHookProc(nCode: SmallInt; uParam: WPARAM; dwParam: LPARAM; lphhook: LPHHOOK): LRESULT; external 'USER';
  862. function DefHookProc(nCode: SmallInt; uParam: WPARAM; dwParam: LPARAM; lphhook: TFarProc): LRESULT; external 'USER';
  863. function UnhookWindowsHook(idHook: SmallInt; hkprc: HOOKPROC): BOOL; external 'USER';
  864. function UnhookWindowsHook(idHook: SmallInt; hkprc: TFarProc): BOOL; external 'USER';
  865. { Journalling support }
  866. function EnableHardwareInput(fEnableInput: BOOL): BOOL; external 'USER';
  867. { Help support }
  868. function WinHelp(hwndMain: HWND; lpszHelp: LPCSTR; usCommand: UINT; ulData: DWORD): BOOL; external 'USER';
  869. { Sound support }
  870. function OpenSound: SmallInt; external 'SOUND';
  871. procedure CloseSound; external 'SOUND';
  872. function StartSound: SmallInt; external 'SOUND';
  873. function StopSound: SmallInt; external 'SOUND';
  874. function SetVoiceQueueSize(nVoice, cbQueue: SmallInt): SmallInt; external 'SOUND';
  875. function SetVoiceNote(voice, value, length, cdots: SmallInt): SmallInt; external 'SOUND';
  876. function SetVoiceAccent(nVoice, nTempo, nVolume, fnMode, nPitch: SmallInt): SmallInt; external 'SOUND';
  877. function SetVoiceEnvelope(nVoice, nShape, nRepeat: SmallInt): SmallInt; external 'SOUND';
  878. function SetVoiceSound(nVoice: SmallInt; dwFrequency: DWORD; nDuration: SmallInt): SmallInt; external 'SOUND';
  879. function SetVoiceThreshold(voice, cNotesThreshold: SmallInt): SmallInt; external 'SOUND';
  880. function GetThresholdEvent: LPINT; external 'SOUND';
  881. function GetThresholdStatus: SmallInt; external 'SOUND';
  882. function SetSoundNoise(fnSource, nDuration: SmallInt): SmallInt; external 'SOUND';
  883. function WaitSoundState(fnState: SmallInt): SmallInt; external 'SOUND';
  884. function SyncAllVoices: SmallInt; external 'SOUND';
  885. function CountVoiceNotes(nvoice: SmallInt): SmallInt; external 'SOUND';
  886. { Comm support }
  887. function BuildCommDCB(lpszDef: LPCSTR; lpdcb: LPDCB): SmallInt; external 'USER';
  888. {$ifdef VAR_PARAMS_ARE_FAR}
  889. function BuildCommDCB(lpszDef: LPCSTR; var dcb: DCB): SmallInt; external 'USER';
  890. {$endif}
  891. function OpenComm(lpszDevControl: LPCSTR; cbInQueue, cbOutQueue: UINT): SmallInt; external 'USER';
  892. function CloseComm(idComDev: SmallInt): SmallInt; external 'USER';
  893. function ReadComm(idComDev: SmallInt; lpvBuf: FarPointer; cbRead: SmallInt): SmallInt; external 'USER';
  894. function ReadComm(idComDev: SmallInt; lpvBuf: PFarChar; cbRead: SmallInt): SmallInt; external 'USER';
  895. function WriteComm(idComDev: SmallInt; lpvBuf: FarPointer; cbWrite: SmallInt): SmallInt; external 'USER';
  896. function WriteComm(idComDev: SmallInt; lpvBuf: PFarChar; cbWrite: SmallInt): SmallInt; external 'USER';
  897. function UngetCommChar(idComDev: SmallInt; chUnget: AnsiChar): SmallInt; external 'USER';
  898. function FlushComm(idComDev, fnQueue: SmallInt): SmallInt; external 'USER';
  899. function TransmitCommChar(idComDev: SmallInt; chTransmit: AnsiChar): SmallInt; external 'USER';
  900. function SetCommState(lpdcb: LPDCB): SmallInt; external 'USER';
  901. function GetCommState(idComDev: SmallInt; lpdcb: LPDCB): SmallInt; external 'USER';
  902. function GetCommError(idComDev: SmallInt; lpStat: LPCOMSTAT): SmallInt; external 'USER';
  903. {$ifdef VAR_PARAMS_ARE_FAR}
  904. function SetCommState(var dcb: DCB): SmallInt; external 'USER';
  905. function GetCommState(idComDev: SmallInt; var dcb: DCB): SmallInt; external 'USER';
  906. function GetCommError(idComDev: SmallInt; var Stat: COMSTAT): SmallInt; external 'USER';
  907. {$endif}
  908. function SetCommBreak(idComDev: SmallInt): SmallInt; external 'USER';
  909. function ClearCommBreak(idComDev: SmallInt): SmallInt; external 'USER';
  910. function SetCommEventMask(idComDev: SmallInt; fuEvtMask: UINT): LPUINT; external 'USER';
  911. function GetCommEventMask(idComDev, fnEvtClear: SmallInt): UINT; external 'USER';
  912. function EscapeCommFunction(idComDev, nFunction: SmallInt): LONG; external 'USER';
  913. { String formatting support }
  914. function wvsprintf(lpszOut: LPSTR; lpszFmt: LPCSTR; lpParams: FarPointer): SmallInt; external 'USER';
  915. {$ifdef VAR_PARAMS_ARE_FAR}
  916. function wvsprintf(lpszOut: LPSTR; lpszFmt: LPCSTR; var Params): SmallInt; external 'USER';
  917. {$endif}
  918. {$ifndef SYSTEMUNIT}
  919. function wsprintf(lpszOut: LPSTR; lpszFmt: LPCSTR; etc: array of const): SmallInt; cdecl; external 'USER' name '_wsprintf';
  920. {$endif not SYSTEMUNIT}