winprocs.inc 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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;
  77. function PALETTERGB(cRed, cGreen, cBlue: BYTE): COLORREF;
  78. begin
  79. PALETTERGB := $02000000 or RGB(cRed, cGreen, cBlue);
  80. end;
  81. function PALETTEINDEX(wPaletteIndex: WORD): COLORREF;
  82. begin
  83. PALETTEINDEX := COLORREF(DWORD($01000000) or DWORD(wPaletteIndex));
  84. end;