WinDef.nsh 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. !ifndef __WIN_WINDEF__INC
  2. !define __WIN_WINDEF__INC
  3. !verbose push
  4. !verbose 3
  5. !ifndef __WIN_NOINC_WINDEF
  6. !ifndef MAX_PATH
  7. !define MAX_PATH 260
  8. !endif
  9. #define NULL 0
  10. !macro _Win_MINMAX _intcmp _j1 _j2 _outvar _a _b
  11. ${_intcmp} "${_a}" "${_b}" ${_j1} ${_j1} ${_j2}
  12. StrCpy ${_outvar} "${_a}"
  13. goto +2
  14. StrCpy ${_outvar} "${_b}"
  15. !macroend
  16. !ifndef __WIN_MS_NOMINMAX & min & max & min_u & max_u
  17. !define min "!insertmacro _Win_MINMAX IntCmp +1 +3 "
  18. !define max "!insertmacro _Win_MINMAX IntCmp +3 +1 "
  19. !define min_u "!insertmacro _Win_MINMAX IntCmpU +1 +3 "
  20. !define max_u "!insertmacro _Win_MINMAX IntCmpU +3 +1 "
  21. !endif
  22. !macro _Win_LOBYTE _outvar _in
  23. IntOp ${_outvar} "${_in}" & 0xFF
  24. !macroend
  25. !define LOBYTE "!insertmacro _Win_LOBYTE "
  26. !macro _Win_HIBYTE _outvar _in
  27. IntOp ${_outvar} "${_in}" >> 8
  28. ${LOBYTE} ${_outvar} ${_outvar}
  29. !macroend
  30. !define HIBYTE "!insertmacro _Win_HIBYTE "
  31. !macro _Win_LOWORD _outvar _in
  32. IntOp ${_outvar} "${_in}" & 0xFFFF
  33. !macroend
  34. !define LOWORD "!insertmacro _Win_LOWORD "
  35. !macro _Win_HIWORD _outvar _in
  36. IntOp ${outvar} "${_in}" >> 16 ;sign extended :(
  37. ${LOWORD} ${_outvar} ${outvar} ;make sure we strip off the upper word
  38. !macroend
  39. !define HIWORD "!insertmacro _Win_HIWORD "
  40. !macro _Win_MAKEWORD _outvar _tmpvar _lo _hi
  41. ${LOBYTE} ${_outvar} "${_hi}"
  42. ${LOBYTE} ${_tmpvar} "${_lo}"
  43. IntOp ${_outvar} ${_outvar} << 8
  44. IntOp ${_outvar} ${_outvar} | ${_tmpvar}
  45. !macroend
  46. !define MAKEWORD "!insertmacro _Win_MAKEWORD "
  47. !macro _Win_MAKELONG32 _outvar _tmpvar _wlo _whi
  48. ${LOWORD} ${_outvar} "${_wlo}"
  49. IntOp ${_tmpvar} "${_whi}" << 16
  50. IntOp ${_outvar} ${_outvar} | ${_tmpvar}
  51. !macroend
  52. !define MAKELONG "!insertmacro _Win_MAKELONG32 "
  53. !if "${__WIN_PTRSIZE}" <= 4
  54. !define MAKEWPARAM "${MAKELONG}"
  55. !define MAKELPARAM "${MAKELONG}"
  56. !define MAKELRESULT "${MAKELONG}"
  57. !else
  58. !error "Missing 64bit imp!"
  59. !endif
  60. !endif /* __WIN_NOINC_WINDEF */
  61. !verbose pop
  62. !endif /* __WIN_WINDEF__INC */