winprocs.inc 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. function LOBYTE(w: Word): Byte;
  2. begin
  3. LOBYTE := Byte(w);
  4. end;
  5. function HIBYTE(w: Word): Byte;
  6. begin
  7. HIBYTE := Byte(w shr 8);
  8. end;
  9. function LOWORD(l: LongInt): Word;
  10. begin
  11. LOWORD := Word(l);
  12. end;
  13. function HIWORD(l: LongInt): Word;
  14. begin
  15. HIWORD := Word(l shr 16);
  16. end;
  17. function MAKELONG(low, high: Word): LONG;
  18. begin
  19. MAKELONG := low or (LongInt(high) shl 16);
  20. end;
  21. function MAKELPARAM(low, high: Word): LPARAM;
  22. begin
  23. MAKELPARAM := MAKELONG(low, high);
  24. end;
  25. function MAKELRESULT(low, high: Word): LRESULT;
  26. begin
  27. MAKELRESULT := MAKELONG(low, high);
  28. end;
  29. function MAKELP(sel, off: Word): FarPointer;
  30. begin
  31. MAKELP := Ptr(sel, off);
  32. end;
  33. function SELECTOROF(lp: FarPointer): Word;
  34. begin
  35. SELECTOROF:=HIWORD(LongInt(lp));
  36. end;
  37. function OFFSETOF(lp: FarPointer): Word;
  38. begin
  39. OFFSETOF:=LOWORD(LongInt(lp));
  40. end;
  41. function GlobalDiscard(h: HGLOBAL): HGLOBAL;
  42. begin
  43. GlobalDiscard := GlobalReAlloc(h, 0, GMEM_MOVEABLE);
  44. end;
  45. function LockData(dummy: SmallInt): HGLOBAL;
  46. begin
  47. LockData := LockSegment(UINT(-1));
  48. end;
  49. procedure UnlockData(dummy: SmallInt);
  50. begin
  51. UnlockSegment(UINT(-1));
  52. end;
  53. function LocalDiscard(h: HLOCAL): HLOCAL;
  54. begin
  55. LocalDiscard := LocalReAlloc(h, 0, LMEM_MOVEABLE);
  56. end;
  57. function UnlockResource(hResData: HGLOBAL): BOOL;
  58. begin
  59. UnlockResource := GlobalUnlock(hResData);
  60. end;
  61. function RGB(cRed, cGreen, cBlue: BYTE): COLORREF;
  62. begin
  63. RGB := COLORREF(cRed or (WORD(cGreen) shl 8) or (DWORD(cBlue) shl 16));
  64. end;
  65. function GetRValue(rgb: DWORD): BYTE;
  66. begin
  67. GetRValue := Byte(rgb);
  68. end;
  69. function GetGValue(rgb: DWORD): BYTE;
  70. begin
  71. GetGValue := Byte((Word(rgb) shr 8));
  72. end;
  73. function GetBValue(rgb: DWORD): BYTE;
  74. begin
  75. GetBValue := Byte(rgb shr 16);
  76. end;