Browse Source

* winunits-jedi. Dependancy on winunits-base not work yet.
old winunits removed from base/

git-svn-id: trunk@9639 -

marco 17 years ago
parent
commit
df33165341
100 changed files with 1027 additions and 22182 deletions
  1. 231 239
      .gitattributes
  2. 3 50
      packages/base/Makefile
  3. 2 2
      packages/base/Makefile.fpc
  4. 0 3388
      packages/base/winunits/activex.pp
  5. 0 30
      packages/base/winunits/comconst.pp
  6. 0 12471
      packages/base/winunits/commctrl.pp
  7. 0 1060
      packages/base/winunits/comobj.pp
  8. 0 115
      packages/base/winunits/flatsb.pp
  9. 0 2702
      packages/base/winunits/mmsystem.pp
  10. 0 92
      packages/base/winunits/ole2.pp
  11. 0 205
      packages/base/winunits/oleserver.pp
  12. 0 632
      packages/base/winunits/richedit.pp
  13. 0 938
      packages/base/winunits/shellapi.pp
  14. 0 108
      packages/base/winunits/shfolder.pp
  15. 0 75
      packages/base/winunits/shlobj.pp
  16. 0 75
      packages/base/winunits/winver.pp
  17. 404 0
      packages/winunits-jedi/Makefile
  18. 72 0
      packages/winunits-jedi/Makefile.fpc
  19. 234 0
      packages/winunits-jedi/fpmake.inc
  20. 17 0
      packages/winunits-jedi/fpmake.pp
  21. 0 0
      packages/winunits-jedi/src/JwaVista.pas
  22. 0 0
      packages/winunits-jedi/src/JwaWinSta.pas
  23. 0 0
      packages/winunits-jedi/src/ModuleLoader.pas
  24. 64 0
      packages/winunits-jedi/src/buildjwa.pp
  25. 0 0
      packages/winunits-jedi/src/jedi.inc
  26. 0 0
      packages/winunits-jedi/src/jediapilib.inc
  27. 0 0
      packages/winunits-jedi/src/jwaObjsel.pas
  28. 0 0
      packages/winunits-jedi/src/jwaaccctrl.pas
  29. 0 0
      packages/winunits-jedi/src/jwaaclapi.pas
  30. 0 0
      packages/winunits-jedi/src/jwaaclui.pas
  31. 0 0
      packages/winunits-jedi/src/jwaactiveds.pas
  32. 0 0
      packages/winunits-jedi/src/jwaactivex.pas
  33. 0 0
      packages/winunits-jedi/src/jwaadsdb.pas
  34. 0 0
      packages/winunits-jedi/src/jwaadserr.pas
  35. 0 0
      packages/winunits-jedi/src/jwaadshlp.pas
  36. 0 0
      packages/winunits-jedi/src/jwaadsnms.pas
  37. 0 0
      packages/winunits-jedi/src/jwaadsprop.pas
  38. 0 0
      packages/winunits-jedi/src/jwaadssts.pas
  39. 0 0
      packages/winunits-jedi/src/jwaadstlb.pas
  40. 0 0
      packages/winunits-jedi/src/jwaadtgen.pas
  41. 0 0
      packages/winunits-jedi/src/jwaaf_irda.pas
  42. 0 0
      packages/winunits-jedi/src/jwaatalkwsh.pas
  43. 0 0
      packages/winunits-jedi/src/jwaauthif.pas
  44. 0 0
      packages/winunits-jedi/src/jwaauthz.pas
  45. 0 0
      packages/winunits-jedi/src/jwabatclass.pas
  46. 0 0
      packages/winunits-jedi/src/jwabits.pas
  47. 0 0
      packages/winunits-jedi/src/jwabits1_5.pas
  48. 0 0
      packages/winunits-jedi/src/jwabitscfg.pas
  49. 0 0
      packages/winunits-jedi/src/jwabitsmsg.pas
  50. 0 0
      packages/winunits-jedi/src/jwablberr.pas
  51. 0 0
      packages/winunits-jedi/src/jwabluetoothapis.pas
  52. 0 0
      packages/winunits-jedi/src/jwabthdef.pas
  53. 0 0
      packages/winunits-jedi/src/jwabthsdpdef.pas
  54. 0 0
      packages/winunits-jedi/src/jwabugcodes.pas
  55. 0 0
      packages/winunits-jedi/src/jwacarderr.pas
  56. 0 0
      packages/winunits-jedi/src/jwacderr.pas
  57. 0 0
      packages/winunits-jedi/src/jwacmnquery.pas
  58. 0 0
      packages/winunits-jedi/src/jwacolordlg.pas
  59. 0 0
      packages/winunits-jedi/src/jwacpl.pas
  60. 0 0
      packages/winunits-jedi/src/jwacplext.pas
  61. 0 0
      packages/winunits-jedi/src/jwacryptuiapi.pas
  62. 0 0
      packages/winunits-jedi/src/jwadbt.pas
  63. 0 0
      packages/winunits-jedi/src/jwadde.pas
  64. 0 0
      packages/winunits-jedi/src/jwadhcpcsdk.pas
  65. 0 0
      packages/winunits-jedi/src/jwadhcpsapi.pas
  66. 0 0
      packages/winunits-jedi/src/jwadhcpssdk.pas
  67. 0 0
      packages/winunits-jedi/src/jwadlgs.pas
  68. 0 0
      packages/winunits-jedi/src/jwadsadmin.pas
  69. 0 0
      packages/winunits-jedi/src/jwadsclient.pas
  70. 0 0
      packages/winunits-jedi/src/jwadsgetdc.pas
  71. 0 0
      packages/winunits-jedi/src/jwadskquota.pas
  72. 0 0
      packages/winunits-jedi/src/jwadsquery.pas
  73. 0 0
      packages/winunits-jedi/src/jwadsrole.pas
  74. 0 0
      packages/winunits-jedi/src/jwadssec.pas
  75. 0 0
      packages/winunits-jedi/src/jwaerrorrep.pas
  76. 0 0
      packages/winunits-jedi/src/jwaexcpt.pas
  77. 0 0
      packages/winunits-jedi/src/jwafaxdev.pas
  78. 0 0
      packages/winunits-jedi/src/jwafaxext.pas
  79. 0 0
      packages/winunits-jedi/src/jwafaxmmc.pas
  80. 0 0
      packages/winunits-jedi/src/jwafaxroute.pas
  81. 0 0
      packages/winunits-jedi/src/jwagpedit.pas
  82. 0 0
      packages/winunits-jedi/src/jwahherror.pas
  83. 0 0
      packages/winunits-jedi/src/jwahtmlGuid.pas
  84. 0 0
      packages/winunits-jedi/src/jwahtmlhelp.pas
  85. 0 0
      packages/winunits-jedi/src/jwaiaccess.pas
  86. 0 0
      packages/winunits-jedi/src/jwaiadmext.pas
  87. 0 0
      packages/winunits-jedi/src/jwaicmpapi.pas
  88. 0 0
      packages/winunits-jedi/src/jwaiiscnfg.pas
  89. 0 0
      packages/winunits-jedi/src/jwaimagehlp.pas
  90. 0 0
      packages/winunits-jedi/src/jwaimapi.pas
  91. 0 0
      packages/winunits-jedi/src/jwaimapierror.pas
  92. 0 0
      packages/winunits-jedi/src/jwaime.pas
  93. 0 0
      packages/winunits-jedi/src/jwaioevent.pas
  94. 0 0
      packages/winunits-jedi/src/jwaipexport.pas
  95. 0 0
      packages/winunits-jedi/src/jwaiphlpapi.pas
  96. 0 0
      packages/winunits-jedi/src/jwaipifcons.pas
  97. 0 0
      packages/winunits-jedi/src/jwaipinfoid.pas
  98. 0 0
      packages/winunits-jedi/src/jwaiprtrmib.pas
  99. 0 0
      packages/winunits-jedi/src/jwaiptypes.pas
  100. 0 0
      packages/winunits-jedi/src/jwaisguids.pas

+ 231 - 239
.gitattributes

@@ -1442,255 +1442,16 @@ packages/base/sqlite/sqlitedb.pas svneol=native#text/plain
 packages/base/sqlite/test.pas svneol=native#text/plain
 packages/base/sqlite/testapiv3x.README -text
 packages/base/sqlite/testapiv3x.pp -text
-packages/base/winunits/JwaVista.pas svneol=native#text/plain
-packages/base/winunits/JwaWinSta.pas svneol=native#text/plain
 packages/base/winunits/Makefile svneol=native#text/plain
 packages/base/winunits/Makefile.fpc svneol=native#text/plain
-packages/base/winunits/ModuleLoader.pas svneol=native#text/plain
-packages/base/winunits/activex.pp svneol=native#text/plain
 packages/base/winunits/buildjwa.pp svneol=native#text/plain
-packages/base/winunits/comconst.pp svneol=native#text/plain
-packages/base/winunits/commctrl.pp svneol=native#text/plain
-packages/base/winunits/comobj.pp svneol=native#text/plain
 packages/base/winunits/examples/OOHelper.pp svneol=native#text/plain
 packages/base/winunits/examples/OOTest.pp -text svneol=unset#text/plain
 packages/base/winunits/examples/testcom1.pp svneol=native#text/plain
 packages/base/winunits/examples/testcom2.pp svneol=native#text/plain
 packages/base/winunits/examples/testver.pp svneol=native#text/plain
-packages/base/winunits/flatsb.pp svneol=native#text/plain
 packages/base/winunits/fpmake.inc svneol=native#text/plain
 packages/base/winunits/fpmake.pp svneol=native#text/plain
-packages/base/winunits/jedi.inc svneol=native#text/plain
-packages/base/winunits/jediapilib.inc svneol=native#text/plain
-packages/base/winunits/jwaObjsel.pas svneol=native#text/plain
-packages/base/winunits/jwaaccctrl.pas svneol=native#text/plain
-packages/base/winunits/jwaaclapi.pas svneol=native#text/plain
-packages/base/winunits/jwaaclui.pas svneol=native#text/plain
-packages/base/winunits/jwaactiveds.pas svneol=native#text/plain
-packages/base/winunits/jwaactivex.pas svneol=native#text/plain
-packages/base/winunits/jwaadsdb.pas svneol=native#text/plain
-packages/base/winunits/jwaadserr.pas svneol=native#text/plain
-packages/base/winunits/jwaadshlp.pas svneol=native#text/plain
-packages/base/winunits/jwaadsnms.pas svneol=native#text/plain
-packages/base/winunits/jwaadsprop.pas svneol=native#text/plain
-packages/base/winunits/jwaadssts.pas svneol=native#text/plain
-packages/base/winunits/jwaadstlb.pas svneol=native#text/plain
-packages/base/winunits/jwaadtgen.pas svneol=native#text/plain
-packages/base/winunits/jwaaf_irda.pas svneol=native#text/plain
-packages/base/winunits/jwaatalkwsh.pas svneol=native#text/plain
-packages/base/winunits/jwaauthif.pas svneol=native#text/plain
-packages/base/winunits/jwaauthz.pas svneol=native#text/plain
-packages/base/winunits/jwabatclass.pas svneol=native#text/plain
-packages/base/winunits/jwabits.pas svneol=native#text/plain
-packages/base/winunits/jwabits1_5.pas svneol=native#text/plain
-packages/base/winunits/jwabitscfg.pas svneol=native#text/plain
-packages/base/winunits/jwabitsmsg.pas svneol=native#text/plain
-packages/base/winunits/jwablberr.pas svneol=native#text/plain
-packages/base/winunits/jwabluetoothapis.pas svneol=native#text/plain
-packages/base/winunits/jwabthdef.pas svneol=native#text/plain
-packages/base/winunits/jwabthsdpdef.pas svneol=native#text/plain
-packages/base/winunits/jwabugcodes.pas svneol=native#text/plain
-packages/base/winunits/jwacarderr.pas svneol=native#text/plain
-packages/base/winunits/jwacderr.pas svneol=native#text/plain
-packages/base/winunits/jwacmnquery.pas svneol=native#text/plain
-packages/base/winunits/jwacolordlg.pas svneol=native#text/plain
-packages/base/winunits/jwacpl.pas svneol=native#text/plain
-packages/base/winunits/jwacplext.pas svneol=native#text/plain
-packages/base/winunits/jwacryptuiapi.pas svneol=native#text/plain
-packages/base/winunits/jwadbt.pas svneol=native#text/plain
-packages/base/winunits/jwadde.pas svneol=native#text/plain
-packages/base/winunits/jwadhcpcsdk.pas svneol=native#text/plain
-packages/base/winunits/jwadhcpsapi.pas svneol=native#text/plain
-packages/base/winunits/jwadhcpssdk.pas svneol=native#text/plain
-packages/base/winunits/jwadlgs.pas svneol=native#text/plain
-packages/base/winunits/jwadsadmin.pas svneol=native#text/plain
-packages/base/winunits/jwadsclient.pas svneol=native#text/plain
-packages/base/winunits/jwadsgetdc.pas svneol=native#text/plain
-packages/base/winunits/jwadskquota.pas svneol=native#text/plain
-packages/base/winunits/jwadsquery.pas svneol=native#text/plain
-packages/base/winunits/jwadsrole.pas svneol=native#text/plain
-packages/base/winunits/jwadssec.pas svneol=native#text/plain
-packages/base/winunits/jwaerrorrep.pas svneol=native#text/plain
-packages/base/winunits/jwaexcpt.pas svneol=native#text/plain
-packages/base/winunits/jwafaxdev.pas svneol=native#text/plain
-packages/base/winunits/jwafaxext.pas svneol=native#text/plain
-packages/base/winunits/jwafaxmmc.pas svneol=native#text/plain
-packages/base/winunits/jwafaxroute.pas svneol=native#text/plain
-packages/base/winunits/jwagpedit.pas svneol=native#text/plain
-packages/base/winunits/jwahherror.pas svneol=native#text/plain
-packages/base/winunits/jwahtmlGuid.pas svneol=native#text/plain
-packages/base/winunits/jwahtmlhelp.pas svneol=native#text/plain
-packages/base/winunits/jwaiaccess.pas svneol=native#text/plain
-packages/base/winunits/jwaiadmext.pas svneol=native#text/plain
-packages/base/winunits/jwaicmpapi.pas svneol=native#text/plain
-packages/base/winunits/jwaiiscnfg.pas svneol=native#text/plain
-packages/base/winunits/jwaimagehlp.pas svneol=native#text/plain
-packages/base/winunits/jwaimapi.pas svneol=native#text/plain
-packages/base/winunits/jwaimapierror.pas svneol=native#text/plain
-packages/base/winunits/jwaime.pas svneol=native#text/plain
-packages/base/winunits/jwaioevent.pas svneol=native#text/plain
-packages/base/winunits/jwaipexport.pas svneol=native#text/plain
-packages/base/winunits/jwaiphlpapi.pas svneol=native#text/plain
-packages/base/winunits/jwaipifcons.pas svneol=native#text/plain
-packages/base/winunits/jwaipinfoid.pas svneol=native#text/plain
-packages/base/winunits/jwaiprtrmib.pas svneol=native#text/plain
-packages/base/winunits/jwaiptypes.pas svneol=native#text/plain
-packages/base/winunits/jwaisguids.pas svneol=native#text/plain
-packages/base/winunits/jwaissper16.pas svneol=native#text/plain
-packages/base/winunits/jwalm.pas svneol=native#text/plain
-packages/base/winunits/jwalmaccess.pas svneol=native#text/plain
-packages/base/winunits/jwalmalert.pas svneol=native#text/plain
-packages/base/winunits/jwalmapibuf.pas svneol=native#text/plain
-packages/base/winunits/jwalmat.pas svneol=native#text/plain
-packages/base/winunits/jwalmaudit.pas svneol=native#text/plain
-packages/base/winunits/jwalmconfig.pas svneol=native#text/plain
-packages/base/winunits/jwalmcons.pas svneol=native#text/plain
-packages/base/winunits/jwalmdfs.pas svneol=native#text/plain
-packages/base/winunits/jwalmerr.pas svneol=native#text/plain
-packages/base/winunits/jwalmerrlog.pas svneol=native#text/plain
-packages/base/winunits/jwalmjoin.pas svneol=native#text/plain
-packages/base/winunits/jwalmmsg.pas svneol=native#text/plain
-packages/base/winunits/jwalmremutl.pas svneol=native#text/plain
-packages/base/winunits/jwalmrepl.pas svneol=native#text/plain
-packages/base/winunits/jwalmserver.pas svneol=native#text/plain
-packages/base/winunits/jwalmshare.pas svneol=native#text/plain
-packages/base/winunits/jwalmsname.pas svneol=native#text/plain
-packages/base/winunits/jwalmstats.pas svneol=native#text/plain
-packages/base/winunits/jwalmsvc.pas svneol=native#text/plain
-packages/base/winunits/jwalmuse.pas svneol=native#text/plain
-packages/base/winunits/jwalmuseflg.pas svneol=native#text/plain
-packages/base/winunits/jwalmwksta.pas svneol=native#text/plain
-packages/base/winunits/jwaloadperf.pas svneol=native#text/plain
-packages/base/winunits/jwalpmapi.pas svneol=native#text/plain
-packages/base/winunits/jwamciavi.pas svneol=native#text/plain
-packages/base/winunits/jwamprerror.pas svneol=native#text/plain
-packages/base/winunits/jwamsi.pas svneol=native#text/plain
-packages/base/winunits/jwamsidefs.pas svneol=native#text/plain
-packages/base/winunits/jwamsiquery.pas svneol=native#text/plain
-packages/base/winunits/jwamstask.pas svneol=native#text/plain
-packages/base/winunits/jwamstcpip.pas svneol=native#text/plain
-packages/base/winunits/jwamswsock.pas svneol=native#text/plain
-packages/base/winunits/jwanative.pas svneol=native#text/plain
-packages/base/winunits/jwanb30.pas svneol=native#text/plain
-packages/base/winunits/jwanetsh.pas svneol=native#text/plain
-packages/base/winunits/jwanspapi.pas svneol=native#text/plain
-packages/base/winunits/jwantddpar.pas svneol=native#text/plain
-packages/base/winunits/jwantdsapi.pas svneol=native#text/plain
-packages/base/winunits/jwantdsbcli.pas svneol=native#text/plain
-packages/base/winunits/jwantdsbmsg.pas svneol=native#text/plain
-packages/base/winunits/jwantldap.pas svneol=native#text/plain
-packages/base/winunits/jwantquery.pas svneol=native#text/plain
-packages/base/winunits/jwantsecapi.pas svneol=native#text/plain
-packages/base/winunits/jwantstatus.pas svneol=native#text/plain
-packages/base/winunits/jwapatchapi.pas svneol=native#text/plain
-packages/base/winunits/jwapatchwiz.pas svneol=native#text/plain
-packages/base/winunits/jwapbt.pas svneol=native#text/plain
-packages/base/winunits/jwapdh.pas svneol=native#text/plain
-packages/base/winunits/jwapdhmsg.pas svneol=native#text/plain
-packages/base/winunits/jwapowrprof.pas svneol=native#text/plain
-packages/base/winunits/jwaprofinfo.pas svneol=native#text/plain
-packages/base/winunits/jwaprotocol.pas svneol=native#text/plain
-packages/base/winunits/jwaprsht.pas svneol=native#text/plain
-packages/base/winunits/jwapsapi.pas svneol=native#text/plain
-packages/base/winunits/jwaqos.pas svneol=native#text/plain
-packages/base/winunits/jwaqosname.pas svneol=native#text/plain
-packages/base/winunits/jwaqospol.pas svneol=native#text/plain
-packages/base/winunits/jwaqossp.pas svneol=native#text/plain
-packages/base/winunits/jwareason.pas svneol=native#text/plain
-packages/base/winunits/jwaregstr.pas svneol=native#text/plain
-packages/base/winunits/jwarpc.pas svneol=native#text/plain
-packages/base/winunits/jwarpcasync.pas svneol=native#text/plain
-packages/base/winunits/jwarpcdce.pas svneol=native#text/plain
-packages/base/winunits/jwarpcnsi.pas svneol=native#text/plain
-packages/base/winunits/jwarpcnterr.pas svneol=native#text/plain
-packages/base/winunits/jwarpcssl.pas svneol=native#text/plain
-packages/base/winunits/jwascesvc.pas svneol=native#text/plain
-packages/base/winunits/jwaschedule.pas svneol=native#text/plain
-packages/base/winunits/jwaschemadef.pas svneol=native#text/plain
-packages/base/winunits/jwasddl.pas svneol=native#text/plain
-packages/base/winunits/jwasecext.pas svneol=native#text/plain
-packages/base/winunits/jwasecurity.pas svneol=native#text/plain
-packages/base/winunits/jwasens.pas svneol=native#text/plain
-packages/base/winunits/jwasensapi.pas svneol=native#text/plain
-packages/base/winunits/jwasensevts.pas svneol=native#text/plain
-packages/base/winunits/jwasfc.pas svneol=native#text/plain
-packages/base/winunits/jwashlguid.pas svneol=native#text/plain
-packages/base/winunits/jwasisbkup.pas svneol=native#text/plain
-packages/base/winunits/jwasnmp.pas svneol=native#text/plain
-packages/base/winunits/jwasporder.pas svneol=native#text/plain
-packages/base/winunits/jwasrrestoreptapi.pas svneol=native#text/plain
-packages/base/winunits/jwasspi.pas svneol=native#text/plain
-packages/base/winunits/jwasubauth.pas svneol=native#text/plain
-packages/base/winunits/jwasvcguid.pas svneol=native#text/plain
-packages/base/winunits/jwatlhelp32.pas svneol=native#text/plain
-packages/base/winunits/jwatmschema.pas svneol=native#text/plain
-packages/base/winunits/jwatraffic.pas svneol=native#text/plain
-packages/base/winunits/jwauserenv.pas svneol=native#text/plain
-packages/base/winunits/jwauxtheme.pas svneol=native#text/plain
-packages/base/winunits/jwawbemcli.pas svneol=native#text/plain
-packages/base/winunits/jwawinable.pas svneol=native#text/plain
-packages/base/winunits/jwawinbase.pas svneol=native#text/plain
-packages/base/winunits/jwawinber.pas svneol=native#text/plain
-packages/base/winunits/jwawincon.pas svneol=native#text/plain
-packages/base/winunits/jwawincpl.pas svneol=native#text/plain
-packages/base/winunits/jwawincred.pas svneol=native#text/plain
-packages/base/winunits/jwawincrypt.pas svneol=native#text/plain
-packages/base/winunits/jwawindllnames.pas svneol=native#text/plain
-packages/base/winunits/jwawindns.pas svneol=native#text/plain
-packages/base/winunits/jwawindows.pas svneol=native#text/plain
-packages/base/winunits/jwawinefs.pas svneol=native#text/plain
-packages/base/winunits/jwawinerror.pas svneol=native#text/plain
-packages/base/winunits/jwawinfax.pas svneol=native#text/plain
-packages/base/winunits/jwawingdi.pas svneol=native#text/plain
-packages/base/winunits/jwawinioctl.pas svneol=native#text/plain
-packages/base/winunits/jwawinldap.pas svneol=native#text/plain
-packages/base/winunits/jwawinnetwk.pas svneol=native#text/plain
-packages/base/winunits/jwawinnls.pas svneol=native#text/plain
-packages/base/winunits/jwawinnt.pas svneol=native#text/plain
-packages/base/winunits/jwawinperf.pas svneol=native#text/plain
-packages/base/winunits/jwawinreg.pas svneol=native#text/plain
-packages/base/winunits/jwawinresrc.pas svneol=native#text/plain
-packages/base/winunits/jwawinsafer.pas svneol=native#text/plain
-packages/base/winunits/jwawinsock.pas svneol=native#text/plain
-packages/base/winunits/jwawinsock2.pas svneol=native#text/plain
-packages/base/winunits/jwawinsvc.pas svneol=native#text/plain
-packages/base/winunits/jwawinternl.pas svneol=native#text/plain
-packages/base/winunits/jwawintype.pas svneol=native#text/plain
-packages/base/winunits/jwawinuser.pas svneol=native#text/plain
-packages/base/winunits/jwawinver.pas svneol=native#text/plain
-packages/base/winunits/jwawinwlx.pas svneol=native#text/plain
-packages/base/winunits/jwawmistr.pas svneol=native#text/plain
-packages/base/winunits/jwawownt16.pas svneol=native#text/plain
-packages/base/winunits/jwawownt32.pas svneol=native#text/plain
-packages/base/winunits/jwawpapi.pas svneol=native#text/plain
-packages/base/winunits/jwawpapimsg.pas svneol=native#text/plain
-packages/base/winunits/jwawpcrsmsg.pas svneol=native#text/plain
-packages/base/winunits/jwawpftpmsg.pas svneol=native#text/plain
-packages/base/winunits/jwawppstmsg.pas svneol=native#text/plain
-packages/base/winunits/jwawpspihlp.pas svneol=native#text/plain
-packages/base/winunits/jwawptypes.pas svneol=native#text/plain
-packages/base/winunits/jwawpwizmsg.pas svneol=native#text/plain
-packages/base/winunits/jwaws2atm.pas svneol=native#text/plain
-packages/base/winunits/jwaws2bth.pas svneol=native#text/plain
-packages/base/winunits/jwaws2dnet.pas svneol=native#text/plain
-packages/base/winunits/jwaws2spi.pas svneol=native#text/plain
-packages/base/winunits/jwaws2tcpip.pas svneol=native#text/plain
-packages/base/winunits/jwawshisotp.pas svneol=native#text/plain
-packages/base/winunits/jwawsipx.pas svneol=native#text/plain
-packages/base/winunits/jwawsnetbs.pas svneol=native#text/plain
-packages/base/winunits/jwawsnwlink.pas svneol=native#text/plain
-packages/base/winunits/jwawsrm.pas svneol=native#text/plain
-packages/base/winunits/jwawsvns.pas svneol=native#text/plain
-packages/base/winunits/jwawtsapi32.pas svneol=native#text/plain
-packages/base/winunits/jwazmouse.pas svneol=native#text/plain
-packages/base/winunits/mmsystem.pp svneol=native#text/plain
-packages/base/winunits/ole2.pp svneol=native#text/plain
-packages/base/winunits/oleserver.pp svneol=native#text/plain
-packages/base/winunits/richedit.pp -text
-packages/base/winunits/shellapi.pp svneol=native#text/plain
-packages/base/winunits/shfolder.pp svneol=native#text/plain
-packages/base/winunits/shlobj.pp svneol=native#text/plain
-packages/base/winunits/winver.pp svneol=native#text/plain
 packages/extra/Makefile svneol=native#text/plain
 packages/extra/Makefile.fpc svneol=native#text/plain
 packages/extra/a52/Makefile svneol=native#text/plain
@@ -4562,6 +4323,237 @@ packages/winunits-base/src/shellapi.pp svneol=native#text/plain
 packages/winunits-base/src/shfolder.pp svneol=native#text/plain
 packages/winunits-base/src/shlobj.pp svneol=native#text/plain
 packages/winunits-base/src/winver.pp svneol=native#text/plain
+packages/winunits-jedi/Makefile svneol=native#text/plain
+packages/winunits-jedi/Makefile.fpc svneol=native#text/plain
+packages/winunits-jedi/fpmake.inc svneol=native#text/plain
+packages/winunits-jedi/fpmake.pp svneol=native#text/plain
+packages/winunits-jedi/src/JwaVista.pas svneol=native#text/plain
+packages/winunits-jedi/src/JwaWinSta.pas svneol=native#text/plain
+packages/winunits-jedi/src/ModuleLoader.pas svneol=native#text/plain
+packages/winunits-jedi/src/buildjwa.pp svneol=native#text/plain
+packages/winunits-jedi/src/jedi.inc svneol=native#text/plain
+packages/winunits-jedi/src/jediapilib.inc svneol=native#text/plain
+packages/winunits-jedi/src/jwaObjsel.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaaccctrl.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaaclapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaaclui.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaactiveds.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaactivex.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaadsdb.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaadserr.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaadshlp.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaadsnms.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaadsprop.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaadssts.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaadstlb.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaadtgen.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaaf_irda.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaatalkwsh.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaauthif.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaauthz.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwabatclass.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwabits.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwabits1_5.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwabitscfg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwabitsmsg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwablberr.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwabluetoothapis.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwabthdef.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwabthsdpdef.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwabugcodes.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwacarderr.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwacderr.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwacmnquery.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwacolordlg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwacpl.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwacplext.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwacryptuiapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadbt.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadde.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadhcpcsdk.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadhcpsapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadhcpssdk.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadlgs.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadsadmin.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadsclient.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadsgetdc.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadskquota.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadsquery.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadsrole.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwadssec.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaerrorrep.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaexcpt.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwafaxdev.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwafaxext.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwafaxmmc.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwafaxroute.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwagpedit.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwahherror.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwahtmlGuid.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwahtmlhelp.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaiaccess.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaiadmext.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaicmpapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaiiscnfg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaimagehlp.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaimapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaimapierror.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaime.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaioevent.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaipexport.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaiphlpapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaipifcons.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaipinfoid.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaiprtrmib.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaiptypes.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaisguids.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaissper16.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalm.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmaccess.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmalert.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmapibuf.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmat.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmaudit.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmconfig.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmcons.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmdfs.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmerr.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmerrlog.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmjoin.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmmsg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmremutl.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmrepl.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmserver.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmshare.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmsname.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmstats.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmsvc.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmuse.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmuseflg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalmwksta.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaloadperf.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwalpmapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwamciavi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwamprerror.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwamsi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwamsidefs.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwamsiquery.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwamstask.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwamstcpip.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwamswsock.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwanative.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwanb30.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwanetsh.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwanspapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwantddpar.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwantdsapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwantdsbcli.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwantdsbmsg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwantldap.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwantquery.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwantsecapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwantstatus.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwapatchapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwapatchwiz.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwapbt.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwapdh.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwapdhmsg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwapowrprof.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaprofinfo.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaprotocol.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaprsht.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwapsapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaqos.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaqosname.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaqospol.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaqossp.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwareason.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaregstr.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwarpc.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwarpcasync.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwarpcdce.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwarpcnsi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwarpcnterr.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwarpcssl.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwascesvc.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaschedule.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaschemadef.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasddl.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasecext.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasecurity.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasens.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasensapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasensevts.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasfc.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwashlguid.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasisbkup.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasnmp.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasporder.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasrrestoreptapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasspi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasubauth.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwasvcguid.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwatlhelp32.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwatmschema.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwatraffic.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwauserenv.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwauxtheme.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawbemcli.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinable.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinbase.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinber.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawincon.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawincpl.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawincred.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawincrypt.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawindllnames.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawindns.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawindows.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinefs.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinerror.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinfax.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawingdi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinioctl.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinldap.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinnetwk.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinnls.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinnt.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinperf.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinreg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinresrc.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinsafer.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinsock.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinsock2.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinsvc.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinternl.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawintype.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinuser.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinver.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawinwlx.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawmistr.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawownt16.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawownt32.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawpapi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawpapimsg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawpcrsmsg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawpftpmsg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawppstmsg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawpspihlp.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawptypes.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawpwizmsg.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaws2atm.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaws2bth.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaws2dnet.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaws2spi.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwaws2tcpip.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawshisotp.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawsipx.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawsnetbs.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawsnwlink.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawsrm.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawsvns.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwawtsapi32.pas svneol=native#text/plain
+packages/winunits-jedi/src/jwazmouse.pas svneol=native#text/plain
 rtl/COPYING -text
 rtl/COPYING.FPC -text
 rtl/Makefile svneol=native#text/plain

+ 3 - 50
packages/base/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/08]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/01/05]
 #
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
@@ -247,7 +247,7 @@ ifeq ($(FULL_TARGET),i386-go32v2)
 override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase odbc sqlite postgres oracle imagemagick httpd winunits
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase odbc sqlite postgres oracle imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 override TARGET_DIRS+=pasjpeg regexpr netdb
@@ -364,7 +364,7 @@ ifeq ($(FULL_TARGET),x86_64-darwin)
 override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase odbc sqlite postgres oracle winunits
+override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase odbc sqlite postgres oracle
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 override TARGET_DIRS+=pasjpeg regexpr netdb
@@ -1514,7 +1514,6 @@ TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_ORACLE=1
 TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
-TARGET_DIRS_WINUNITS=1
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 TARGET_DIRS_PASJPEG=1
@@ -1894,7 +1893,6 @@ TARGET_DIRS_ODBC=1
 TARGET_DIRS_SQLITE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_ORACLE=1
-TARGET_DIRS_WINUNITS=1
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 TARGET_DIRS_PASJPEG=1
@@ -2660,51 +2658,6 @@ libc:
 	$(MAKE) -C libc all
 .PHONY: libc_all libc_debug libc_smart libc_release libc_units libc_examples libc_shared libc_install libc_sourceinstall libc_exampleinstall libc_distinstall libc_zipinstall libc_zipsourceinstall libc_zipexampleinstall libc_zipdistinstall libc_clean libc_distclean libc_cleanall libc_info libc_makefiles libc
 endif
-ifdef TARGET_DIRS_WINUNITS
-winunits_all:
-	$(MAKE) -C winunits all
-winunits_debug:
-	$(MAKE) -C winunits debug
-winunits_smart:
-	$(MAKE) -C winunits smart
-winunits_release:
-	$(MAKE) -C winunits release
-winunits_units:
-	$(MAKE) -C winunits units
-winunits_examples:
-	$(MAKE) -C winunits examples
-winunits_shared:
-	$(MAKE) -C winunits shared
-winunits_install:
-	$(MAKE) -C winunits install
-winunits_sourceinstall:
-	$(MAKE) -C winunits sourceinstall
-winunits_exampleinstall:
-	$(MAKE) -C winunits exampleinstall
-winunits_distinstall:
-	$(MAKE) -C winunits distinstall
-winunits_zipinstall:
-	$(MAKE) -C winunits zipinstall
-winunits_zipsourceinstall:
-	$(MAKE) -C winunits zipsourceinstall
-winunits_zipexampleinstall:
-	$(MAKE) -C winunits zipexampleinstall
-winunits_zipdistinstall:
-	$(MAKE) -C winunits zipdistinstall
-winunits_clean:
-	$(MAKE) -C winunits clean
-winunits_distclean:
-	$(MAKE) -C winunits distclean
-winunits_cleanall:
-	$(MAKE) -C winunits cleanall
-winunits_info:
-	$(MAKE) -C winunits info
-winunits_makefiles:
-	$(MAKE) -C winunits makefiles
-winunits:
-	$(MAKE) -C winunits all
-.PHONY: winunits_all winunits_debug winunits_smart winunits_release winunits_units winunits_examples winunits_shared winunits_install winunits_sourceinstall winunits_exampleinstall winunits_distinstall winunits_zipinstall winunits_zipsourceinstall winunits_zipexampleinstall winunits_zipdistinstall winunits_clean winunits_distclean winunits_cleanall winunits_info winunits_makefiles winunits
-endif
 all: $(addsuffix _all,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))

+ 2 - 2
packages/base/Makefile.fpc

@@ -6,8 +6,8 @@
 dirs=pasjpeg regexpr netdb
 dirs_i386_linux=libc
 dirs_linux=gdbint mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
-dirs_win32=gdbint mysql ibase odbc sqlite postgres oracle imagemagick httpd winunits
-dirs_win64=mysql ibase odbc sqlite postgres oracle winunits
+dirs_win32=gdbint mysql ibase odbc sqlite postgres oracle imagemagick httpd 
+dirs_win64=mysql ibase odbc sqlite postgres oracle 
 dirs_wince=ibase sqlite postgres
 dirs_go32v2=gdbint
 dirs_netbsd=gdbint mysql ibase postgres oracle odbc imagemagick httpd

+ 0 - 3388
packages/base/winunits/activex.pp

@@ -1,3388 +0,0 @@
-Unit ActiveX;
-
-//+-------------------------------------------------------------------------
-//
-//  Microsoft Windows
-//  Copyright (c) Microsoft Corporation. All rights reserved.
-//
-//  File: objidl.idl
-//
-//  Header translation by Marco van de Voort for Free Pascal Platform
-//  SDK dl'ed January 2002
-//
-//--------------------------------------------------------------------------
-
-{$Mode objfpc}
-
-{$ifndef NO_SMART_LINK}
-{$smartlink on}
-{$endif}
-
-Interface
-
-Uses variants,Windows,ctypes,types;
-
-
-type
-{ extra types }
-   TOleChar = Types.TOleChar;
-   POleStr = Types.POleStr;
-   PPOleStr = Types.PPOleStr;
-   TBStr = POleStr;
-   PBStr = ^TBStr;
-   TOleEnum = type LongWord;
-   LargeInt = Types.LargeInt;
-   LargeUInt = Types.LargeUInt;
-   PLargeInt = Types.PLargeInt;
-   PLargeUInt = Types.PLargeUInt;
-
-{Glue types, should be linked to the proper windows unit types}
-TYPE
-     Size_t              = DWord;       {??, probably, like Unix, typecastable to pointer?!?}
-     OleChar             = WChar;
-     LPOLESTR            = ^OLECHAR;
-
-CONST 
-   GUID_NULL  : TGUID =  '{00000000-0000-0000-0000-000000000000}';
-
-     // bit flags for IExternalConnection
-CONST
-    EXTCONN_STRONG              = $0001;   // strong connection
-    EXTCONN_WEAK                = $0002;  // weak connection (table, container)
-    EXTCONN_CALLABLE            = $0004;  // table .vs. callable
-     {Bind Flags}
-    BIND_MAYBOTHERUSER          = 1;
-    BIND_JUSTTESTEXISTENCE      = 2;
-
-
-    MKSYS_NONE                  = 0;
-    MKSYS_GENERICCOMPOSITE      = 1;
-    MKSYS_FILEMONIKER           = 2;
-    MKSYS_ANTIMONIKER           = 3;
-    MKSYS_ITEMMONIKER           = 4;
-    MKSYS_POINTERMONIKER        = 5;
-//  MKSYS_URLMONIKER            = 6;
-    MKSYS_CLASSMONIKER          = 7;
-    MKSYS_OBJREFMONIKER         = 8;
-    MKSYS_SESSIONMONIKER        = 9;
-
-    // system moniker types; returned from IsSystemMoniker.
-
-    MKRREDUCE_ONE               = 3 SHL 16;
-    MKRREDUCE_TOUSER            = 2 SHL 16;
-    MKRREDUCE_THROUGHUSER       = 1 SHL 16;
-    MKRREDUCE_ALL               = 0;
-
-    // Storage element types
-    STGTY_STORAGE               = 1;
-    STGTY_STREAM                = 2;
-    STGTY_LOCKBYTES             = 3;
-    STGTY_PROPERTY              = 4;
-
-    STREAM_SEEK_SET             = 0;
-    STREAM_SEEK_CUR             = 1;
-    STREAM_SEEK_END             = 2;
-
-    LOCK_WRITE                  = 1;
-    LOCK_EXCLUSIVE              = 2;
-    LOCK_ONLYONCE               = 4;
-
-    //Advise Flags
-    ADVF_NODATA                 = 1;
-    ADVF_PRIMEFIRST             = 2;
-    ADVF_ONLYONCE               = 4;
-    ADVF_DATAONSTOP             = 64;
-    ADVFCACHE_NOHANDLER         = 8;
-    ADVFCACHE_FORCEBUILTIN      = 16;
-    ADVFCACHE_ONSAVE            = 32;
-
-
-//****************************************************************************
-//*  Notification Interfaces
-//****************************************************************************/
-
-    TYMED_HGLOBAL               = 1;
-    TYMED_FILE                  = 2;
-    TYMED_ISTREAM               = 4;
-    TYMED_ISTORAGE              = 8;
-    TYMED_GDI                   = 16;
-    TYMED_MFPICT                = 32;
-    TYMED_ENHMF                 = 64;
-    TYMED_NULL                  = 0;
-
-// Object Definitions for EnumObjects()
-    OBJ_PEN                     = 1;
-    OBJ_BRUSH                   = 2;
-    OBJ_DC                      = 3;
-    OBJ_METADC                  = 4;
-    OBJ_PAL                     = 5;
-    OBJ_FONT                    = 6;
-    OBJ_BITMAP                  = 7;
-    OBJ_REGION                  = 8;
-    OBJ_METAFILE                = 9;
-    OBJ_MEMDC                   = 10;
-    OBJ_EXTPEN                  = 11;
-    OBJ_ENHMETADC               = 12;
-    OBJ_ENHMETAFILE             = 13;
-    DATADIR_GET                 = 1;
-    DATADIR_SET                 = 2;
-
-// call type used by IMessageFilter::HandleIncomingMessage
-
-    CALLTYPE_TOPLEVEL           = 1;      // toplevel call - no outgoing call
-    CALLTYPE_NESTED             = 2;      // callback on behalf of previous outgoing call - should always handle
-    CALLTYPE_ASYNC              = 3;      // aysnchronous call - can NOT be rejected
-    CALLTYPE_TOPLEVEL_CALLPENDING = 4;  // new toplevel call with new LID
-    CALLTYPE_ASYNC_CALLPENDING  = 5;   // async call - can NOT be rejected
-
-// status of server call - returned by IMessageFilter::HandleIncomingCall
-// and passed to  IMessageFilter::RetryRejectedCall
-
-    SERVERCALL_ISHANDLED        = 0;
-    SERVERCALL_REJECTED         = 1;
-    SERVERCALL_RETRYLATER       = 2;
-
-// Pending type indicates the level of nesting
-
-    PENDINGTYPE_TOPLEVEL        = 1; // toplevel call
-    PENDINGTYPE_NESTED          = 2;  // nested call
-
-// return values of MessagePending
-
-    PENDINGMSG_CANCELCALL       = 0; // cancel the outgoing call
-    PENDINGMSG_WAITNOPROCESS    = 1; // wait for the return and don't dispatch the message
-    PENDINGMSG_WAITDEFPROCESS   = 2;  // wait and dispatch the message
-
-    EOAC_NONE                   = $0;
-    EOAC_MUTUAL_AUTH            = $1;
-    EOAC_STATIC_CLOAKING        = $20;
-    EOAC_DYNAMIC_CLOAKING       = $40;
-    EOAC_ANY_AUTHORITY          = $80;
-    EOAC_MAKE_FULLSIC           = $100;
-    EOAC_DEFAULT                = $800;
-
-    // These are only valid for CoInitializeSecurity
-    EOAC_SECURE_REFS            = $2;
-    EOAC_ACCESS_CONTROL         = $4;
-    EOAC_APPID                  = $8;
-    EOAC_DYNAMIC                = $10;
-    EOAC_REQUIRE_FULLSIC        = $200;
-    EOAC_AUTO_IMPERSONATE       = $400;
-    EOAC_NO_CUSTOM_MARSHAL      = $2000;
-    EOAC_DISABLE_AAA            = $1000;
-
-//****************************************************************************
-//* ICOMThreadingInfo and enums
-//****************************************************************************/
-
-    APTTYPE_CURRENT             = -1;
-    APTTYPE_STA                 = 0;
-    APTTYPE_MTA                 = 1;
-    APTTYPE_NA                  = 2;
-    APTTYPE_MAINSTA             = 3;
-
-    THDTYPE_BLOCKMESSAGES       = 0;
-    THDTYPE_PROCESSMESSAGES     = 1;
-
-    DCOM_NONE                   = $0;
-    DCOM_CALL_COMPLETE          = $1;
-    DCOM_CALL_CANCELED          = $2;
-
-    COMBND_RPCTIMEOUT           = $1;  // Rpc transport-specific timeout.
-
-//************************* Misc Enums wtypes.h ***********************************/
-
-// Common typdefs used in API paramaters, gleamed from compobj.h
-
-// memory context values; passed to CoGetMalloc
-
-Const
-    MEMCTX_TASK                 = 1;          // task (private) memory
-    MEMCTX_SHARED               = 2;          // shared memory (between processes)
-    MEMCTX_MACSYSTEM            = 3;          // on the mac, the system heap
-    // these are mostly for internal use...
-    MEMCTX_UNKNOWN              = -1;         // unknown context (when asked about it)
-    MEMCTX_SAME                 = -2;         // same context (as some other pointer)
-
-
-// For IRunningObjectTable::Register
-    ROTFLAGS_REGISTRATIONKEEPSALIVE  = $1;
-    ROTFLAGS_ALLOWANYCLIENT          = $2;
-
-// Maximum size of comparison buffer for IROTData::GetComparisonData
-    ROT_COMPARE_MAX                  = 2048;
-
-
-// class context: used to determine what scope and kind of class object to use
-// NOTE: this is a bitwise enum
-
-    CLSCTX_INPROC_SERVER        = $0001;     // server dll (runs in same process as caller)
-    CLSCTX_INPROC_HANDLER       = $0002;     // handler dll (runs in same process as caller)
-    CLSCTX_LOCAL_SERVER         = $0004;     // server exe (runs on same machine; diff proc)
-    CLSCTX_INPROC_SERVER16      = $0008;     // 16-bit server dll (runs in same process as caller)
-    CLSCTX_REMOTE_SERVER        = $0010;     // remote server exe (runs on different machine)
-    CLSCTX_INPROC_HANDLER16     = $0020;     // 16-bit handler dll (runs in same process as caller)
-    CLSCTX_INPROC_SERVERX86     = $0040;     // Wx86 server dll (runs in same process as caller)
-    CLSCTX_INPROC_HANDLERX86    = $0080;     // Wx86 handler dll (runs in same process as caller)
-    CLSCTX_ESERVER_HANDLER      = $0100;     // handler dll (runs in the server process)
-    CLSCTX_RESERVED =$0200;                  // reserved
-    CLSCTX_NO_CODE_DOWNLOAD     = $0400;     // disallow code download from the Directory Service (if any) or the internet   -rahulth
-    CLSCTX_NO_WX86_TRANSLATION  = $0800;
-    CLSCTX_NO_CUSTOM_MARSHAL    = $1000;
-    CLSCTX_ENABLE_CODE_DOWNLOAD = $2000;     // allow code download from the Directory Service (if any) or the internet
-    CLSCTX_NO_FAILURE_LOG       = $04000;    // do not log messages about activation failure (should one occur) to Event Log
-    CLSCTX_DISABLE_AAA          = $08000;    // Disable EOAC_DISABLE_AAA capability for this activation only
-    CLSCTX_ENABLE_AAA           = $10000;    // Enable EOAC_DISABLE_AAA capability for this activation only
-    CLSCTX_FROM_DEFAULT_CONTEXT = $20000;    // Begin this activation from the default context of the current apartment
-    CLSCTX_INPROC               = (CLSCTX_INPROC_SERVER OR CLSCTX_INPROC_HANDLER);
-// With DCOM, CLSCTX_REMOTE_SERVER should be included
-    CLSCTX_ALL                  = (CLSCTX_INPROC_SERVER OR CLSCTX_INPROC_HANDLER OR CLSCTX_LOCAL_SERVER {$ifdef Remote} OR CLSCTX_REMOTE_SERVER {$endif});
-    CLSCTX_SERVER               = (CLSCTX_INPROC_SERVER OR CLSCTX_LOCAL_SERVER {$ifdef Remote} OR CLSCTX_REMOTE_SERVER {$endif});
-
-
-// marshaling flags; passed to CoMarshalInterface
-    MSHLFLAGS_NORMAL            = 0;   // normal marshaling via proxy/stub
-    MSHLFLAGS_TABLESTRONG       = 1;   // keep object alive; must explicitly release
-    MSHLFLAGS_TABLEWEAK         = 2;   // doesn't hold object alive; still must release
-    MSHLFLAGS_NOPING            = 4;   // remote clients dont 'ping' to keep objects alive
-    MSHLFLAGS_RESERVED1         = 8;   // reserved
-    MSHLFLAGS_RESERVED2         = 16;  // reserved
-    MSHLFLAGS_RESERVED3         = 32;  // reserved
-    MSHLFLAGS_RESERVED4         = 64;  // reserved
-
-// marshal context: determines the destination context of the marshal operation
-
-    MSHCTX_LOCAL                = 0;   // unmarshal context is local (eg.shared memory)
-    MSHCTX_NOSHAREDMEM          = 1;   // unmarshal context has no shared memory access
-    MSHCTX_DIFFERENTMACHINE     = 2;   // unmarshal context is on a different machine
-    MSHCTX_INPROC               = 3;   // unmarshal context is on different thread
-    MSHCTX_CROSSCTX             = 4;   // unmarshal context is on different context
-
-
-
-// #########################################################################
-//
-//  VARTYPE
-//
-// #########################################################################
-
-
-{
-    VARENUM usage key,
-
-    * [V] - may appear in a VARIANT
-    * [T] - may appear in a TYPEDESC
-    * [P] - may appear in an OLE property set
-    * [S] - may appear in a Safe Array
-
-
-     VT_EMPTY            [V]   [P]     nothing
-     VT_NULL             [V]   [P]     SQL style Null
-     VT_I2               [V][T][P][S]  2 byte signed int
-     VT_I4               [V][T][P][S]  4 byte signed int
-     VT_R4               [V][T][P][S]  4 byte real
-     VT_R8               [V][T][P][S]  8 byte real
-     VT_CY               [V][T][P][S]  currency
-     VT_DATE             [V][T][P][S]  date
-     VT_BSTR             [V][T][P][S]  OLE Automation string
-     VT_DISPATCH         [V][T]   [S]  IDispatch *
-     VT_ERROR            [V][T][P][S]  SCODE
-     VT_BOOL             [V][T][P][S]  True=-1, False=0
-     VT_VARIANT          [V][T][P][S]  VARIANT *
-     VT_UNKNOWN          [V][T]   [S]  IUnknown *
-     VT_DECIMAL          [V][T]   [S]  16 byte fixed point
-     VT_RECORD           [V]   [P][S]  user defined type
-     VT_I1               [V][T][P][s]  signed char
-     VT_UI1              [V][T][P][S]  unsigned char
-     VT_UI2              [V][T][P][S]  unsigned short
-     VT_UI4              [V][T][P][S]  unsigned long
-     VT_I8                  [T][P]     signed 64-bit int
-     VT_UI8                 [T][P]     unsigned 64-bit int
-     VT_INT              [V][T][P][S]  signed machine int
-     VT_UINT             [V][T]   [S]  unsigned machine int
-     VT_INT_PTR             [T]        signed machine register size width
-     VT_UINT_PTR            [T]        unsigned machine register size width
-     VT_VOID                [T]        C style void
-     VT_HRESULT             [T]        Standard return type
-     VT_PTR                 [T]        pointer type
-     VT_SAFEARRAY           [T]        (use VT_ARRAY in VARIANT)
-     VT_CARRAY              [T]        C style array
-     VT_USERDEFINED         [T]        user defined type
-     VT_LPSTR               [T][P]     null terminated string
-     VT_LPWSTR              [T][P]     wide null terminated string
-     VT_FILETIME               [P]     FILETIME
-     VT_BLOB                   [P]     Length prefixed bytes
-     VT_STREAM                 [P]     Name of the stream follows
-     VT_STORAGE                [P]     Name of the storage follows
-     VT_STREAMED_OBJECT        [P]     Stream contains an object
-     VT_STORED_OBJECT          [P]     Storage contains an object
-     VT_VERSIONED_STREAM       [P]     Stream with a GUID version
-     VT_BLOB_OBJECT            [P]     Blob contains an object
-     VT_CF                     [P]     Clipboard format
-     VT_CLSID                  [P]     A Class ID
-     VT_VECTOR                 [P]     simple counted array
-     VT_ARRAY            [V]           SAFEARRAY*
-     VT_BYREF            [V]           void* for local use
-     VT_BSTR_BLOB                      Reserved for system use
-}
-
-// VARENUM's
-
-    VT_EMPTY                    = 0;
-    VT_NULL                     = 1;
-    VT_I2                       = 2;
-    VT_I4                       = 3;
-    VT_R4                       = 4;
-    VT_R8                       = 5;
-    VT_CY                       = 6;
-    VT_DATE                     = 7;
-    VT_BSTR                     = 8;
-    VT_DISPATCH                 = 9;
-    VT_ERROR                    = 10;
-    VT_BOOL                     = 11;
-    VT_VARIANT                  = 12;
-    VT_UNKNOWN                  = 13;
-    VT_DECIMAL                  = 14;
-// VBA reserves 15 for future use
-    VT_I1                       = 16;
-    VT_UI1                      = 17;
-    VT_UI2                      = 18;
-    VT_UI4                      = 19;
-    VT_I8                       = 20;
-    VT_UI8                      = 21;
-    VT_INT                      = 22;
-    VT_UINT                     = 23;
-    VT_VOID                     = 24;
-    VT_HRESULT                  = 25;
-    VT_PTR                      = 26;
-    VT_SAFEARRAY                = 27;
-    VT_CARRAY                   = 28;
-    VT_USERDEFINED              = 29;
-    VT_LPSTR                    = 30;
-    VT_LPWSTR                   = 31;
-// VBA reserves 32-35 for future use
-    VT_RECORD                   = 36;
-    VT_INT_PTR                  = 37;
-    VT_UINT_PTR                 = 38;
-
-    VT_FILETIME                 = 64;
-    VT_BLOB                     = 65;
-    VT_STREAM                   = 66;
-    VT_STORAGE                  = 67;
-    VT_STREAMED_OBJECT          = 68;
-    VT_STORED_OBJECT            = 69;
-    VT_BLOB_OBJECT              = 70;
-    VT_CF                       = 71;
-    VT_CLSID                    = 72;
-    VT_VERSIONED_STREAM         = 73;
-
-    VT_BSTR_BLOB                = $0fff;
-
-    VT_VECTOR                   = $1000;
-    VT_ARRAY                    = $2000;
-    VT_BYREF                    = $4000;
-    VT_RESERVED                 = $8000;
-
-    VT_ILLEGAL                  = $ffff;
-    VT_ILLEGALMASKED            = $0fff;
-    VT_TYPEMASK                 = $0fff;
-
-
-
-//
-// Common typedefs for paramaters used in data view API's, gleamed
-// from dvobj.h
-//
-
-// Data/View aspect; specifies the desired aspect of the object when
-// drawing or getting data.
-
-    DVASPECT_CONTENT            = 1;
-    DVASPECT_THUMBNAIL          = 2;
-    DVASPECT_ICON               = 4;
-    DVASPECT_DOCPRINT           = 8;
-
-//****** Storage types *************************************************
-
-
-// Storage commit types
-
-    STGC_DEFAULT                = 0;
-    STGC_OVERWRITE              = 1;
-    STGC_ONLYIFCURRENT          = 2;
-    STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4;
-    STGC_CONSOLIDATE            = 8;
-
-    STGMOVE_MOVE                = 0;
-    STGMOVE_COPY                = 1;
-    STGMOVE_SHALLOWCOPY         = 2;
-
-    STATFLAG_DEFAULT            = 0;
-    STATFLAG_NONAME             = 1;
-    STATFLAG_NOOPEN             = 2;
-
-// #########################################################################
-//
-//   Constants for the call context
-//
-
-    WDT_INPROC_CALL             = ULONG($48746457);
-    WDT_REMOTE_CALL             = ULONG($52746457);
-    WDT_INPROC64_CALL           = ULONG($50746457);
-
-    COLE_DEFAULT_PRINCIPAL {: pOleStr?} = pOleStr(-1);
-    COLE_DEFAULT_AUTHINFO  {: pointer?} = pointer(-1);
-
-// DISPID reserved to indicate an \"unknown\" name
-// only reserved for data members (properties); reused as a method dispid below
-
-    DISPID_UNKNOWN              = -1;
-
-// DISPID reserved for the \"value\" property
-
-    DISPID_VALUE                = 0;
-
-// The following DISPID is reserved to indicate the param")
-// that is the right-hand-side (or \"put\" value) of a PropertyPut")
-
-    DISPID_PROPERTYPUT          = -3;
-
-// DISPID reserved for the standard \"NewEnum\" method
-
-    DISPID_NEWENUM              = -4;
-
-// DISPID reserved for the standard \"Evaluate\" method
-
-    DISPID_EVALUATE             = -5;
-    DISPID_CONSTRUCTOR          = -6;
-    DISPID_DESTRUCTOR           = -7;
-    DISPID_COLLECT              = -8;
-
-    DISPATCH_METHOD         = $1;
-    DISPATCH_PROPERTYGET    = $2;
-    DISPATCH_PROPERTYPUT    = $4;
-    DISPATCH_PROPERTYPUTREF = $8;
-
-
-// The range -500 through -999 is reserved for Controls
-// The range 0x80010000 through 0x8001FFFF is reserved for Controls
-// The range -5000 through -5499 is reserved for ActiveX Accessability
-// The range -2000 through -2499 is reserved for VB5
-// The range -3900 through -3999 is reserved for Forms
-// The range -5500 through -5550 is reserved for Forms
-// The remainder of the negative DISPIDs are reserved for future use
-
-
-    DESCKIND_NONE               = 0;
-    DESCKIND_FUNCDESC           = 1;
-    DESCKIND_VARDESC            = 2;
-    DESCKIND_TYPECOMP           = 3;
-    DESCKIND_IMPLICITAPPOBJ     = 4;
-    DESCKIND_MAX                = 5;
-
-
-    SYS_WIN16                   = 0;
-    SYS_WIN32                   = 1;
-    SYS_MAC                     = 2;
-    SYS_WIN64                   = 3;
-
-
-    LIBFLAG_FRESTRICTED         = $01;
-    LIBFLAG_FCONTROL            = $02;
-    LIBFLAG_FHIDDEN             = $04;
-    LIBFLAG_FHASDISKIMAGE       = $08;
-    TYPEFLAG_FAPPOBJECT         = $01;
-    TYPEFLAG_FCANCREATE         = $02;
-    TYPEFLAG_FLICENSED          = $04;
-    TYPEFLAG_FPREDECLID         = $08;
-    TYPEFLAG_FHIDDEN            = $10;
-    TYPEFLAG_FCONTROL           = $20;
-    TYPEFLAG_FDUAL              = $40;
-    TYPEFLAG_FNONEXTENSIBLE     = $80;
-    TYPEFLAG_FOLEAUTOMATION     = $100;
-    TYPEFLAG_FRESTRICTED        = $200;
-    TYPEFLAG_FAGGREGATABLE      = $400;
-    TYPEFLAG_FREPLACEABLE       = $800;
-    TYPEFLAG_FDISPATCHABLE      = $1000;
-    TYPEFLAG_FREVERSEBIND       = $2000;
-    TYPEFLAG_FPROXY             = $4000;
-
-    FUNCFLAG_FRESTRICTED        = $1;
-    FUNCFLAG_FSOURCE            = $2;
-    FUNCFLAG_FBINDABLE          = $4;
-    FUNCFLAG_FREQUESTEDIT       = $8;
-    FUNCFLAG_FDISPLAYBIND       = $10;
-    FUNCFLAG_FDEFAULTBIND       = $20;
-    FUNCFLAG_FHIDDEN            = $40;
-    FUNCFLAG_FUSESGETLASTERROR  = $80;
-    FUNCFLAG_FDEFAULTCOLLELEM   = $100;
-    FUNCFLAG_FUIDEFAULT         = $200;
-    FUNCFLAG_FNONBROWSABLE      = $400;
-    FUNCFLAG_FREPLACEABLE       = $800;
-    FUNCFLAG_FIMMEDIATEBIND     = $1000;
-
-    VARFLAG_FREADONLY           = $1;
-    VARFLAG_FSOURCE             = $2;
-    VARFLAG_FBINDABLE           = $4;
-    VARFLAG_FREQUESTEDIT        = $8;
-    VARFLAG_FDISPLAYBIND        = $10;
-    VARFLAG_FDEFAULTBIND        = $20;
-    VARFLAG_FHIDDEN             = $40;
-    VARFLAG_FRESTRICTED         = $80;
-    VARFLAG_FDEFAULTCOLLELEM    = $100;
-    VARFLAG_FUIDEFAULT          = $200;
-    VARFLAG_FNONBROWSABLE       = $400;
-    VARFLAG_FREPLACEABLE        = $800;
-    VARFLAG_FIMMEDIATEBIND      = $1000;
-
-    FADF_AUTO                   = USHORT($0001);  // array is allocated on the stack
-    FADF_STATIC                 = USHORT($0002);  // array is staticly allocated
-    FADF_EMBEDDED               = USHORT($0004);  // array is embedded in a structure
-    FADF_FIXEDSIZE              = USHORT($0010);  // may not be resized or reallocated
-    FADF_RECORD                 = USHORT($0020);  // an array of records
-    FADF_HAVEIID                = USHORT($0040);  // with FADF_DISPATCH, FADF_UNKNOWN
-                                                  // array has an IID for interfaces
-    FADF_HAVEVARTYPE            = USHORT($0080);  // array has a VT type
-    FADF_BSTR                   = USHORT($0100);  // an array of BSTRs
-    FADF_UNKNOWN                = USHORT($0200);  // an array of IUnknown*
-    FADF_DISPATCH               = USHORT($0400);  // an array of IDispatch*
-    FADF_VARIANT                = USHORT($0800);  // an array of VARIANTs
-    FADF_RESERVED               = USHORT($F008);  // reserved bits
-
-// IMPLTYPE Flags
-
-    IMPLTYPEFLAG_FDEFAULT       = USHORT($1);
-    IMPLTYPEFLAG_FSOURCE        = USHORT($2);
-    IMPLTYPEFLAG_FRESTRICTED    = USHORT($4);
-    IMPLTYPEFLAG_FDEFAULTVTABLE = USHORT($8);
-
-    PARAMFLAG_NONE              = USHORT($00);
-    PARAMFLAG_FIN               = USHORT($01);
-    PARAMFLAG_FOUT              = USHORT($02);
-    PARAMFLAG_FLCID             = USHORT($04);
-    PARAMFLAG_FRETVAL           = USHORT($08);
-    PARAMFLAG_FOPT              = USHORT($10);
-    PARAMFLAG_FHASDEFAULT       = USHORT($20);
-    PARAMFLAG_FHASCUSTDATA      = USHORT($40);
-
-    VAR_PERINSTANCE             = 0;
-    VAR_STATIC                  = 1;
-    VAR_CONST                   = 2;
-    VAR_DISPATCH                = 3;
-
-    // notification messages used by the dynamic typeinfo protocol.
-
-    CHANGEKIND_ADDMEMBER        = 0;
-    CHANGEKIND_DELETEMEMBER     = 1;
-    CHANGEKIND_SETNAMES         = 2;
-    CHANGEKIND_SETDOCUMENTATION = 3;
-    CHANGEKIND_GENERAL          = 4;
-    CHANGEKIND_INVALIDATE       = 5;
-    CHANGEKIND_CHANGEFAILED     = 6;
-    CHANGEKIND_MAX              = 7;
-
-    INVOKE_FUNC                 = 1;
-    INVOKE_PROPERTYGET          = 2;
-    INVOKE_PROPERTYPUT          = 4;
-    INVOKE_PROPERTYPUTREF       = 8;
-
-    TKIND_ENUM                  = 0;
-    TKIND_RECORD                = 1;
-    TKIND_MODULE                = 2;
-    TKIND_INTERFACE             = 3;
-    TKIND_DISPATCH              = 4;
-    TKIND_COCLASS               = 5;
-    TKIND_ALIAS                 = 6;
-    TKIND_UNION                 = 7;
-    TKIND_MAX                   = 8;                 // end of enum marker
-
-    SF_ERROR                    = VT_ERROR;
-    SF_I1                       = VT_I1;
-    SF_I2                       = VT_I2;
-    SF_I4                       = VT_I4;
-    SF_I8                       = VT_I8;
-    SF_BSTR                     = VT_BSTR;
-    SF_UNKNOWN                  = VT_UNKNOWN;
-    SF_DISPATCH                 = VT_DISPATCH;
-    SF_VARIANT                  = VT_VARIANT;
-    SF_RECORD                   = VT_RECORD;
-    SF_HAVEIID                  = VT_UNKNOWN OR VT_RESERVED;
-    IDLFLAG_NONE                = PARAMFLAG_NONE;
-    IDLFLAG_FIN                 = PARAMFLAG_FIN;
-    IDLFLAG_FOUT                = PARAMFLAG_FOUT;
-    IDLFLAG_FLCID               = PARAMFLAG_FLCID;
-    IDLFLAG_FRETVAL             = PARAMFLAG_FRETVAL;
-
-    CC_FASTCALL                 = 0;
-    CC_CDECL                    = 1;
-    CC_MSCPASCAL                = 2;
-    CC_PASCAL                   = CC_MSCPASCAL;
-    CC_MACPASCAL                = 3;
-    CC_STDCALL                  = 4;
-    CC_FPFASTCALL               = 5;
-    CC_SYSCALL                  = 6;
-    CC_MPWCDECL                 = 7;
-    CC_MPWPASCAL                = 8;
-    CC_MAX                      = 9;   // end of enum marker
-
-    FUNC_VIRTUAL                = 0;
-    FUNC_PUREVIRTUAL            = 1;
-    FUNC_NONVIRTUAL             = 2;
-    FUNC_STATIC                 = 3;
-    FUNC_DISPATCH               = 4;
-
-// objbase.h
-
-    MARSHALINTERFACE_MIN        = 500; // minimum number of bytes for interface marshl
-
-//
-// Common typedefs for paramaters used in Storage API's, gleamed from storage.h
-// Also contains Storage error codes, which should be moved into the storage
-// idl files.
-//
-
-
-    CWCSTORAGENAME              = 32;
-
-// Storage instantiation modes
-    STGM_DIRECT                 = $00000000;
-    STGM_TRANSACTED             = $00010000;
-    STGM_SIMPLE                 = $08000000;
-    STGM_READ                   = $00000000;
-    STGM_WRITE                  = $00000001;
-    STGM_READWRITE              = $00000002;
-    STGM_SHARE_DENY_NONE        = $00000040;
-    STGM_SHARE_DENY_READ        = $00000030;
-    STGM_SHARE_DENY_WRITE       = $00000020;
-    STGM_SHARE_EXCLUSIVE        = $00000010;
-    STGM_PRIORITY               = $00040000;
-    STGM_DELETEONRELEASE        = $04000000;
-    STGM_NOSCRATCH              = $00100000;   {WINNT+}
-    STGM_CREATE                 = $00001000;
-    STGM_CONVERT                = $00020000;
-    STGM_FAILIFTHERE            = $00000000;
-    STGM_NOSNAPSHOT             = $00200000;
-    STGM_DIRECT_SWMR            = $00400000;   { Win2000+}
-
-//  flags for internet asyncronous and layout docfile
-    ASYNC_MODE_COMPATIBILITY    = $00000001;
-    ASYNC_MODE_DEFAULT          = $00000000;
-
-    STGTY_REPEAT                = $00000100;
-    STG_TOEND                   = $FFFFFFFF;
-
-    STG_LAYOUT_SEQUENTIAL       = $00000000;
-    STG_LAYOUT_INTERLEAVED      = $00000001;
-
-    STGFMT_STORAGE              = 0;
-    STGFMT_NATIVE               = 1;
-    STGFMT_FILE                 = 3;
-    STGFMT_ANY                  = 4;
-    STGFMT_DOCFILE              = 5;
-
-// This is a legacy define to allow old component to builds
-    STGFMT_DOCUMENT             = 0;
-
-
-// COM initialization flags; passed to CoInitialize.
-    COINIT_APARTMENTTHREADED    = $2;      // Apartment model
-
-  // These constants are only valid on Windows NT 4.0
-
-    COINIT_MULTITHREADED        = $0;      // OLE calls objects on any thread.
-    COINIT_DISABLE_OLE1DDE      = $4;      // Don't use DDE for Ole1 support.
-    COINIT_SPEED_OVER_MEMORY    = $8;      // Trade memory for speed.
-
-    SMEXF_SERVER                = $01;     // server side aggregated std marshaler
-    SMEXF_HANDLER               = $02;     // client side (handler) agg std marshaler
-
-
-
-    COWAIT_WAITALL              = 1;
-    COWAIT_ALERTABLE            = 2;
-
-TYPE
-    VARTYPE             = USHORT;
-
-//TypeInfo stuff.
-
-    DISPID              = Long ;
-    SCODE               = Long;
-    pSCODE              = ^SCODE;
-    lpDISPID            = ^DISPID;
-    MEMBERID            = DispId;
-    HREFTYPE            = DWord;
-
-    PSYSINT = ^SYSINT;
-    SYSINT = LongInt;
-    PSYSUINT = ^SYSUINT;
-    SYSUINT = LongWord;
-
-// Enums
-    VARKIND             = DWord;
-    DESCKIND            = DWord;
-    SYSKIND             = DWord;
-    FUNCKIND            = DWord;
-    CHANGEKIND          = DWord;
-    CALLCONV            = DWord;
-
-    PCOAUTHIDENTITY    = ^TCOAUTHIDENTITY;
-    _COAUTHIDENTITY    = Record
-                          User           : PUSHORT;
-                          UserLength     : ULONG;
-                          Domain         : PUSHORT;
-                          DomainLength   : ULong;
-                          Password       : PUSHORT;
-                          PassWordLength : ULong;
-                          Flags          : ULong;
-                          End;
-
-   COAUTHIDENTITY      = _COAUTHIDENTITY;
-   TCOAUTHIDENTITY     = _COAUTHIDENTITY;
-
-   PCOAUTHINFO         = ^TCOAUTHINFO;
-   COAuthInfo          = Record
-                          AuthnSvc              : DWord;
-                          AuthzSvc              : DWord;
-                          ServerPrincName       : LPWSTR;
-                          AuthnLevel            : DWord;
-                          ImpersonationLevel    : DWord;
-                          AuthIdentityData      : PCOAUTHIDENTITY;
-                          Capabilities          : DWord;
-                          END;
-   TCOAUTHINFO         = COAUTHINFO;
-
-   PCOSERVERINFO       = ^TCOSERVERINFO;
-   _COSERVERINFO       = Record
-                          dwReserved1 : DWord;
-                          pwszName    : LPWSTR;
-                          pAuthInfo   : PCoAuthInfo;
-                          dwReserved2 : DWord;
-                          end;
-   TCOSERVERINFO       = _COSERVERINFO;
-   PMultiQI            = ^Multi_QI;
-   tagMULTI_QI         = Record
-                          iid: piid;                   // pass this one in
-                          itf: IUnknown;               // get these out (you must set to NULL before calling)
-                          hr : HResult;
-                          END;
-   MULTI_QI            = TagMULTI_QI;
-   PMulti_QI           = PMultiQI;
-   TMultiQI						 = tagMULTI_QI;
-
-   PMultiQIArray = ^TMultiQIArray;
-   TMultiQIArray = array[0..65535] of TMultiQI;
-
-
-   HContext            = Pointer;
-   ApartmentID         = DWord;
-
-
-//****** Critical Section Wrappers ***********************************
-
-//   LCID                    = WORD;
-//   LANGID                  = USHORT;
-
-// #######################################################################
-//
-//  User marshal support for Windows data types.
-
-//
-//  Frequently used helpers: sized blobs
-//
-//      Never put [user_marshal] or [wire_marshal] on the helpers directly.
-//
-
-// Flagged blobs.
-
-   _FLAGGED_BYTE_BLOB           = Record
-                                   fFlags :  ULong;
-                                   clSize :  ULong;
-                                   abdata :  array[0..0] of byte;
-                                   End;
-   FLAGGED_BYTE_BLOB            = _FLAGGED_BYTE_BLOB;
-   UP_FLAGGED_BYTE_BLOB         = ^FLAGGED_BYTE_BLOB;
-
-   _FLAGGED_WORD_BLOB           = Record
-                                   fFlags :  ULong;
-                                   clSize :  ULong;
-                                   abdata :  array[0..0] of USHORT;
-                                   End;
-   FLAGGED_WORD_BLOB            = _FLAGGED_WORD_BLOB;
-   UP_FLAGGED_WORD_BLOB         = ^FLAGGED_WORD_BLOB;
-
-   _FLAGGED_DWORD_BLOB          = Record
-                                   fFlags :  ULong;
-                                   clSize :  ULong;
-                                   abdata :  array[0..0] of ULONG;
-                                   End;
-   FLAGGED_DWORD_BLOB           = _FLAGGED_DWORD_BLOB;
-   FLAGGED_UP_DWORD_BLOB        = ^FLAGGED_DWORD_BLOB;
-
-// Simple blobs.
-
-   _BYTE_BLOB                   = Record
-                                   clSize :  ULong;
-                                   abdata :  array[0..0] of byte;
-                                   End;
-   BYTE_BLOB                    = _BYTE_BLOB;
-   UP_BYTE_BLOB                 = ^BYTE_BLOB;
-
-   _WORD_BLOB                   = Record
-                                   clSize :  ULong;
-                                   abdata :  array[0..0] of USHORT;
-                                   End;
-   WORD_BLOB                    = _WORD_BLOB;
-   UP_WORD_BLOB                 = ^WORD_BLOB;
-
-   _DWORD_BLOB                  = Record
-                                   clSize :  ULong;
-                                   abdata :  array[0..0] of ULONG;
-                                   End;
-   DWORD_BLOB                   = _DWORD_BLOB;
-   UP_DWORD_BLOB                = ^DWORD_BLOB;
-
-// Frequently used helpers with sized pointers.
-
-   _BYTE_SIZEDARR               = Record
-                                   clsize : ULong;
-                                   Data   : PByte;
-                                   End;
-   BYTE_SIZEDARR                = _BYTE_SIZEDARR;
-
-   _SHORT_SIZEDARR              = Record
-                                   clsize : ULong;
-                                   Data   : PSHORT;
-                                   End;
-   SHORT_SIZEDARR               = _SHORT_SIZEDARR;
-
-   _LONG_SIZEDARR               = Record
-                                   clsize : ULong;
-                                   Data   : PLONG;
-                                   End;
-   LONG_SIZEDARR                = _LONG_SIZEDARR;
-   HYPER                        = LONGLONG;
-   PHYPER                       = ^HYPER;
-   _HYPER_SIZEDARR              = Record
-                                   clsize : ULong;
-                                   Data   : PHYPER;
-                                   End;
-   HYPER_SIZEDARR               = _HYPER_SIZEDARR;
-
-
-// #########################################################################
-//
-//  CLIPFORMAT
-//
-
-   userCLIPFORMAT               = Record
-                                    FContext : Long;
-                                    CASE INTEGER OF
-                                      0 : (dwvalue : DWORD);
-                                      1 : (szName : poleStr);
-                                      End;
-
-   wireCLIPFORMAT               = ^userCLIPFORMAT;
-
-
-// #########################################################################
-//
-//  Good for most of the gdi handles.
-
-   _GDI_NONREMOTE               = Record
-                                    FContext : Long;
-                                    Case Integer Of
-                                     0 : (HInProc : Long);
-                                     1 : (HRemote : DWORD_BLOB);
-                                     END;
-   GDI_NONREMOTE                = _GDI_NONREMOTE;
-
-// #########################################################################
-//
-//  HGLOBAL
-//
-// A global may be Null or may be non-NULL with 0 length.
-
-   _userHGLOBAL                 = Record
-                                   FContext : Long;
-                                   CASE Integer OF
-                                      0 : (hInproc : Long);
-                                      1 : (hRemote : UP_FLAGGED_BYTE_BLOB);
-                                      2 : (hInproc64: int64);
-                                      End;
-   userHGlobal                  = _userHGLOBAL;
-   wireHGLOBAL                  = ^userHGLOBAL;
-
-// #########################################################################
-//
-//  HMETAFILE
-//
-   _userHMETAFILE               = Record
-                                   fContext : Long;
-                                   Case Integer OF
-                                      0 : (hInproc   : Long);
-                                      1 : (hRemote   : up_byte_blob);
-                                      2 : (hInProc64 : Int64);
-                                      End;
-   userHMETAFILE                = _userHMETAFILE;
-   puserHMETAFILE               = ^userHMETAFILE;
-
-// #########################################################################
-//
-//  HMETAFILEPICT
-//
-
-   _remoteMETAFILEPICT          = Record
-                                    mm   : Long;
-                                    xExt : Long;
-                                    yExt : Long;
-                                    mgf  : puserHMETAFILE;
-                                    End;
-
-   remoteMETAFILEPICT           = _remoteMETAFILEPICT;
-   premoteMETAFILEPICT          = ^remoteMETAFILEPICT;
-
-   _userHMETAFILEPICT           = Record
-                                    fContext : Long;
-                                    Case Integer OF
-                                      0 : (hInproc   : Long);
-                                      1 : (hRemote   : premoteMETAFILEPICT);
-                                      2 : (hInProc64 : Int64);
-                                      End;
-   userHMETAFILEPICT            = _userHMETAFILEPICT;
-
-
-// #########################################################################
-//
-//  HENHMETAFILE
-//
-
-   _userHENHMETAFILE            = Record
-                                    fContext : Long;
-                                    Case Integer OF
-                                      0 : (hInproc   : Long);
-                                      1 : (hRemote   : up_byte_blob);
-                                      2 : (hInProc64 : Int64);
-                                      End;
-   userHENHMETAFILE             = _userHENHMETAFILE;
-   puserHENHMETAFILE            = ^userHENHMETAFILE;
-
-// #########################################################################
-//
-//  HBITMAP
-//
-
-// RemHBITMAP was just a byte blob, but the whole bitmap structure was copied
-// at the beginning of the buffer.
-
-// So, we take BITMAP fields from wingdi.x
-
-
-   _userBITMAP                  = Record
-                                   bmType,
-                                   bmWidth,
-                                   bmHeight,
-                                   bmWidthBytes : Long;
-                                   bmPlanes,
-                                   bmBitsPixel  : Word;
-                                   cvsize       : ULONG;
-                                   buffer       : pbyte;
-                                   End;
-
-   userBITMAP                   = _userBITMAP;
-   puserBITMAP                  = ^userBITMAP;
-
-   _userHBITMAP                 = Record
-                                    fContext : Long;
-                                    Case Integer OF
-                                      0 : (hInproc   : Long);
-                                      1 : (hRemote   : puserBITMAP);
-                                      2 : (hInProc64 : Int64);
-                                      End;
-   userHBITMAP                  = _userHBITMAP;
-   puserHBITMAP                 = ^userHBITMAP;
-
-
-// #########################################################################
-//
-//  HPALETTE
-//
-
-// PALETTEENTRY is in wingdi.x, it is a struct with 4 bytes.
-// LOGPALETTE   is in wingdi.x, it is a conf struct with paletteentries and
-//                                    a version field
-
-   _userHpalette                = Record
-                                    fContext : Long;
-                                    Case Integer OF
-                                      0 : (hInproc   : Long);
-                                      1 : (hRemote   : logpalette);
-                                      2 : (hInProc64 : Int64);
-                                  End;
-   userHpalette                 = _userHpalette;
-   puserHpalette                = ^userHpalette;
-
-// #########################################################################
-//
-//  Handles passed locally as longs.
-//
-
-   _RemotableHandle             = Record
-                                    fContext : Long;
-                                    Case Integer OF
-                                      0 : (hInproc   : Long);
-                                      1 : (hRemote   : Long);
-                                      End;
-   RemotableHandle              = _RemotableHandle;
-
-
-   wireHWND                     = ^RemotableHandle;
-   wireHMENU                    = ^RemotableHandle;
-   wireHACCEL                   = ^RemotableHandle;
-   wireHBRUSH                   = ^RemotableHandle;
-   wireHFONT                    = ^RemotableHandle;
-   wireHDC                      = ^RemotableHandle;
-   wireHICON                    = ^RemotableHandle;
-   HCursor                      = HICON;
-
-
-   tagTEXTMETRICW               = Record
-                                    tmHeight,
-                                    tmAscent,
-                                    tmDescent,
-                                    tmInternalLeading,
-                                    tmExternalLeading,
-                                    tmAveCharWidth,
-                                    tmMaxCharWidth,
-                                    tmWeight,
-                                    tmOverhang,
-                                    tmDigitizedAspectX,
-                                    tmDigitizedAspectY   : Long;
-                                    tmFirstChar,
-                                    tmLastChar,
-                                    tmDefaultChar,
-                                    tmBreakChar          : WCHAR;
-                                    tmItalic,
-                                    tmUnderlined,
-                                    tmStruckOut,
-                                    tmPitchAndFamily,
-                                    tmCharSet            : BYTE;
-                                  End;
-
-   TEXTMETRICW                  = tagTEXTMETRICW;
-   PTEXTMETRICW                 = ^TEXTMETRICW;
-   LPTEXTMETRICW                = PTEXTMETRICW;
-   wireHBITMAP                  = ^userHBITMAP;
-   wireHPALETTE                 = ^userHPALETTE;
-   wireHENHMETAFILE             = ^userHENHMETAFILE;
-   wireHMETAFILE                = ^userHMETAFILE;
-   wireHMETAFILEPICT            = ^userHMETAFILEPICT;
-   HMetaFilePict                = Pointer;
-   HLOCAL                       = HGLOBAL;
-//  Date              = Double;
-
-{****************************************************************************
- *  Binding Interfaces
- ****************************************************************************}
-
-   tagBIND_OPTS                 = Record
-                                    cvStruct,          //  sizeof(BIND_OPTS)
-                                    grfFlags,
-                                    grfMode,
-                                    dwTickCountDeadline : DWord;
-                                    End;
-   TBind_Opts                   = tagBIND_OPTS;
-   PBind_Opts                   = ^TBind_Opts;
-
-   tagBIND_OPTS2_CPP            = Record
-                                    dwTrackFlags,
-                                    dwClassContext  : Dword;
-                                    Locale          : LCID;
-                                    ServerInfo      : pCoServerInfo;
-                                    End;
-
-   TBind_Opts2_CPP              = tagBIND_OPTS2_CPP;
-   PBind_Opts2_CPP              = ^TBind_Opts2_CPP;
-
-
-   tagBind_OPTS2                = Record
-                                    cvStruct,          //  sizeof(BIND_OPTS)
-                                    grfFlags,
-                                    grfMode,
-                                    dwTickCountDeadline : DWord;
-                                    dwTrackFlags,
-                                    dwClassContext      : DWord;
-                                    Locale              : LCID;
-                                    ServerInfo          : pCoServerInfo;
-                                    End;
-
-   TBind_Opts2                  = tagBIND_OPTS2;
-   PBind_Opts2                  = ^TBind_Opts2;
-
-// ****************************************************************************
-// *  Structured Storage Interfaces
-// ****************************************************************************
-
-
-
-   tagSTATSTG                   = types.tagSTATSTG;
-
-   TStatStg                     = tagSTATSTG;
-   PStatStg                     = types.PStatStg;
-   STATSTG                      = TStatStg;
-
-{    TagRemSNB = Record
-                   ulCntStr  : ULong;
-                   ulCntChar : ULong;
-                   [size_is(ulCntChar)] OLECHAR rgString[];
-                 End;
-        RemSNB=TagRemSNB
-        WireSNB=^RemSNB}
-   SNB                          = ^PoleStr;
-   tagDVTARGETDEVICE            = Record
-                                    tdSize                     : DWord;
-                                    tdDriverNameOffset,
-                                    tdDeviceNameOffset,
-                                    tdPortNameOffset,
-                                    tdExtDevmodeOffset         : Word;
-                                    Data                       : Record End;
-                                    End;
-
-   DVTARGETDEVICE               = TagDVTARGETDEVICE;
-   PDVTARGETDEVICE              = ^tagDVTARGETDEVICE;
-   LPCLIPFORMAT                 = ^TCLIPFORMAT;
-   TCLIPFORMAT                  = Word;
-   CLIPFORMAT                   = TCLIPFORMAT;
-   PClipFormat                                                                  = LPCLIPFORMAT;
-
-   tagFORMATETC                 = Record
-                                    CfFormat :  Word {TCLIPFORMAT};
-                                    Ptd      : PDVTARGETDEVICE;
-                                    dwAspect : DWORD;
-                                    lindex   : Long;
-                                    tymed    : DWORD;
-                                    End;
-   FORMATETC                    = TagFORMATETC;
-   TFORMATETC                   = FORMATETC;
-   LPFORMATETC                  = ^FORMATETC;
-   PFormatEtc                   = LPFORMATETC;
-
-    // Stats for data; used by several enumerations and by at least one
-    // implementation of IDataAdviseHolder; if a field is not used, it
-    // will be NULL.
-
-
-   tagRemSTGMEDIUM              = Record
-                                    tymed                     : DWord;
-                                    dwHandleType              : DWord;
-                                    pData,
-                                    pUnkForRelease,
-                                    cbData                    : ULong;
-                                    Data                      : Record end;
-                                    End;
-
-   RemSTGMEDIUM                 = TagRemSTGMedium;
-
-   TagSTGMEDIUM                 = Record
-                                    Tymed : DWord;
-                                    Case Integer Of
-                                      0 : (HBITMAP             : hBitmap;       PUnkForRelease :  Pointer {IUnknown});
-                                      1 : (HMETAFILEPICT       : hMetaFilePict );
-                                      2 : (HENHMETAFILE        : hEnhMetaFile  );
-                                      3 : (HGLOBAL             : hGlobal       );
-                                      4 : (lpszFileName        : LPOLESTR    );
-                                      5 : (pstm                : Pointer{IStream}  );
-                                      6 : (pstg                : Pointer{IStorage} );
-                                      End;
-   USTGMEDIUM                   = TagSTGMEDIUM;
-   STGMEDIUM                    = USTGMEDIUM;
-   TStgMedium                                                                           = TagSTGMEDIUM;
-   PStgMedium                   = ^TStgMedium;
-
-//
-//  wireSTGMEDIUM
-//
-// These flags are #defined (not enumerated) in wingdi.
-// We need to repeat #defines to avoid conflict in the generated file.
-//
-
-   _GDI_OBJECT                  = Record
-                                    ObjectType : DWord;
-                                    Case Integer Of
-                                      0 : (HBitmap : WireHBITMAP);
-                                      1 : (hPalette: wireHPALETTE);
-                                      2 : (hGeneric: wireHGLOBAL);
-                                      END;
-   GDI_OBJECT                   = _GDI_OBJECT;
-
-
-   _userSTGMEDIUM               = Record
-                                    tymed : DWORD;
-                                    Case Integer OF
-                                      0 : (hMetaFilePict : wireHMETAFILEPICT;punkforrelease:Pointer {IUnknown});
-                                      1 : (hHEnhMetaFile : wireHENHMETAFILE);
-                                      2 : (hGdiHandle    : ^GDI_OBJECT);
-                                      3 : (HGlobal       : wireHGLOBAL);
-                                      4 : (lpszFileName  : LPOLESTR);
-                                      5 : (pstm          : ^BYTE_BLOB);
-                                      6 : (pstg          : ^BYTE_BLOB);
-                                      END;
-
-   userSTGMEDIUM                = _userSTGMEDIUM;
-
-
-   LPSTGMEDIUM                  = ^STGMEDIUM;
-
-   _userFLAG_STGMEDIUM          = Record
-                                    ContextFlags,
-                                    fPassOwnership  : Long;
-                                    stgmed          : userSTGMEDIUM;
-                                    End;
-
-   userFLAG_STGMEDIUM           = _userFLAG_STGMEDIUM;
-
-   wireFLAG_STGMEDIUM           = ^userFLAG_STGMEDIUM;
-
-
-   _FLAG_STGMEDIUM              = Record
-                                    ContextFlags,
-                                    fPassOwnership   : Long;
-                                    Stgmed           : STGMEDIUM;
-                                    End;
-   FLAG_STGMEDIUM               = _FLAG_STGMEDIUM;
-
-
-   VARIANTARG                   = VARIANT;
-   LPVARIANT                    = ^VARIANT;
-   LPVARIANTARG                 = ^VARIANT;
-
-// parameter description
-
-   tagPARAMDESCEX               = Record
-                                    cBytes         : ULong;      // size of this structure
-                                    varDefaultValue: VariantARG; // default value of this parameter
-                                    End;
-
-   PARAMDESCEX                  = tagPARAMDESCEX;
-   LPPARAMDESCEX                = ^PARAMDESCEX;
-
-   tagPARAMDESC                 = Record
-                                    pparamdescex: LPPARAMDESCEX ;  // valid if PARAMFLAG_FHASDEFAULT bit is set
-                                    wParamFlags : UShort ;         // IN, OUT, etc
-                                    End;
-
-   PARAMDESC                    = tagPARAMDESC;
-   LPPARAMDESC                  = ^PARAMDESC;
-
-
-   tagSAFEARRAYBOUND            = Record
-                                     cElements : ULong;
-                                     lLbound   : Long;
-                                     End;
-   SAFEARRAYBOUND               = tagSAFEARRAYBOUND;
-   LPSAFEARRAYBOUND             = ^SAFEARRAYBOUND;
-
-   tagSAFEARRAY = record
-     cDims: USHORT;
-     fFeatures: USHORT;
-     cbElements: ULONG;
-     cLocks: ULONG;
-     pvData: PVOID;
-     rgsabound: array[0..0] of SAFEARRAYBOUND;
-   end;
-   TSafeArray = tagSAFEARRAY;
-   SAFEARRAY = TSafeArray;
-   PSafeArray = ^TSafeArray;
-
-// additional interface information about the incoming call
-   tagINTERFACEINFO             = Record
-                                    Unk     : Pointer {IUnknown};   // the pointer to the object
-                                    IID     : Tiid;       // interface id
-                                    wMethod : WORD;        // interface method
-                                    End;
-
-   INTERFACEINFO                = tagINTERFACEINFO;
-   LPINTERFACEINFO              = ^INTERFACEINFO;
-   RPCOLEDATAREP                = ULong;
-   tagRPCOLEMESSAGE             = Record
-                                    Reserved1          : Pointer;
-                                    DataRepresentation : RPCOLEDATAREP;
-                                    Buffer             : Pointer;
-                                    cbBuffer,
-                                    IMethod            : ULong;
-                                    Reserved2          : Array[0..4] Of Pointer;
-                                    rpcFlags           : ULong;
-                                    End;
-
-   RPCOLEMESSAGE                = tagRPCOLEMESSAGE;
-   PRPCOLEMESSAGE               = ^RPCOLEMESSAGE;
-
-   tagStorageLayout             = Record
-                                    LayoutType       : Dword;
-                                    pwcsElementName  : POleStr;
-                                    cOffset,
-                                    cBytes           : Large_Integer;
-                                    End;
-
-   StorageLayout                = tagStorageLayout;
-
-   tagSTATDATA                  = Record
-                                                                // field used by:
-                                    FORMATETC   : Tformatetc;   // EnumAdvise, EnumData (cache), EnumFormats
-                                    advf        : DWord;        // EnumAdvise, EnumData (cache)
-                                    padvSink    : Pointer {IAdviseSink};  // EnumAdvise
-                                    dwConnection: DWord;        // EnumAdvise
-                                    End;
-   STATDATA                     = TagStatData;
-   LPStatData                   = ^StatData;
-
-   pARRAYDESC                   = ^ARRAYDESC;
-   pTYPEDESC                    = ^TYPEDESC;
-   tagTYPEKIND                  = Dword;
-   TYPEKIND                     = tagTYPEKIND;
-   INVOKEKIND                   = Dword;
-   tagTYPEDESC                  = Record
-                                    Case Integer OF
-                                      VT_PTR,
-                                      VT_SAFEARRAY   :  (lptdesc : PTYPEDESC;vt : VARTYPE);
-                                      VT_CARRAY      :  (lpadesc : PARRAYDESC);
-                                      VT_USERDEFINED :  (hreftype : HREFTYPE);
-                                      End;
-   TYPEDESC                     = tagTYPEDESC;
-
-
-
-
-   tagARRAYDESC                 = Record
-                                     tdescElem   : TYPEDESC;                       // element type
-                                     cDims       : USHORT;
-                                     rgbounds    : ARRAY [0..0] OF SAFEARRAYBOUND; // dimension count
-                                     End;
-
-   ARRAYDESC                    = tagARRAYDESC;
-
-   tagIDLDESC                   = Record
-                                    dwReserved     : pULONG;
-                                    wIDLFlags      : USHORT;           // IN, OUT, etc
-                                    End;
-   IDLDESC                      = tagIDLDESC;
-   LPIDLDESC                    = ^IDLDESC;
-
-
-   tagELEMDESC                  = Record
-                                    tdesc : TYPEDESC;
-                                    case Integer Of
-                                      0 : (idldesc    : IDLDESC);
-                                      1 : (paramdesc  : PARAMDESC);
-                                      END;
-
-   ELEMDESC                     = tagELEMDESC;
-   LPELEMDESC                   = ^ELEMDESC;
-   tagVARDESC                   = Record
-                                    memId               : MEMBERID;
-                                    lpstrSchema         : pOleStr;
-                                    CASE Integer OF
-                                    VAR_PERINSTANCE,
-                                    VAR_DISPATCH,
-                                    VAR_STATIC       : (oInst   : ULong;                          // offset of variable within the instance
-                                                        ElemdescVar : ELEMDESC;
-                                                        wVarFlags   : WORD;
-                                                        varkind     : VARKIND);
-                                    VAR_CONST        : (lpvarValue : PVARIANT);                       // the value of the constant
-                                    End;
-  VARDESC                       = tagVARDESC;
-  LPVARDESC                     = ^VARDESC;
-  tagDISPPARAMS                 = Record
-                                   rgvarg            : lpVARIANTARG;
-                                   rgdispidNamedArgs : lpDISPID;
-                                   cArgs,
-                                   cNamedArgs        : UINT;
-                                   End;
-  DISPPARAMS                    = tagDISPPARAMS;
-  TDispParams                   = tagDISPPARAMS;
-  PDispParams                   = ^TDispParams;
-
-  PExcepInfo                    = ^TExcepInfo;
-  TFNDeferredFillIn             = function(info : PExcepInfo): HRESULT;stdcall;
-  tagEXCEPINFO                  = Record
-                                    wCode,                         // An error code describing the error.
-                                    wReserved      : Word;
-                                    Source,                        // A source of the exception
-                                    Description,                   // A description of the error
-                                    HelpFile       : WideString;   // Fully qualified drive, path, and file name
-                                    dwHelpContext  : ULONG;        // help context of topic within the help file
-                                                                   // We can use ULONG_PTR here, because EXCEPINFO is marshalled by RPC
-                                                                   // RPC will marshal pfnDeferredFillIn.
-                                    pvReserved     : pointer;
-                                    pfnDeferredFillIn : TFNDeferredFillIn;
-                                    SCODE          : scode;
-                                    End;
-
-  EXCEPINFO                     =  tagEXCEPINFO;
-  TExcepInfo                    =  tagEXCEPINFO;
-
-  tagTYPEATTR                   = Record
-                                   GUID            : Tguid;       // the GUID of the TypeInfo
-                                   LCID            : lcid;        // locale of member names and doc strings
-                                   dwReserved      : DWord;
-                                   memidConstructor,              // ID of constructor, MEMBERID_NIL if none
-                                   memidDestructor : MemberID;    // ID of destructor, MEMBERID_NIL if none
-                                   lpstrSchema     : pOleStr;
-
-                                   cbSizeInstance  : ULong;       // the size of an instance of this type
-                                   typekind        : TYPEKIND;    // the kind of type this typeinfo describes
-                                   cFuncs,                        // number of functions
-                                   cVars,                         // number of variables / data members
-                                   cImplTypes,                    // number of implemented interfaces
-                                   cbSizeVft,                     // the size of this types virtual func table
-                                   cbAlignment,                   { specifies the alignment requirements for
-                                                                    an instance of this type,
-                                                                      0 = align on 64k boundary
-                                                                      1 = byte align
-                                                                      2 = word align
-                                                                      4 = dword align... }
-                                   wTypeFlags,
-                                   wMajorVerNum,                  // major version number
-                                   wMinorVerNum    : Word;        // minor version number
-                                   tdescAlias      : TYPEDESC;    { if typekind == TKIND_ALIAS this field
-                                                                    specifies the type for which this type
-                                                                    is an alias }
-                                   idldescType     : IDLDESC;     // IDL attributes of the described type
-                                   END;
-  TYPEATTR                       = tagTYPEATTR;
-
-  LPTYPEATTR                     = ^TYPEATTR;
-
-  tagTLIBATTR                    = Record
-                                     GUID        : guid;
-                                     LCID        : lcid;
-                                     SYSKIND     : syskind;
-                                     wMajorVerNum,
-                                     wMinorVerNum,
-                                     wLibFlags   : Word
-                                     End;
-
-  TLIBATTR                       = tagTLIBATTR;
-  LPTLIBATTR                     = ^tagTLIBATTR;
-
-  LPFUNCDESC                     = ^FUNCDESC;
-
-  tagFUNCDESC                    = Record
-                                     memid             : MEMBERID;
-                                     lprgscode         : pSCODE;
-                                     lprgelemdescParam : lpELEMDESC;    // array of param types
-                                     FUNCKIND          : funckind;
-                                     invkind           : INVOKEKIND;
-                                     callconv          : CALLCONV;
-                                     cParams,
-                                     cParamsOpt,
-                                     oVft,
-                                     cScodes           : SHORT;
-                                     elemdescFunc      : ELEMDESC;
-                                     wFuncFlags        : WORD;
-                                     End;
-  FUNCDESC                       = tagFUNCDESC;
-
-
-  tagBINDPTR                     = Record
-                                     case integer Of
-                                      0 : (lpfuncdesc : LPFUNCDESC);
-                                      1 : (lpvardesc  : LPVARDESC);
-                                      2 : (lptcomp    : Pointer {ITypeComp} );
-                                      End;
-  BINDPTR                        = tagBINDPTR;
-  LPBINDPTR                      = ^BINDPTR;
-
-  tagCUSTDATAITEM                = Record
-                                     GUID         : TGuid;           // guid identifying this custom data item
-                                     varValue     : VARIANTARG;      // value of this custom data item
-                                     End;
-
-  CUSTDATAITEM                   = tagCUSTDATAITEM;
-
-  LPCUSTDATAITEM                 = ^CUSTDATAITEM;
-
-  tagCUSTDATA                    = Record
-                                     cCustData   : DWord;             // number of custom data items in rgCustData
-                                     prgCustData : LPCUSTDATAITEM;    // array of custom data items
-                                     End;
-
-  CUSTDATA                       = tagCUSTDATA;
-  LPCUSTDATA                     = ^CUSTDATA;
-
-//  CURRENCY                       = CY;
-
-
-// Forward interfaces.
-
-   IStream             = Types.IStream;
-   IMoniker            = Interface;
-   IEnumMoniker        = Interface;
-   IEnumString         = Interface;
-   IRunningObjectTable = Interface;
-   IStorage            = Interface;
-   IEnumSTATSTG        = Interface;
-   IAdviseSink         = Interface;
-   IBindCtx            = Interface;
-   IAsyncManager       = Interface;
-   ICallFactory        = Interface;
-   ISynchronize        = Interface;
-   ITypeLib            = Interface;
-
-// Unknwn.idl
-
-// IUnknown is in classesh.inc
-
-   AsyncIUnknown = Interface( IUnknown)
-      ['{000e0000-0000-0000-C000-000000000046}']
-        Function Begin_QueryInterface(Const riid : TIID): HResult; StdCall;
-        Function Finish_QueryInterface(Out ppvObject : Pointer):HResult;StdCall;
-        Function Begin_AddRef:HResult;StdCall;
-        Function Finish_AddRef:ULong;StdCall;
-        Function Begin_Release:HResult;StdCall;
-        Function Finish_Release:ULong;StdCall;
-        End;
-
-   IClassFactory = Interface(IUnknown)
-      ['{00000001-0000-0000-C000-000000000046}']
-      Function CreateInstance(Const unkOuter:IUnknown;Const riid : TIID;Out vObject):HResult; StdCall;
-      Function LockServer(fLock : Bool):HResult;StdCall;
-      End;
-
-    PLicInfo = ^TLicInfo;
-    tagLICINFO = record
-      cbLicInfo : ULONG;
-      fRuntimeKeyAvail : BOOL;
-      fLicVerified : BOOL;
-    end;
-    TLicInfo = tagLICINFO;
-    LICINFO = TLicInfo;
-
-    IClassFactory2 = interface(IClassFactory)
-      ['{B196B28F-BAB4-101A-B69C-00AA00341D07}']
-      function GetLicInfo(var licInfo: TLicInfo): HResult; stdcall;
-      function RequestLicKey(dwResrved: DWORD; out bstrKey: WideString): HResult; stdcall;
-      function CreateInstanceLic(const unkOuter: IUnknown; const unkReserved: IUnknown;
-        const iid: TIID; const bstrKey: WideString; out vObject): HResult; stdcall;
-    end;
-
-// objidl.idl
-
-{****************************************************************************
- *  Component Object Interfaces
- ****************************************************************************}
-
-     IMarshal = Interface(IUnknown)
-        ['{00000003-0000-0000-C000-000000000046}']
-        Function GetUnmarshalClass ( Const riid: TIID; pv:Pointer; Const dwDestContext:DWord;
-                    pvDestContext:Pointer; Const mshlflags:DWORD;out LCid : TCLSID ):HResult;Stdcall;
-        Function GetMarshalSizeMax ( Const Riid: TIID; {in, unique} pv:Pointer; Const dwDestContext : DWord;
-                   {in, unique} pvDestContext:Pointer; Const mshlflags : DWord; out pSize : PDWord ): HResult;Stdcall;
-        Function MarshalInterface ( Const {in, unique} pStm: IStream; Const riid: TIID; {in, unique} pv:Pointer;
-                   Const dwDestContext:DWord; {in, unique} pvDestContext:Pointer; Const mshlflags:DWord ): HRESULT;Stdcall;
-        Function UnmarshalInterface ( {[in, unique]} Const pStm:IStream; Const riid: TIID;
-                   out ppv ): HResult;Stdcall;
-        Function ReleaseMarshalData ( {[in, unique]} Const Strm: IStream ):HResult;Stdcall;
-        Function DisconnectObject ( Const dwReserved:DWord ):HRESULT;Stdcall;
-        END;
-
-
-     IMarshal2 = Interface(IMarshal)
-        ['{000001cf-0000-0000-C000-000000000046}']
-        End;
-
-     IMalloc   = Interface(IUnknown)
-        ['{00000002-0000-0000-C000-000000000046}']
-        Function  Alloc(cb :size_t):Pointer; Stdcall;
-        Function  Realloc (pv :pointer;cb:size_t):Pointer;stdcall;
-        Procedure Free({[in]} pv: pointer); Stdcall;
-        Function  GetSize(pv:pointer):size_t;stdcall;
-        Function  DidAlloc(pv:pointer):Longint;stdcall;
-        procedure HeapMinimize; stdcall;
-        End;
-
-     IMallocSpy = Interface(IUnknown)
-        ['{0000001d-0000-0000-C000-000000000046}']
-
-        Function  PreAlloc(cbrequest:Size_t):Longint; StdCall;
-        function  PostAlloc(Pactual:Pointer):Pointer;StdCall;
-        Function  PreFree(pRequest:Pointer;fSpyed:bool):pointer;StdCall;
-        Procedure PostFree(fspyed:Bool);Stdcall;
-        Function  PreRealloc(pRequest:Pointer;cbRequest:Size_t;Out ppNewRequest:Pointer;
-                        fSpyed:Bool):Size_t;Stdcall;
-        Function  PostRealloc(pactual:Pointer;fspyed:Bool):pointer;Stdcall;
-        Function  PreGetSize(pRequest:pointer;fSpyed:Bool):Pointer;StdCall;
-        Function  PostGetSize(cbactual:Size_t;fSpyed:Bool):Size_t;StdCall;
-        Function  PreDidAlloc(pRequest:pointer;fSpyed:Bool):pointer;stdcall;
-        Function  PostDidAlloc(pRequest:pointer;fSpyed:Bool;Factual:Longint):pointer;stdcall;
-        Procedure PreHeapMinimize;StdCall;
-        Procedure PostHeapMinimize;StdCall;
-        End;
-
-     IStdMarshalInfo = Interface(IUnknown)
-       ['{00000018-0000-0000-C000-000000000046}']
-       Function GetClassForHandler (dwDestContext : DWord;pvDestContext:pointer;out Clsid : Pclsid ):HResult;Stdcall;
-       End;
-
-
-     IExternalConnection = Interface(IUnknown)
-       ['{00000019-0000-0000-C000-000000000046}']
-       Function AddConnection    (ExtConn: DWord; Reserved: DWord):DWord;Stdcall;
-       Function ReleaseConnection(extconn: DWord; Reserved: Dword;FLastReleaseCloses: Bool):DWord;StdCall;
-      End;
-
-
-      IMultiQI = Interface(IUnknown)
-        ['{00000020-0000-0000-C000-000000000046}']
-//if (__midl >= 500)
-//    async_uuid(000e0020-0000-0000-C000-000000000046)
-//endif
-        Function QueryMultipleInterfaces(cMQIs:Ulong;pMQIs:pMultiQI):HResult;StdCall;
-        END;
-
-     IInternalUnknown=Interface(IUnknown)
-        ['{00000021-0000-0000-C000-000000000046}']
-        Function QueryInternalInterface(riid:TIID;Out ppv:Pointer):HResult;StdCall;
-        END;
-
-
-     IEnumUnknown = Interface(IUnknown)
-        ['{00000100-0000-0000-C000-000000000046}']
-        //    pointer_default(unique)
-     Function Next(Celt:Ulong;out rgelt:IUnknown;out pCeltFetched:pulong):HRESULT;StdCall;
-//    HRESULT RemoteNext(        [in] ULONG celt,        [out, size_is(celt), length_is( *pceltFetched)]        IUnknown **rgelt,        [out] ULONG *pceltFetched);
-     Function Skip(Celt:Ulong):HResult;StdCall;
-     Function Reset():HResult;
-     Function Close(Out ppenum: IEnumUnknown):HResult;
-     END;
-
-
-    IBindCtx = Interface (IUnknown)
-       ['{0000000e-0000-0000-C000-000000000046}']
-       Function RegisterObjectBound(Const punk:IUnknown):HResult; stdCall;
-       Function RevokeObjectBound (Const Punk:IUnknown):HResult;  stdCall;
-       Function ReleaseBoundObjects :HResult;  StdCall;
-       Function SetBindOptions(Const bindOpts:TBind_Opts):HResult;  stdCall;
-//       Function RemoteSetBindOptions(Const bind_opts: TBind_Opts2):HResult;StdCall;
-       Function GetBindOptions(var BindOpts:TBind_Opts):HResult;  stdCall;
-//       Function RemoteGetBindOptions(Var bind_opts: TBind_Opts2):HResult;StdCall;
-       Function GetRunningObjectTable(Out rot : IRunningObjectTable):Hresult; StdCall;
-       Function RegisterObjectParam(Const pszkey:LPOleStr;const punk:IUnknown):HResult;
-       Function GetObjectParam(Const pszkey:LPOleStr; out punk: IUnknown):HResult; StdCall;
-       Function EnumObjectParam (out enum:IEnumString):Hresult;StdCall;
-       Function RevokeObjectParam(pszKey:LPOleStr):HResult;StdCall;
-       End;
-
-
-    IEnumMoniker = Interface (IUnknown)
-       ['{00000102-0000-0000-C000-000000000046}']
-       Function Next(celt:ULong; out Elt;out celftfetched: ULong):HResult; StdCall;
-//     Function RemoteNext(Celt:ULong; Out rgelt;out celtfetched :ULong):Hresult; StdCall;
-       Function Skip(celt:Ulong):HResult; StdCall;
-       Function Reset:HResult; StdCall;
-       Function Close(out penum:IEnumMoniker):HResult;StdCall;
-       End;
-
-
-    IRunnableObject = Interface(IUnknown)
-    ['{00000126-0000-0000-C000-000000000046}']
-       Function GetRunningClass(Out clsid:Tclsid):Hresult; StdCall;
-       Function Run(Const pb: IBindCtx):HResult; StdCall;
-       Function IsRunning:Bool; StdCall;
-//     Function RemoteIsRunning:Bool; StdCall;
-       Function LockRunning(FLock,FLastUnlockClose:BOOL):HResult; StdCall;
-       Function SetContainedObject(fContained:Bool):Hresult;Stdcall;
-       End;
-
-    IRunningObjectTable = Interface (IUnknown)
-       ['{00000010-0000-0000-C000-000000000046}']
-       Function Register  (grfFlags :DWord;const unkobject:IUnknown;Const mkObjectName:IMoniker;Out dwregister:DWord):HResult;StdCall;
-       Function Revoke    (dwRegister:DWord):HResult; StdCall;
-       Function IsRunning (Const mkObjectName: IMoniker):HResult;StdCall;
-       Function GetObject (Const mkObjectName: IMoniker; Out punkObject:IUnknown):HResult; StdCall;
-       Function NoteChangeTime(dwRegister :DWord;Const FileTime: TFileTime):HResult;StdCall;
-       Function GetTimeOfLastChange(Const mkObjectName:IMoniker;Out filetime:TFileTime):HResult; StdCall;
-       Function EnumRunning (Out enumMoniker: IEnumMoniker):HResult; StdCall;
-       End;
-
-    IPersist = Interface (IUnknown)
-       ['{0000010c-0000-0000-C000-000000000046}']
-       Function GetClassId(clsid:TClsId):HResult; StdCall;
-       End;
-
-    IPersistStream = Interface(IPersist)
-       ['{00000109-0000-0000-C000-000000000046}']
-       Function IsDirty:HResult; StdCall;
-       Function Load(Const stm: IStream):HResult; StdCall;
-       Function Save(Const stm: IStream;fClearDirty:Bool):HResult;StdCall;
-       Function GetSizeMax(Out cbSize:ULarge_Integer):HResult; StdCall;
-       End;
-
-    PIMoniker = ^IMoniker;
-    IMoniker = Interface (IPersistStream)
-      ['{0000000f-0000-0000-C000-000000000046}']
-      Function BindToObject (const pbc:IBindCtx;const mktoleft:IMoniker; RiidResult:TIID;Out vresult):HResult;StdCall;
-//    Function RemoteBindToObject (const pbc:IBindCtx;const mktoleft:IMoniker;RiidResult:TIID;Out vresult):HResult;StdCall;
-      Function BindToStorage(Const Pbc:IBindCtx;Const mktoLeft:IMoniker; Riid:TIID;Out vobj):HResult; StdCall;
-//    Function RemoteBindToStorage(Const Pbc:IBindCtx;Const mktoLeft:IMoniker; Riid:TIID;Out vobj):HResult; StdCall;
-      Function Reduce (const pbc:IBindCtx; dwReduceHowFar:DWord; mktoLeft: PIMoniker; Out mkReduced:IMoniker):HResult; StdCall;
-      Function ComposeWith(Const MkRight:IMoniker;fOnlyIfNotGeneric:BOOL; OUT mkComposite:IMoniker):HResult; StdCall;
-      Function Enum(fForward:Bool;Out enumMoniker:IEnumMoniker):HResult;StdCall;
-      Function IsEqual(Const mkOtherMoniker:IMoniker):HResult;StdCall;
-      Function Hash   (Out dwHash:Dword):HResult;StdCall;
-      Function IsRunning(Const bc:IBindCtx;Const MkToLeft:IMoniker;Const mknewlyRunning:IMoniker):HResult;StdCall;
-      Function GetTimeOfLastChange(Const bc:IBindCtx;Const mkToLeft:IMoniker; out ft : FileTime):HResult; StdCall;
-      Function Inverse(out mk : IMoniker):HResult; StdCall;
-      Function CommonPrefixWith (Const mkOther:IMoniker):HResult; StdCall;
-      Function RelativePathTo(Const mkother:IMoniker; Out mkRelPath : IMoniker):HResult;StdCall;
-      Function GetDisplayName(Const bc:IMoniker;const mktoleft:IMoniker;Out szDisplayName: pOleStr):HResult; StdCall;
-      Function ParseDisplayName(Const bc:IBindCtx;Const mkToLeft:IMoniker;szDisplayName:POleStr;out cheaten:ULong;out mkOut:IMoniker):HResult; StdCall;
-      Function IsSystemMonitor(Out dwMkSys:DWord):HResult;StdCall;
-      End;
-
-    IROTData = Interface (IUnknown)
-       ['{f29f6bc0-5021-11ce-aa15-00006901293f}']
-       Function GetComparisonData(out data; cbMax:ULong;out cbData:ULong):HResult;StdCall;
-       End;
-
-
-    IEnumString = Interface (IUnknown)
-       ['{00000101-0000-0000-C000-000000000046}']
-       Function Next(Celt:ULong;Out xcelt;Out Celtfetched:ULong):HResult; StdCall;
-//     Function RemoteNext(Celt:ULong; Out celt;Out Celtfetched:ULong):HResult; StdCall;
-       Function Skip (Celt:ULong):Hresult;StdCall;
-       Function Reset:HResult;StdCall;
-       Function Clone(Out penum:IEnumString):HResult;StdCall;
-       End;
-
-    ISequentialStream = Types.ISequentialStream;
-    {interface(IUnknown)
-       ['{0c733a30-2a1c-11ce-ade5-00aa0044773d}']
-       function Read(pv : Pointer;cb : ULONG;pcbRead : PULONG) : HRESULT;stdcall;
-       function Write(pv : Pointer;cb : ULONG;pcbWritten : PULONG): HRESULT;stdcall;
-     end;
-    }
-
-    { defined above by pulling it in from types IStream = interface(ISequentialStream)
-       ['{0000000C-0000-0000-C000-000000000046}']
-       function Seek(dlibMove : LargeInt; dwOrigin: Longint;
-            out libNewPosition : LargeInt): HResult; stdcall;
-       function SetSize(libNewSize : LargeInt) : HRESULT;stdcall;
-       function CopyTo(stm: IStream;cb : LargeInt;out cbRead : LargeInt;
-            out cbWritten: LargeInt) : HRESULT;stdcall;
-       function Commit(grfCommitFlags : Longint) : HRESULT; stdcall;
-       function Revert : HRESULT; stdcall;
-       function LockRegion(libOffset : LargeInt;cb : LargeInt;
-            dwLockType: Longint) : HRESULT;stdcall;
-       function UnlockRegion(libOffset: LargeInt;cb: LargeInt;
-            dwLockType: Longint) : HRESULT;stdcall;
-       Function Stat(out statstg : TStatStg; grfStatFlag: Longint): HRESULT;stdcall;
-       function Clone(out stm : IStream) : HRESULT; stdcall;
-     end;
-    }
-    IEnumSTATSTG = Interface (IUnknown)
-       ['{0000000d-0000-0000-C000-000000000046}']
-        Function Next (Celt:ULong;Out xcelt;pceltfetched : PUlong):HResult; StdCall;
-//     Function RemoteNext(Celt:Ulong; Out Celt;pceltfetched : PUlong);
-       Function Skip(Celt:ULong):HResult; StdCall;
-       Function Reset:HResult; StdCall;
-       Function Clone(Out penum:IEnumStatSTG):HResult; StdCall;
-       End;
-
-
-
-
-    IStorage = Interface (IUnknown)
-       ['{0000000b-0000-0000-C000-000000000046}']
-       Function CreateStream(pwcsname:POleStr;GrfMode,Reserved1,Reserved2 : DWord; Out stm : IStream):HResult; StdCall;
-       Function OpenStream(pwcsname:POleStr;Reserved1:Pointer;GrfMode,Reserved2 : DWord; Out stm : IStream):HResult; StdCall;
-//       Function RemouteOpenStream(pwcsname:POleStr;cbReserved1:ULong;reserved1:pbyte;GrfMode,Reserved2 : DWord; Out stm : IStream):HResult; StdCall;
-       Function CreateStorage(pwcsname:POleStr;GrfMode,Reserved1,Reserved2 : DWord; Out stm : IStorage):HResult; StdCall;
-       Function OpenStorage(pwcsname:POleStr;Const stgPriority:IStorage;grfmode : DWord;Const SNBExclude :SNB;reserved:DWord;Out stm : IStorage):HResult; StdCall;
-       Function CopyTo(ciidExclude:DWord; rgiidexclude:piid; const snbexclude:SNB;const pstg : IStorage):HResult;StdCall;
-       Function MoveElementTo(wcsName:POleStr;Const pstgDest : IStorage;
-                                wcvsNewName:POleStr; GrfFlags:DWord):Hresult; StdCall;
-       Function Commit(grfCommitFlags:Dword):Hresult; StdCall;
-       Function Revert:HResult; StdCall;
-       Function EnumElements(Reserved1 :Dword;Reserved2:Pointer;Reserved3:DWord;Out penum:IEnumStatStg):HResult;StdCall;
-       Function RemoteEnumElements(Reserved1 :Dword;cbReserved2:ULong;Reserved2:pbyte;reserved3:DWord;Out penum:IEnumStatStg):HResult;StdCall;
-       Function DestroyElement(wcsName: POleStr):HResult;StdCall;
-       Function RenameElement(wcsoldName: POleStr;wcsnewName: POleStr):HResult;StdCall;
-       Function SetElementTimes(wcsName:POleStr; Const pctime,patime,pmtime : FileTime):HResult;StdCall;
-       Function SetClass(Const ClasId: TClsID):HResult;StdCall;
-       Function SetStateBits(grfStateBits:DWord;grfMask:DWord):HResult;StdCall;
-       Function Stat(Out pStatStg:StatStg;grfStatFlag:DWord):HResult;StdCall;
-       End;
-
-    IPersistFile = Interface (IPersist)
-       ['{0000010b-0000-0000-C000-000000000046}']
-       Function IsDirty:HResult;StdCall;
-       Function Load(FileName:POleStr;dwMode:DWord):HResult;StdCall;
-       Function Save(FileName:POleStr;fremember:Bool):HResult;StdCall;
-       Function SaveCompleted(FileName:POleStr):HResult;StdCall;
-       Function GetCurFIle(Out FileName:POleStr):HResult;StdCall;
-       End;
-
-
-    IPersistStorage = Interface (IPersist)
-       ['{0000010a-0000-0000-C000-000000000046}']
-       Function IsDirty:HResult;StdCall;
-       Function InitNew(const pstg:IStorage):HResult;StdCall;
-       Function Load(const pstg:IStorage):HResult;StdCall;
-       Function Save(const pstg:IStorage;FSameAsLoad:Boolean):HResult;StdCall;
-       Function SaveCompleted(const pstg:IStorage):HResult;StdCall;
-       Function HandsOffStorage:HResult;StdCall;
-       End;
-
-    ILockBytes = Interface (IUnknown)
-       ['{0000000a-0000-0000-C000-000000000046}']
-       Function ReadAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbRead:ULong):HResult; StdCall;
-//       Function RemoteReadAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbRead:ULong):HResult; StdCall;
-       Function WriteAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbWritten:ULong):HResult; StdCall;
-//       Function RemoteWriteAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbWritten:ULong):HResult; StdCall;
-       Function Flush:HResult;StdCall;
-       Function SetSize(cb:ULarge_Integer):HResult;StdCall;
-       Function LockRegion(LibOffSet:ULarge_Integer;cb:ULarge_Integer;dwLockType:DWord):HResult;StdCall;
-       Function UnlockRegion(LibOffSet:ULarge_Integer;cb:ULarge_Integer;dwLockType:DWord):HResult;StdCall;
-       Function Stat(Out pstatstg:STATSTG;grfstatFlag:DWord):HResult;StdCall;
-       End;
-
-
-   IEnumFORMATETC = Interface (IUnknown)
-     ['{00000103-0000-0000-C000-000000000046}']
-     Function Next(Celt:ULong;Out Rgelt:FormatEtc;Out pceltFetched:ULong):HResult; StdCall;
-//     Function RemoteNext(Celt:ULong;Out Rgelt:FormatEtc;Out pceltFetched:ULong):HResult; StdCall;
-     Function Skip(Celt:ULong):HResult;StdCall;
-     Function Reset:HResult;StdCall;
-     Function Clone(out penum:IEnumFORMATETC):HResult;StdCall;
-     End;
-
-    IEnumSTATDATA = Interface (IUnknown)
-        ['{00000105-0000-0000-C000-000000000046}']
-        Function Next(Celt:ULong;Out Rgelt:statdata;Out pceltFetched:ULong):HResult; StdCall;
-//      Function RemoteNext(Celt:ULong;Out Rgelt:statdata;Out pceltFetched:ULong):HResult; StdCall;
-        Function Skip(Celt:ULong):HResult;StdCall;
-        Function Reset:HResult;StdCall;
-        Function Clone(out penum:IEnumstatdata):HResult;StdCall;
-        End;
-
-
-
-    IRootStorage = Interface (IUnknown)
-        ['{00000012-0000-0000-C000-000000000046}']
-        Function SwitchToFile(pszfile:PoleStr):HResult;StdCall;
-        End;
-
-
-
-    IAdviseSink = Interface (IUnknown)
-        ['{0000010f-0000-0000-C000-000000000046}']
-    {$ifdef midl500} ['{00000150-0000-0000-C000-000000000046}'] {$endif}
-        Procedure OnDataChange (Const pformatetc : Formatetc;const pstgmed : STGMEDIUM); StdCall;
-        Procedure OnViewChange (dwAspect : DWord; lindex : Long); StdCall;
-        Procedure OnRename (Const pmk : IMoniker); StdCall;
-        Procedure OnSave; StdCall;
-        Procedure OnClose; StdCall;
-        End;
-
-    IAdviseSink2 = Interface (IAdviseSink)
-       ['{00000125-0000-0000-C000-000000000046}']
-        Procedure OnLinkSrcChange(Const Pmk: IMoniker); StdCall;
-        End;
-
-
-    IDataObject = Interface (IUnknown)
-       ['{0000010e-0000-0000-C000-000000000046}']
-       Function GetData(Const formatetcIn : FORMATETC;Out medium : STGMEDIUM):HRESULT; STDCALL;
-       Function GetDataHere(CONST pformatetc : FormatETC; Out medium : STGMEDIUM):HRESULT; STDCALL;
-       Function QueryGetData(const pformatetc : FORMATETC):HRESULT; STDCALL;
-       Function GetCanonicalFormatEtc(const pformatetcIn : FORMATETC;Out pformatetcOut : FORMATETC):HResult; STDCALl;
-       Function SetData (Const pformatetc : FORMATETC;const medium:STGMEDIUM;FRelease : BOOL):HRESULT; StdCall;
-       Function EnumFormatEtc(dwDirection : DWord; OUT enumformatetcpara : IENUMFORMATETC):HRESULT; StdCall;
-       Function DAdvise(const formatetc : FORMATETC;advf :DWORD; CONST AdvSink : IAdviseSink;OUT dwConnection:DWORD):HRESULT;StdCall;
-       Function DUnadvise(dwconnection :DWord) :HRESULT;StdCall;
-       Function EnumDAdvise(Out enumAdvise : IEnumStatData):HResult;StdCall;
-       End;
-
-    IDataAdviseHolder = Interface (IUnknown)
-       ['{00000110-0000-0000-C000-000000000046}']
-       Function Advise    (CONST pdataObject : IDataObject;CONST fetc:FORMATETC;advf : DWORD;Const pAdvise:IAdviseSink;Out DwConnection:DWord):HResult; StdCall;
-       Function Unadvise  (dwConnection:Dword):HResult; StdCall;
-       Function EnumAdvise(out penumAdvise : IEnumStatData):HResult;StdCall;
-       Function SendOnDataChange(const pDataObject :IDataObject;DwReserved,advf : DWord):HResult; StdCall;
-       End;
-
-
-
-
-    IMessageFilter = Interface (IUnknown)
-       ['{00000016-0000-0000-C000-000000000046}']
-       Function HandleInComingCall(dwCallType :DWord;htaskCaller : HTASK; dwTickCount: DWORD;CONST sinterfaceinfo:InterfaceInfo):DWord; StdCall;
-       Function RetryRejectedCall (htaskCallee:HTASK; dwTickCount : DWord; dwRejectType : Dword):DWord; StdCall;
-       Function MessagePending    (htaskCallee:HTASK; dwTickCount : DWord; dwPendingType : Dword):DWord; StdCall;
-       End;
-
-//****************************************************************************
-//*  Object Remoting Interfaces
-//****************************************************************************
-
-
-
-    IRpcChannelBuffer = Interface (IUnknown)
-       ['{D5F56B60-593B-101A-B569-08002B2DBF7A}']
-       Function GetBuffer (Const pMesasge : RPCOLEMESSAGE;Const riid :TIId):HResult; StdCall;
-       Function SendReceive(Var pMessage : RPCOLEMESSAGE; Out PStatus : ULong):HResult; StdCall;
-       Function FreeBuffer(Const pMessage : RPCOLEMESSAGE):HResult; StdCall;
-       Function GetDestCTX(Out dwDestContext : DWord;Out pvDestContext : Pointer):HResult; StdCall;
-       Function IsConnected:HResult; StdCall;
-       End;
-
-    IRpcChannelBuffer2 = Interface (IRpcChannelBuffer)
-       ['{594f31d0-7f19-11d0-b194-00a0c90dc8bf}']
-       Function GetProtocolVersion(Var dwVersion : DWord):HResult; StdCall;
-       End;
-
-
-    IAsyncRpcChannelBuffer = Interface (IRpcChannelBuffer2)
-       ['{a5029fb6-3c34-11d1-9c99-00c04fb998aa}']
-       Function Send(Var Msg: RPCOLEMESSAGE;Const pSync : ISynchronize;Out PulStatus : ULong):HResult; StdCall;
-       Function Receive(Var Msg: RPCOLEMESSAGE;Out PulStatus : ULong):HResult; StdCall;
-       Function GetDestCTXEx(Out MSG : RPCOLEMESSAGE;Out vDestContext : DWord;Out pvDestContext : Pointer ):HResult;StdCall;
-       End;
-
-    IRpcChannelBuffer3 = Interface (IRpcChannelBuffer2)
-       ['{25B15600-0115-11d0-BF0D-00AA00B8DFD2}']
-       Function Send(Var msg : RPCOLEMESSAGE;Out ulStatus : ULONG):HResult; StdCall;
-       Function Receive(Var msg : RPCOLEMESSAGE;ulSize : ULong;Out ulStatus : ULONG):HResult; StdCall;
-       Function Cancel (Const msg : RPCOLEMESSAGE):HResult; StdCall;
-       Function GetCallContext(Const msg : RPCOLEMESSAGE; Const riid : TIID; Out pInterface : Pointer):HResult; StdCall;
-       Function GetDestCTXEx(Const Msg : RPCOLEMESSAGE;Out vDestContext : DWord;Out pvDestContext : Pointer ):HResult;StdCall;
-       Function GetState(Const Msg : RPCOLEMESSAGE;Out State: DWord):HResult;StdCall;
-       Function RegisterAsync(Const Msg : RPCOLEMESSAGE;Const asyncmgr : IAsyncManager):HResult;StdCall;
-       End;
-
-    IRpcSyntaxNegotiate = Interface (IUnknown)
-       ['{58a08519-24c8-4935-b482-3fd823333a4f}']
-       Function NegotiateSyntax ( Var msg :  RPCOLEMESSAGE):HResult; StdCall;
-       End;
-
-
-
-
-    IRpcProxyBuffer = Interface (IUnknown)
-       ['{D5F56A34-593B-101A-B569-08002B2DBF7A}']
-       Function Connect(Const rpcchannelbuffer : IRpcChannelBuffer):HResult; StdCall;
-       Procedure Disconnect;
-       End;
-
-    IRpcStubBuffer = Interface (IUnknown)
-       ['{D5F56AFC-593B-101A-B569-08002B2DBF7A}']
-       Function COnnect ( Const UnkServer : IUnknown):HResult; StdCall;
-       Procedure Disconnect; StdCall;
-       Function Invoke(Const rpcmsg : RPCOLEMESSAGE;Const RpcChanBuf : IRpcChannelBuffer):HResult; StdCall;
-       Function IsIIDSupported (Const riid : TIID):Pointer {IRpcStubBuffer}; StdCall;
-       Function CountRefs :ULong; StdCall;
-       Function DebugServerQueryInterface(CONST pv : Pointer):HResult; StdCall;
-       Procedure DebugServerRelease (pv : Pointer); StdCall;
-       End;
-
-    IPSFactoryBuffer = Interface (IUnknown)
-       ['{D5F569D0-593B-101A-B569-08002B2DBF7A}']
-       Function CreateProxy(Const UnkOuter : IUnknown;const riid : TIID; Out proxy: IRpcProxyBuffer; Out Pv :Pointer):HResult; StdCall;
-       Function CreateStub (Const riid : TIID; Const UnkServer : IUnknown; Out pstub : IRpcStubBuffer):HResult; StdCall;
-       End;
-
-{$ifdef NT4_greater_Or_DCOM}
-// This interface is only valid on Windows NT 4.0
-
-// This structure contains additional data for hooks.  As a backward
-// compatability hack, the entire structure is passed in place of the
-// RIID parameter on all hook methods.  Thus the IID must be the first
-// parameter.  As a forward compatability hack the second field is the
-// current size of the structure.
-
-    SChannelHookCallInfo= Record;
-                            IID               : iid;
-                            cbSize            : Dword;
-                            uCausality        : GUID;
-                            dwServerPid,
-                            iMethod           : DWord;
-                            pObject           : Pointer;
-                            End;
-
-
-
-  IChannelHook = Interface (IUnknown)
-     ['{1008c4a0-7613-11cf-9af1-0020af6e72f4}']
-     Procedure ClientGetSize(Const uExtent : TGuid; CONST riid : TIID; Out datasize :ULong); StdCall;
-     Procedure ClientFillBuffer(Const uExtent : TGuid; CONST riid : TIID; Var datasize :ULong;Buffer :Pointer); StdCall;
-     Procedure ClientNotify(Const uExtent : TGuid; CONST riid : TIID; datasize :ULong;Buffer :Pointer;hrfault:HResult); StdCall;
-     Procedure ServerNotify(Const uExtent : TGuid; CONST riid : TIID; datasize :ULong;Buffer :Pointer;DataRep:DWord); StdCall;
-     Procedure ServerGetSize(Const uExtent : TGuid; CONST riid : TIID;hrFault :HResult; Out datasize :ULong); StdCall;
-     Procedure ServerFillBuffer(Const uExtent : TGuid; CONST riid : TIID; Var datasize :ULong;Buffer :Pointer;HrFault:HResult); StdCall;
-     End;
-{$Endif}
-
-
-// Well-known Property Set Format IDs
-//FMTID_SummaryInformation              = {CONST} FMTID;
-//FMTID_DocSummaryInformation           = {CONST} FMTID;
-//FMTID_UserDefinedProperties           = {CONST} FMTID;
-//FMTID_DiscardableInformation          = {CONST} FMTID;
-//FMTID_ImageSummaryInformation         = {CONST} FMTID;
-//FMTID_AudioSummaryInformation         = {CONST} FMTID;
-//FMTID_VideoSummaryInformation         = {CONST} FMTID;
-//FMTID_MediaFileSummaryInformation     = {CONST} FMTID;
-
-
-//****************************************************************************
-// *  Connection Point Interfaces
-// ****************************************************************************/
-
-//#ifdef __INCLUDE_CPIFS
-     IConnectionPointContainer = Interface;
-//interface IConnectionPoint;
-//interface IEnumConnections;
-     IEnumConnectionPoints = Interface;
-     IEnumConnections      = Interface;
-
-
-    IConnectionPoint = Interface (IUnknown)
-       ['{B196B286-BAB4-101A-B69C-00AA00341D07}']
-       Function GetConnectionInterface(out piid : TIID):HResult;StdCall;
-       Function GetConnectionPointContainer(CPC : IConnectionPointContainer):HResult;StdCall;
-       Function Advise(unkSink : IUnknown;Out dwCookie : DWord):HResult;StdCall;
-       Function UnAdvise(dwCookie : DWord):HResult;StdCall;
-       Function EnumConnection(out pEnum : IEnumConnections):HResult;stdCall;
-      End;
-
-    IConnectionPointContainer = Interface (IUnknown)
-       ['{B196B284-BAB4-101A-B69C-00AA00341D07}']
-       Function EnumConnectionPoints(out pEnum : IEnumConnectionPoints):HResult;StdCall;
-       Function FindConnectionPoint(Const RIID : TIID;Out ppcp : IConnectionPoint):HResult;StdCall;
-       End;
-
-    tagCONNECTDATA = Record
-                      unk        : Pointer; {IUnknown}
-                      dwCookie   : DWord;
-                      End;
-    ConnectData    = tagCONNECTDATA;
-
-    IEnumConnections = Interface (IUnknown)
-       ['{B196B287-BAB4-101A-B69C-00AA00341D07}']
-       Function Next(cConnections : ULong; Out rgcd : ConnectData;Out lpcFetched : ULong):HResult;StdCall;
-       Function Skip(cConnections : ULong):HResult;StdCall;
-       Function Reset:HResult;StdCall;
-       Function Clone(Out pEnum : IEnumConnections):HResult; StdCall;
-       End;
-
-
-    IEnumConnectionPoints = Interface (IUnknown)
-       ['{B196B285-BAB4-101A-B69C-00AA00341D07}']
-       Function Next(cConnections : ULong; Out rgpcm : IConnectionPoint;Out lpcFetched : ULong):HResult;StdCall;
-       Function Skip(cConnections : ULong):HResult;StdCall;
-       Function Reset:HResult;StdCall;
-       Function Clone(Out pEnum : IEnumConnectionPoints):HResult;StdCall;
-       End;
-
-
-
-    tagSOLE_AUTHENTICATION_SERVICE = Record
-                                       dwAuthnSvc,
-                                       dwAuthzSvc     : DWord;
-                                       pPrincipalName : POleStr;
-                                       hr             : HResult;
-                                       End;
-    SOLE_AUTHENTICATION_SERVICE   = tagSOLE_AUTHENTICATION_SERVICE;
-    PSOLE_AUTHENTICATION_SERVICE  = ^SOLE_AUTHENTICATION_SERVICE;
-
-    tagSOLE_AUTHENTICATION_INFO   = Record
-                                       dwAuthnSvc,
-                                       dwAuthzSvc     : DWord;
-                                       AuthInfo       : Pointer;
-                                       End;
-    SOLE_AUTHENTICATION_INFO      = tagSOLE_AUTHENTICATION_INFO;
-    PSOLE_AUTHENTICATION_INFO     = ^SOLE_AUTHENTICATION_INFO;
-
-    tagSOLE_AUTHENTICATION_LIST   = Record
-                                       cAuthInfo      : DWord;
-                                       AuthInfo       : PSOLE_AUTHENTICATION_INFO;
-                                       End;
-    SOLE_AUTHENTICATION_LIST      = tagSOLE_AUTHENTICATION_LIST;
-    PSOLE_AUTHENTICATION_LIST     = ^SOLE_AUTHENTICATION_LIST;
-
-{$ifdef WINNT_DCOM}
-
-    IClientSecurity = Interface (IUnknown)
-        ['{0000013D-0000-0000-C000-000000000046}']
-        Function QueryBlanket (Proxy : IUnknown;Out AuthnSvc,AuthzSvc : Dword;Out ServerPrincName:pOleStr;Out AuthnLevel,ImpLevel:Dword; Out AuthInfo : Pointer; Out Capabilities : Dword):HResult;StdCall;
-        Function SetBlanket   (Proxy : IUnknown;AuthnSvc,AuthzSvc : Dword;ServerPrincName:pOleStr;AuthnLevel,ImpLevel:Dword;AuthInfo : Pointer;Capabilities : Dword):HResult;StdCall;
-        Function CopyProxy    (Proxy : IUnknown;Out pcopy:IUnknown):HResult;StdCall;
-        End;
-
-    IServerSecurity = Interface (IUnknown)
-       ['{0000013E-0000-0000-C000-000000000046}']
-       Function QueryBlanket ( out authnSvc,AuthzSvc : DWord; Out pServerPrincName : pOleStr; Out AuthnLevel, ImpLevel; :DWord; out Privs : Pointer; Var Capabilities :DWord):HResult;StdCall;
-       Function ImpersonateClient:HResult;StdCall;
-       Function RevertToSelf:HResult;StdCall;
-       Function IsImpersonating:Bool;StdCall;
-    End;
-
-    IClassActivator = Interface (IUnknown)
-       ['{00000140-0000-0000-C000-000000000046}']
-       Function GetClassObject(Const rclsif : TClsID; ClassContext : DWord; locale : LCID; Const ridd : TIID; Out pv : Pointer):HResult;StdCall;
-       End;
-
-
-    IRpcOptions = Interface (IUnknown)
-       ['{00000144-0000-0000-C000-000000000046}']
-       Function xSet (prx : IUnknown;dwProperty : DWord; dwValue:ULONG_PTR):HResult; StdCall;
-       Function Query (prx : IUnknown;dwProperty:Dword; dwValue:ULONG_PTR):HResult; StdCall;
-       End;
-
-{$endif} {DCOM}
-
-    IFillLockBytes = Interface (IUnknown)
-       ['{99caf010-415e-11cf-8814-00aa00b569f5}']
-       Function FillAppend(const pv : Pointer;cb:ULong; Out PcbWritten : ULong):HResult;StdCall;
-       Function FillAt(ulOffset : ULarge_INTEGER;Const pv : Pointer;cb :ULong; Out pcbWritten:ULong):HResult;StdCall;
-       Function SetFillSize ( ulSize :ULarge_Integer):HResult;StdCall;
-       Function Terminate (bCanceled :Bool):HResult;StdCall;
-    End;
-
-    IProgressNotify = Interface (IUnknown)
-       ['{a9d758a0-4617-11cf-95fc-00aa00680db4}']
-       Function OnProgress (ProgressCurrent,ProgressMaximum :Dword; FAccurate,Fowner : Bool):HResult;StdCall;
-       End;
-
-    ILayoutStorage = Interface (IUnknown)
-       ['{0e6d4d90-6738-11cf-9608-00aa00680db4}']
-       {The methods in this interface all had "__stdcall" as modifier, while the other classes don't. ?!?!?}
-       Function LayoutScript ( xStorageLayout : StorageLayout;nEntries,glfInterleaveFlag : Dword) :HResult; StdCall;
-       Function BeginMonitor:HResult;StdCall;
-       Function EndMonitor:HResult;StdCall;
-       Function ReLayourDocFile(pwcsNewDFName :pOleStr):HResult;StdCall;
-       Function ReLayoutDocfileOnILockBytes(LockBytes : ILockBytes):Hresult;StdCall;
-       End;
-
-    IBlockingLock = Interface (IUnknown)
-       ['{30f3d47a-6447-11d1-8e3c-00c04fb9386d}']
-       Function Lock (dwTimeOut : DWord) : HResult;Stdcall;
-       Function Unlock : HResult;Stdcall;
-       End;
-
-    ITimeAndNoticeControl = Interface (IUnknown)
-       ['{bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4}']
-       Function SuppressChanges(res1,res2 : Dword):HResult;StdCall;
-       End;
-
-    IOplockStorage = Interface (IUnknown)
-       ['{8d19c834-8879-11d1-83e9-00c04fc2c6d4}']
-       Function CreateStorageEx(wcsName : LPCWSTR;grfMode,StgFmt,GrfAtrrs :Dword;Const riid :Tiid; Out ppstgOpen : Pointer):HResult;StdCall;
-       Function OpenStorageEx(wcsName : LPCWSTR;grfMode,StgFmt,GrfAtrrs :Dword;Const riid :Tiid; Out ppstgOpen : Pointer):HResult;StdCall;
-       End;
-
-    ISurrogate = Interface (IUnknown)
-       ['{00000022-0000-0000-C000-000000000046}']
-       Function LoadDllServer (Const ClsId : TClsId):HResult;StdCall;
-       Function FreeSurrogate:HResult;StdCall;
-       End;
-
-    IGlobalInterfaceTable = Interface (IUnknown)
-       ['{00000146-0000-0000-C000-000000000046}']
-       Function RegisterInterfaceInGlobal(unk :IUnknown;Const riid : TIID; Out dwcookie :DWord):HResult;StdCall;
-       Function RevokeInterfaceFromGlobal (dwCookie :DWord):HResult;StdCall;
-       Function GetInterfaceFromGlobal (dwCookie :DWord;Const riid : TIID;out pv : Pointer):HResult;StdCall;
-       End;
-
-    IDirectWriterLock = Interface (IUnknown)
-       ['{0e6d4d92-6738-11cf-9608-00aa00680db4}']
-       Function WaitForWriteAccess (dwTimeOut : DWORD):HResult;StdCall;
-       Function ReleaseWriteAccess:HResult;StdCall;
-       Function HaveWriteAccess:HResult;StdCall;
-       End;
-
-    ISynchronize = Interface (IUnknown)
-       ['{00000030-0000-0000-C000-000000000046}']
-       Function Wait (dwFlags : DWord; dwMilliSeconds : DWord):HResult;StdCall;
-       Function Signal : HResult;StdCall;
-       Function Reset : HResult;StdCall;
-       End;
-
-    ISynchronizeHandle = Interface (IUnknown)
-       ['{00000031-0000-0000-C000-000000000046}']
-       Function GetHandle(Out ph : Handle):HResult;StdCall;
-       End;
-
-    ISynchronizeEvent = Interface (ISynchronizeHandle)
-       ['{00000032-0000-0000-C000-000000000046}']
-       Function SetEventHandle (Const ph : Handle):HResult; StdCall;
-       End;
-
-    ISynchronizeContainer = Interface (IUnknown)
-       ['{00000033-0000-0000-C000-000000000046}']
-       Function AddSynchronize(pSync : ISynchronize):HResult; StdCall;
-       Function WaitMultiple(dwFlags : Dword; dwTimeOut : Dword; Out pSync : ISynchronize):HResult;StdCall;
-       End;
-
-    ISynchronizeMutex = Interface (ISynchronize)
-       ['{00000025-0000-0000-C000-000000000046}']
-       Function ReleaseMutex:HResult; StdCall;
-       End;
-
-    ICancelMethodCalls = Interface (IUnknown)
-       ['{00000029-0000-0000-C000-000000000046}']
-       Function Cancel(ulSeconds : ULong):HResult; StdCall;
-       Function TestCancel:HResult;StdCall;
-       End;
-
-    IAsyncManager = Interface (IUnknown)
-       ['{0000002A-0000-0000-C000-000000000046}']
-       Function CompleteCall (xResult : HResult):HResult;StdCall;
-       Function GetCallContext(Const iid :TIID; Out pInterface : Pointer):HResult;StdCall;
-       Function GetState(Out pulStateFlags : ULong):HResult;StdCall;
-       End;
-
-    ICallFactory = Interface (IUnknown)
-       ['{1c733a30-2a1c-11ce-ade5-00aa0044773d}']
-       Function CreateCall(Const riid:TIID;CtrUnk : IUnknown;Const Riid2:TIID;Out Unknown : IUnknown):HResult;StdCall;
-       End;
-
-    IRpcHelper = Interface (IUnknown)
-       ['{00000149-0000-0000-C000-000000000046}']
-       Function GetDCOMProtocolVersion(Out ComVersion :DWord):HResult;StdCall;
-       Function GettIIDFromOBJREF(ObjRef : Pointer;Out xIID : piid):HResult;StdCall;
-       End;
-
-    IReleaseMarshalBuffers = Interface (IUnknown)
-       ['{eb0cb9e8-7996-11d2-872e-0000f8080859}']
-       Function ReleaseMarshalBuffer(const pnsg : RPCOLEMESSAGE;dwFlags:DWord;Const pchn : IUnknown):HResult; StdCall;
-       End;
-
-    IWaitMultiple = Interface (IUnknown)
-       ['{0000002B-0000-0000-C000-000000000046}']
-       Function WaitMulitple(TImeout :DWord;out psync : ISynchronize):HResult; StdCall;
-       Function AddSynchronize (const psync : ISynchronize):HResult;StdCall;
-       End;
-
-    IUrlMon = Interface (IUnknown)
-       ['{00000026-0000-0000-C000-000000000046}']
-       Function AsyncGetClassBits(CONST rclsif : TClsID; psztype,pzext : lpcwstr; dwfileversionMS,dwFileVersionLS : DWord; pzcodebase : LPCWSTR; Const pbc : IBindCTX; dwclasscontext : DWord; const Riid:TIID; flags :DWORD):HResult; StdCall;
-       End;
-
-    IForegroundTransfer = Interface (IUnknown)
-       ['{00000145-0000-0000-C000-000000000046}']
-       Function AllowForegroundTransfer(lpvReserved:Pointer):HResult; StdCall;
-       End;
-
-    IAddrTrackingControl = Interface (IUnknown)
-       ['{00000147-0000-0000-C000-000000000046}']
-       Function EnableCOMDynamicAddrTracking:HResult; StdCall;
-       Function DisableCOMDynamicAddrTracking:HResult; StdCall;
-       End;
-
-    IAddrExclusionControl = Interface (IUnknown)
-       ['{00000148-0000-0000-C000-000000000046}']
-       Function GetCurrentAddrExclusionList(Const riid : TIID;out Enumerator : Pointer):HResult;StdCall;
-       Function UpdateAddrExclusionList(Enumerator : IUnknown):HResult;StdCall;
-       End;
-
-//****************************************************************************
-//* Pipe interfaces
-//****************************************************************************/
-
-// Doesn't look translatable. See objidl.idl
-
-//****************************************************************************
-//* Thumbnail generator interface
-//****************************************************************************/
-
-   IThumbnailExtractor = Interface (IUnknown)
-      ['{969dc708-5c76-11d1-8d86-0000f804b057}']
-       Function ExtractThumbnail (pStg : IStorage; uLength,UHeight : ULong; Out uloutputlength,Height :ULong; Out OutputBitmap : HBITMAP): HResult; StdCall;
-       Function OnFileUpdated (pStg : IStorage):HResult;
-       End;
-
-//****************************************************************************
-//* Dummy Interface to force inclusion of HICON and HDC in proxy/stub code....
-//****************************************************************************/
-
-    IDummyHICONIncluder = Interface (IUnknown)
-       ['{947990de-cc28-11d2-a0f7-00805f858fb1}']
-       Function Dummy (h1 : HICON; H2 :HDC):HResult;
-       End;
-
-    IComThreadingInfo = Interface (IUnknown)
-       ['{000001ce-0000-0000-C000-000000000046}']
-       Function GetCurrentApartmentType(out pAptType : DWord {APTTTYPE}):HResult;
-       Function GetCurrentThreadType(Out ThreadType : Dword {THDTTYPE}):HResult;StdCall;
-       Function GetCurrentLogicalThreadID(Out guidlogicalThreadId : TGUID):HResult;StdCall;
-       Function SetCurrentLogicalThreadID(Const guidlogicalThreadId : TGUID):HResult;StdCall;
-       End;
-
-   IProcessInitControl = Interface (IUnknown)
-       ['{72380d55-8d2b-43a3-8513-2b6ef31434e9}']
-       Function ResetInitializerTimeout(dwSecondsRemaining:DWord):HResult; StdCall;
-       End;
-
-
-// Interfaces from OAIDL.IDL
-
-   ITypeInfo = Interface;
-
-   ICreateTypeInfo = Interface (IUnknown)
-     ['{00020405-0000-0000-C000-000000000046}']
-     Function  SetGuid(CONST guid: TGUID):HResult;StdCall;
-     Function  SetTypeFlags(uTypeFlags: UINT):HResult;StdCall;
-     Function  SetDocString(pStrDoc: pOleStr):HResult;StdCall;
-     Function  SetHelpContext(dwHelpContext: DWORD):HResult;StdCall;
-     Function  SetVersion(wMajorVerNum: WORD; wMinorVerNum: WORD):HResult;StdCall;
-     Function  AddRefTypeInfo(CONST pTInfo: ITypeInfo; CONST phRefType: HREFTYPE):HResult;StdCall;
-     Function  AddFuncDesc(index: UINT; CONST pFuncDesc: FUNCDESC):HResult;StdCall;
-     Function  AddImplType(index: UINT; hRefType: HREFTYPE):HResult;StdCall;
-     Function  SetImplTypeFlags(index: UINT; implTypeFlags: WINT):HResult;StdCall;
-     Function  SetAlignment(cbAlignment: WORD):HResult;StdCall;
-     Function  SetSchema(pStrSchema: pOleStr):HResult;StdCall;
-     Function  AddVarDesc(index: UINT; CONST pVarDesc: VARDESC):HResult;StdCall;
-     Function  SetFuncAndParamNames(index: UINT; CONST rgszNames: pOleStr; cNames: UINT):HResult;StdCall;
-     Function  SetVarName(index: UINT; szName: pOleStr):HResult;StdCall;
-     Function  SetTypeDescAlias(CONST pTDescAlias: TYPEDESC):HResult;StdCall;
-     Function  DefineFuncAsDllEntry(index: UINT; szDllName: pOleStr; szProcName: pOleStr):HResult;StdCall;
-     Function  SetFuncDocString(index: UINT; szDocString: pOleStr):HResult;StdCall;
-     Function  SetVarDocString(index: UINT; szDocString: pOleStr):HResult;StdCall;
-     Function  SetFuncHelpContext(index: UINT; dwHelpContext: DWORD):HResult;StdCall;
-     Function  SetVarHelpContext(index: UINT; dwHelpContext: DWORD):HResult;StdCall;
-     Function  SetMops(index: UINT; Const bstrMops: WideString):HResult;StdCall;
-     Function  SetTypeIdldesc(CONST pIdlDesc: IDLDESC):HResult;StdCall;
-     Function  LayOut():HResult;StdCall;
-     End;
-
-   ICreateTypeInfo2 = Interface (ICreateTypeInfo)
-     ['{0002040E-0000-0000-C000-000000000046}']
-     Function  DeleteFuncDesc(index: UINT):HResult;StdCall;
-     Function  DeleteFuncDescByMemId(memid: MEMBERID; invKind: INVOKEKIND):HResult;StdCall;
-     Function  DeleteVarDesc(index: UINT):HResult;StdCall;
-     Function  DeleteVarDescByMemId(memid: MEMBERID):HResult;StdCall;
-     Function  DeleteImplType(index: UINT):HResult;StdCall;
-     Function  SetCustData(CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
-     Function  SetFuncCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
-     Function  SetParamCustData(indexFunc: UINT; indexParam: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
-     Function  SetVarCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
-     Function  SetImplTypeCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
-     Function  SetHelpStringContext(dwHelpStringContext: ULONG):HResult;StdCall;
-     Function  SetFuncHelpStringContext(index: UINT; dwHelpStringContext: ULONG):HResult;StdCall;
-     Function  SetVarHelpStringContext(index: UINT; dwHelpStringContext: ULONG):HResult;StdCall;
-     Function  Invalidate():HResult;StdCall;
-     Function  SetName(szName: pOleStr):HResult;StdCall;
-     End;
-
-   ICreateTypeLib = Interface (IUnknown)
-     ['{00020406-0000-0000-C000-000000000046}']
-     Function  CreateTypeInfo(szName: pOleStr; tkind: TYPEKIND; OUT ppCTInfo: ICreateTypeInfo):HResult;StdCall;
-     Function  SetName(szName: pOleStr):HResult;StdCall;
-     Function  SetVersion(wMajorVerNum: WORD; wMinorVerNum: WORD):HResult;StdCall;
-     Function  SetGuid(CONST guid: TGUID):HResult;StdCall;
-     Function  SetDocString(szDoc: pOleStr):HResult;StdCall;
-     Function  SetHelpFileName(szHelpFileName: pOleStr):HResult;StdCall;
-     Function  SetHelpContext(dwHelpContext: DWORD):HResult;StdCall;
-     Function  SetLcid(lcid: LCID):HResult;StdCall;
-     Function  SetLibFlags(uLibFlags: UINT):HResult;StdCall;
-     Function  SaveAllChanges():HResult;StdCall;
-     End;
-
-   ICreateTypeLib2 = Interface (ICreateTypeLib)
-    ['{0002040F-0000-0000-C000-000000000046}']
-     Function  DeleteTypeInfo(szName: pOleStr):HResult;StdCall;
-     Function  SetCustData(CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
-     Function  SetHelpStringContext(dwHelpStringContext: ULONG):HResult;StdCall;
-     Function  SetHelpStringDll(szFileName: pOleStr):HResult;StdCall;
-     End;
-
-   IEnumVARIANT = Interface (IUnknown)
-     ['{00020404-0000-0000-C000-000000000046}']
-     {$ifndef Call_as}
-      Function  Next(celt: ULONG; OUT rgVar: VARIANT; OUT pCeltFetched: ULONG):HResult;StdCall;
-     {$else}
-      Function  Next(celt: ULONG; OUT rgVar: VARIANT; OUT pCeltFetched: ULONG):HResult;StdCall;
-     {$endif}
-     Function  Skip(celt: ULONG):HResult;StdCall;
-     Function  Reset():HResult;StdCall;
-     Function  Clone(OUT ppEnum: IEnumVARIANT):HResult;StdCall;
-     End;
-
-   ITypeComp = Interface (IUnknown)
-     ['{00020403-0000-0000-C000-000000000046}']
-     {$ifndef Call_as}
-      Function  Bind(szName: pOleStr; lHashVal: ULONG; wFlags: WORD; OUT ppTInfo: ITypeInfo; OUT pDescKind: DESCKIND; OUT pBindPtr: BINDPTR):HResult;StdCall;
-      Function  BindType(szName: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT ppTComp: ITypeComp):HResult;StdCall;
-     {$else}
-      Function  Bind(szName: pOleStr; lHashVal: ULONG; wFlags: WORD; OUT ppTInfo: ITypeInfo; OUT pDescKind: DESCKIND; OUT ppFuncDesc: LPFUNCDESC; OUT ppVarDesc: LPVARDESC; O
-      Function  BindType(szName: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo):HResult;StdCall;
-     {$endif}
-     End;
-
-   ITypeInfo = Interface (IUnknown)
-     ['{00020401-0000-0000-C000-000000000046}']
-     {$ifndef Call_as}
-      Function  GetTypeAttr(OUT ppTypeAttr: lpTYPEATTR):HResult;StdCall;
-     {$else}
-      Function  GetTypeAttr(OUT ppTypeAttr: LPTYPEATTR; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
-     {$endif}
-      Function  GetTypeComp(OUT ppTComp: ITypeComp):HResult;StdCall;
-     {$ifndef Call_as}
-      Function  GetFuncDesc(index: UINT; OUT ppFuncDesc: lpFUNCDESC):HResult;StdCall;
-      Function  GetVarDesc(index: UINT; OUT ppVarDesc: lpVARDESC):HResult;StdCall;
-      Function  GetNames(memid: MEMBERID; OUT rgBstrNames: WideString; cMaxNames: UINT; OUT pcNames: UINT):HResult;StdCall;
-     {$else}
-      Function  GetFuncDesc(index: UINT; OUT ppFuncDesc: LPFUNCDESC; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
-      Function  GetVarDesc(index: UINT; OUT ppVarDesc: LPVARDESC; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
-      Function  GetNames(memid: MEMBERID; OUT rgBstrNames: WideString; cMaxNames: UINT; OUT pcNames: UINT):HResult;StdCall;
-     {$endif}
-     Function  GetRefTypeOfImplType(index: UINT; OUT pRefType: HREFTYPE):HResult;StdCall;
-     Function  GetImplTypeFlags(index: UINT; OUT pImplTypeFlags: WINT):HResult;StdCall;
-     {$ifndef Call_as}
-      Function  GetIDsOfNames(CONST rgszNames: pOleStr; cNames: UINT; OUT pMemId: MEMBERID):HResult;StdCall;
-     {$else}
-      Function  LocalGetIDsOfNames():HResult;StdCall;
-     {$endif}
-     {$ifndef Call_as}
-     Function  Invoke(pvInstance: Pointer; memid: MEMBERID; wFlags: WORD; VAR pDispParams: DISPPARAMS; OUT pVarResult: VARIANT; OUT pExcepInfo: EXCEPINFO; OUT puArgErr: UINT):HResult;StdCall;
-     {$else}
-     Function  LocalInvoke ():HResult;StdCall;
-     {$endif}
-     {$ifndef Call_as}
-     Function  GetDocumentation(memid: MEMBERID; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
-     {$else}
-     Function  GetDocumentation(memid: MEMBERID; refPtrFlags: DWORD; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
-     {$endif}
-
-     {$ifndef Call_as}
-     Function  GetDllEntry(memid: MEMBERID; invKind: INVOKEKIND; OUT pBstrDllName: WideString; OUT pBstrName: WideString; OUT pwOrdinal: WORD):HResult;StdCall;
-     {$else}
-     Function  GetDllEntry(memid: MEMBERID; invKind: INVOKEKIND; refPtrFlags: DWORD; OUT pBstrDllName: WideString; OUT pBstrName: WideString; OUT pwOrdinal: WORD):HResult;StdCall;
-     {$endif}
-
-     Function  GetRefTypeInfo(hRefType: HREFTYPE; OUT ppTInfo: ITypeInfo):HResult;StdCall;
-
-     {$ifndef Call_as}
-      Function  AddressOfMember(memid: MEMBERID; invKind: INVOKEKIND; OUT ppv: Pointer):HResult;StdCall;
-     {$else}
-      Function  LocalAddressOfMember():HResult;StdCall;
-     {$endif}
-
-     {$ifndef Call_as}
-      Function  CreateInstance(CONST pUnkOuter: IUnknown; CONST riid: TIID; OUT ppvObj: Pointer):HResult;StdCall;
-     {$else}
-      Function  CreateInstance(CONST riid: TIID; OUT ppvObj: pIUnknown):HResult;StdCall;
-     {$endif}
-     Function  GetMops(memid: MEMBERID; OUT pBstrMops: WideString):HResult;StdCall;
-     {$ifndef Call_as}
-     Function  GetContainingTypeLib(OUT ppTLib: ITypeLib; OUT pIndex: UINT):HResult;StdCall;
-     {$else}
-     Function  GetContainingTypeLib(OUT ppTLib: ITypeLib; OUT pIndex: UINT):HResult;StdCall;
-     {$endif}
-     {$ifndef Call_as}
-      Procedure ReleaseTypeAttr(Const pTypeAttr: TypeAttr); StdCall;
-     {$else}
-      Function  ReleaseTypeAttr():HResult;StdCall;
-     {$endif}
-
-     {$ifndef Call_as}
-      Procedure ReleaseFuncDesc(const pFuncDesc : FUNCDESC); StdCall;
-     {$else}
-      Function  LocalReleaseFuncDesc():HResult;StdCall;
-     {$endif}
-     {$ifndef Call_as}
-      Procedure ReleaseVarDesc(Const pVarDesc : VarDesc);
-     {$else}
-      Function  LocalReleaseVarDesc():HResult;StdCall;
-     {$endif}
-     End;
-
-   ITypeInfo2 = Interface (ITypeInfo)
-     ['{00020412-0000-0000-C000-000000000046}']
-     Function  GetTypeKind(OUT xpTypeKind: TYPEKIND):HResult;StdCall;
-     Function  GetTypeFlags(OUT pTypeFlags: ULONG):HResult;StdCall;
-     Function  GetFuncIndexOfMemId(memid: MEMBERID; invKind: INVOKEKIND; OUT pFuncIndex: UINT):HResult;StdCall;
-     Function  GetVarIndexOfMemId(memid: MEMBERID; OUT pVarIndex: UINT):HResult;StdCall;
-     Function  GetCustData(CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
-     Function  GetFuncCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
-     Function  GetParamCustData(indexFunc: UINT; indexParam: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
-     Function  GetVarCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
-     Function  GetImplTypeCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
-     {$ifndef Call_as}
-      Function  GetDocumentation2(memid: MEMBERID; lcid: LCID; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):HResult;StdCall;
-     {$else}
-      Function  GetDocumentation2(memid: MEMBERID; lcid: LCID; refPtrFlags: DWORD; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):HResult;StdCall;
-     {$endif}
-     Function  GetAllCustData(OUT pCustData: CUSTDATA):HResult;StdCall;
-     Function  GetAllFuncCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
-     Function  GetAllParamCustData(indexFunc: UINT; indexParam: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
-     Function  GetAllVarCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
-     Function  GetAllImplTypeCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
-     End;
-
-   ITypeLib = Interface (IUnknown)
-     ['{00020402-0000-0000-C000-000000000046}']
-     {$ifndef Call_as}
-      Function GetTypeInfoCount:UINT; StdCall;
-     {$else}
-      Function GetTypeInfoCount(OUT pcTInfo: UINT):HResult;StdCall;
-     {$endif}
-     Function  GetTypeInfo(index: UINT; OUT ppTInfo: ITypeInfo):HResult;StdCall;
-     Function  GetTypeInfoType(index: UINT; OUT pTKind: TYPEKIND):HResult;StdCall;
-     Function  GetTypeInfoOfGuid(CONST guid: TGUID; OUT ppTinfo: ITypeInfo):HResult;StdCall;
-     {$ifndef Call_as}
-     Function  GetLibAttr(OUT ppTLibAttr: lpTLIBATTR):HResult;StdCall;
-     {$else}
-     Function  GetLibAttr(OUT ppTLibAttr: LPTLIBATTR; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
-     {$endif}
-
-     Function  GetTypeComp(OUT ppTComp: ITypeComp):HResult;StdCall;
-     {$ifndef Call_as}
-     Function  GetDocumentation(index: WINT; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
-     {$else}
-     Function  GetDocumentation(index: WINT; refPtrFlags: DWORD; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
-     {$endif}
-
-     {$ifndef Call_as}
-     Function  IsName(szNameBuf: pOleStr; lHashVal: ULONG; OUT pfName: BOOL):HResult;StdCall;
-     {$else}
-     Function  IsName(szNameBuf: pOleStr; lHashVal: ULONG; OUT pfName: BOOL; OUT pBstrLibName: WideString):HResult;StdCall;
-     {$endif}
-     {$ifndef Call_as}
-     Function  FindName(szNameBuf: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT rgMemId: MEMBERID; VAR pcFound: USHORT):HResult;StdCall;
-     {$else}
-     Function  FindName(szNameBuf: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT rgMemId: MEMBERID; VAR pcFound: USHORT; OUT pBstrLibName: WideString):HResult;StdCall;
-     {$endif}
-     {$ifndef Call_as}
-      Procedure ReleaseTLibAttr(Const pTLibAttr : TLIBATTR); StdCall;
-      {$else}
-     Function  LocalReleaseTLibAttr:HResult;StdCall;
-     {$endif}
-     End;
-
-   ITypeLib2 = Interface (ITypeLib)
-     ['{00020411-0000-0000-C000-000000000046}']
-     Function  GetCustData(CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
-     {$ifndef Call_as}
-     Function  GetLibStatistics(OUT pcUniqueNames: ULONG; OUT pcchUniqueNames: ULONG):HResult;StdCall;
-     {$else}
-     Function  GetLibStatistics(OUT pcUniqueNames: ULONG; OUT pcchUniqueNames: ULONG):HResult;StdCall;
-     {$endif}
-     {$ifndef Call_as}
-     Function  GetDocumentation2(index: WINT; lcid: LCID; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):HResult;StdCall;
-     {$else}
-     Function  GetDocumentation2(index: WINT; lcid: LCID; refPtrFlags: DWORD; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):HResult;StdCall;
-     {$endif}
-     Function  GetAllCustData(OUT pCustData: CUSTDATA):HResult;StdCall;
-     End;
-
-   ITypeChangeEvents= Interface (IUnknown)
-     ['{00020410-0000-0000-C000-000000000046}']
-     Function  RequestTypeChange(changeKind: CHANGEKIND; CONST pTInfoBefore: ITypeInfo; pStrName: pOleStr; OUT pfCancel: WINT):HResult;StdCall;
-     Function  AfterTypeChange(changeKind: CHANGEKIND; CONST pTInfoAfter: ITypeInfo; pStrName: pOleStr):HResult;StdCall;
-     End;
-
-   IErrorInfo= Interface (IUnknown)
-     ['{1CF2B120-547D-101B-8E65-08002B2BD119}']
-     Function  GetGUID(OUT pGUID: TGUID):HResult;StdCall;
-     Function  GetSource(OUT pBstrSource: WideString):HResult;StdCall;
-     Function  GetDescription(OUT pBstrDescription: WideString):HResult;StdCall;
-     Function  GetHelpFile(OUT pBstrHelpFile: WideString):HResult;StdCall;
-     Function  GetHelpContext(OUT pdwHelpContext: DWORD):HResult;StdCall;
-     End;
-
-   ICreateErrorInfo= Interface (IUnknown)
-     ['{22F03340-547D-101B-8E65-08002B2BD119}']
-     Function  SetGUID(CONST rguid: TGUID):HResult;StdCall;
-     Function  SetSource(szSource: pOleStr):HResult;StdCall;
-     Function  SetDescription(szDescription: pOleStr):HResult;StdCall;
-     Function  SetHelpFile(szHelpFile: pOleStr):HResult;StdCall;
-     Function  SetHelpContext(dwHelpContext: DWORD):HResult;StdCall;
-     End;
-
-   ISupportErrorInfo= Interface (IUnknown)
-     ['{DF0B3D60-548F-101B-8E65-08002B2BD119}']
-     Function  InterfaceSupportsErrorInfo(CONST riid: TIID):HResult;StdCall;
-     End;
-
-   ITypeFactory = Interface (IUnknown)
-     ['{0000002E-0000-0000-C000-000000000046}']
-     Function  CreateFromTypeInfo(CONST pTypeInfo: ITypeInfo; CONST riid: TIID; OUT ppv: IUnknown):HResult;StdCall;
-     End;
-
-   ITypeMarshal = Interface (IUnknown)
-     ['{0000002D-0000-0000-C000-000000000046}']
-     Function  Size(pvType: Pointer; dwDestContext: DWORD; pvDestContext: Pointer; OUT pSize: ULONG):HResult;StdCall;
-     Function  Marshal(pvType: Pointer; dwDestContext: DWORD; pvDestContext: Pointer; cbBufferLength: ULONG; OUT pBuffer: BYTE; OUT pcbWritten: ULONG):HResult;StdCall;
-     Function  Unmarshal(pvType: Pointer; dwFlags: DWORD; cbBufferLength: ULONG; CONST pBuffer: BYTE; OUT pcbRead: ULONG):HResult;StdCall;
-     Function  Free(pvType: Pointer):HResult;StdCall;
-     End;
-
-   IRecordInfo = Interface(IUnknown)
-     ['{0000002F-0000-0000-C000-000000000046}']
-     Function  RecordInit(pvNew: Pointer):HResult;StdCall;
-     Function  RecordClear(pvExisting: Pointer):HResult;StdCall;
-     Function  RecordCopy(pvExisting: Pointer; pvNew: Pointer):HResult;StdCall;
-     Function  GetGuid(OUT pguid: TGUID):HResult;StdCall;
-     Function  GetName(OUT pbstrName: WideString):HResult;StdCall;
-     Function  GetSize(OUT pcbSize: ULONG):HResult;StdCall;
-     Function  GetTypeInfo(OUT ppTypeInfo: ITypeInfo):HResult;StdCall;
-     Function  GetField(pvData: Pointer; szFieldName: pOleStr; OUT pvarField: VARIANT):HResult;StdCall;
-     Function  GetFieldNoCopy(pvData: Pointer; szFieldName: pOleStr; OUT pvarField: VARIANT; OUT ppvDataCArray: Pointer):HResult;StdCall;
-     Function  PutField(wFlags: ULONG; pvData: Pointer; szFieldName: pOleStr; CONST pvarField: VARIANT):HResult;StdCall;
-     Function  PutFieldNoCopy(wFlags: ULONG; pvData: Pointer; szFieldName: pOleStr; CONST pvarField: VARIANT):HResult;StdCall;
-     Function  GetFieldNames(VAR pcNames: ULONG; OUT rgBstrNames: WideString):HResult;StdCall;
-     Function  IsMatchingType(CONST pRecordInfo : IRecordInfo):Bool;StdCall;
-     Function  RecordCreate : Pointer; StdCall;
-     Function  RecordCreateCopy(pvSource: Pointer; OUT ppvDest: Pointer):HResult;StdCall;
-     Function  RecordDestroy(pvRecord: Pointer):HResult;StdCall;
-     End;
-
-   IErrorLog = Interface (IUnknown)
-     ['{3127CA40-446E-11CE-8135-00AA004BB851}']
-     Function  AddError(pszPropName: pOleStr; CONST pExcepInfo: EXCEPINFO):HResult;StdCall;
-     End;
-
-
-   IPropertyBag = Interface (IUnknown)
-     ['{55272A00-42CB-11CE-8135-00AA004BB851}']
-     {$ifndef Call_as}
-      Function  Read(pszPropName: pOleStr; VAR pVar: VARIANT; CONST pErrorLog: IErrorLog):HResult;StdCall;
-     {$else}
-      Function  Read(pszPropName: pOleStr; OUT pVar: VARIANT; CONST pErrorLog: IErrorLog; varType: DWORD; CONST pUnkObj: IUnknown):HResult;StdCall;
-     {$endif}
-     Function  Write(pszPropName: pOleStr; CONST pVar: VARIANT):HResult;StdCall;
-     End;
-
-   IEnumGUID = interface(IUnknown)
-     ['{0002E000-0000-0000-C000-000000000046}']
-     Function Next(celt: UINT; OUT rgelt: TGUID; OUT pceltFetched: UINT):HResult;StdCall;
-     Function Skip(celt:UINT):HResult;StdCall;
-     Function Reset: HResult;StdCall;
-     Function Clone(out ppenum: IEnumGUID):HResult;StdCall;
-     End;
-
-   IBindHost = interface(IUnknown)
-     ['{FC4801A1-2BA9-11CF-A229-00AA003D7352}']
-     End;
-
-   IServiceProvider = interface(IUnknown)
-     ['{6D5140C1-7436-11CE-8034-00AA006009FA}']
-     Function QueryService(CONST rsid, iid: TGuid; OUT Obj):HResult;StdCall;
-     End;
-
-   PServiceProvider = ^IServiceProvider;
-
-   IParseDisplayName = interface(IUnknown)
-     ['{0000011A-0000-0000-C000-000000000046}']
-     Function ParseDisplayName(CONST bc: IBindCtx; pszDisplayName: POleStr;OUT chEaten: Longint; OUT mkOut: IMoniker): HResult;StdCall;
-     End;
-
-   IOleContainer = interface(IParseDisplayName)
-     ['{0000011B-0000-0000-C000-000000000046}']
-     Function EnumObjects(grfFlags: Longint; OUT Enum: IEnumUnknown):HResult;StdCall;
-     Function LockContainer(fLock: BOOL):HResult;StdCall;
-     End;
-
-   IOleClientSite = interface(IUnknown)
-     ['{00000118-0000-0000-C000-000000000046}']
-     Function SaveObject: HResult;StdCall;
-     Function GetMoniker(dwAssign: Longint; dwWhichMoniker: Longint;OUT mk: IMoniker):HResult;StdCall;
-     Function GetContainer(OUT container: IOleContainer):HResult;StdCall;
-     Function ShowObject:HResult;StdCall;
-     Function OnShowWindow(fShow: BOOL):HResult;StdCall;
-     Function RequestNewObjectLayout:HResult;StdCall;
-     End;
-
-  IOleWindow = interface(IUnknown)
-    ['{00000114-0000-0000-C000-000000000046}']
-    function GetWindow(out wnd: HWnd): HResult; stdcall;
-    function ContextSensitiveHelp(fEnterMode: BOOL): HResult; stdcall;
-  end;
-
-
-  tagOleMenuGroupWidths = record
-    width : array[0..5] Of LONG;
-  end;
-  OLEMENUGROUPWIDTHS = tagOleMenuGroupWidths;
-  TOleMenuGroupWidths = tagOleMenuGroupWidths;
-  LPOLEMENUGROUPWIDTHS = ^OLEMENUGROUPWIDTHS;
-  POleMenuGroupWidths = LPOLEMENUGROUPWIDTHS;
-
-
-    IProvideClassInfo = Interface (IUnknown)
-       ['{B196B283-BAB4-101A-B69C-00AA00341D07}']
-         function GetClassInfo(out pptti : ITypeInfo):HResult; StdCall;
-			 end;
-    IProvideClassInfo2 = Interface (IProvideClassInfo)
-       ['{A6BC3AC0-DBAA-11CE-9DE3-00AA004BB851}']
-         function GetGUID(dwguid:DWord;out pguid:TGUID):HResult; StdCall;
-	end;
-
-{ ******************************************************************************************************************
-                                                          stuff from objbase.h
-  ****************************************************************************************************************** }
-
-{ redefinitions }
-  function CoCreateGuid(out _para1:TGUID):HRESULT;stdcall;external 'ole32.dll' name 'CoCreateGuid';
-
-{ additional definitions }
-
-  function IsEqualGUID(const guid1,guid2 : TGUID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
-  function IsEqualIID(const iid1,iid2 : TIID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
-  function IsEqualCLSID(const clsid1,clsid2 : TCLSID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
-
-{ OleIdl.h }
-type
-  IOleInPlaceActiveObject = interface;
-
-  IOleAdviseHolder = interface(IUnknown)
-    ['{00000111-0000-0000-C000-000000000046}']
-    function Advise(const advise: IAdviseSink; out dwConnection: DWORD): HResult;StdCall;
-    function Unadvise(dwConnection: DWORD): HResult;StdCall;
-    function EnumAdvise(out enumAdvise: IEnumStatData): HResult;StdCall;
-    function SendOnRename(const mk: IMoniker): HResult;StdCall;
-    function SendOnSave: HResult;StdCall;
-    function SendOnClose: HResult;StdCall;
-  end;
-
-  IEnumOLEVERB = interface(IUnknown)
-    ['{00000104-0000-0000-C000-000000000046}']
-    function Next(celt: ULONG; out elt; pceltFetched: PULONG): HResult;StdCall;
-    function Skip(celt: ULONG): HResult;StdCall;
-    function Reset: HResult;StdCall;
-    function Clone(out ppenum: IEnumOLEVERB): HResult;StdCall;
-  end;
-
-  IDropSource = interface(IUnknown)
-    ['{00000121-0000-0000-C000-000000000046}']
-    function QueryContinueDrag(fEscapePressed: BOOL;
-      grfKeyState: Longint):HResult;StdCall;
-    function GiveFeedback(dwEffect: Longint): HResult;StdCall;
-  end;
-
-  IOleObject = interface(IUnknown)
-    ['{00000112-0000-0000-C000-000000000046}']
-    function SetClientSite(const clientSite: IOleClientSite): HResult;StdCall;
-    function GetClientSite(out clientSite: IOleClientSite): HResult;StdCall;
-    function SetHostNames(szContainerApp: POleStr; szContainerObj: POleStr): HResult;StdCall;
-    function Close(dwSaveOption: DWORD): HResult;StdCall;
-    function SetMoniker(dwWhichMoniker: DWORD; const mk: IMoniker): HResult;StdCall;
-    function GetMoniker(dwAssign: DWORD; dwWhichMoniker: DWORD; out mk: IMoniker): HResult;StdCall;
-    function InitFromData(const dataObject: IDataObject; fCreation: BOOL; dwReserved: DWORD): HResult;StdCall;
-    function GetClipboardData(dwReserved: DWORD; out dataObject: IDataObject): HResult;StdCall;
-    function DoVerb(iVerb: LONG; msg: PMsg; const activeSite: IOleClientSite; lindex: LONG; hwndParent: HWND; const posRect: TRect): HResult;StdCall;
-    function EnumVerbs(out enumOleVerb: IEnumOleVerb): HResult;StdCall;
-    function Update: HResult;StdCall;
-    function IsUpToDate: HResult;StdCall;
-    function GetUserClassID(out clsid: TCLSID): HResult;StdCall;
-    function GetUserType(dwFormOfType: DWORD; out pszUserType: POleStr): HResult;StdCall;
-    function SetExtent(dwDrawAspect: DWORD; const size: TPoint): HResult;StdCall;
-    function GetExtent(dwDrawAspect: DWORD; out size: TPoint): HResult;StdCall;
-    function Advise(const advSink: IAdviseSink; out dwConnection: Longint): HResult;StdCall;
-    function Unadvise(dwConnection: DWORD): HResult;StdCall;
-    function EnumAdvise(out enumAdvise: IEnumStatData): HResult;StdCall;
-    function GetMiscStatus(dwAspect: DWORD; out dwStatus: DWORD): HResult;StdCall;
-    function SetColorScheme(const logpal: TLogPalette): HResult;StdCall;
-  end;
-
-  IDropTarget = interface(IUnknown)
-    ['{00000122-0000-0000-C000-000000000046}']
-    function DragEnter(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall;
-    function DragOver(grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall;
-    function DragLeave: HResult;StdCall;
-    function Drop(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD):HResult;StdCall;
-  end;
-
-  IOleInPlaceUIWindow = interface(IOleWindow)
-    ['{00000115-0000-0000-C000-000000000046}']
-    function GetBorder(out rectBorder: TRect):HResult;StdCall;
-    function RequestBorderSpace(const borderwidths: TRect):HResult;StdCall;
-    function SetBorderSpace(const borderwidths: TRect):HResult;StdCall;
-    function SetActiveObject(const activeObject: IOleInPlaceActiveObject;pszObjName: POleStr):HResult;StdCall;
-  end;
-
-  IOleInPlaceActiveObject = interface(IOleWindow)
-    ['{00000117-0000-0000-C000-000000000046}']
-    function TranslateAccelerator(var msg: TMsg):HResult;StdCall;
-    function OnFrameWindowActivate(fActivate: BOOL):HResult;StdCall;
-    function OnDocWindowActivate(fActivate: BOOL):HResult;StdCall;
-    function ResizeBorder(const rcBorder: TRect; const uiWindow: IOleInPlaceUIWindow; fFrameWindow: BOOL):HResult;StdCall;
-    function EnableModeless(fEnable: BOOL):HResult;StdCall;
-  end;
-
-  IOleInPlaceFrame = interface(IOleInPlaceUIWindow)
-    ['{00000116-0000-0000-C000-000000000046}']
-    function InsertMenus(hmenuShared: HMenu; var menuWidths: TOleMenuGroupWidths): HResult;StdCall;
-    function SetMenu(hmenuShared: HMenu; holemenu: HMenu; hwndActiveObject: HWnd): HResult;StdCall;
-    function RemoveMenus(hmenuShared: HMenu): HResult;StdCall;
-    function SetStatusText(pszStatusText: POleStr): HResult;StdCall;
-    function EnableModeless(fEnable: BOOL): HResult;StdCall;
-    function TranslateAccelerator(var msg: TMsg; wID: Word): HResult;StdCall;
-  end;
-
-  tagOIFI = record
-    cb: UINT;
-    fMDIApp: BOOL;
-    hwndFrame: HWND;
-    haccel: HAccel;
-    cAccelEntries: UINT;
-  end;
-  TOleInPlaceFrameInfo = tagOIFI;
-  POleInPlaceFrameInfo = ^TOleInPlaceFrameInfo;
-  OLEINPLACEFRAMEINFO = tagOIFI;
-
-{ ole2.h }
-
-  type
-    WINOLEAPI = HResult;
-    TLCID = DWORD;
-
-  const
-     OLEIVERB_PRIMARY = 0;
-     OLEIVERB_SHOW = -(1);
-     OLEIVERB_OPEN = -(2);
-     OLEIVERB_HIDE = -(3);
-     OLEIVERB_UIACTIVATE = -(4);
-     OLEIVERB_INPLACEACTIVATE = -(5);
-     OLEIVERB_DISCARDUNDOSTATE = -(6);
-  { for OleCreateEmbeddingHelper flags; roles low word; options high word }
-     EMBDHLP_INPROC_HANDLER = $0000;
-     EMBDHLP_INPROC_SERVER = $0001;
-     EMBDHLP_CREATENOW = $00000000;
-     EMBDHLP_DELAYCREATE = $00010000;
-  { extended create function flags  }
-     OLECREATE_LEAVERUNNING = $00000001;
-  { pull the MIDL generated header  }
-
-  function OleBuildVersion:DWORD;stdcall;external 'ole32.dll' name 'OleBuildVersion';
-
-  { helper functions  }
-  function ReadClassStg(pStg:IStorage; pclsid:PCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'ReadClassStg';
-
-  function WriteClassStg(pStg:IStorage;const rclsid:TLCID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WriteClassStg';
-
-  function ReadClassStm(pStm:IStream; pclsid:PCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'ReadClassStm';
-
-  function WriteClassStm(pStm:IStream;const rclsid:TLCID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WriteClassStm';
-
-  function WriteFmtUserTypeStg(pstg:IStorage; cf:CLIPFORMAT; lpszUserType:LPOLESTR):WINOLEAPI;stdcall;external 'ole32.dll' name 'WriteFmtUserTypeStg';
-
-  function ReadFmtUserTypeStg(pstg:IStorage; pcf:PCLIPFORMAT;out lplpszUserType:POleStr):WINOLEAPI;stdcall;external 'ole32.dll' name 'ReadFmtUserTypeStg';
-
-  { init/term  }
-  function OleInitialize(pvReserved:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleInitialize';
-
-  procedure OleUninitialize;stdcall;external 'ole32.dll' name 'OleUninitialize';
-
-  { APIs to query whether (Embedded/Linked) object can be created from
-     the data object  }
-  function OleQueryLinkFromData(pSrcDataObject:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleQueryLinkFromData';
-
-  function OleQueryCreateFromData(pSrcDataObject:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleQueryCreateFromData';
-
-  { Object creation APIs  } function OleCreate(const rclsid:TLCID; const riid:TIID;
-  renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
-  pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name
-  'OleCreate';
-
-  function OleCreateEx(const rclsid:TLCID; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
-             rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
-             pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateEx';
-
-  function OleCreateFromData(pSrcDataObj:IDataObject; const riid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
-             pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromData';
-
-  function OleCreateFromDataEx(pSrcDataObj:IDataObject; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
-             rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
-             pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromDataEx';
-
-  function OleCreateLinkFromData(pSrcDataObj:IDataObject; const riid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
-             pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkFromData';
-
-  function OleCreateLinkFromDataEx(pSrcDataObj:IDataObject; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
-             rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
-             pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkFromDataEx';
-
-  function OleCreateStaticFromData(pSrcDataObj:IDataObject; const iid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
-             pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateStaticFromData';
-
-  function OleCreateLink(pmkLinkSrc:IMoniker; constriid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
-             pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLink';
-
-  function OleCreateLinkEx(pmkLinkSrc:IMoniker; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
-             rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
-             pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkEx';
-
-  function OleCreateLinkToFile(lpszFileName:POleStr; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
-             pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkToFile';
-
-  function OleCreateLinkToFileEx(lpszFileName:POleStr; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
-             rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
-             pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkToFileEx';
-
-  function OleCreateFromFile(const rclsid:TLCID; lpszFileName:POleStr; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC;
-             pClientSite:IOleClientSite; pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromFile';
-
-  function OleCreateFromFileEx(const rclsid:TLCID; lpszFileName:POleStr; const riid:TIID; dwFlags:DWORD; renderopt:DWORD;
-             cFormats:ULONG; rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD;
-             pClientSite:IOleClientSite; pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromFileEx';
-
-  function OleLoad(pStg:IStorage; const riid:TIID; pClientSite:IOleClientSite; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleLoad';
-
-  function OleSave(pPS:IPersistStorage; pStg:IStorage; fSameAsLoad:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSave';
-
-  function OleLoadFromStream(pStm:IStream; const iidInterface:TIID; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleLoadFromStream';
-
-  function OleSaveToStream(pPStm:IPersistStream; pStm:IStream):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSaveToStream';
-
-  function OleSetContainedObject(pUnknown:IUnknown; fContained:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetContainedObject';
-
-  function OleNoteObjectVisible(pUnknown:IUnknown; fVisible:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleNoteObjectVisible';
-
-  { Drag/Drop APIs  }
-  function RegisterDragDrop(hwnd:HWND; pDropTarget:IDropTarget):WINOLEAPI;stdcall;external 'ole32.dll' name 'RegisterDragDrop';
-
-  function RevokeDragDrop(hwnd:HWND):WINOLEAPI;stdcall;external 'ole32.dll' name 'RevokeDragDrop';
-
-  function DoDragDrop(pDataObj:IDataObject; pDropSource:IDropSource; dwOKEffects:DWORD; pdwEffect:LPDWORD):WINOLEAPI;stdcall;external 'ole32.dll' name 'DoDragDrop';
-
-  { Clipboard APIs  }
-  function OleSetClipboard(pDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetClipboard';
-
-  function OleGetClipboard(out ppDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleGetClipboard';
-
-  function OleFlushClipboard:WINOLEAPI;stdcall;external 'ole32.dll' name 'OleFlushClipboard';
-
-  function OleIsCurrentClipboard(pDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleIsCurrentClipboard';
-
-type
-  HOLEMENU = HMenu;
-
-  { InPlace Editing APIs  }
-  function OleCreateMenuDescriptor(hmenuCombined:HMENU; lpMenuWidths:LPOLEMENUGROUPWIDTHS):HOLEMENU;stdcall;external 'ole32.dll' name 'OleCreateMenuDescriptor';
-
-  function OleSetMenuDescriptor(holemenu:HOLEMENU; hwndFrame:HWND; hwndActiveObject:HWND; lpFrame:IOleInPlaceFrame; lpActiveObj:IOleInPlaceActiveObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetMenuDescriptor';
-
-  function OleDestroyMenuDescriptor(holemenu:HOLEMENU):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleDestroyMenuDescriptor';
-
-  function OleTranslateAccelerator(lpFrame:IOleInPlaceFrame; lpFrameInfo:TOleInPlaceFrameInfo; lpmsg:LPMSG):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleTranslateAccelerator';
-
-  { Helper APIs  }
-  function OleDuplicateData(hSrc:HANDLE; cfFormat:CLIPFORMAT; uiFlags:UINT):HANDLE;stdcall;external 'ole32.dll' name 'OleDuplicateData';
-
-  function OleDraw(pUnknown:IUnknown; dwAspect:DWORD; hdcDraw:HDC;const lprcBounds:TRect):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleDraw';
-
-  function OleRun(pUnknown:IUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRun';
-
-  function OleIsRunning(pObject:IOleObject):BOOL;stdcall;external 'ole32.dll' name 'OleIsRunning';
-
-  function OleLockRunning(pUnknown:IUnknown; fLock:BOOL; fLastUnlockCloses:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleLockRunning';
-
-  procedure ReleaseStgMedium(_para1:LPSTGMEDIUM);stdcall;external 'ole32.dll' name 'ReleaseStgMedium';
-
-  function CreateOleAdviseHolder(out ppOAHolder:IOleAdviseHolder):WINOLEAPI;stdcall;external 'ole32.dll' name 'CreateOleAdviseHolder';
-
-  function OleCreateDefaultHandler(const clsid:TLCID; pUnkOuter:IUnknown; const riid:TIID; out lplpObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateDefaultHandler';
-
-  function OleCreateEmbeddingHelper(const clsid:TLCID; pUnkOuter:IUnknown; flags:DWORD; pCF:IClassFactory; const riid:TIID;
-             out lplpObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateEmbeddingHelper';
-
-  function IsAccelerator(hAccel:HACCEL; cAccelEntries:longint; lpMsg:LPMSG; lpwCmd:PWORD):BOOL;stdcall;external 'ole32.dll' name 'IsAccelerator';
-
-  { Icon extraction Helper APIs  }
-  function OleGetIconOfFile(lpszPath:LPOLESTR; fUseFileAsLabel:BOOL):HGLOBAL;stdcall;external 'ole32.dll' name 'OleGetIconOfFile';
-
-  function OleGetIconOfClass(const rclsid:TLCID; lpszLabel:LPOLESTR; fUseTypeAsLabel:BOOL):HGLOBAL;stdcall;external 'ole32.dll' name 'OleGetIconOfClass';
-
-  function OleMetafilePictFromIconAndLabel(hIcon:HICON; lpszLabel:LPOLESTR; lpszSourceFile:LPOLESTR; iIconIndex:UINT):HGLOBAL;stdcall;external 'ole32.dll' name 'OleMetafilePictFromIconAndLabel';
-
-  { Registration Database Helper APIs  }
-  function OleRegGetUserType(const clsid:TLCID; dwFormOfType:DWORD;out pszUserType:POleStr):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegGetUserType';
-
-  function OleRegGetMiscStatus(const clsid:TLCID; dwAspect:DWORD; pdwStatus:PDWORD):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegGetMiscStatus';
-
-  function OleRegEnumFormatEtc(const clsid:TLCID; dwDirection:DWORD;out ppenum:IEnumFormatEtc):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegEnumFormatEtc';
-
-  function OleRegEnumVerbs(const clsid:TLCID;out ppenum:IEnumOLEVERB):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegEnumVerbs';
-
-{$ifdef _MAC}
-  { WlmOLE helper APIs  }
-
-  function WlmOleCheckoutMacInterface(pUnk:IUnknown; out ppv):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckoutMacInterface';
-
-  function WlmOleCheckinMacInterface(pUnk:IUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckinMacInterface';
-
-  function WlmOleWrapMacInterface(pUnk:IUnknown; const riid:TIID; out ppv):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleWrapMacInterface';
-
-  function WlmOleUnwrapMacInterface(pv:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleUnwrapMacInterface';
-
-  function WlmOleCheckoutWinInterface(pUnk:LPVOID; ppv:PIUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckoutWinInterface';
-
-  function WlmOleCheckinWinInterface(pUnk:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckinWinInterface';
-
-  function WlmOleWrapWinInterface(pUnk:LPVOID; const riid:TIID; ppv:PIUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleWrapWinInterface';
-
-  function WlmOleUnwrapWinInterface(pv:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleUnwrapWinInterface';
-
-  procedure WlmOleVersion;stdcall;external 'ole32.dll' name 'WlmOleVersion';
-
-  procedure WlmOleSetInPlaceWindow(hwnd:HWND);stdcall;external 'ole32.dll' name 'WlmOleSetInPlaceWindow';
-
-  { typedef HRESULT (STDAPICALLTYPE* OLEWRAPPROC) (TIID riid, LPVOID* ppvWin, LPVOID* ppvMac); }
-  function WlmOleRegisterUserWrap(procNew:OLEWRAPPROC; pprocOld:POLEWRAPPROC):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleRegisterUserWrap';
-
-{$endif}
-  { OLE 1.0 conversion APIS  }
-  {**** OLE 1.0 OLESTREAM declarations ************************************ }
-
-  type
-     LPOLESTREAM = ^_OLESTREAM;
-     _OLESTREAMVTBL = record
-       Get : function (p : POleStr;out o;dw : DWORD) : DWORD;
-       Put : function (p : POleStr;const o;dw : DWORD) : DWORD;
-     end;
-     OLESTREAMVTBL =  _OLESTREAMVTBL;
-
-     LPOLESTREAMVTBL = OLESTREAMVTBL;
-
-     _OLESTREAM = record
-          lpstbl : LPOLESTREAMVTBL;
-       end;
-     OLESTREAM = _OLESTREAM;
-(* Const before type ignored *)
-
-  function OleConvertOLESTREAMToIStorage(_lpolestream:LPOLESTREAM; pstg:IStorage; ptd:PDVTARGETDEVICE):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertOLESTREAMToIStorage';
-
-  function OleConvertIStorageToOLESTREAM(pstg:IStorage; lpolestream:LPOLESTREAM):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertIStorageToOLESTREAM';
-
-  { Storage Utility APIs  }
-  function GetHGlobalFromILockBytes(plkbyt:ILockBytes;out phglobal:HGLOBAL):WINOLEAPI;stdcall;external 'ole32.dll' name 'GetHGlobalFromILockBytes';
-
-  function CreateILockBytesOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out pplkbyt:ILockBytes):WINOLEAPI;stdcall;external 'ole32.dll' name 'CreateILockBytesOnHGlobal';
-
-  function GetHGlobalFromStream(pstm:IStream;out phglobal:HGLOBAL):WINOLEAPI;stdcall;external 'ole32.dll' name 'GetHGlobalFromStream';
-
-  function CreateStreamOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out stm:IStream):WINOLEAPI;stdcall;external 'ole32.dll' name 'CreateStreamOnHGlobal';
-
-  { ConvertTo APIS  }
-  function OleDoAutoConvert(pStg:IStorage; pClsidNew:LPCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleDoAutoConvert';
-
-  function OleGetAutoConvert(const clsidOld:TLCID; pClsidNew:LPCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleGetAutoConvert';
-
-  function OleSetAutoConvert(const clsidOld:TLCID; clsidNew:TLCID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetAutoConvert';
-
-  function GetConvertStg(pStg:IStorage):WINOLEAPI;stdcall;external 'ole32.dll' name 'GetConvertStg';
-
-  function SetConvertStg(pStg:IStorage; fConvert:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'SetConvertStg';
-
-  { Presentation data to OLESTREAM }
-  {      format }
-  {      width }
-  {      height }
-  {      size bytes }
-  {      bits }
-  function OleConvertIStorageToOLESTREAMEx(pstg:IStorage; cfFormat:CLIPFORMAT; lWidth:LONG; lHeight:LONG; dwSize:DWORD;
-             pmedium:LPSTGMEDIUM; polestm:LPOLESTREAM):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertIStorageToOLESTREAMEx';
-
-  { Presentation data from OLESTREAM }
-  {      format }
-  {      width }
-  {      height }
-  {      size bytes }
-  function OleConvertOLESTREAMToIStorageEx(polestm:LPOLESTREAM; pstg:IStorage; pcfFormat:PCLIPFORMAT; plwWidth:PLONG; plHeight:PLONG;
-             pdwSize:PDWORD; pmedium:LPSTGMEDIUM):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertOLESTREAMToIStorageEx';
-
-
-const
-  DROPEFFECT_NONE   = 0;
-  DROPEFFECT_COPY   = 1;
-  DROPEFFECT_MOVE   = 2;
-  DROPEFFECT_LINK   = 4;
-  DROPEFFECT_SCROLL = dword($80000000);
-
-
-type
-  BORDERWIDTHS = TRect;
-  LPBORDERWIDTHS = PRect;
-  LPCBORDERWIDTHS = PRect;
-
-  TBorderWidths = TRect;
-  PBorderWidths = PRect;
-
-
-
-  function CoBuildVersion:DWORD;stdcall; external  'ole32.dll' name 'CoBuildVersion';
-
-  function CoInitialize(_para1:PVOID):HRESULT;stdcall; external  'ole32.dll' name 'CoInitialize';
-
-  function CoInitializeEx(_para1:LPVOID; _para2:DWORD):HRESULT;stdcall; external  'ole32.dll' name 'CoInitializeEx';
-
-  procedure CoUninitialize;stdcall; external  'ole32.dll' name 'CoUninitialize';
-
-  function CoGetMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external  'ole32.dll' name 'CoGetMalloc';
-
-  function CoGetCurrentProcess:DWORD;stdcall; external  'ole32.dll' name 'CoGetCurrentProcess';
-
-  function CoRegisterMallocSpy(_para1:IMallocSpy):HRESULT;stdcall; external  'ole32.dll' name 'CoRegisterMallocSpy';
-
-  function CoRevokeMallocSpy:HRESULT;stdcall; external  'ole32.dll' name 'CoRevokeMallocSpy';
-
-  function CoCreateStandardMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external  'ole32.dll' name 'CoGetMalloc';
-
-  function CoGetClassObject(const _para1:TCLSID; _para2:DWORD; _para3:PVOID; const _para4:TIID; out _para5):HRESULT;stdcall; external  'ole32.dll' name 'CoGetClassObject';
-
-  function CoRegisterClassObject(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD; _para4:DWORD; _para5:PDWORD):HRESULT;stdcall; external  'ole32.dll' name 'CoRegisterClassObject';
-
-  function CoRevokeClassObject(_para1:DWORD):HRESULT;stdcall; external  'ole32.dll' name 'CoRevokeClassObject';
-
-  function CoGetMarshalSizeMax(_para1:PULONG;const _para2:TIID; _para3:IUnknown; _para4:DWORD; _para5:PVOID;
-             _para6:DWORD):HRESULT;stdcall; external  'ole32.dll' name 'CoGetMarshalSizeMax';
-
-  function CoMarshalInterface(_para1:IStream;const _para2:TIID; _para3:IUnknown; _para4:DWORD; _para5:PVOID;
-             _para6:DWORD):HRESULT;stdcall; external  'ole32.dll' name 'CoMarshalInterface';
-
-  function CoUnmarshalInterface(_para1:IStream;const _para2:TIID; out _para3):HRESULT;stdcall; external  'ole32.dll' name 'CoUnmarshalInterface';
-
-  function CoMarshalHresult(_para1:IStream; _para2:HRESULT):HRESULT;stdcall; external  'ole32.dll' name 'CoMarshalHresult';
-
-  function CoUnmarshalHresult(_para1:IStream; _para2:HRESULT):HRESULT;stdcall; external  'ole32.dll' name 'CoUnmarshalHresult';
-
-  function CoReleaseMarshalData(_para1:IStream):HRESULT;stdcall; external  'ole32.dll' name 'CoReleaseMarshalData';
-
-  function CoDisconnectObject(_para1:IUnknown; _para2:DWORD):HRESULT;stdcall; external  'ole32.dll' name 'CoDisconnectObject';
-
-  function CoLockObjectExternal(_para1:IUnknown; _para2:BOOL; _para3:BOOL):HRESULT;stdcall; external  'ole32.dll' name 'CoLockObjectExternal';
-
-  function CoGetStandardMarshal(const _para1:TIID; _para2:IUnknown; _para3:DWORD; _para4:PVOID; _para5:DWORD;
-             out _para6:IMarshal):HRESULT;stdcall; external  'ole32.dll' name 'CoGetStandardMarshal';
-
-  function CoGetStdMarshalEx(_para1:IUnknown; _para2:DWORD; out _para3:IUnknown):HRESULT;stdcall; external  'ole32.dll' name 'CoGetStdMarshalEx';
-
-  function CoIsHandlerConnected(_para1:IUnknown):BOOL;stdcall; external  'ole32.dll' name 'CoIsHandlerConnected';
-
-  function CoHasStrongExternalConnections(_para1:IUnknown):BOOL;stdcall; external  'ole32.dll' name 'CoHasStrongExternalConnections';
-
-  function CoMarshalInterThreadInterfaceInStream(const _para1:TIID; _para2:IUnknown; out _para3:IStream):HRESULT;stdcall; external  'ole32.dll' name 'CoMarshalInterThreadInterfaceInStream';
-
-  function CoGetInterfaceAndReleaseStream(_para1:IStream;const _para2:TIID; out _para3):HRESULT;stdcall; external  'ole32.dll' name 'CoGetInterfaceAndReleaseStream';
-
-  function CoCreateFreeThreadedMarshaler(_para1:IUnknown; out _para2:IUnknown):HRESULT;stdcall; external  'ole32.dll' name 'CoCreateFreeThreadedMarshaler';
-
-  function CoLoadLibrary(_para1:LPOLESTR; _para2:BOOL):THandle;stdcall; external  'ole32.dll' name 'CoLoadLibrary';
-
-  procedure CoFreeLibrary(_para1:THandle);stdcall; external  'ole32.dll' name 'CoFreeLibrary';
-
-  procedure CoFreeAllLibraries;stdcall; external  'ole32.dll' name 'CoFreeAllLibraries';
-
-  procedure CoFreeUnusedLibraries;stdcall; external  'ole32.dll' name 'CoFreeUnusedLibraries';
-
-  function CoCreateInstance(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD;const _para4:TIID;out _para5):HRESULT;stdcall; external  'ole32.dll' name 'CoCreateInstance';
-
-  function CoCreateInstanceEx(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD; _para4:PCOSERVERINFO; _para5:DWORD;
-             _para6:PMULTI_QI):HRESULT;stdcall; external  'ole32.dll' name 'CoCreateInstanceEx';
-
-  function StringFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external  'ole32.dll' name 'StringFromCLSID';
-
-  function CLSIDFromString(_para1:LPOLESTR; _para2:LPCLSID):HRESULT;stdcall; external  'ole32.dll' name 'CLSIDFromString';
-
-  function StringFromIID(const _para1:TIID; out _para2:POLESTR):HRESULT;stdcall; external  'ole32.dll' name 'StringFromIID';
-
-  function IIDFromString(_para1:LPOLESTR; out _para2:TIID):HRESULT;stdcall; external  'ole32.dll' name 'IIDFromString';
-
-  function CoIsOle1Class(const _para1:TCLSID):BOOL;stdcall; external  'ole32.dll' name 'CoIsOle1Class';
-
-  function ProgIDFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external  'ole32.dll' name 'ProgIDFromCLSID';
-
-  function CLSIDFromProgID(_para1:POLESTR; _para2:LPCLSID):HRESULT;stdcall; external  'ole32.dll' name 'CLSIDFromProgID';
-  function CLSIDFromProgID(_para1:POLESTR; out _para2:TCLSID):HRESULT;stdcall; external  'ole32.dll' name 'CLSIDFromProgID';
-
-  function StringFromGUID2(const _para1:TGUID; _para2:LPOLESTR; _para3:longint):longint;stdcall; external  'ole32.dll' name 'StringFromGUID2';
-
-  function CoCreateGuid(_para1:PGUID):HRESULT;stdcall; external  'ole32.dll' name 'CoCreateGuid';
-
-  function CoFileTimeToDosDateTime(_para1:PFILETIME; _para2:LPWORD; _para3:LPWORD):BOOL;stdcall; external  'ole32.dll' name 'CoFileTimeToDosDateTime';
-
-  function CoDosDateTimeToFileTime(_para1:WORD; _para2:WORD; _para3:PFILETIME):BOOL;stdcall; external  'ole32.dll' name 'CoDosDateTimeToFileTime';
-
-  function CoFileTimeNow(_para1:PFILETIME):HRESULT;stdcall; external  'ole32.dll' name 'CoFileTimeNow';
-
-  function CoRegisterMessageFilter(_para1:IMessageFilter;out _para2:IMessageFilter):HRESULT;stdcall; external  'ole32.dll' name 'CoRegisterMessageFilter';
-
-  function CoGetTreatAsClass(const _para1:TCLSID; _para2:LPCLSID):HRESULT;stdcall; external  'ole32.dll' name 'CoGetTreatAsClass';
-
-  function CoTreatAsClass(const _para1:TCLSID; const _para2:TCLSID):HRESULT;stdcall; external  'ole32.dll' name 'CoTreatAsClass';
-
-
-  type
-
-     LPFNGETCLASSOBJECT = function (const _para1:TCLSID; const _para2:TIID;out _para3):HRESULT;stdcall;
-
-     LPFNCANUNLOADNOW = function:HRESULT;stdcall;
-
-  function DllGetClassObject(const _para1:TCLSID; const _para2:TIID; out _para3):HRESULT;stdcall; external  'ole32.dll' name 'DllGetClassObject';
-
-  function DllCanUnloadNow:HRESULT;stdcall; external  'ole32.dll' name 'DllCanUnloadNow';
-
-  function CoTaskMemAlloc(_para1:ULONG):PVOID;stdcall; external  'ole32.dll' name 'CoTaskMemAlloc';
-
-  function CoTaskMemRealloc(_para1:PVOID; _para2:ULONG):PVOID;stdcall; external  'ole32.dll' name 'CoTaskMemRealloc';
-
-  procedure CoTaskMemFree(_para1:PVOID);stdcall; external  'ole32.dll' name 'CoTaskMemFree';
-
-  function CreateDataAdviseHolder(_para1:IDataAdviseHolder):HRESULT;stdcall; external  'ole32.dll' name 'CreateDataAdviseHolder';
-
-  function CreateDataCache(_para1:IUnknown; const _para2:TCLSID; const _para3:TIID; out _para4):HRESULT;stdcall; external  'ole32.dll' name 'CreateDataCache';
-
-(* Const before type ignored *)
-  function StgCreateDocfile(_para1:POLESTR; _para2:DWORD; _para3:DWORD; out _para4:IStorage):HRESULT;stdcall; external  'ole32.dll' name 'StgCreateDocfile';
-
-  function StgCreateDocfileOnILockBytes(_para1:ILockBytes; _para2:DWORD; _para3:DWORD; out _para4:IStorage):HRESULT;stdcall; external  'ole32.dll' name 'StgCreateDocfileOnILockBytes';
-
-(* Const before type ignored *)
-  function StgOpenStorage(_para1:POLESTR; _para2:IStorage; _para3:DWORD; _para4:SNB; _para5:DWORD;
-             out _para6:IStorage):HRESULT;stdcall; external  'ole32.dll' name 'StgOpenStorage';
-
-  function StgOpenStorageOnILockBytes(_para1:ILockBytes; _para2:IStorage; _para3:DWORD; _para4:SNB; _para5:DWORD;
-             out _para6:IStorage):HRESULT;stdcall; external  'ole32.dll' name 'StgOpenStorageOnILockBytes';
-
-  function StgIsStorageFile(_para1:POLESTR):HRESULT;stdcall; external  'ole32.dll' name 'StgIsStorageFile';
-
-  function StgIsStorageILockBytes(_para1:ILockBytes):HRESULT;stdcall; external  'ole32.dll' name 'StgIsStorageILockBytes';
-
-  function StgSetTimes(_para1:POLESTR; _para2:PFILETIME; _para3:PFILETIME; _para4:PFILETIME):HRESULT;stdcall; external  'ole32.dll' name 'StgSetTimes';
-
-  function BindMoniker(_para1:IMoniker; _para2:DWORD; _para3:TIID; out _para4):HRESULT;stdcall; external  'ole32.dll' name 'BindMoniker';
-
-  function MkParseDisplayName(_para1:IBindCtx; _para2:POLESTR; out _para3:PULONG; out _para4:IMoniker):HRESULT;stdcall; external  'ole32.dll' name 'MkParseDisplayName';
-
-  function MonikerRelativePathTo(_para1:IMoniker; _para2:IMoniker; out _para3:IMoniker; _para4:BOOL):HRESULT;stdcall; external  'ole32.dll' name 'MonikerRelativePathTo';
-
-  function MonikerCommonPrefixWith(_para1:IMoniker; _para2:IMoniker; _para3:PIMoniker):HRESULT;stdcall; external  'ole32.dll' name 'MonikerCommonPrefixWith';
-
-  function CreateBindCtx(_para1:DWORD;out _para2:IBindCtx):HRESULT;stdcall; external  'ole32.dll' name 'CreateBindCtx';
-
-  function CreateGenericComposite(_para1:IMoniker; _para2:IMoniker; out _para3:IMoniker):HRESULT;stdcall; external  'ole32.dll' name 'CreateGenericComposite';
-
-  function GetClassFile(_para1:POLESTR; out _para2:TCLSID):HRESULT;stdcall; external  'ole32.dll' name 'GetClassFile';
-
-  function CreateFileMoniker(_para1:POLESTR; out _para2:IMoniker):HRESULT;stdcall; external  'ole32.dll' name 'CreateFileMoniker';
-
-  function CreateItemMoniker(_para1:POLESTR; _para2:POLESTR;out _para3:IMoniker):HRESULT;stdcall; external  'ole32.dll' name 'CreateItemMoniker';
-
-  function CreateAntiMoniker(_para1:PIMoniker):HRESULT;stdcall; external  'ole32.dll' name 'CreateAntiMoniker';
-
-  function CreatePointerMoniker(_para1:IUnknown; out _para2:IMoniker):HRESULT;stdcall; external  'ole32.dll' name 'CreatePointerMoniker';
-
-  function GetRunningObjectTable(_para1:DWORD; _para2:IRunningObjectTable):HRESULT;stdcall; external  'ole32.dll' name 'GetRunningObjectTable';
-
-  function CoInitializeSecurity(_para1:PSECURITY_DESCRIPTOR; _para2:LONG; _para3:PSOLE_AUTHENTICATION_SERVICE; _para4:pointer; _para5:DWORD;
-             _para6:DWORD; _para7:pointer; _para8:DWORD; _para9:pointer):HRESULT;stdcall; external  'ole32.dll' name 'CoInitializeSecurity';
-
-  function CoGetCallContext(const _para1:TIID; _para2:Ppointer):HRESULT;stdcall; external  'ole32.dll' name 'CoGetCallContext';
-
-  function CoQueryProxyBlanket(_para1:IUnknown; _para2:PDWORD; _para3:PDWORD; _para4:POLESTR; _para5:PDWORD;
-             _para6:PDWORD; _para7:Pointer; _para8:PDWORD):HRESULT;stdcall; external  'ole32.dll' name 'CoQueryProxyBlanket';
-
-  function CoSetProxyBlanket(_para1:IUnknown; _para2:DWORD; _para3:DWORD; _para4:POLESTR; _para5:DWORD;
-             _para6:DWORD; _para7:pointer; _para8:DWORD):HRESULT;stdcall; external  'ole32.dll' name 'CoSetProxyBlanket';
-
-  function CoCopyProxy(_para1:IUnknown; var _para2:IUnknown):HRESULT;stdcall; external  'ole32.dll' name 'CoCopyProxy';
-
-  function CoQueryClientBlanket(_para1:PDWORD; _para2:PDWORD; _para3:POLESTR; _para4:PDWORD; _para5:PDWORD;
-             _para6:pointer; _para7:PDWORD):HRESULT;stdcall; external  'ole32.dll' name 'CoQueryClientBlanket';
-
-  function CoImpersonateClient:HRESULT;stdcall; external  'ole32.dll' name 'CoImpersonateClient';
-
-  function CoRevertToSelf:HRESULT;stdcall; external  'ole32.dll' name 'CoRevertToSelf';
-
-  function CoQueryAuthenticationServices(_para1:PDWORD; _para2:PSOLE_AUTHENTICATION_SERVICE):HRESULT;stdcall; external  'ole32.dll' name 'CoQueryAuthenticationServices';
-
-  function CoSwitchCallContext(_para1:IUnknown; var _para2:IUnknown):HRESULT;stdcall; external  'ole32.dll' name 'CoSwitchCallContext';
-
-  function CoGetInstanceFromFile(_para1:PCOSERVERINFO; _para2:PCLSID; _para3:IUnknown; _para4:DWORD; _para5:DWORD;
-             _para6:POLESTR; _para7:DWORD; _para8:PMULTI_QI):HRESULT;stdcall; external  'ole32.dll' name 'CoGetInstanceFromFile';
-
-  function CoGetInstanceFromIStorage(_para1:PCOSERVERINFO; _para2:PCLSID; _para3:IUnknown; _para4:DWORD; _para5:IStorage;
-             _para6:DWORD; _para7:PMULTI_QI):HRESULT;stdcall; external  'ole32.dll' name 'CoGetInstanceFromIStorage';
-
-  type
-    TDispID = DISPID;
-
-    TDispIDList = array[0..65535] of TDispID;
-    PDispIDList = ^TDispIDList;
-
-    REFIID = TIID;
-    TREFIID = TIID;
-
-  function SetErrorInfo(dwReserved:ULONG;errinfo:IErrorInfo):HResult;stdcall; external 'ole32.dll' name 'SetErrorInfo';
-  function GetErrorInfo(dwReserved:ULONG;out errinfo:IErrorInfo):HResult;stdcall; external 'ole32.dll' name 'GetErrorInfo';
-  function CreateErrorInfo(out errinfo:ICreateErrorInfo):HResult;stdcall; external 'ole32.dll' name 'CreateErrorInfo';
-
-  const
-    oleaut32dll   = 'oleaut32.dll';
-
-  function  SysAllocString(psz: pointer): Integer; external oleaut32dll name 'SysAllocString';
-  function  SysAllocStringLen(psz: pointer; len:dword): Integer; external oleaut32dll name 'SysAllocStringLen';
-  procedure SysFreeString(bstr:pointer); external oleaut32dll name 'SysFreeString';
-  function  SysStringLen(bstr:pointer):UINT; external oleaut32dll name 'SysStringLen';
-  function  SysReAllocString(var bstr:pointer;psz: pointer): Integer; external oleaut32dll name 'SysReAllocString';
-  function  SysReAllocStringLen(var bstr:pointer;psz: pointer; len:dword): Integer; external oleaut32dll name 'SysReAllocStringLen';
-
-	{ Active object registration API }
-	const
-	  ACTIVEOBJECT_STRONG = 0;
-	  ACTIVEOBJECT_WEAK = 1;
-	
-	function RegisterActiveObject(unk: IUnknown; const clsid: TCLSID; dwFlags: DWORD; out dwRegister: culong): HResult; external oleaut32dll name 'RegisterActiveObject';
-	function RevokeActiveObject(dwRegister: culong; pvReserved: Pointer) : HResult; external oleaut32dll name 'RevokeActiveObject';
-	function GetActiveObject(const clsid: TCLSID; pvReserved: Pointer; out unk: IUnknown) : HResult; external oleaut32dll name 'GetActiveObject';
-
-function Succeeded(Res: HResult) : Boolean;inline;
-function Failed(Res: HResult) : Boolean;inline;
-function ResultCode(Res: HResult) : Longint;inline;
-function ResultFacility(Res: HResult): Longint;inline;
-function ResultSeverity(Res: HResult): Longint;inline;
-function MakeResult(Severity, Facility, Code: Longint): HResult;inline;
-
-implementation
-
-function Succeeded(Res: HResult) : Boolean;inline;
-  begin
-    Result := Res and $80000000 = 0;
-  end;
-
-
-function Failed(Res: HResult) : Boolean;inline;
-  begin
-    Result := Res and $80000000 <> 0;
-  end;
-
-
-function ResultCode(Res: HResult) : Longint;inline;
-  begin
-    Result := Res and $0000FFFF;
-  end;
-
-
-function ResultFacility(Res: HResult): Longint;inline;
-  begin
-    Result := (Res shr 16) and $00001FFF;
-  end;
-
-
-function ResultSeverity(Res: HResult): Longint;inline;
-  begin
-    Result := Res shr 31;
-  end;
-
-
-function MakeResult(Severity, Facility, Code: Longint): HResult;inline;
-  begin
-    Result := (Severity shl 31) or (Facility shl 16) or Code;
-  end;
-
-
-end.

+ 0 - 30
packages/base/winunits/comconst.pp

@@ -1,30 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2006 by Florian Klaempfl
-    member of the Free Pascal development team.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-{$mode objfpc}
-{$H+}
-{$inline on}
-unit comconst;
-
-  interface
-
-    resourcestring
-      SNoMethod = 'Method ''%s'' is not supported by automation object';
-      SOleError = 'OLE error %.8x';
-      SVarNotObject = 'Variant does not reference an automation object';
-      SDCOMNotInstalled = 'DCOM not installed';
-
-  implementation
-
-end.
-

+ 0 - 12471
packages/base/winunits/commctrl.pp

@@ -1,12471 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1999-2004 by Marco van de Voort
-    member of the Free Pascal development team.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-    Original copyright statement follows.
-
- **************************************************************************
- *                                                                        *
- * commctrl.h - - Interface for the Windows Common Controls               *
- *                                                                        *
- * Version 1.2                                                            *
- *                                                                        *
- * Copyright (c) Microsoft Corporation. All rights reserved.              *
- *                                                                        *
- **************************************************************************
-
- Note: This is an initial translation, and probably _full_ of bugs, this
-       is because my conversion tool was flawed, and a lot of postediting
-       was needed, which is bound to introduce bugs and inconsequencies
-
-       This is an huge unit, and its maintenance and compability is not
-       a top-priority.
-       I prefer patches as bugfix over bugreports, and
-       preferably patches with lots of fixes at once.
-
-       If you can't make a patch, at least research the bug thoroughly,
-       and provide as much info as possible (which windows version,
-       the C prototype from the sdk, etc)
-
-       Help the FPC team, and try to do as much as possible yourself.
-}
-
-
-Unit CommCtrl;
-Interface
-
-{$Mode ObjFPC}
-Uses Windows,CTypes,ActiveX;
-
-// --------------------
-
-// --------------------
-CONST CommCtrlDLL = 'comctl32.dll';
-
-// Some reasonal defaults.
-// for XP only set NT to $%0501 and IE to $0600
-//
-// The NT conditional is only used for XP/no XP.
-
-{$DEFINE WIN32_IE=$0500}
-{$DEFINE IE3PLUS}
-{$DEFINE IE4PLUS}
-{$define IE5plus}
-{$define WIN32XP}
-{$define ie501plus}
-
-{$ifdef win32}
-  {$define _win32}
-{$endif win32}
-
-{$ifdef win64}
-  {$define _win32}
-{$endif win64}
-
-{$DEFINE WIN32_WINNT=0}                     // NO XP
-{$DEFINE __IStream_INTERFACE_DEFINED__}  // lpstream defined in activex afaik.
-
-// Sanity check in source. Not translated:
-//if (WIN32_IE < $0400) && defined(WIN32_WINNT) && (WIN32_WINNT >= $0500)}
-// #error _WIN32_IE setting conflicts with _WIN32_WINNT setting
-
-//
-// Users of this header may define any number of these constants to avoid
-// the definitions of each functional group.
-//
-//    NOTOOLBAR    Customizable bitmap-button toolbar control.
-//    NOUPDOWN     Up and Down arrow increment/decrement control.
-//    NOSTATUSBAR  Status bar control.
-//    NOMENUHELP   APIs to help manage menus, especially with a status bar.
-//    NOTRACKBAR   Customizable column-width tracking control.
-//    NODRAGLIST   APIs to make a listbox source and sink drag&drop actions.
-//    NOPROGRESS   Progress gas gauge.
-//    NOHOTKEY     HotKey control
-//    NOHEADER     Header bar control.
-//    NOIMAGEAPIS  ImageList apis.
-//    NOLISTVIEW   ListView control.
-//    NOTREEVIEW   TreeView control.
-//    NOTABCONTROL Tab control.
-//    NOANIMATE    Animate control.
-//    NOBUTTON     Button control.
-//    NOSTATIC     Static control.
-//    NOEDIT       Edit control.
-//    NOLISTBOX    Listbox control.
-//    NOCOMBOBOX   Combobox control.
-//    NOSCROLLBAR  Scrollbar control.
-//
-//=============================================================================
-
-// include <prsht.h>
-
-Procedure InitCommonControls; stdcall; external commctrldll name 'InitCommonControls';
-
-{$ifdef ie3plus}
-TYPE
-
-         tagINITCOMMONCONTROLSEX = Record
-                                    dwSize       : DWORD;          // size of this structure
-                                    dwICC        : DWORD;          // flags indicating which classes to be initialized
-                                    END;
-         _INITCOMMONCONTROLSEX = tagINITCOMMONCONTROLSEX;
-         LPINITCOMMONCONTROLSEX = ^tagINITCOMMONCONTROLSEX;
-         TINITCOMMONCONTROLSEX = tagINITCOMMONCONTROLSEX;
-         PINITCOMMONCONTROLSEX = ^tagINITCOMMONCONTROLSEX;
-
-CONST
-         ICC_LISTVIEW_CLASSES           = $00000001;          // listview, header
-         ICC_TREEVIEW_CLASSES           = $00000002;          // treeview, tooltips
-         ICC_BAR_CLASSES                = $00000004;          // toolbar, statusbar, trackbar, tooltips
-         ICC_TAB_CLASSES                = $00000008;          // tab, tooltips
-         ICC_UPDOWN_CLASS               = $00000010;          // updown
-         ICC_PROGRESS_CLASS             = $00000020;          // progress
-         ICC_HOTKEY_CLASS               = $00000040;          // hotkey
-         ICC_ANIMATE_CLASS              = $00000080;          // animate
-         ICC_WIN95_CLASSES              = $000000FF;
-         ICC_DATE_CLASSES               = $00000100;          // month picker, date picker, time picker, updown
-         ICC_USEREX_CLASSES             = $00000200;          // comboex
-         ICC_COOL_CLASSES               = $00000400;          // rebar (coolbar) control
-{$ifdef ie4plus}
-         ICC_INTERNET_CLASSES           = $00000800;
-         ICC_PAGESCROLLER_CLASS         = $00001000;          // page scroller
-         ICC_NATIVEFNTCTL_CLASS         = $00002000;          // native font control
-{$ENDIF}
-{$ifdef WIN32XP}
-         ICC_STANDARD_CLASSES           = $00004000;
-         ICC_LINK_CLASS                 = $00008000;
-{$ENDIF}
-
-function InitCommonControlsEx(var rec : TINITCOMMONCONTROLSEX):BOOL; stdcall; external commctrldll name 'InitCommonControlsEx';
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-CONST
-         ODT_HEADER                     = 100;
-         ODT_TAB                        = 101;
-         ODT_LISTVIEW                   = 102;
-
-//====== WM_NOTIFY codes (NMHDR.code values) ==================================
-
-
-CONST
-         NM_FIRST                       = (0-  0);          // generic to all controls
-         NM_LAST                        = (0- 99);
-
-         LVN_FIRST                      = (0-100);          // listview
-         LVN_LAST                       = (0-199);
-
-// Property sheet reserved      (0U-200U) -  (0U-299U) - see prsht.h
-
-         HDN_FIRST                      = (0-300);          // header
-         HDN_LAST                       = (0-399);
-
-         TVN_FIRST                      = (0-400);          // treeview
-         TVN_LAST                       = (0-499);
-
-         TTN_FIRST                      = (0-520);          // tooltips
-         TTN_LAST                       = (0-549);
-
-         TCN_FIRST                      = (0-550);          // tab control
-         TCN_LAST                       = (0-580);
-
-// Shell reserved               (0U-580U) -  (0U-589U)
-
-         CDN_FIRST                      = (0-601);          // common dialog (new)
-         CDN_LAST                       = (0-699);
-
-         TBN_FIRST                      = (0-700);          // toolbar
-         TBN_LAST                       = (0-720);
-
-         UDN_FIRST                      = (0-721);           // updown
-         UDN_LAST                       = (0-740);
-{$ifdef ie3plus}
-         MCN_FIRST                      = (0-750);          // monthcal
-         MCN_LAST                       = (0-759);
-
-         DTN_FIRST                      = (0-760);          // datetimepick
-         DTN_LAST                       = (0-799);
-
-         CBEN_FIRST                     = (0-800);          // combo box ex
-         CBEN_LAST                      = (0-830);
-
-         RBN_FIRST                      = (0-831);          // rebar
-         RBN_LAST                       = (0-859);
-{$ENDIF}
-
-{$ifdef ie4plus}
-         IPN_FIRST                      = (0-860);          // internet address
-         IPN_LAST                       = (0-879);          // internet address
-
-         SBN_FIRST                      = (0-880);          // status bar
-         SBN_LAST                       = (0-899);
-
-         PGN_FIRST                      = (0-900);          // Pager Control
-         PGN_LAST                       = (0-950);
-
-{$ENDIF}
-
-{$ifdef ie5plus}
-{$IFNDEF WMN_FIRST}
-         WMN_FIRST                      = (0-1000);
-         WMN_LAST                       = (0-1200);
-{$ENDIF}
-{$ENDIF}
-
-{$ifdef Win32XP}
-         BCN_FIRST                      = (0-1250);
-         BCN_LAST                       = (0-1350);
-{$ENDIF}
-
-         MSGF_COMMCTRL_BEGINDRAG        = $4200;
-         MSGF_COMMCTRL_SIZEHEADER       = $4201;
-         MSGF_COMMCTRL_DRAGSELECT       = $4202;
-         MSGF_COMMCTRL_TOOLBARCUST      = $4203;
-
-//====== Ranges for control message IDs =======================================
-
-         LVM_FIRST                      = $1000;              // ListView messages
-         TV_FIRST                       = $1100;              // TreeView messages
-         HDM_FIRST                      = $1200;              // Header messages
-         TCM_FIRST                      = $1300;              // Tab control messages
-
-{$ifdef ie4plus}
-         PGM_FIRST                      = $1400;              // Pager control messages
-{$ifdef win32xp}
-         ECM_FIRST                      = $1500;              // Edit control messages
-         BCM_FIRST                      = $1600;              // Button control messages
-         CBM_FIRST                      = $1700;              // Combobox control messages
-{$ENDIF}
-         CCM_FIRST                      = $2000;              // Common control shared messages
-         CCM_LAST                       = (CCM_FIRST + $200);
-
-
-         CCM_SETBKCOLOR                 = (CCM_FIRST + 1);    // lParam is bkColor
-
-TYPE
-         tagCOLORSCHEME       = Record
-                                 dwSize       : DWORD;
-                                 clrBtnHighlight : COLORREF;          // highlight color
-                                 clrBtnShadow : COLORREF;          // shadow color
-                                 END;
-         COLORSCHEME          = tagCOLORSCHEME;
-         LPCOLORSCHEME        = ^tagCOLORSCHEME;
-         TCOLORSCHEME         = tagCOLORSCHEME;
-         PCOLORSCHEME         = ^tagCOLORSCHEME;
-
-CONST
-         CCM_SETCOLORSCHEME             = (CCM_FIRST + 2);    // lParam is color scheme
-         CCM_GETCOLORSCHEME             = (CCM_FIRST + 3);    // fills in COLORSCHEME pointed to by lParam
-         CCM_GETDROPTARGET              = (CCM_FIRST + 4);
-         CCM_SETUNICODEFORMAT           = (CCM_FIRST + 5);
-         CCM_GETUNICODEFORMAT           = (CCM_FIRST + 6);
-
-{$ifdef ie5plus}
-{$ifdef win32xp}
-         COMCTL32_VERSION               = 6;
-{$ELSE}
-         COMCTL32_VERSION               = 5;
-{$ENDIF}
-
-         CCM_SETVERSION                 = (CCM_FIRST + $7);
-         CCM_GETVERSION                 = (CCM_FIRST + $8);
-         CCM_SETNOTIFYWINDOW            = (CCM_FIRST + $9);   // wParam == hwndParent.
-{$ifdef win32xp}
-         CCM_SETWINDOWTHEME             = (CCM_FIRST + $b);
-         CCM_DPISCALE                   = (CCM_FIRST + $c);   // wParam == Awareness
-{$ENDIF}
-{$ENDIF} // (_WIN32_IE >= 0x0500)
-
-{$ENDIF} // (_WIN32_IE >= 0x0400)
-
-{$ifdef ie4plus}
-// for tooltips
-         INFOTIPSIZE                    = 1024;
-{$ENDIF}
-
-//====== WM_NOTIFY Macros =====================================================
-
-// Macro 8
-Procedure HANDLE_WM_NOTIFY( hwnd : hwnd; wParam : cint;var  _lParam : NMHDR ;fn :Pointer);
-
-// Macro 9
-Function FORWARD_WM_NOTIFY( hwnd : hwnd; idFrom : cint;var  pnmhdr : NMHDR ; fn :pointer ):LRESULT;
-
-//====== Generic WM_NOTIFY notification codes =================================
-
-
-CONST
-         NM_OUTOFMEMORY                 = (NM_FIRST-1);
-         NM_CLICK                       = (NM_FIRST-2);       // uses NMCLICK struct
-         NM_DBLCLK                      = (NM_FIRST-3);
-         NM_RETURN                      = (NM_FIRST-4);
-         NM_RCLICK                      = (NM_FIRST-5);       // uses NMCLICK struct
-         NM_RDBLCLK                     = (NM_FIRST-6);
-         NM_SETFOCUS                    = (NM_FIRST-7);
-         NM_KILLFOCUS                   = (NM_FIRST-8);
-{$ifdef ie3plus}
-         NM_CUSTOMDRAW                  = (NM_FIRST-12);
-         NM_HOVER                       = (NM_FIRST-13);
-{$ENDIF}
-{$ifdef ie4plus}
-         NM_NCHITTEST                   = (NM_FIRST-14);      // uses NMMOUSE struct
-         NM_KEYDOWN                     = (NM_FIRST-15);      // uses NMKEY struct
-         NM_RELEASEDCAPTURE             = (NM_FIRST-16);
-         NM_SETCURSOR                   = (NM_FIRST-17);      // uses NMMOUSE struct
-         NM_CHAR                        = (NM_FIRST-18);      // uses NMCHAR struct
-{$ENDIF}
-{$ifdef ie401plus}
-         NM_TOOLTIPSCREATED             = (NM_FIRST-19);      // notify of when the tooltips window is create
-{$ENDIF}
-{$ifdef ie5plus}
-         NM_LDOWN                       = (NM_FIRST-20);
-         NM_RDOWN                       = (NM_FIRST-21);
-         NM_THEMECHANGED                = (NM_FIRST-22);
-{$ENDIF}
-
-{$IFNDEF CCSIZEOF_STRUCT}
-
-// Macro 10
-// #define CCSIZEOF_STRUCT(structname, member)  (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
-{$ENDIF}
-
-//====== Generic WM_NOTIFY notification structures ============================
-{$ifdef ie401plus}
-
-TYPE
-
-         tagNMTOOLTIPSCREATED = Record
-                                 hdr          : NMHDR;
-                                 hwndToolTips : HWND;
-                                 END;
-         NMTOOLTIPSCREATED    = tagNMTOOLTIPSCREATED;
-         LPNMTOOLTIPSCREATED  = ^tagNMTOOLTIPSCREATED;
-         TNMTOOLTIPSCREATED   = tagNMTOOLTIPSCREATED;
-         PNMTOOLTIPSCREATED   = ^tagNMTOOLTIPSCREATED;
-
-{$ENDIF}
-
-{$ifdef ie4plus}
-Type
-         tagNMMOUSE           = Record
-                                 hdr          : NMHDR;
-                                 dwItemSpec   : DWORD_PTR;
-                                 dwItemData   : DWORD_PTR;
-                                 pt           : POINT;
-                                 dwHitInfo    : LPARAM;          // any specifics about where on the item or control the mouse is
-                                 END;
-         NMMOUSE              = tagNMMOUSE;
-         LPNMMOUSE            = ^tagNMMOUSE;
-         TNMMOUSE             = tagNMMOUSE;
-         PNMMOUSE             = ^tagNMMOUSE;
-
-
-         NMCLICK              = NMMOUSE;
-         LPNMCLICK            = LPNMMOUSE;
-
-// Generic structure to request an object of a specific type.
-
-         tagNMOBJECTNOTIFY    = Record
-                                 hdr          : NMHDR;
-                                 iItem        : cint;
-{$IFDEF __IID_DEFINED__}
-                                 piid         : PIID;
-{$ELSE}
-                                 piid         : Pointer;
-{$ENDIF}
-                                 pObject      : Pointer;
-                                 hResult      : HRESULT;
-                                 dwFlags      : DWORD;          // control specific flags (hints as to where in iItem it hit)
-                                 END;
-         NMOBJECTNOTIFY       = tagNMOBJECTNOTIFY;
-         LPNMOBJECTNOTIFY     = ^tagNMOBJECTNOTIFY;
-         TNMOBJECTNOTIFY      = tagNMOBJECTNOTIFY;
-         PNMOBJECTNOTIFY      = ^tagNMOBJECTNOTIFY;
-
-
-// Generic structure for a key
-
-         tagNMKEY             = Record
-                                 hdr          : NMHDR;
-                                 nVKey        : UINT;
-                                 uFlags       : UINT;
-                                 END;
-         NMKEY                = tagNMKEY;
-         LPNMKEY              = ^tagNMKEY;
-         TNMKEY               = tagNMKEY;
-         PNMKEY               = ^tagNMKEY;
-
-
-// Generic structure for a character
-
-         tagNMCHAR            = Record
-                                 hdr          : NMHDR;
-                                 ch           : UINT;
-                                 dwItemPrev   : DWORD;          // Item previously selected
-                                 dwItemNext   : DWORD;          // Item to be selected
-                                 END;
-         NMCHAR               = tagNMCHAR;
-         LPNMCHAR             = ^tagNMCHAR;
-         TNMCHAR              = tagNMCHAR;
-         PNMCHAR              = ^tagNMCHAR;
-
-
-{$ENDIF}           // _WIN32_IE >= 0x0400
-
-
-{$ifdef ie3plus}
-//==================== CUSTOM DRAW ==========================================
-
-// custom draw return flags
-// values under 0x00010000 are reserved for global custom draw values.
-// above that are for specific controls
-CONST
-         CDRF_DODEFAULT                 = $00000000;
-         CDRF_NEWFONT                   = $00000002;
-         CDRF_SKIPDEFAULT               = $00000004;
-
-
-         CDRF_NOTIFYPOSTPAINT           = $00000010;
-         CDRF_NOTIFYITEMDRAW            = $00000020;
-{$ifdef ie4plus}
-         CDRF_NOTIFYSUBITEMDRAW         = $00000020;          // flags are the same, we can distinguish by context
-{$ENDIF}
-         CDRF_NOTIFYPOSTERASE           = $00000040;
-
-// drawstage flags
-// values under 0x00010000 are reserved for global custom draw values.
-// above that are for specific controls
-         CDDS_PREPAINT                  = $00000001;
-         CDDS_POSTPAINT                 = $00000002;
-         CDDS_PREERASE                  = $00000003;
-         CDDS_POSTERASE                 = $00000004;
-// the 0x000010000 bit means it's individual item specific
-         CDDS_ITEM                      = $00010000;
-         CDDS_ITEMPREPAINT              = (CDDS_ITEM  OR  CDDS_PREPAINT);
-         CDDS_ITEMPOSTPAINT             = (CDDS_ITEM  OR  CDDS_POSTPAINT);
-         CDDS_ITEMPREERASE              = (CDDS_ITEM  OR  CDDS_PREERASE);
-         CDDS_ITEMPOSTERASE             = (CDDS_ITEM  OR  CDDS_POSTERASE);
-{$ifdef ie4plus}
-         CDDS_SUBITEM                   = $00020000;
-{$ENDIF}
-
-// itemState flags
-         CDIS_SELECTED                  = $0001;
-         CDIS_GRAYED                    = $0002;
-         CDIS_DISABLED                  = $0004;
-         CDIS_CHECKED                   = $0008;
-         CDIS_FOCUS                     = $0010;
-         CDIS_DEFAULT                   = $0020;
-         CDIS_HOT                       = $0040;
-         CDIS_MARKED                    = $0080;
-         CDIS_INDETERMINATE             = $0100;
-{$ifdef win32xp}
-         CDIS_SHOWKEYBOARDCUES          = $0200;
-{$ENDIF}
-
-TYPE
-
-         tagNMCUSTOMDRAWINFO  = Record
-                                 hdr          : NMHDR;
-                                 dwDrawStage  : DWORD;
-                                 hdc          : HDC;
-                                 rc           : RECT;
-                                 dwItemSpec   : DWORD_PTR;          // this is control specific, but it's how to specify an item.  valid only with CDDS_ITEM bit set
-                                 uItemState   : UINT;
-                                 lItemlParam  : LPARAM;
-                                 END;
-         NMCUSTOMDRAW         = tagNMCUSTOMDRAWINFO;
-         LPNMCUSTOMDRAW       = ^tagNMCUSTOMDRAWINFO;
-         TNMCUSTOMDRAWINFO    = tagNMCUSTOMDRAWINFO;
-         PNMCUSTOMDRAWINFO    = ^tagNMCUSTOMDRAWINFO;
-         PNMCustomDraw        = PNMCUSTOMDRAWINFO;
-         TNMCustomDraw        = tagNMCUSTOMDRAWINFO;
-
-         tagNMTTCUSTOMDRAW    = Record
-                                 nmcd         : NMCUSTOMDRAW;
-                                 uDrawFlags   : UINT;
-                                 END;
-         NMTTCUSTOMDRAW       = tagNMTTCUSTOMDRAW;
-         LPNMTTCUSTOMDRAW     = ^tagNMTTCUSTOMDRAW;
-         TNMTTCUSTOMDRAW      = tagNMTTCUSTOMDRAW;
-         PNMTTCUSTOMDRAW      = ^tagNMTTCUSTOMDRAW;
-
-
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-
-//====== IMAGE APIS ===========================================================
-
-{$IFNDEF NOIMAGEAPIS}
-
-
-CONST
-         CLR_NONE                       = DWORD($FFFFFFFF);
-         CLR_DEFAULT                    = DWORD($FF000000);
-
-
-{$IFNDEF IMAGELISTDRAWPARAMS}
-{$ifdef ie3plus}
-TYPE
-         _IMAGELISTDRAWPARAMS = Record
-                                 cbSize       : DWORD;
-                                 himl         : HIMAGELIST;
-                                 i            : cint;
-                                 hdcDst       : HDC;
-                                 x            : cint;
-                                 y            : cint;
-                                 cx           : cint;
-                                 cy           : cint;
-                                 xBitmap      : cint;          // x offest from the upperleft of bitmap
-                                 yBitmap      : cint;          // y offset from the upperleft of bitmap
-                                 rgbBk        : COLORREF;
-                                 rgbFg        : COLORREF;
-                                 fStyle       : UINT;
-                                 dwRop        : DWORD;
-{$ifdef win32xp}
-                                 fState       : DWORD;
-                                 Frame        : DWORD;
-                                 crEffect     : COLORREF;
-{$ENDIF}
-                                 END;
-         IMAGELISTDRAWPARAMS  = _IMAGELISTDRAWPARAMS;
-         LPIMAGELISTDRAWPARAMS = ^_IMAGELISTDRAWPARAMS;
-         TIMAGELISTDRAWPARAMS = _IMAGELISTDRAWPARAMS;
-         PIMAGELISTDRAWPARAMS = ^_IMAGELISTDRAWPARAMS;
-
-// #define IMAGELISTDRAWPARAMS_V3_SIZE CCSIZEOF_STRUCT(IMAGELISTDRAWPARAMS, dwRop)
-
-{$ENDIF}      // _WIN32_IE >= 0x0300
-{$ENDIF}
-
-
-CONST
-         ILC_MASK                       = $00000001;
-         ILC_COLOR                      = $00000000;
-         ILC_COLORDDB                   = $000000FE;
-         ILC_COLOR4                     = $00000004;
-         ILC_COLOR8                     = $00000008;
-         ILC_COLOR16                    = $00000010;
-         ILC_COLOR24                    = $00000018;
-         ILC_COLOR32                    = $00000020;
-         ILC_PALETTE                    = $00000800;          // (not implemented)
-{$ifdef win32xp}
-         ILC_MIRROR                     = $00002000;          // Mirror the icons contained, if the process is mirrored
-         ILC_PERITEMMIRROR              = $00008000;          // Causes the mirroring code to mirror each item when inserting a set of images, verses the whole strip
-{$ENDIF}
-
-function ImageList_Create(cx:cint;cy:cint;flags:UINT;cInitial:cint;cGrow:cint):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Create';
-function ImageList_Destroy(himl:HIMAGELIST):BOOL; stdcall; external commctrldll name 'ImageList_Destroy';
-
-function ImageList_GetImageCount(himl:HIMAGELIST):cint; stdcall; external commctrldll name 'ImageList_GetImageCount';
-{$ifdef ie3plus}
-function ImageList_SetImageCount(himl:HIMAGELIST;uNewCount:UINT):BOOL; stdcall; external commctrldll name 'ImageList_SetImageCount';
-{$ENDIF}
-
-function ImageList_Add(himl:HIMAGELIST;hbmImage:HBITMAP;hbmMask:HBITMAP):cint; stdcall; external commctrldll name 'ImageList_Add';
-
-function ImageList_ReplaceIcon(himl:HIMAGELIST;i:cint;hicon:HICON):cint; stdcall; external commctrldll name 'ImageList_ReplaceIcon';
-function ImageList_SetBkColor(himl:HIMAGELIST;clrBk:COLORREF):COLORREF; stdcall; external commctrldll name 'ImageList_SetBkColor';
-function ImageList_GetBkColor(himl:HIMAGELIST):COLORREF; stdcall; external commctrldll name 'ImageList_GetBkColor';
-function ImageList_SetOverlayImage(himl:HIMAGELIST;iImage:cint;iOverlay:cint):BOOL; stdcall; external commctrldll name 'ImageList_SetOverlayImage';
-
-// Macro 11
-Function ImageList_AddIcon(Himl:HIMAGELIST;hicon:HICON):cint;
-
-CONST
-         ILD_NORMAL                     = $00000000;
-         ILD_TRANSPARENT                = $00000001;
-         ILD_MASK                       = $00000010;
-         ILD_IMAGE                      = $00000020;
-{$ifdef ie3plus}
-         ILD_ROP                        = $00000040;
-{$ENDIF}
-         ILD_BLEND25                    = $00000002;
-         ILD_BLEND50                    = $00000004;
-         ILD_OVERLAYMASK                = $00000F00;
-
-// Macro 12
-// #define INDEXTOOVERLAYMASK(i)   ((i) << 8)
-
-CONST
-         ILD_PRESERVEALPHA              = $00001000;          // This preserves the alpha channel in dest
-         ILD_SCALE                      = $00002000;          // Causes the image to be scaled to cx, cy instead of clipped
-         ILD_DPISCALE                   = $00004000;
-
-         ILD_SELECTED                   = ILD_BLEND50;
-         ILD_FOCUS                      = ILD_BLEND25;
-         ILD_BLEND                      = ILD_BLEND50;
-         CLR_HILIGHT                    = CLR_DEFAULT;
-
-         ILS_NORMAL                     = $00000000;
-         ILS_GLOW                       = $00000001;
-         ILS_SHADOW                     = $00000002;
-         ILS_SATURATE                   = $00000004;
-         ILS_ALPHA                      = $00000008;
-
-function ImageList_Draw(himl:HIMAGELIST;i:cint;hdcDst:HDC;x:cint;y:cint;fStyle:UINT):BOOL; stdcall; external commctrldll name 'ImageList_Draw';
-
-
-{$IFDEF _WIN32}
-
-function ImageList_Replace(himl:HIMAGELIST;i:cint;hbmImage:HBITMAP;hbmMask:HBITMAP):BOOL; stdcall; external commctrldll name 'ImageList_Replace';
-
-function ImageList_AddMasked(himl:HIMAGELIST;hbmImage:HBITMAP;crMask:COLORREF):cint; stdcall; external commctrldll name 'ImageList_AddMasked';
-function ImageList_DrawEx(himl:HIMAGELIST;i:cint;hdcDst:HDC;x:cint;y:cint;dx:cint;dy:cint;rgbBk:COLORREF;rgbFg:COLORREF;fStyle:UINT):BOOL; stdcall; external commctrldll name 'ImageList_DrawEx';
-{$ifdef ie3plus}
-function ImageList_DrawIndirect(pimldp:PIMAGELISTDRAWPARAMS):BOOL; stdcall; external commctrldll name 'ImageList_DrawIndirect';
-{$ENDIF}
-function ImageList_Remove(himl:HIMAGELIST;i:cint):BOOL; stdcall; external commctrldll name 'ImageList_Remove';
-function ImageList_GetIcon(himl:HIMAGELIST;i:cint;flags:UINT):HICON; stdcall; external commctrldll name 'ImageList_GetIcon';
-function ImageList_LoadImageA(hi:HINST;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageA';
-function ImageList_LoadImageW(hi:HINST;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageW';
-function ImageList_LoadImage(hi:HINST;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageA';
-function ImageList_LoadImage(hi:HINST;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageW';
-
-{$IFDEF UNICODE}
-// function ImageList_LoadImageW(hi:HINSTANCE;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageW';
-{$ELSE}
-// function ImageList_LoadImageA(hi:HINSTANCE;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageA';
-{$ENDIF}
-
-{$ifdef ie3plus}
-
-CONST
-         ILCF_MOVE                      = ($00000000);
-         ILCF_SWAP                      = ($00000001);
-
-function ImageList_Copy(himlDst:HIMAGELIST;iDst:cint;himlSrc:HIMAGELIST;iSrc:cint;uFlags:UINT):BOOL; stdcall; external commctrldll name 'ImageList_Copy';
-{$ENDIF}
-
-function ImageList_BeginDrag(himlTrack:HIMAGELIST;iTrack:cint;dxHotspot:cint;dyHotspot:cint):BOOL; stdcall; external commctrldll name 'ImageList_BeginDrag';
-function ImageList_EndDrag:BOOL; stdcall; external commctrldll name 'ImageList_EndDrag';
-function ImageList_DragEnter(hwndLock:HWND;x:cint;y:cint):BOOL; stdcall; external commctrldll name 'ImageList_DragEnter';
-function ImageList_DragLeave(hwndLock:HWND):BOOL; stdcall; external commctrldll name 'ImageList_DragLeave';
-function ImageList_DragMove(x:cint;y:cint):BOOL; stdcall; external commctrldll name 'ImageList_DragMove';
-function ImageList_SetDragCursorImage(himlDrag:HIMAGELIST;iDrag:cint;dxHotspot:cint;dyHotspot:cint):BOOL; stdcall; external commctrldll name 'ImageList_SetDragCursorImage';
-
-function ImageList_DragShowNolock(fShow:BOOL):BOOL; stdcall; external commctrldll name 'ImageList_DragShowNolock';
-function ImageList_GetDragImage(ppt:PPOINT;pptHotspot:PPOINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_GetDragImage';
-
-// Macro 13
-Procedure ImageList_RemoveAll(himl:HIMAGELIST);
-
-// Macro 14
-Procedure ImageList_ExtractIcon(hi:longint; {dummy?} himl:HIMAGELIST;i:cint);
-
-
-// Macro 15
-Procedure ImageList_LoadBitmap(hi:HInst;bmp:LPCTSTR;cx:cint;cGrow:cint;crMask:COLORREF);
-
-{$IFDEF __IStream_INTERFACE_DEFINED__}
-
-function ImageList_Read(pstm:ISTREAM):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Read';
-function ImageList_Write(himl:HIMAGELIST;pstm:ISTREAM):BOOL; stdcall; external commctrldll name 'ImageList_Write';
-
-{$ifdef Win32XP}
-
-CONST
-         ILP_NORMAL                     = 0;                  // Writes or reads the stream using new sematics for this version of comctl32
-         ILP_DOWNLEVEL                  = 1;                  // Write or reads the stream using downlevel sematics.
-
-
-function ImageList_ReadEx(dwFlags:DWORD;pstm:ISTREAM;riid:REFIID;ppv:PPointer):HRESULT; stdcall; external commctrldll name 'ImageList_ReadEx';
-function ImageList_WriteEx(himl:HIMAGELIST;dwFlags:DWORD;pstm:ISTREAM):HRESULT; stdcall; external commctrldll name 'ImageList_WriteEx';
-{$ENDIF}
-
-{$ENDIF}
-
-{$IFNDEF IMAGEINFO}
-TYPE
-
-         _IMAGEINFO           = Record
-                                 hbmImage     : HBITMAP;
-                                 hbmMask      : HBITMAP;
-                                 Unused1      : cint;
-                                 Unused2      : cint;
-                                 rcImage      : RECT;
-                                 END;
-         IMAGEINFO            = _IMAGEINFO;
-         LPIMAGEINFO          = ^_IMAGEINFO;
-         TIMAGEINFO           = _IMAGEINFO;
-         PIMAGEINFO           = ^_IMAGEINFO;
-
-{$ENDIF}
-
-function ImageList_GetIconSize(himl:HIMAGELIST;cx:Pint;cy:Pint):BOOL; stdcall; external commctrldll name 'ImageList_GetIconSize';
-function ImageList_GetIconSize(himl:HIMAGELIST;var cx:cint;var cy:cint):BOOL; stdcall; external commctrldll name 'ImageList_GetIconSize';
-function ImageList_SetIconSize(himl:HIMAGELIST;cx:cint;cy:cint):BOOL; stdcall; external commctrldll name 'ImageList_SetIconSize';
-function ImageList_GetImageInfo(himl:HIMAGELIST;i:cint;pImageInfo:PIMAGEINFO):BOOL; stdcall; external commctrldll name 'ImageList_GetImageInfo';
-function ImageList_GetImageInfo(himl:HIMAGELIST;i:cint;var pImageInfo:_IMAGEINFO):BOOL; stdcall; external commctrldll name 'ImageList_GetImageInfo';
-function ImageList_Merge(himl1:HIMAGELIST;i1:cint;himl2:HIMAGELIST;i2:cint;dx:cint;dy:cint):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Merge';
-{$ifdef ie4plus}
-function ImageList_Duplicate(himl:HIMAGELIST):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Duplicate';
-{$ENDIF}
-
-
-{$ENDIF}
-
-
-{$ENDIF}
-
-
-//====== HEADER CONTROL =======================================================
-
-{$IFNDEF NOHEADER}
-
-{$IFDEF _WIN32}
-
-CONST
-         WC_HEADERA                     = 'SysHeader32';
-         WC_HEADERW                     = {L}'SysHeader32';
-{$IFDEF UNICODE}
-         WC_HEADER           = WC_HEADERW;
-{$ELSE}
-         WC_HEADER           = WC_HEADERA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         WC_HEADER                      = 'SysHeader';
-{$ENDIF}
-
-CONST
-
-// begin_r_commctrl
-
-         HDS_HORZ                       = $0000;
-         HDS_BUTTONS                    = $0002;
-{$ifdef ie3plus}
-         HDS_HOTTRACK                   = $0004;
-{$ENDIF}
-         HDS_HIDDEN                     = $0008;
-
-{$ifdef ie3plus}
-         HDS_DRAGDROP                   = $0040;
-         HDS_FULLDRAG                   = $0080;
-{$ENDIF}
-{$ifdef ie5plus}
-         HDS_FILTERBAR                  = $0100;
-{$ENDIF}
-
-{$ifdef win32xp}
-         HDS_FLAT                       = $0200;
-{$ENDIF}
-// end_r_commctrl
-
-{$ifdef ie5plus}
-
-         HDFT_ISSTRING                  = $0000;              // HD_ITEM.pvFilter points to a HD_TEXTFILTER
-         HDFT_ISNUMBER                  = $0001;              // HD_ITEM.pvFilter points to a INT
-
-         HDFT_HASNOVALUE                = $8000;              // clear the filter, by setting this bit
-
-TYPE
-
-
-         _HD_TEXTFILTERA      = Record
-                                 pszText      : LPSTR;          // [in] pointer to the buffer containing the filter (ANSI)
-                                 cchTextMax   : cint;          // [in] max size of buffer/edit control buffer
-                                 END;
-         HD_TEXTFILTERA       = _HD_TEXTFILTERA;
-         LPHD_TEXTFILTERA     = ^_HD_TEXTFILTERA;
-         THD_TEXTFILTERA      = _HD_TEXTFILTERA;
-         PHD_TEXTFILTERA      = ^_HD_TEXTFILTERA;
-
-
-         _HD_TEXTFILTERW      = Record
-                                 pszText      : LPWSTR;          // [in] pointer to the buffer contiaining the filter (UNICODE)
-                                 cchTextMax   : cint;          // [in] max size of buffer/edit control buffer
-                                 END;
-         HD_TEXTFILTERW       = _HD_TEXTFILTERW;
-         LPHD_TEXTFILTERW     = ^_HD_TEXTFILTERW;
-         THD_TEXTFILTERW      = _HD_TEXTFILTERW;
-         PHD_TEXTFILTERW      = ^_HD_TEXTFILTERW;
-
-{$IFDEF UNICODE}
-         HD_TEXTFILTER       = HD_TEXTFILTERW;
-         HDTEXTFILTER        = HD_TEXTFILTERW;
-         LPHD_TEXTFILTER     = LPHD_TEXTFILTERW;
-         LPHDTEXTFILTER      = LPHD_TEXTFILTERW;
-{$ELSE}
-         HD_TEXTFILTER       = HD_TEXTFILTERA;
-         HDTEXTFILTER        = HD_TEXTFILTERA;
-         LPHD_TEXTFILTER     = LPHD_TEXTFILTERA;
-         LPHDTEXTFILTER      = LPHD_TEXTFILTERA;
-{$ENDIF}
-
-
-{$ENDIF}  // _WIN32_IE >= 0x0500
-
-TYPE
-
-
-         _HD_ITEMA            = Record
-                                 mask         : UINT;
-                                 cxy          : cint;
-                                 pszText      : LPSTR;
-                                 hbm          : HBITMAP;
-                                 cchTextMax   : cint;
-                                 fmt          : cint;
-                                 lParam       : LPARAM;
-{$ifdef ie3plus}
-                                 iImage       : cint;          // index of bitmap in ImageList
-                                 iOrder       : cint;          // where to draw this item
-{$ENDIF}
-{$ifdef ie5plus}
-                                 _type        : UINT;          // [in] filter type (defined what pvFilter is a pointer to)
-                                 pvFilter     : Pointer;       // [in] fillter data see above
-{$ENDIF}
-                                 END;
-         HDITEMA              = _HD_ITEMA;
-         pHDITEMA             = ^_HD_ITEMA;
-
-         LPHDITEMA            = ^_HD_ITEMA;
-         THD_ITEMA            = _HD_ITEMA;
-         PHD_ITEMA            = ^_HD_ITEMA;
-         THDItem              = THD_ITEMA;
-         PHDItem              = PHD_ITEMA;
-
-
-// #define HDITEMA_V1_SIZE CCSIZEOF_STRUCT(HDITEMA, lParam)
-// #define HDITEMW_V1_SIZE CCSIZEOF_STRUCT(HDITEMW, lParam)
-
-
-         _HD_ITEMW            = Record
-                                 mask         : UINT;
-                                 cxy          : cint;
-                                 pszText      : LPWSTR;
-                                 hbm          : HBITMAP;
-                                 cchTextMax   : cint;
-                                 fmt          : cint;
-                                 lParam       : LPARAM;
-{$ifdef ie3plus}
-                                 iImage       : cint;          // index of bitmap in ImageList
-                                 iOrder       : cint;
-{$ENDIF}
-{$ifdef ie5plus}
-                                 _type        : UINT;          // [in] filter type (defined what pvFilter is a pointer to)
-                                 pvFilter     : Pointer;       // [in] fillter data see above
-{$ENDIF}
-                                 END;
-         HDITEMW              = _HD_ITEMW;
-         pHDITEMW             = ^_HD_ITEMW;
-         LPHDITEMW            = ^_HD_ITEMW;
-         THD_ITEMW            = _HD_ITEMW;
-         PHD_ITEMW            = ^_HD_ITEMW;
-
-
-TYPE
-{$IFDEF UNICODE}
-         HDITEM              = HDITEMW;
-         LPHDITEM            = LPHDITEMW;
-//       HDITEM_V1_SIZE                 = HDITEMW_V1_SIZE;
-{$ELSE}
-
-         HDITEM              = HDITEMA;
-         LPHDITEM            = LPHDITEMA;
-//       HDITEM_V1_SIZE                 = HDITEMA_V1_SIZE;
-{$ENDIF}
-
-         HD_ITEM                        = HDITEM;
-
-
-CONST
-
-         HDI_WIDTH                      = $0001;
-         HDI_HEIGHT                     = HDI_WIDTH;
-         HDI_TEXT                       = $0002;
-         HDI_FORMAT                     = $0004;
-         HDI_LPARAM                     = $0008;
-         HDI_BITMAP                     = $0010;
-{$ifdef ie3plus}
-         HDI_IMAGE                      = $0020;
-         HDI_DI_SETITEM                 = $0040;
-         HDI_ORDER                      = $0080;
-{$ENDIF}
-{$ifdef ie5plus}
-         HDI_FILTER                     = $0100;
-{$ENDIF}
-
-         HDF_LEFT                       = $0000;
-         HDF_RIGHT                      = $0001;
-         HDF_CENTER                     = $0002;
-         HDF_JUSTIFYMASK                = $0003;
-         HDF_RTLREADING                 = $0004;
-
-         HDF_OWNERDRAW                  = $8000;
-         HDF_STRING                     = $4000;
-         HDF_BITMAP                     = $2000;
-{$ifdef ie3plus}
-         HDF_BITMAP_ON_RIGHT            = $1000;
-         HDF_IMAGE                      = $0800;
-{$ENDIF}
-
-{$ifdef win32xp}
-         HDF_SORTUP                     = $0400;
-         HDF_SORTDOWN                   = $0200;
-{$ENDIF}
-
-         HDM_GETITEMCOUNT               = (HDM_FIRST + 0);
-
-// Macro 16
-Function Header_GetItemCount( hwndHD : hwnd):cint;
-
-CONST
-         HDM_INSERTITEMA                = (HDM_FIRST + 1);
-         HDM_INSERTITEMW                = (HDM_FIRST + 10);
-
-{$IFDEF UNICODE}
-         HDM_INSERTITEM                 = HDM_INSERTITEMW;
-{$ELSE}
-         HDM_INSERTITEM                 = HDM_INSERTITEMA;
-{$ENDIF}
-
-// Macro 17
-Function Header_InsertItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):cint;
-
-
-CONST
-         HDM_DELETEITEM                 = (HDM_FIRST + 2);
-
-// Macro 18
-Function Header_DeleteItem( hwndHD : hwnd; i : cint):BOOL;
-
-CONST
-         HDM_GETITEMA                   = (HDM_FIRST + 3);
-         HDM_GETITEMW                   = (HDM_FIRST + 11);
-
-{$IFDEF UNICODE}
-         HDM_GETITEM                    = HDM_GETITEMW;
-{$ELSE}
-         HDM_GETITEM                    = HDM_GETITEMA;
-{$ENDIF}
-
-// Macro 19
-Function Header_GetItem( hwndHD : hwnd; i : cint;var  phdi : HD_ITEM ):BOOL;
-
-CONST
-         HDM_SETITEMA                   = (HDM_FIRST + 4);
-         HDM_SETITEMW                   = (HDM_FIRST + 12);
-
-{$IFDEF UNICODE}
-         HDM_SETITEM                    = HDM_SETITEMW;
-{$ELSE}
-         HDM_SETITEM                    = HDM_SETITEMA;
-{$ENDIF}
-
-// Macro 20
-Function Header_SetItem( hwndHD : hwnd; i : cint;const  phdi : HD_ITEM ):BOOL;
-
-TYPE
-
-         _HD_LAYOUT           = Record
-                                 prc          : PRECT;
-                                 pwpos        : PWINDOWPOS;
-                                 END;
-         HDLAYOUT             = _HD_LAYOUT;
-         LPHDLAYOUT           = ^_HD_LAYOUT;
-         THD_LAYOUT           = _HD_LAYOUT;
-         PHD_LAYOUT           = ^_HD_LAYOUT;
-
-CONST
-         HDM_LAYOUT                     = (HDM_FIRST + 5);
-
-{$ifdef ie3plus}
-TYPE
-         HD_LAYOUT                      = HDLAYOUT;
-{$ELSE}
-//         HDLAYOUT                       = HD_LAYOUT;
-{$ENDIF}
-
-
-// Macro 21
-Function Header_Layout( hwndHD : hwnd;var  playout : HD_LAYOUT ):BOOL;
-
-CONST
-         HHT_NOWHERE                    = $0001;
-         HHT_ONHEADER                   = $0002;
-         HHT_ONDIVIDER                  = $0004;
-         HHT_ONDIVOPEN                  = $0008;
-{$ifdef ie5plus}
-         HHT_ONFILTER                   = $0010;
-         HHT_ONFILTERBUTTON             = $0020;
-{$ENDIF}
-         HHT_ABOVE                      = $0100;
-         HHT_BELOW                      = $0200;
-         HHT_TORIGHT                    = $0400;
-         HHT_TOLEFT                     = $0800;
-
-
-TYPE
-         _HD_HITTESTINFO      = Record
-                                  case integer of
-                                    1: (pt           : POINT;flags        : UINT;iItem        : cint);
-                                    { delphi }
-                                    2: (point        : POINT;dummyflags   : UINT;Item        : cint);
-                                 END;
-         HDHITTESTINFO        = _HD_HITTESTINFO;
-         HD_HITTESTINFO       = _HD_HITTESTINFO;
-         LPHDHITTESTINFO      = ^_HD_HITTESTINFO;
-         THD_HITTESTINFO      = _HD_HITTESTINFO;
-         PHD_HITTESTINFO      = ^_HD_HITTESTINFO;
-         THDHitTestInfo       = THD_HITTESTINFO;
-         PHDHitTestInfo       = LPHDHITTESTINFO;
-
-
-CONST
-         HDM_HITTEST                    = (HDM_FIRST + 6);
-
-{$ifdef ie3plus}
-
-         HDM_GETITEMRECT                = (HDM_FIRST + 7);
-
-// Macro 22
-Function Header_GetItemRect( hwnd : hwnd; iItem : WPARAM; lprc : LPARAM):BOOL;
-
-CONST
-         HDM_SETIMAGELIST               = (HDM_FIRST + 8);
-
-// Macro 23
-Function Header_SetImageList( hwnd : hwnd; himl : LPARAM):HIMAGELIST;
-
-CONST
-         HDM_GETIMAGELIST               = (HDM_FIRST + 9);
-
-// Macro 24
-Function Header_GetImageList( hwnd : hwnd):HIMAGELIST;
-
-CONST
-         HDM_ORDERTOINDEX               = (HDM_FIRST + 15);
-
-// Macro 25
-Function Header_OrderToIndex( hwnd : hwnd; i : WPARAM):cint;
-
-CONST
-         HDM_CREATEDRAGIMAGE            = (HDM_FIRST + 16);   // wparam = which item (by index)
-
-// Macro 26
-Function Header_CreateDragImage( hwnd : hwnd; i : WPARAM):HIMAGELIST;
-
-CONST
-         HDM_GETORDERARRAY              = (HDM_FIRST + 17);
-
-// Macro 27
-Function Header_GetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : LPARAM):BOOL;
-
-CONST
-         HDM_SETORDERARRAY              = (HDM_FIRST + 18);
-
-// Macro 28
-Function Header_SetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : PInteger):BOOL;inline;
-
-// lparam = int array of size HDM_GETITEMCOUNT
-// the array specifies the order that all items should be displayed.
-// e.g.  { 2, 0, 1}
-// says the index 2 item should be shown in the 0ths position
-//      index 0 should be shown in the 1st position
-//      index 1 should be shown in the 2nd position
-
-
-CONST
-         HDM_SETHOTDIVIDER              = (HDM_FIRST + 19);
-
-// Macro 29
-Function Header_SetHotDivider( hwnd : hwnd; fPos : WPARAM; dw : LPARAM):cint;
-
-// convenience message for external dragdrop
-// wParam = BOOL  specifying whether the lParam is a dwPos of the cursor
-//              position or the index of which divider to hotlight
-// lParam = depends on wParam  (-1 and wParm = FALSE turns off hotlight)
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-{$ifdef ie5plus}
-CONST
-         HDM_SETBITMAPMARGIN            = (HDM_FIRST + 20);
-
-// Macro 30
-Function Header_SetBitmapMargin( hwnd : hwnd; iWidth : WPARAM):cint;
-
-CONST
-         HDM_GETBITMAPMARGIN            = (HDM_FIRST + 21);
-
-// Macro 31
-Function Header_GetBitmapMargin( hwnd : hwnd):cint;
-
-{$ENDIF}
-
-
-{$ifdef ie4plus}
-
-CONST
-         HDM_SETUNICODEFORMAT           = CCM_SETUNICODEFORMAT;
-
-// Macro 32
-Function Header_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
-
-CONST
-         HDM_GETUNICODEFORMAT           = CCM_GETUNICODEFORMAT;
-
-// Macro 33
-Function Header_GetUnicodeFormat( hwnd : hwnd):BOOL;
-
-{$ENDIF}
-
-{$ifdef ie5plus}
-CONST
-         HDM_SETFILTERCHANGETIMEOUT     = (HDM_FIRST+22);
-
-// Macro 34
-Function Header_SetFilterChangeTimeout( hwnd : hwnd; i : LPARAM):cint;
-
-CONST
-         HDM_EDITFILTER                 = (HDM_FIRST+23);
-
-// Macro 35
-Function Header_EditFilter( hwnd : hwnd; i : WPARAM; fDiscardChanges :cint ):cint;
-
-
-// Clear filter takes -1 as a column value to indicate that all
-// the filter should be cleared.  When this happens you will
-// only receive a single filter changed notification.
-
-CONST
-         HDM_CLEARFILTER                = (HDM_FIRST+24);
-
-// Macro 36
-Function Header_ClearFilter( hwnd : hwnd; i : WPARAM):cint;
-
-// Macro 37
-Function Header_ClearAllFilters( hwnd : hwnd):cint;
-
-{$ENDIF}
-
-CONST
-         HDN_ITEMCHANGINGA              = (HDN_FIRST-0);
-         HDN_ITEMCHANGINGW              = (HDN_FIRST-20);
-         HDN_ITEMCHANGEDA               = (HDN_FIRST-1);
-         HDN_ITEMCHANGEDW               = (HDN_FIRST-21);
-         HDN_ITEMCLICKA                 = (HDN_FIRST-2);
-         HDN_ITEMCLICKW                 = (HDN_FIRST-22);
-         HDN_ITEMDBLCLICKA              = (HDN_FIRST-3);
-         HDN_ITEMDBLCLICKW              = (HDN_FIRST-23);
-         HDN_DIVIDERDBLCLICKA           = (HDN_FIRST-5);
-         HDN_DIVIDERDBLCLICKW           = (HDN_FIRST-25);
-         HDN_BEGINTRACKA                = (HDN_FIRST-6);
-         HDN_BEGINTRACKW                = (HDN_FIRST-26);
-         HDN_ENDTRACKA                  = (HDN_FIRST-7);
-         HDN_ENDTRACKW                  = (HDN_FIRST-27);
-         HDN_TRACKA                     = (HDN_FIRST-8);
-         HDN_TRACKW                     = (HDN_FIRST-28);
-{$ifdef ie3plus}
-         HDN_GETDISPINFOA               = (HDN_FIRST-9);
-         HDN_GETDISPINFOW               = (HDN_FIRST-29);
-         HDN_BEGINDRAG                  = (HDN_FIRST-10);
-         HDN_ENDDRAG                    = (HDN_FIRST-11);
-{$ENDIF}
-{$ifdef ie5plus}
-         HDN_FILTERCHANGE               = (HDN_FIRST-12);
-         HDN_FILTERBTNCLICK             = (HDN_FIRST-13);
-{$ENDIF}
-
-{$IFDEF UNICODE}
-         HDN_ITEMCHANGING               = HDN_ITEMCHANGINGW;
-         HDN_ITEMCHANGED                = HDN_ITEMCHANGEDW;
-         HDN_ITEMCLICK                  = HDN_ITEMCLICKW;
-         HDN_ITEMDBLCLICK    = HDN_ITEMDBLCLICKW;
-         HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKW;
-         HDN_BEGINTRACK      = HDN_BEGINTRACKW;
-         HDN_ENDTRACK        = HDN_ENDTRACKW;
-         HDN_TRACK           = HDN_TRACKW;
-{$ifdef ie3plus}
-         HDN_GETDISPINFO     = HDN_GETDISPINFOW;
-{$ENDIF}
-{$ELSE}
-         HDN_ITEMCHANGING    = HDN_ITEMCHANGINGA;
-         HDN_ITEMCHANGED     = HDN_ITEMCHANGEDA;
-         HDN_ITEMCLICK       = HDN_ITEMCLICKA;
-         HDN_ITEMDBLCLICK    = HDN_ITEMDBLCLICKA;
-         HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKA;
-         HDN_BEGINTRACK      = HDN_BEGINTRACKA;
-         HDN_ENDTRACK        = HDN_ENDTRACKA;
-         HDN_TRACK           = HDN_TRACKA;
-{$ifdef ie3plus}
-         HDN_GETDISPINFO     = HDN_GETDISPINFOA;
-{$ENDIF}
-{$ENDIF}
-
-TYPE
-         tagNMHEADERA         = Record
-                                 hdr          : NMHDR;
-                                 case integer of
-                                   1: (iItem        : cint;iButton      : cint;pitem        : PHDITEMA);
-                                   { delphi: }
-                                   2: (Item        : cint;Button      : cint);
-                                 END;
-         NMHEADERA            = tagNMHEADERA;
-         LPNMHEADERA          = ^tagNMHEADERA;
-         TNMHEADERA           = tagNMHEADERA;
-         PNMHEADERA           = ^tagNMHEADERA;
-
-         tagNMHEADERW         = Record
-                                 hdr          : NMHDR;
-                                 iItem        : cint;
-                                 iButton      : cint;
-                                 pitem        : PHDITEMW;
-                                 END;
-         NMHEADERW            = tagNMHEADERW;
-         LPNMHEADERW          = ^tagNMHEADERW;
-         TNMHEADERW           = tagNMHEADERW;
-         PNMHEADERW           = ^tagNMHEADERW;
-
-
-{$IFDEF UNICODE}
-         NMHEADER            = NMHEADERW;
-         LPNMHEADER          = LPNMHEADERW;
-{$ELSE}
-         NMHEADER            = NMHEADERA;
-         LPNMHEADER          = LPNMHEADERA;
-{$ENDIF}
-
-
-{$ifdef ie3plus}
-         HD_NOTIFYA          = NMHEADERA;
-         HD_NOTIFYW          = NMHEADERW;
-{$ELSE}
-//         tagNMHEADERA        = _HD_NOTIFY;
-//         NMHEADERA           = HD_NOTIFYA;
-//         tagHMHEADERW        = _HD_NOTIFYW;
-//         NMHEADERW           = HD_NOTIFYW;
-{$ENDIF}
-
-         HD_NOTIFY           = NMHEADER;
-         THDNotify           = HD_NOTIFY;
-         PHDNotify           = ^HD_NOTIFY;
-
-         tagNMHDDISPINFOW     = Record
-                                 hdr          : NMHDR;
-                                 iItem        : cint;
-                                 mask         : UINT;
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         NMHDDISPINFOW        = tagNMHDDISPINFOW;
-         LPNMHDDISPINFOW      = ^tagNMHDDISPINFOW;
-         TNMHDDISPINFOW       = tagNMHDDISPINFOW;
-         PNMHDDISPINFOW       = ^tagNMHDDISPINFOW;
-
-
-         tagNMHDDISPINFOA     = Record
-                                 hdr          : NMHDR;
-                                 iItem        : cint;
-                                 mask         : UINT;
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         NMHDDISPINFOA        = tagNMHDDISPINFOA;
-         LPNMHDDISPINFOA      = ^tagNMHDDISPINFOA;
-         TNMHDDISPINFOA       = tagNMHDDISPINFOA;
-         PNMHDDISPINFOA       = ^tagNMHDDISPINFOA;
-
-
-
-{$IFDEF UNICODE}
-         NMHDDISPINFO        = NMHDDISPINFOW;
-         LPNMHDDISPINFO      = LPNMHDDISPINFOW;
-{$ELSE}
-         NMHDDISPINFO        = NMHDDISPINFOA;
-         LPNMHDDISPINFO      = LPNMHDDISPINFOA;
-{$ENDIF}
-
-{$ifdef ie5plus}
-         tagNMHDFILTERBTNCLICK = Record
-                                  hdr          : NMHDR;
-                                  iItem        : cint;
-                                  rc           : RECT;
-                                  END;
-         NMHDFILTERBTNCLICK   = tagNMHDFILTERBTNCLICK;
-         LPNMHDFILTERBTNCLICK = ^tagNMHDFILTERBTNCLICK;
-         TNMHDFILTERBTNCLICK  = tagNMHDFILTERBTNCLICK;
-         PNMHDFILTERBTNCLICK  = ^tagNMHDFILTERBTNCLICK;
-
-{$ENDIF}
-
-{$ENDIF}      // NOHEADER
-
-
-//====== TOOLBAR CONTROL ======================================================
-
-{$IFNDEF NOTOOLBAR}
-
-{$IFDEF _WIN32}
-
-CONST
-         TOOLBARCLASSNAMEW              = {L}'ToolbarWindow32';
-         TOOLBARCLASSNAMEA              = 'ToolbarWindow32';
-
-{$IFDEF  UNICODE}
-         TOOLBARCLASSNAME    = TOOLBARCLASSNAMEW;
-{$ELSE}
-         TOOLBARCLASSNAME    = TOOLBARCLASSNAMEA;
-{$ENDIF}
-
-{$ELSE}
-         TOOLBARCLASSNAME               = 'ToolbarWindow';
-{$ENDIF}
-
-TYPE
-
-         _TBBUTTON            = Record
-                                 iBitmap      : cint;
-                                 idCommand    : cint;
-                                 fsState      : BYTE;
-                                 fsStyle      : BYTE;
-{$IFDEF _WIN64}
-                                 bReserved    : ARRAY[0..5] OF BYTE;          // padding for alignment
-{$ELSE}
-{$IFDEF _WIN32}
-                                 bReserved    : ARRAY[0..1] OF BYTE;          // padding for alignment
-{$ENDIF}
-{$ENDIF}
-                                 dwData       : DWORD_PTR;
-                                 iString      : INT_PTR;
-                                 END;
-         TBBUTTON             = _TBBUTTON;
-         PTBBUTTON            = {NEAR} ^_TBBUTTON; // ???
-         LPTBBUTTON           = ^_TBBUTTON;
-         TTBBUTTON            = _TBBUTTON;
-//         PTBBUTTON            = ^_TBBUTTON;
-
-         LPCTBBUTTON          = {const} ^TBBUTTON;
-
-
-         _COLORMAP            = Record
-                                 xfrom         : COLORREF;
-                                 xto           : COLORREF;
-                                 END;
-         COLORMAP             = _COLORMAP;
-         LPCOLORMAP           = ^_COLORMAP;
-         TCOLORMAP            = _COLORMAP;
-         PCOLORMAP            = ^_COLORMAP;
-
-function CreateToolbarEx(hwnd:HWND;ws:DWORD;wID:UINT;nBitmaps:cint;
-                         hBMInst:HINST;
-                         wBMID:UINT_PTR;lpButtons:LPCTBBUTTON;iNumButtons:cint;dxButton:cint;
-                         dyButton:cint;dxBitmap:cint;dyBitmap:cint;uStructSize:UINT):HWND; stdcall; external commctrldll name 'CreateToolbarEx';
-
-function CreateMappedBitmap(hInstance:HINST;idBitmap:INT_PTR;wFlags:UINT;lpColorMap:LPCOLORMAP;iNumMaps:cint):HBITMAP; stdcall; external commctrldll name 'CreateMappedBitmap';
-
-CONST
-         CMB_MASKED                     = $02;
-         TBSTATE_CHECKED                = $01;
-         TBSTATE_PRESSED                = $02;
-         TBSTATE_ENABLED                = $04;
-         TBSTATE_HIDDEN                 = $08;
-         TBSTATE_INDETERMINATE          = $10;
-         TBSTATE_WRAP                   = $20;
-{$ifdef ie3plus}
-         TBSTATE_ELLIPSES               = $40;
-{$ENDIF}
-{$ifdef ie4plus}
-         TBSTATE_MARKED                 = $80;
-{$ENDIF}
-
-         TBSTYLE_BUTTON                 = $0000;              // obsolete; use BTNS_BUTTON instead
-         TBSTYLE_SEP                    = $0001;              // obsolete; use BTNS_SEP instead
-         TBSTYLE_CHECK                  = $0002;              // obsolete; use BTNS_CHECK instead
-         TBSTYLE_GROUP                  = $0004;              // obsolete; use BTNS_GROUP instead
-         TBSTYLE_CHECKGROUP             = (TBSTYLE_GROUP  OR  TBSTYLE_CHECK);// obsolete; use BTNS_CHECKGROUP instead
-{$ifdef ie3plus}
-         TBSTYLE_DROPDOWN               = $0008;              // obsolete; use BTNS_DROPDOWN instead
-{$ENDIF}
-{$ifdef ie4plus}
-         TBSTYLE_AUTOSIZE               = $0010;              // obsolete; use BTNS_AUTOSIZE instead
-         TBSTYLE_NOPREFIX               = $0020;              // obsolete; use BTNS_NOPREFIX instead
-{$ENDIF}
-
-         TBSTYLE_TOOLTIPS               = $0100;
-         TBSTYLE_WRAPABLE               = $0200;
-         TBSTYLE_ALTDRAG                = $0400;
-{$ifdef ie3plus}
-         TBSTYLE_FLAT                   = $0800;
-         TBSTYLE_LIST                   = $1000;
-         TBSTYLE_CUSTOMERASE            = $2000;
-{$ENDIF}
-{$ifdef ie4plus}
-         TBSTYLE_REGISTERDROP           = $4000;
-         TBSTYLE_TRANSPARENT            = $8000;
-         TBSTYLE_EX_DRAWDDARROWS        = $00000001;
-{$ENDIF}
-
-{$ifdef ie5plus}
-         BTNS_BUTTON                    = TBSTYLE_BUTTON;     // 0x0000
-         BTNS_SEP                       = TBSTYLE_SEP;        // 0x0001
-         BTNS_CHECK                     = TBSTYLE_CHECK;      // 0x0002
-         BTNS_GROUP                     = TBSTYLE_GROUP;      // 0x0004
-         BTNS_CHECKGROUP                = TBSTYLE_CHECKGROUP; // (TBSTYLE_GROUP | TBSTYLE_CHECK)
-         BTNS_DROPDOWN                  = TBSTYLE_DROPDOWN;   // 0x0008
-         BTNS_AUTOSIZE                  = TBSTYLE_AUTOSIZE;   // 0x0010; automatically calculate the cx of the button
-         BTNS_NOPREFIX                  = TBSTYLE_NOPREFIX;   // 0x0020; this button should not have accel prefix
-{$ifdef ie501plus}
-         BTNS_SHOWTEXT                  = $0040;              // ignored unless TBSTYLE_EX_MIXEDBUTTONS is set
-{$ENDIF}  // 0x0501
-         BTNS_WHOLEDROPDOWN             = $0080;              // draw drop-down arrow, but without split arrow section
-{$ENDIF}
-
-{$ifdef ie501plus}
-         TBSTYLE_EX_MIXEDBUTTONS        = $00000008;
-         TBSTYLE_EX_HIDECLIPPEDBUTTONS  = $00000010;          // don't show partially obscured buttons
-{$ENDIF}  // 0x0501
-
-
-{$ifdef win32xp}
-         TBSTYLE_EX_DOUBLEBUFFER        = $00000080;          // Double Buffer the toolbar
-{$ENDIF}
-
-{$ifdef ie4plus}
-// Custom Draw Structure
-TYPE
-
-         _NMTBCUSTOMDRAW      = Record
-                                 nmcd         : NMCUSTOMDRAW;
-                                 hbrMonoDither : HBRUSH;
-                                 hbrLines     : HBRUSH;          // For drawing lines on buttons
-                                 hpenLines    : HPEN;          // For drawing lines on buttons
-                                 clrText      : COLORREF;          // Color of text
-                                 clrMark      : COLORREF;          // Color of text bk when marked. (only if TBSTATE_MARKED)
-                                 clrTextHighlight : COLORREF;          // Color of text when highlighted
-                                 clrBtnFace   : COLORREF;          // Background of the button
-                                 clrBtnHighlight : COLORREF;          // 3D highlight
-                                 clrHighlightHotTrack : COLORREF;          // In conjunction with fHighlightHotTrack
-
-                                 rcText       : RECT;          // Rect for text
-                                 nStringBkMode : cint;
-                                 nHLStringBkMode : cint;
-{$ifdef win32xp}
-                                 iListGap     : cint;
-{$ENDIF}
-                                 END;
-         NMTBCUSTOMDRAW       = _NMTBCUSTOMDRAW;
-         LPNMTBCUSTOMDRAW     = ^_NMTBCUSTOMDRAW;
-         TNMTBCUSTOMDRAW      = _NMTBCUSTOMDRAW;
-         PNMTBCUSTOMDRAW      = ^_NMTBCUSTOMDRAW;
-
-
-// Toolbar custom draw return flags
-
-CONST
-         TBCDRF_NOEDGES                 = $00010000;          // Don't draw button edges
-         TBCDRF_HILITEHOTTRACK          = $00020000;          // Use color of the button bk when hottracked
-         TBCDRF_NOOFFSET                = $00040000;          // Don't offset button if pressed
-         TBCDRF_NOMARK                  = $00080000;          // Don't draw default highlight of image/text for TBSTATE_MARKED
-         TBCDRF_NOETCHEDEFFECT          = $00100000;          // Don't draw etched effect for disabled items
-{$ENDIF}
-
-{$ifdef ie5plus}
-         TBCDRF_BLENDICON               = $00200000;          // Use ILD_BLEND50 on the icon image
-         TBCDRF_NOBACKGROUND            = $00400000;          // Use ILD_BLEND50 on the icon image
-{$ENDIF}
-
-CONST
-         TB_ENABLEBUTTON                = (WM_USER + 1);
-         TB_CHECKBUTTON                 = (WM_USER + 2);
-         TB_PRESSBUTTON                 = (WM_USER + 3);
-         TB_HIDEBUTTON                  = (WM_USER + 4);
-         TB_INDETERMINATE               = (WM_USER + 5);
-{$ifdef ie4plus}
-         TB_MARKBUTTON                  = (WM_USER + 6);
-{$ENDIF}
-         TB_ISBUTTONENABLED             = (WM_USER + 9);
-         TB_ISBUTTONCHECKED             = (WM_USER + 10);
-         TB_ISBUTTONPRESSED             = (WM_USER + 11);
-         TB_ISBUTTONHIDDEN              = (WM_USER + 12);
-         TB_ISBUTTONINDETERMINATE       = (WM_USER + 13);
-{$ifdef ie4plus}
-         TB_ISBUTTONHIGHLIGHTED         = (WM_USER + 14);
-{$ENDIF}
-         TB_SETSTATE                    = (WM_USER + 17);
-         TB_GETSTATE                    = (WM_USER + 18);
-         TB_ADDBITMAP                   = (WM_USER + 19);
-
-{$IFDEF _WIN32}
-
-TYPE
-
-         tagTBADDBITMAP       = Record
-                                 hInst        : HINST;
-                                 nID          : UINT_PTR;
-                                 END;
-         TBADDBITMAP          = tagTBADDBITMAP;
-         LPTBADDBITMAP        = ^tagTBADDBITMAP;
-         TTBADDBITMAP         = tagTBADDBITMAP;
-         PTBADDBITMAP         = ^tagTBADDBITMAP;
-
-
-
-CONST
-         HINST_COMMCTRL                 = HINST(-1);
-         IDB_STD_SMALL_COLOR            = 0;
-         IDB_STD_LARGE_COLOR            = 1;
-         IDB_VIEW_SMALL_COLOR           = 4;
-         IDB_VIEW_LARGE_COLOR           = 5;
-{$ifdef ie3plus}
-         IDB_HIST_SMALL_COLOR           = 8;
-         IDB_HIST_LARGE_COLOR           = 9;
-{$ENDIF}
-
-// icon indexes for standard bitmap
-
-         STD_CUT                        = 0;
-         STD_COPY                       = 1;
-         STD_PASTE                      = 2;
-         STD_UNDO                       = 3;
-         STD_REDOW                      = 4;
-         STD_DELETE                     = 5;
-         STD_FILENEW                    = 6;
-         STD_FILEOPEN                   = 7;
-         STD_FILESAVE                   = 8;
-         STD_PRINTPRE                   = 9;
-         STD_PROPERTIES                 = 10;
-         STD_HELP                       = 11;
-         STD_FIND                       = 12;
-         STD_REPLACE                    = 13;
-         STD_PRINT                      = 14;
-
-// icon indexes for standard view bitmap
-
-         VIEW_LARGEICONS                = 0;
-         VIEW_SMALLICONS                = 1;
-         VIEW_LIST                      = 2;
-         VIEW_DETAILS                   = 3;
-         VIEW_SORTNAME                  = 4;
-         VIEW_SORTSIZE                  = 5;
-         VIEW_SORTDATE                  = 6;
-         VIEW_SORTTYPE                  = 7;
-         VIEW_PARENTFOLDER              = 8;
-         VIEW_NETCONNECT                = 9;
-         VIEW_NETDISCONNECT             = 10;
-         VIEW_NEWFOLDER                 = 11;
-{$ifdef ie4plus}
-         VIEW_VIEWMENU                  = 12;
-{$ENDIF}
-
-{$ifdef ie3plus}
-         HIST_BACK                      = 0;
-         HIST_FORWARD                   = 1;
-         HIST_FAVORITES                 = 2;
-         HIST_ADDTOFAVORITES            = 3;
-         HIST_VIEWTREE                  = 4;
-{$ENDIF}
-
-{$ENDIF}
-
-{$ifdef ie4plus}
-         TB_ADDBUTTONSA                 = (WM_USER + 20);
-         TB_INSERTBUTTONA               = (WM_USER + 21);
-{$ELSE}
-         TB_ADDBUTTONS                  = (WM_USER + 20);
-         TB_INSERTBUTTON                = (WM_USER + 21);
-{$ENDIF}
-
-         TB_DELETEBUTTON                = (WM_USER + 22);
-         TB_GETBUTTON                   = (WM_USER + 23);
-         TB_BUTTONCOUNT                 = (WM_USER + 24);
-         TB_COMMANDTOINDEX              = (WM_USER + 25);
-
-{$IFDEF _WIN32}
-TYPE
-
-         tagTBSAVEPARAMSA     = Record
-                                 hkr          : HKEY;
-                                 pszSubKey    : LPCSTR;
-                                 pszValueName : LPCSTR;
-                                 END;
-         TBSAVEPARAMSA        = tagTBSAVEPARAMSA;
-         LPTBSAVEPARAMSA      = ^tagTBSAVEPARAMSA;
-         TTBSAVEPARAMSA       = tagTBSAVEPARAMSA;
-         PTBSAVEPARAMSA       = ^tagTBSAVEPARAMSA;
-
-
-         tagTBSAVEPARAMSW     = Record
-                                 hkr          : HKEY;
-                                 pszSubKey    : LPCWSTR;
-                                 pszValueName : LPCWSTR;
-                                 END;
-         TBSAVEPARAMSW        = tagTBSAVEPARAMSW;
-         LPTBSAVEPARAMW       = ^tagTBSAVEPARAMSW;
-         TTBSAVEPARAMSW       = tagTBSAVEPARAMSW;
-         PTBSAVEPARAMSW       = ^tagTBSAVEPARAMSW;
-
-
-{$IFDEF UNICODE}
-         TBSAVEPARAMS        = TBSAVEPARAMSW;
-         LPTBSAVEPARAMS      = LPTBSAVEPARAMSW;
-{$ELSE}
-         TBSAVEPARAMS        = TBSAVEPARAMSA;
-         LPTBSAVEPARAMS      = LPTBSAVEPARAMSA;
-{$ENDIF}
-
-{$ENDIF}  // _WIN32
-
-
-CONST
-         TB_SAVERESTOREA                = (WM_USER + 26);
-         TB_SAVERESTOREW                = (WM_USER + 76);
-         TB_CUSTOMIZE                   = (WM_USER + 27);
-         TB_ADDSTRINGA                  = (WM_USER + 28);
-         TB_ADDSTRINGW                  = (WM_USER + 77);
-         TB_GETITEMRECT                 = (WM_USER + 29);
-         TB_BUTTONSTRUCTSIZE            = (WM_USER + 30);
-         TB_SETBUTTONSIZE               = (WM_USER + 31);
-         TB_SETBITMAPSIZE               = (WM_USER + 32);
-         TB_AUTOSIZE                    = (WM_USER + 33);
-         TB_GETTOOLTIPS                 = (WM_USER + 35);
-         TB_SETTOOLTIPS                 = (WM_USER + 36);
-         TB_SETPARENT                   = (WM_USER + 37);
-         TB_SETROWS                     = (WM_USER + 39);
-         TB_GETROWS                     = (WM_USER + 40);
-         TB_SETCMDID                    = (WM_USER + 42);
-         TB_CHANGEBITMAP                = (WM_USER + 43);
-         TB_GETBITMAP                   = (WM_USER + 44);
-         TB_GETBUTTONTEXTA              = (WM_USER + 45);
-         TB_GETBUTTONTEXTW              = (WM_USER + 75);
-         TB_REPLACEBITMAP               = (WM_USER + 46);
-{$ifdef ie3plus}
-         TB_SETINDENT                   = (WM_USER + 47);
-         TB_SETIMAGELIST                = (WM_USER + 48);
-         TB_GETIMAGELIST                = (WM_USER + 49);
-         TB_LOADIMAGES                  = (WM_USER + 50);
-         TB_GETRECT                     = (WM_USER + 51);     // wParam is the Cmd instead of index
-         TB_SETHOTIMAGELIST             = (WM_USER + 52);
-         TB_GETHOTIMAGELIST             = (WM_USER + 53);
-         TB_SETDISABLEDIMAGELIST        = (WM_USER + 54);
-         TB_GETDISABLEDIMAGELIST        = (WM_USER + 55);
-         TB_SETSTYLE                    = (WM_USER + 56);
-         TB_GETSTYLE                    = (WM_USER + 57);
-         TB_GETBUTTONSIZE               = (WM_USER + 58);
-         TB_SETBUTTONWIDTH              = (WM_USER + 59);
-         TB_SETMAXTEXTROWS              = (WM_USER + 60);
-         TB_GETTEXTROWS                 = (WM_USER + 61);
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-CONST
-{$IFDEF UNICODE}
-
-         TB_SAVERESTORE      = TB_SAVERESTOREW;
-         TB_ADDSTRING        = TB_ADDSTRINGW;
-{$ELSE}
-         TB_GETBUTTONTEXT    = TB_GETBUTTONTEXTA;
-         TB_SAVERESTORE      = TB_SAVERESTOREA;
-         TB_ADDSTRING        = TB_ADDSTRINGA;
-{$ENDIF}
-{$ifdef ie4plus}
-
-CONST
-         TB_GETOBJECT                   = (WM_USER + 62);     // wParam == IID, lParam void **ppv
-         TB_GETHOTITEM                  = (WM_USER + 71);
-         TB_SETHOTITEM                  = (WM_USER + 72);     // wParam == iHotItem
-         TB_SETANCHORHIGHLIGHT          = (WM_USER + 73);     // wParam == TRUE/FALSE
-         TB_GETANCHORHIGHLIGHT          = (WM_USER + 74);
-         TB_MAPACCELERATORA             = (WM_USER + 78);     // wParam == ch, lParam int * pidBtn
-
-TYPE
-         TBINSERTMARK         = Record
-                                 iButton      : cint;
-                                 dwFlags      : DWORD;
-                                 END;
-         LPTBINSERTMARK       = ^TBINSERTMARK;
-         TTBINSERTMARK        = TBINSERTMARK;
-         PTBINSERTMARK        = ^TBINSERTMARK;
-
-
-CONST
-         TBIMHT_AFTER                   = $00000001;          // TRUE = insert After iButton, otherwise before
-         TBIMHT_BACKGROUND              = $00000002;          // TRUE iff missed buttons completely
-
-         TB_GETINSERTMARK               = (WM_USER + 79);     // lParam == LPTBINSERTMARK
-         TB_SETINSERTMARK               = (WM_USER + 80);     // lParam == LPTBINSERTMARK
-         TB_INSERTMARKHITTEST           = (WM_USER + 81);     // wParam == LPPOINT lParam == LPTBINSERTMARK
-         TB_MOVEBUTTON                  = (WM_USER + 82);
-         TB_GETMAXSIZE                  = (WM_USER + 83);     // lParam == LPSIZE
-         TB_SETEXTENDEDSTYLE            = (WM_USER + 84);     // For TBSTYLE_EX_*
-         TB_GETEXTENDEDSTYLE            = (WM_USER + 85);     // For TBSTYLE_EX_*
-         TB_GETPADDING                  = (WM_USER + 86);
-         TB_SETPADDING                  = (WM_USER + 87);
-         TB_SETINSERTMARKCOLOR          = (WM_USER + 88);
-         TB_GETINSERTMARKCOLOR          = (WM_USER + 89);
-
-         TB_SETCOLORSCHEME              = CCM_SETCOLORSCHEME; // lParam is color scheme
-         TB_GETCOLORSCHEME              = CCM_GETCOLORSCHEME; // fills in COLORSCHEME pointed to by lParam
-
-         TB_SETUNICODEFORMAT            = CCM_SETUNICODEFORMAT;
-         TB_GETUNICODEFORMAT            = CCM_GETUNICODEFORMAT;
-
-         TB_MAPACCELERATORW             = (WM_USER + 90);     // wParam == ch, lParam int * pidBtn
-
-CONST
-{$IFDEF UNICODE}
-         TB_MAPACCELERATOR   = TB_MAPACCELERATORW;
-{$ELSE}
-         TB_MAPACCELERATOR   = TB_MAPACCELERATORA;
-{$ENDIF}
-
-{$ENDIF}  // _WIN32_IE >= 0x0400
-TYPE
-         TBREPLACEBITMAP      = Record
-                                 hInstOld     : HINST;
-                                 nIDOld       : UINT_PTR;
-                                 hInstNew     : HINST;
-                                 nIDNew       : UINT_PTR;
-                                 nButtons     : cint;
-                                 END;
-         LPTBREPLACEBITMAP    = ^TBREPLACEBITMAP;
-         TTBREPLACEBITMAP     = TBREPLACEBITMAP;
-         PTBREPLACEBITMAP     = ^TBREPLACEBITMAP;
-
-
-{$IFDEF _WIN32}
-
-CONST
-         TBBF_LARGE                     = $0001;
-         TB_GETBITMAPFLAGS              = (WM_USER + 41);
-
-{$ifdef ie4plus}
-         TBIF_IMAGE                     = $00000001;
-         TBIF_TEXT                      = $00000002;
-         TBIF_STATE                     = $00000004;
-         TBIF_STYLE                     = $00000008;
-         TBIF_LPARAM                    = $00000010;
-         TBIF_COMMAND                   = $00000020;
-         TBIF_SIZE                      = $00000040;
-
-{$ifdef ie5plus}
-         TBIF_BYINDEX                   = $80000000;          // this specifies that the wparam in Get/SetButtonInfo is an index, not id
-{$ENDIF}
-
-TYPE
-
-         TBBUTTONINFOA        = Record
-                                 cbSize       : UINT;
-                                 dwMask       : DWORD;
-                                 idCommand    : cint;
-                                 iImage       : cint;
-                                 fsState      : BYTE;
-                                 fsStyle      : BYTE;
-                                 cx           : WORD;
-                                 lParam       : DWORD_PTR;
-                                 pszText      : LPSTR;
-                                 cchText      : cint;
-                                 END;
-         LPTBBUTTONINFOA      = ^TBBUTTONINFOA;
-         TTBBUTTONINFOA       = TBBUTTONINFOA;
-         PTBBUTTONINFOA       = ^TBBUTTONINFOA;
-
-
-         TBBUTTONINFOW        = Record
-                                 cbSize       : UINT;
-                                 dwMask       : DWORD;
-                                 idCommand    : cint;
-                                 iImage       : cint;
-                                 fsState      : BYTE;
-                                 fsStyle      : BYTE;
-                                 cx           : WORD;
-                                 lParam       : DWORD_PTR;
-                                 pszText      : LPWSTR;
-                                 cchText      : cint;
-                                 END;
-         LPTBBUTTONINFOW      = ^TBBUTTONINFOW;
-         TTBBUTTONINFOW= TBBUTTONINFOW;
-         PTBBUTTONINFOW= ^TBBUTTONINFOW;
-
-
-{$IFDEF UNICODE}
-         TBBUTTONINFO        = TBBUTTONINFOW;
-         LPTBBUTTONINFO      = LPTBBUTTONINFOW;
-{$ELSE}
-         TBBUTTONINFO        = TBBUTTONINFOA;
-         LPTBBUTTONINFO      = LPTBBUTTONINFOA;
-{$ENDIF}
-         TTBButtonInfo       = TBBUTTONINFO;
-         PTBButtonInfo       = LPTBBUTTONINFO;
-
-
-// BUTTONINFO APIs do NOT support the string pool.
-
-CONST
-         TB_GETBUTTONINFOW              = (WM_USER + 63);
-         TB_SETBUTTONINFOW              = (WM_USER + 64);
-         TB_GETBUTTONINFOA              = (WM_USER + 65);
-         TB_SETBUTTONINFOA              = (WM_USER + 66);
-
-{$IFDEF UNICODE}
-CONST
-         TB_GETBUTTONINFO    = TB_GETBUTTONINFOW;
-         TB_SETBUTTONINFO    = TB_SETBUTTONINFOW;
-{$ELSE}
-CONST
-         TB_GETBUTTONINFO    = TB_GETBUTTONINFOA;
-         TB_SETBUTTONINFO    = TB_SETBUTTONINFOA;
-{$ENDIF}
-
-CONST
-         TB_INSERTBUTTONW               = (WM_USER + 67);
-         TB_ADDBUTTONSW                 = (WM_USER + 68);
-
-         TB_HITTEST                     = (WM_USER + 69);
-
-// New post Win95/NT4 for InsertButton and AddButton.  if iString member
-// is a pointer to a string, it will be handled as a string like listview
-// (although LPSTR_TEXTCALLBACK is not supported).
-
-{$IFDEF UNICODE}
-CONST
-         TB_INSERTBUTTON     = TB_INSERTBUTTONW;
-         TB_ADDBUTTONS       = TB_ADDBUTTONSW;
-{$ELSE}
-CONST
-         TB_INSERTBUTTON     = TB_INSERTBUTTONA;
-         TB_ADDBUTTONS       = TB_ADDBUTTONSA;
-{$ENDIF}
-
-
-CONST
-         TB_SETDRAWTEXTFLAGS            = (WM_USER + 70);     // wParam == mask lParam == bit values
-
-{$ENDIF}  // _WIN32_IE >= 0x0400
-
-{$ifdef ie5plus}
-
-         TB_GETSTRINGW                  = (WM_USER + 91);
-         TB_GETSTRINGA                  = (WM_USER + 92);
-{$IFDEF UNICODE}
-
-         TB_GETSTRING        = TB_GETSTRINGW;
-{$ELSE}
-         TB_GETSTRING        = TB_GETSTRINGA;
-{$ENDIF}
-
-
-{$ENDIF}  // _WIN32_IE >= 0x0500
-
-{$ifdef win32xp}
-
-CONST
-         TBMF_PAD                       = $00000001;
-         TBMF_BARPAD                    = $00000002;
-         TBMF_BUTTONSPACING             = $00000004;
-
-TYPE
-
-         TBMETRICS            = Record
-                                 cbSize       : UINT;
-                                 dwMask       : DWORD;
-                                 cxPad        : cint;          // PAD
-                                 cyPad        : cint;
-                                 cxBarPad     : cint;          // BARPAD
-                                 cyBarPad     : cint;
-                                 cxButtonSpacing : cint;          // BUTTONSPACING
-                                 cyButtonSpacing : cint;
-                                 END;
-         LPTBMETRICS          = ^TBMETRICS;
-         TTBMETRICS           = TBMETRICS;
-         PTBMETRICS           = ^TBMETRICS;
-
-CONST
-         TB_GETMETRICS                  = (WM_USER + 101);
-         TB_SETMETRICS                  = (WM_USER + 102);
-{$ENDIF}
-
-
-{$ifdef win32xp}
-         TB_SETWINDOWTHEME              = CCM_SETWINDOWTHEME;
-{$ENDIF}
-
-         TBN_GETBUTTONINFOA             = (TBN_FIRST-0);
-         TBN_BEGINDRAG                  = (TBN_FIRST-1);
-         TBN_ENDDRAG                    = (TBN_FIRST-2);
-         TBN_BEGINADJUST                = (TBN_FIRST-3);
-         TBN_ENDADJUST                  = (TBN_FIRST-4);
-         TBN_RESET                      = (TBN_FIRST-5);
-         TBN_QUERYINSERT                = (TBN_FIRST-6);
-         TBN_QUERYDELETE                = (TBN_FIRST-7);
-         TBN_TOOLBARCHANGE              = (TBN_FIRST-8);
-         TBN_CUSTHELP                   = (TBN_FIRST-9);
-{$ifdef ie3plus}
-         TBN_DROPDOWN                   = (TBN_FIRST - 10);
-{$ENDIF}
-{$ifdef ie4plus}
-         TBN_GETOBJECT                  = (TBN_FIRST - 12);
-
-// Structure for TBN_HOTITEMCHANGE notification
-//
-TYPE
-
-         tagNMTBHOTITEM       = Record
-                                 hdr          : NMHDR;
-                                 idOld        : cint;
-                                 idNew        : cint;
-                                 dwFlags      : DWORD;          // HICF_*
-                                 END;
-         NMTBHOTITEM          = tagNMTBHOTITEM;
-         LPNMTBHOTITEM        = ^tagNMTBHOTITEM;
-         TNMTBHOTITEM         = tagNMTBHOTITEM;
-         PNMTBHOTITEM         = ^tagNMTBHOTITEM;
-
-
-// Hot item change flags
-
-CONST
-         HICF_OTHER                     = $00000000;
-         HICF_MOUSE                     = $00000001;          // Triggered by mouse
-         HICF_ARROWKEYS                 = $00000002;          // Triggered by arrow keys
-         HICF_ACCELERATOR               = $00000004;          // Triggered by accelerator
-         HICF_DUPACCEL                  = $00000008;          // This accelerator is not unique
-         HICF_ENTERING                  = $00000010;          // idOld is invalid
-         HICF_LEAVING                   = $00000020;          // idNew is invalid
-         HICF_RESELECT                  = $00000040;          // hot item reselected
-         HICF_LMOUSE                    = $00000080;          // left mouse button selected
-         HICF_TOGGLEDROPDOWN            = $00000100;          // Toggle button's dropdown state
-
-
-         TBN_HOTITEMCHANGE              = (TBN_FIRST - 13);
-         TBN_DRAGOUT                    = (TBN_FIRST - 14);   // this is sent when the user clicks down on a button then drags off the button
-         TBN_DELETINGBUTTON             = (TBN_FIRST - 15);   // uses TBNOTIFY
-         TBN_GETDISPINFOA               = (TBN_FIRST - 16);   // This is sent when the  toolbar needs  some display information
-         TBN_GETDISPINFOW               = (TBN_FIRST - 17);   // This is sent when the  toolbar needs  some display information
-         TBN_GETINFOTIPA                = (TBN_FIRST - 18);
-         TBN_GETINFOTIPW                = (TBN_FIRST - 19);
-         TBN_GETBUTTONINFOW             = (TBN_FIRST - 20);
-{$ifdef ie5plus}
-         TBN_RESTORE                    = (TBN_FIRST - 21);
-         TBN_SAVE                       = (TBN_FIRST - 22);
-         TBN_INITCUSTOMIZE              = (TBN_FIRST - 23);
-         TBNRF_HIDEHELP                 = $00000001;
-         TBNRF_ENDCUSTOMIZE             = $00000002;
-{$ENDIF} // (_WIN32_IE >= 0x0500)
-
-
-
-{$ifdef ie5plus}
-
-TYPE
-
-         tagNMTBSAVE          = Record
-                                 hdr          : NMHDR;
-                                 pData        : PDWORD;
-                                 pCurrent     : PDWORD;
-                                 cbData       : UINT;
-                                 iItem        : cint;
-                                 cButtons     : cint;
-                                 tbButton     : TBBUTTON;
-                                 END;
-         NMTBSAVE             = tagNMTBSAVE;
-         LPNMTBSAVE           = ^tagNMTBSAVE;
-         TNMTBSAVE            = tagNMTBSAVE;
-         PNMTBSAVE            = ^tagNMTBSAVE;
-
-
-         tagNMTBRESTORE       = Record
-                                 hdr          : NMHDR;
-                                 pData        : PDWORD;
-                                 pCurrent     : PDWORD;
-                                 cbData       : UINT;
-                                 iItem        : cint;
-                                 cButtons     : cint;
-                                 cbBytesPerRecord : cint;
-                                 tbButton     : TBBUTTON;
-                                 END;
-         NMTBRESTORE          = tagNMTBRESTORE;
-         LPNMTBRESTORE        = ^tagNMTBRESTORE;
-         TNMTBRESTORE         = tagNMTBRESTORE;
-         PNMTBRESTORE         = ^tagNMTBRESTORE;
-
-{$ENDIF} // (_WIN32_IE >= 0x0500)
-
-         tagNMTBGETINFOTIPA   = Record
-                                 hdr          : NMHDR;
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 iItem        : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         NMTBGETINFOTIPA      = tagNMTBGETINFOTIPA;
-         LPNMTBGETINFOTIPA    = ^tagNMTBGETINFOTIPA;
-         TNMTBGETINFOTIPA     = tagNMTBGETINFOTIPA;
-         PNMTBGETINFOTIPA     = ^tagNMTBGETINFOTIPA;
-
-
-         tagNMTBGETINFOTIPW   = Record
-                                 hdr          : NMHDR;
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 iItem        : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         NMTBGETINFOTIPW      = tagNMTBGETINFOTIPW;
-         LPNMTBGETINFOTIPW    = ^tagNMTBGETINFOTIPW;
-         TNMTBGETINFOTIPW     = tagNMTBGETINFOTIPW;
-         PNMTBGETINFOTIPW     = ^tagNMTBGETINFOTIPW;
-
-
-{$IFDEF UNICODE}
-CONST
-         TBN_GETINFOTIP      = TBN_GETINFOTIPW;
-TYPE
-         NMTBGETINFOTIP      = NMTBGETINFOTIPW;
-         LPNMTBGETINFOTIP    = LPNMTBGETINFOTIPW;
-{$ELSE}
-CONST
-         TBN_GETINFOTIP      = TBN_GETINFOTIPA;
-TYPE
-         NMTBGETINFOTIP      = NMTBGETINFOTIPA;
-         LPNMTBGETINFOTIP    = LPNMTBGETINFOTIPA;
-{$ENDIF}
-
-
-CONST
-         TBNF_IMAGE                     = $00000001;
-         TBNF_TEXT                      = $00000002;
-         TBNF_DI_SETITEM                = $10000000;
-
-TYPE
-
-         NMTBDISPINFOA        = Record
-                                 hdr          : NMHDR;
-                                 dwMask       : DWORD;          // [in] Specifies the values requested .[out] Client ask the data to be set for future use
-                                 idCommand    : cint;          // [in] id of button we're requesting info for
-                                 lParam       : DWORD_PTR;          // [in] lParam of button
-                                 iImage       : cint;          // [out] image index
-                                 pszText      : LPSTR;          // [out] new text for item
-                                 cchText      : cint;          // [in] size of buffer pointed to by pszText
-                                 END;
-         LPNMTBDISPINFOA      = ^NMTBDISPINFOA;
-         TNMTBDISPINFOA       = NMTBDISPINFOA;
-         PNMTBDISPINFOA       = ^NMTBDISPINFOA;
-
-
-         NMTBDISPINFOW        = Record
-                                 hdr          : NMHDR;
-                                 dwMask       : DWORD;          //[in] Specifies the values requested .[out] Client ask the data to be set for future use
-                                 idCommand    : cint;          // [in] id of button we're requesting info for
-                                 lParam       : DWORD_PTR;          // [in] lParam of button
-                                 iImage       : cint;          // [out] image index
-                                 pszText      : LPWSTR;          // [out] new text for item
-                                 cchText      : cint;          // [in] size of buffer pointed to by pszText
-                                 END;
-         LPNMTBDISPINFOW      = ^NMTBDISPINFOW;
-         TNMTBDISPINFOW       = NMTBDISPINFOW;
-         PNMTBDISPINFOW       = ^NMTBDISPINFOW;
-
-{$IFDEF UNICODE}
-CONST
-         TBN_GETDISPINFO     = TBN_GETDISPINFOW;
-TYPE
-         NMTBDISPINFO        = NMTBDISPINFOW;
-         LPNMTBDISPINFO      = LPNMTBDISPINFOW;
-{$ELSE}
-CONST
-         TBN_GETDISPINFO     = TBN_GETDISPINFOA;
-TYPE
-         NMTBDISPINFO        = NMTBDISPINFOA;
-         LPNMTBDISPINFO      = LPNMTBDISPINFOA;
-{$ENDIF}
-
-// Return codes for TBN_DROPDOWN
-
-CONST
-         TBDDRET_DEFAULT                = 0;
-         TBDDRET_NODEFAULT              = 1;
-         TBDDRET_TREATPRESSED           = 2;                  // Treat as a standard press button
-
-{$ENDIF}
-{$IFDEF UNICODE}
-         TBN_GETBUTTONINFO   = TBN_GETBUTTONINFOW;
-{$ELSE}
-         TBN_GETBUTTONINFO   = TBN_GETBUTTONINFOA;
-{$ENDIF}
-TYPE
-
-{$ifdef ie3plus}
-         tagNMTOOLBARA        = Record
-                                 hdr          : NMHDR;
-                                 iItem        : cint;
-                                 tbButton     : TBBUTTON;
-                                 cchText      : cint;
-                                 pszText      : LPSTR;
-{$ifdef ie5plus}
-                                 rcButton     : RECT;
-{$ENDIF}
-                                 END;
-         NMTOOLBARA           = tagNMTOOLBARA;
-         LPNMTOOLBARA         = ^tagNMTOOLBARA;
-         LPNMTOOLBAR          = LPNMTOOLBARA;
-         TNMTOOLBARA          = tagNMTOOLBARA;
-         PNMTOOLBARA          = LPNMTOOLBARA;
-{$ENDIF}
-         LPTBNOTIFY          = LPNMTOOLBARA;
-         TBNOTIFYA           = NMTOOLBARA;
-
-
-{$ifdef ie3plus}
-         tagNMTOOLBARW        = Record
-                                 hdr          : NMHDR;
-                                 iItem        : cint;
-                                 tbButton     : TBBUTTON;
-                                 cchText      : cint;
-                                 pszText      : LPWSTR;
-{$ifdef ie5plus}
-                                 rcButton     : RECT;
-{$ENDIF}
-                                 END;
-         NMTOOLBARW           = tagNMTOOLBARW;
-         LPNMTOOLBARW         = ^tagNMTOOLBARW;
-         TNMTOOLBARW          = tagNMTOOLBARW;
-         PNMTOOLBARW          = ^tagNMTOOLBARW;
-{$ENDIF}
-
-
-{$ifdef ie3plus}
-         TBNOTIFYW           = NMTOOLBARW;
-         LPTBNOTIFYA         = LPNMTOOLBARA;
-{$ELSE}
-         tagNMTOOLBARA       = tagTBNOTIFYA;
-         NMTOOLBARA          = TBNOTIFYA;
-         LPNMTOOLBARA        = LPTBNOTIFYA;
-         tagNMTOOLBARW       = tagTBNOTIFYW;
-         NMTOOLBARW          = TBNOTIFYW;
-         LPNMTOOLBARW        = LPTBNOTIFYW;
-{$ENDIF}
-
-
-{$IFDEF UNICODE}
-         NMTOOLBAR           = NMTOOLBARW;
-         LPNMTOOLBAR         = LPNMTOOLBARW;
-{$ELSE}
-         NMTOOLBAR           = NMTOOLBARA;
-         TNMTOOLBAR          = NMTOOLBARA;
-         PNMTOOLBAR          = LPNMTOOLBARA;
-
-{$ENDIF}
-
-         TBNOTIFY                       = NMTOOLBAR;
-{$ENDIF}
-
-{$ENDIF}      // NOTOOLBAR
-
-         LPTBNOTIFYW         = LPNMTOOLBARW;
-
-{$ifdef ie3plus}
-//====== REBAR CONTROL ========================================================
-
-{$IFNDEF NOREBAR}
-
-{$IFDEF _WIN32}
-
-CONST
-         REBARCLASSNAMEW                = {L}'ReBarWindow32';
-         REBARCLASSNAMEA                = 'ReBarWindow32';
-
-{$IFDEF  UNICODE}
-         REBARCLASSNAME      = REBARCLASSNAMEW;
-{$ELSE}
-         REBARCLASSNAME      = REBARCLASSNAMEA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         REBARCLASSNAME                 = 'ReBarWindow';
-{$ENDIF}
-
-CONST
-         RBIM_IMAGELIST                 = $00000001;
-
-// begin_r_commctrl
-
-{$ifdef ie4plus}
-         RBS_TOOLTIPS                   = $0100;
-         RBS_VARHEIGHT                  = $0200;
-         RBS_BANDBORDERS                = $0400;
-         RBS_FIXEDORDER                 = $0800;
-         RBS_REGISTERDROP               = $1000;
-         RBS_AUTOSIZE                   = $2000;
-         RBS_VERTICALGRIPPER            = $4000;              // this always has the vertical gripper (default for horizontal mode)
-         RBS_DBLCLKTOGGLE               = $8000;
-{$ELSE}
-         RBS_TOOLTIPS                   = $00000100;
-         RBS_VARHEIGHT                  = $00000200;
-         RBS_BANDBORDERS                = $00000400;
-         RBS_FIXEDORDER                 = $00000800;
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-
-// end_r_commctrl
-
-TYPE
-
-         tagREBARINFO         = Record
-                                 cbSize       : UINT;
-                                 fMask        : UINT;
-{$IFNDEF NOIMAGEAPIS}
-                                 himl         : HIMAGELIST;
-{$ELSE}
-                                 himl         : HANDLE;
-{$ENDIF}
-                                 END;
-         REBARINFO            = tagREBARINFO;
-         LPREBARINFO          = ^tagREBARINFO;
-         TREBARINFO           = tagREBARINFO;
-         PREBARINFO           = ^tagREBARINFO;
-
-
-CONST
-         RBBS_BREAK                     = $00000001;          // break to new line
-         RBBS_FIXEDSIZE                 = $00000002;          // band can't be sized
-         RBBS_CHILDEDGE                 = $00000004;          // edge around top & bottom of child window
-         RBBS_HIDDEN                    = $00000008;          // don't show
-         RBBS_NOVERT                    = $00000010;          // don't show when vertical
-         RBBS_FIXEDBMP                  = $00000020;          // bitmap doesn't move during band resize
-{$ifdef ie4plus               }
-         RBBS_VARIABLEHEIGHT            = $00000040;          // allow autosizing of this child vertically
-         RBBS_GRIPPERALWAYS             = $00000080;          // always show the gripper
-         RBBS_NOGRIPPER                 = $00000100;          // never show the gripper
-{$ifdef ie5plus}
-         RBBS_USECHEVRON                = $00000200;          // display drop-down button for this band if it's sized smaller than ideal width
-{$ifdef IE501plus}
-         RBBS_HIDETITLE                 = $00000400;          // keep band title hidden
-         RBBS_TOPALIGN                  = $00000800;          // keep band title hidden
-{$ENDIF} // 0x0501                        //
-{$ENDIF} // 0x0500                        //
-{$ENDIF} // 0x0400                        //
-
-         RBBIM_STYLE                    = $00000001;
-         RBBIM_COLORS                   = $00000002;
-         RBBIM_TEXT                     = $00000004;
-         RBBIM_IMAGE                    = $00000008;
-         RBBIM_CHILD                    = $00000010;
-         RBBIM_CHILDSIZE                = $00000020;
-         RBBIM_SIZE                     = $00000040;
-         RBBIM_BACKGROUND               = $00000080;
-         RBBIM_ID                       = $00000100;
-{$ifdef ie4plus}
-         RBBIM_IDEALSIZE                = $00000200;
-         RBBIM_LPARAM                   = $00000400;
-         RBBIM_HEADERSIZE               = $00000800;          // control the size of the header
-{$ENDIF}
-
-TYPE
-
-         tagREBARBANDINFOA    = Record
-                                 cbSize       : UINT;
-                                 fMask        : UINT;
-                                 fStyle       : UINT;
-                                 clrFore      : COLORREF;
-                                 clrBack      : COLORREF;
-                                 lpText       : LPSTR;
-                                 cch          : UINT;
-                                 iImage       : cint;
-                                 hwndChild    : HWND;
-                                 cxMinChild   : UINT;
-                                 cyMinChild   : UINT;
-                                 cx           : UINT;
-                                 hbmBack      : HBITMAP;
-                                 wID          : UINT;
-{$ifdef ie4plus}
-                                 cyChild      : UINT;
-                                 cyMaxChild   : UINT;
-                                 cyIntegral   : UINT;
-                                 cxIdeal      : UINT;
-                                 lParam       : LPARAM;
-                                 cxHeader     : UINT;
-{$ENDIF}
-                                 END;
-         REBARBANDINFOA       = tagREBARBANDINFOA;
-         LPREBARBANDINFOA     = ^tagREBARBANDINFOA;
-         TREBARBANDINFOA      = tagREBARBANDINFOA;
-         PREBARBANDINFOA      = ^tagREBARBANDINFOA;
-
-         LPCREBARBANDINFOA    = ^REBARBANDINFOA;
-
-// #define REBARBANDINFOA_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA, wID)
-// #define REBARBANDINFOW_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW, wID)
-
-         tagREBARBANDINFOW    = Record
-                                 cbSize       : UINT;
-                                 fMask        : UINT;
-                                 fStyle       : UINT;
-                                 clrFore      : COLORREF;
-                                 clrBack      : COLORREF;
-                                 lpText       : LPWSTR;
-                                 cch          : UINT;
-                                 iImage       : cint;
-                                 hwndChild    : HWND;
-                                 cxMinChild   : UINT;
-                                 cyMinChild   : UINT;
-                                 cx           : UINT;
-                                 hbmBack      : HBITMAP;
-                                 wID          : UINT;
-{$ifdef ie4plus}
-                                 cyChild      : UINT;
-                                 cyMaxChild   : UINT;
-                                 cyIntegral   : UINT;
-                                 cxIdeal      : UINT;
-                                 lParam       : LPARAM;
-                                 cxHeader     : UINT;
-{$ENDIF}
-                                 END;
-         REBARBANDINFOW       = tagREBARBANDINFOW;
-         LPREBARBANDINFOW     = ^tagREBARBANDINFOW;
-         TREBARBANDINFOW      = tagREBARBANDINFOW;
-         PREBARBANDINFOW      = ^tagREBARBANDINFOW;
-
-         LPCREBARBANDINFOW    = {const} ^REBARBANDINFOW;
-
-{$IFDEF UNICODE}
-         REBARBANDINFO       = REBARBANDINFOW;
-         LPREBARBANDINFO     = LPREBARBANDINFOW;
-         LPCREBARBANDINFO    = LPCREBARBANDINFOW;
-
-//         REBARBANDINFO_V3_SIZE          = REBARBANDINFOW_V3_SIZE;
-{$ELSE}
-
-         REBARBANDINFO       = REBARBANDINFOA;
-         LPREBARBANDINFO     = LPREBARBANDINFOA;
-         LPCREBARBANDINFO    = LPCREBARBANDINFOA;
-
-         TRebarBandInfo      = REBARBANDINFO;
-         PRebarBandInfo      = ^LPREBARBANDINFO;
-
-//         REBARBANDINFO_V3_SIZE          = REBARBANDINFOA_V3_SIZE;
-{$ENDIF}
-
-CONST
-         RB_INSERTBANDA                 = (WM_USER +  1);
-         RB_DELETEBAND                  = (WM_USER +  2);
-         RB_GETBARINFO                  = (WM_USER +  3);
-         RB_SETBARINFO                  = (WM_USER +  4);
-{$ifdef IE4plus}
-         RB_GETBANDINFO                 = (WM_USER +  5);
-         RB_GETBANDINFO_PRE_IE4         = (WM_USER +  5);
-{$ENDIF}
-         RB_SETBANDINFOA                = (WM_USER +  6);
-         RB_SETPARENT                   = (WM_USER +  7);
-{$ifdef ie4plus}
-         RB_HITTEST                     = (WM_USER +  8);
-         RB_GETRECT                     = (WM_USER +  9);
-{$ENDIF}
-         RB_INSERTBANDW                 = (WM_USER +  10);
-         RB_SETBANDINFOW                = (WM_USER +  11);
-         RB_GETBANDCOUNT                = (WM_USER +  12);
-         RB_GETROWCOUNT                 = (WM_USER +  13);
-         RB_GETROWHEIGHT                = (WM_USER +  14);
-{$ifdef ie4plus}
-         RB_IDTOINDEX                   = (WM_USER +  16);    // wParam == id
-         RB_GETTOOLTIPS                 = (WM_USER +  17);
-         RB_SETTOOLTIPS                 = (WM_USER +  18);
-         RB_SETBKCOLOR                  = (WM_USER +  19);    // sets the default BK color
-         RB_GETBKCOLOR                  = (WM_USER +  20);    // defaults to CLR_NONE
-         RB_SETTEXTCOLOR                = (WM_USER +  21);
-         RB_GETTEXTCOLOR                = (WM_USER +  22);    // defaults to 0x00000000
-
-{$ifdef Win32XP}
-         RBSTR_CHANGERECT               = $0001;              // flags for RB_SIZETORECT
-{$ENDIF}
-
-         RB_SIZETORECT                  = (WM_USER +  23);    // resize the rebar/break bands and such to this rect (lparam)
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-         RB_SETCOLORSCHEME              = CCM_SETCOLORSCHEME; // lParam is color scheme
-         RB_GETCOLORSCHEME              = CCM_GETCOLORSCHEME; // fills in COLORSCHEME pointed to by lParam
-
-{$IFDEF UNICODE}
-         RB_INSERTBAND       = RB_INSERTBANDW;
-         RB_SETBANDINFO      = RB_SETBANDINFOW;
-{$ELSE}
-         RB_INSERTBAND       = RB_INSERTBANDA;
-         RB_SETBANDINFO      = RB_SETBANDINFOA;
-{$ENDIF}
-
-{$ifdef ie4plus}
-// for manual drag control
-// lparam == cursor pos
-        // -1 means do it yourself.
-        // -2 means use what you had saved before
-
-CONST
-         RB_BEGINDRAG                   = (WM_USER + 24);
-         RB_ENDDRAG                     = (WM_USER + 25);
-         RB_DRAGMOVE                    = (WM_USER + 26);
-         RB_GETBARHEIGHT                = (WM_USER + 27);
-         RB_GETBANDINFOW                = (WM_USER + 28);
-         RB_GETBANDINFOA                = (WM_USER + 29);
-
-//TYPE
-{$IFDEF UNICODE}
-//         RB_GETBANDINFO      = RB_GETBANDINFOW;
-{$ELSE}
-//         RB_GETBANDINFO      = RB_GETBANDINFOA;
-{$ENDIF}
-
-CONST
-         RB_MINIMIZEBAND                = (WM_USER + 30);
-         RB_MAXIMIZEBAND                = (WM_USER + 31);
-
-         RB_GETDROPTARGET               = (CCM_GETDROPTARGET);
-
-         RB_GETBANDBORDERS              = (WM_USER + 34);     // returns in lparam = lprc the amount of edges added to band wparam
-
-         RB_SHOWBAND                    = (WM_USER + 35);     // show/hide band
-         RB_SETPALETTE                  = (WM_USER + 37);
-         RB_GETPALETTE                  = (WM_USER + 38);
-         RB_MOVEBAND                    = (WM_USER + 39);
-
-         RB_SETUNICODEFORMAT            = CCM_SETUNICODEFORMAT;
-         RB_GETUNICODEFORMAT            = CCM_GETUNICODEFORMAT;
-
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-{$ifdef win32xp}
-         RB_GETBANDMARGINS              = (WM_USER + 40);
-         RB_SETWINDOWTHEME              = CCM_SETWINDOWTHEME;
-{$ENDIF}
-
-{$ifdef ie5plus}
-         RB_PUSHCHEVRON                 = (WM_USER + 43);
-{$ENDIF}      // _WIN32_IE >= 0x0500
-
-         RBN_HEIGHTCHANGE               = (RBN_FIRST - 0);
-
-{$ifdef ie4plus}
-         RBN_GETOBJECT                  = (RBN_FIRST - 1);
-         RBN_LAYOUTCHANGED              = (RBN_FIRST - 2);
-         RBN_AUTOSIZE                   = (RBN_FIRST - 3);
-         RBN_BEGINDRAG                  = (RBN_FIRST - 4);
-         RBN_ENDDRAG                    = (RBN_FIRST - 5);
-         RBN_DELETINGBAND               = (RBN_FIRST - 6);    // Uses NMREBAR
-         RBN_DELETEDBAND                = (RBN_FIRST - 7);    // Uses NMREBAR
-         RBN_CHILDSIZE                  = (RBN_FIRST - 8);
-
-{$ifdef ie5plus}
-         RBN_CHEVRONPUSHED              = (RBN_FIRST - 10);
-{$ENDIF}      // _WIN32_IE >= 0x0500
-
-
-{$ifdef ie5plus}
-         RBN_MINMAX                     = (RBN_FIRST - 21);
-{$ENDIF}
-
-{$ifdef Win32XP}
-         RBN_AUTOBREAK                  = (RBN_FIRST - 22);
-{$ENDIF}
-
-TYPE
-
-         tagNMREBARCHILDSIZE  = Record
-                                 hdr          : NMHDR;
-                                 uBand        : UINT;
-                                 wID          : UINT;
-                                 rcChild      : RECT;
-                                 rcBand       : RECT;
-                                 END;
-         NMREBARCHILDSIZE     = tagNMREBARCHILDSIZE;
-         LPNMREBARCHILDSIZE   = ^tagNMREBARCHILDSIZE;
-         TNMREBARCHILDSIZE    = tagNMREBARCHILDSIZE;
-         PNMREBARCHILDSIZE    = ^tagNMREBARCHILDSIZE;
-
-
-         tagNMREBAR           = Record
-                                 hdr          : NMHDR;
-                                 dwMask       : DWORD;          // RBNM_*
-                                 uBand        : UINT;
-                                 fStyle       : UINT;
-                                 wID          : UINT;
-                                 lParam       : LPARAM;
-                                 END;
-         NMREBAR              = tagNMREBAR;
-         LPNMREBAR            = ^tagNMREBAR;
-         TNMREBAR             = tagNMREBAR;
-         PNMREBAR             = ^tagNMREBAR;
-
-// Mask flags for NMREBAR
-
-CONST
-         RBNM_ID                        = $00000001;
-         RBNM_STYLE                     = $00000002;
-         RBNM_LPARAM                    = $00000004;
-
-TYPE
-
-         tagNMRBAUTOSIZE      = Record
-                                 hdr          : NMHDR;
-                                 fChanged     : BOOL;
-                                 rcTarget     : RECT;
-                                 rcActual     : RECT;
-                                 END;
-         NMRBAUTOSIZE         = tagNMRBAUTOSIZE;
-         LPNMRBAUTOSIZE       = ^tagNMRBAUTOSIZE;
-         TNMRBAUTOSIZE        = tagNMRBAUTOSIZE;
-         PNMRBAUTOSIZE        = ^tagNMRBAUTOSIZE;
-
-
-{$ifdef ie5plus}
-         tagNMREBARCHEVRON    = Record
-                                 hdr          : NMHDR;
-                                 uBand        : UINT;
-                                 wID          : UINT;
-                                 lParam       : LPARAM;
-                                 rc           : RECT;
-                                 lParamNM     : LPARAM;
-                                 END;
-         NMREBARCHEVRON       = tagNMREBARCHEVRON;
-         LPNMREBARCHEVRON     = ^tagNMREBARCHEVRON;
-         TNMREBARCHEVRON      = tagNMREBARCHEVRON;
-         PNMREBARCHEVRON      = ^tagNMREBARCHEVRON;
-
-{$ENDIF}
-
-{$ifdef Win32XP}
-CONST
-         RBAB_AUTOSIZE                  = $0001;              // These are not flags and are all mutually exclusive
-         RBAB_ADDBAND                   = $0002;
-
-TYPE
-
-         tagNMREBARAUTOBREAK  = Record
-                                 hdr          : NMHDR;
-                                 uBand        : UINT;
-                                 wID          : UINT;
-                                 lParam       : LPARAM;
-                                 uMsg         : UINT;
-                                 fStyleCurrent : UINT;
-                                 fAutoBreak   : BOOL;
-                                 END;
-         NMREBARAUTOBREAK     = tagNMREBARAUTOBREAK;
-         LPNMREBARAUTOBREAK   = ^tagNMREBARAUTOBREAK;
-         TNMREBARAUTOBREAK    = tagNMREBARAUTOBREAK;
-         PNMREBARAUTOBREAK    = ^tagNMREBARAUTOBREAK;
-
-{$ENDIF}
-
-CONST
-         RBHT_NOWHERE                   = $0001;
-         RBHT_CAPTION                   = $0002;
-         RBHT_CLIENT                    = $0003;
-         RBHT_GRABBER                   = $0004;
-{$ifdef ie5plus}
-         RBHT_CHEVRON                   = $0008;
-{$ENDIF}
-
-TYPE
-         _RB_HITTESTINFO      = Record
-                                 pt           : POINT;
-                                 flags        : UINT;
-                                 iBand        : cint;
-                                 END;
-         RBHITTESTINFO        = _RB_HITTESTINFO;
-         LPRBHITTESTINFO      = ^_RB_HITTESTINFO;
-         TRB_HITTESTINFO      = _RB_HITTESTINFO;
-         PRB_HITTESTINFO      = ^_RB_HITTESTINFO;
-         PRBHitTestInfo       = PRB_HITTESTINFO;
-         TRBHitTestInfo       = TRB_HITTESTINFO;
-
-
-{$ENDIF}      // _WIN32_IE >= 0x0400
-{$ENDIF}      // NOREBAR
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-//====== TOOLTIPS CONTROL =====================================================
-
-{$IFNDEF NOTOOLTIPS}
-
-{$IFDEF _WIN32}
-
-CONST
-         TOOLTIPS_CLASSW                = {L}'tooltips_class32';
-         TOOLTIPS_CLASSA                = 'tooltips_class32';
-
-{$IFDEF UNICODE}
-         TOOLTIPS_CLASS                 = TOOLTIPS_CLASSW;
-{$ELSE}
-         TOOLTIPS_CLASS                 = TOOLTIPS_CLASSA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         TOOLTIPS_CLASS                 = 'tooltips_class';
-{$ENDIF}
-
-
-
-TYPE
-
-         tagTOOLINFOA         = Record
-                                 cbSize       : UINT;
-                                 uFlags       : UINT;
-                                 hwnd         : HWND;
-                                 uId          : UINT_PTR;
-                                 rect         : RECT;
-                                 hinst        : HINST;
-                                 lpszText     : LPSTR;
-{$ifdef ie3plus}
-                                 lParam       : LPARAM;
-{$ENDIF}
-{$ifdef Win32XP}
-                                 lpReserved   : Pointer;
-{$ENDIF}
-                                 END;
-         TTTOOLINFOA          = tagTOOLINFOA;
-         PTOOLINFOA           = {near} ^tagTOOLINFOA;
-         LPTTTOOLINFOA        = ^tagTOOLINFOA;
-         TTOOLINFOA           = tagTOOLINFOA;
-         LPTOOLINFOA           = ^tagTOOLINFOA;
-
-
-         tagTOOLINFOW         = Record
-                                 cbSize       : UINT;
-                                 uFlags       : UINT;
-                                 hwnd         : HWND;
-                                 uId          : UINT_PTR;
-                                 rect         : RECT;
-                                 hinst        : HINST;
-                                 lpszText     : LPWSTR;
-{$ifdef ie3plus}
-                                 lParam       : LPARAM;
-{$ENDIF}
-{$ifdef Win32XP}
-                                 lpReserved   : Pointer;
-{$ENDIF}
-                                 END;
-         TTTOOLINFOW          = tagTOOLINFOW;
-         PTOOLINFOW           = {near} ^tagTOOLINFOW;
-         LPTTTOOLINFOW        = ^tagTOOLINFOW;
-         TTOOLINFOW           = tagTOOLINFOW;
-         LPTOOLINFOW           = ^tagTOOLINFOW;
-
-
-{$IFDEF UNICODE}
-         TTTOOLINFO          = TTTOOLINFOW;
-         PTOOLINFO           = PTOOLINFOW;
-         LPTTTOOLINFO        = LPTTTOOLINFOW;
-//       TTTOOLINFO_V1_SIZE             = TTTOOLINFOW_V1_SIZE;
-{$ELSE}
-         PTOOLINFO           = PTOOLINFOA;
-         TTTOOLINFO          = TTTOOLINFOA;
-         LPTTTOOLINFO        = LPTTTOOLINFOA;
-//       TTTOOLINFO_V1_SIZE             = TTTOOLINFOA_V1_SIZE;
-{$ENDIF}
-
-
-TYPE
-
-{$ifdef ie3plus}
-//         LPTOOLINFOA         = LPTTTOOLINFOA;
-//         LPTOOLINFOW         = LPTTTOOLINFOW;
-         TOOLINFOA           = TTTOOLINFOA;
-         TOOLINFOW           = TTTOOLINFOW;
-{$ELSE}
-//         TTTOOLINFOA         = TOOLINFOA;
-//         LPTTTOOLINFOA       = LPTOOLINFOA;
-//         TTTOOLINFOW         = TOOLINFOW;
-//         LPTTTOOLINFOW       = LPTOOLINFOW;
-{$ENDIF}
-
-
-
-         LPTOOLINFO          = LPTTTOOLINFO;
-
-         TOOLINFO                       = TTTOOLINFO;
-
-// #define TTTOOLINFOA_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpszText)
-// #define TTTOOLINFOW_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpszText)
-// #define TTTOOLINFOA_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lParam)
-// #define TTTOOLINFOW_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lParam)
-// #define TTTOOLINFOA_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpReserved)
-// #define TTTOOLINFOW_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpReserved)
-
-
-CONST
-// begin_r_commctrl
-
-         TTS_ALWAYSTIP                  = $01;
-         TTS_NOPREFIX                   = $02;
-{$ifdef ie5plus}
-         TTS_NOANIMATE                  = $10;
-         TTS_NOFADE                     = $20;
-         TTS_BALLOON                    = $40;
-         TTS_CLOSE                      = $80;
-{$ENDIF}
-
-// end_r_commctrl
-
-         TTF_IDISHWND                   = $0001;
-
-// Use this to center around trackpoint in trackmode
-// -OR- to center around tool in normal mode.
-// Use TTF_ABSOLUTE to place the tip exactly at the track coords when
-// in tracking mode.  TTF_ABSOLUTE can be used in conjunction with TTF_CENTERTIP
-// to center the tip absolutely about the track point.
-
-         TTF_CENTERTIP                  = $0002;
-         TTF_RTLREADING                 = $0004;
-         TTF_SUBCLASS                   = $0010;
-{$ifdef ie3plus}
-         TTF_TRACK                      = $0020;
-         TTF_ABSOLUTE                   = $0080;
-         TTF_TRANSPARENT                = $0100;
-{$ifdef ie501plus}
-         TTF_PARSELINKS                 = $1000;
-{$ENDIF} // _WIN32_IE >= 0x0501
-         TTF_DI_SETITEM                 = $8000;              // valid only on the TTN_NEEDTEXT callback
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-
-         TTDT_AUTOMATIC                 = 0;
-         TTDT_RESHOW                    = 1;
-         TTDT_AUTOPOP                   = 2;
-         TTDT_INITIAL                   = 3;
-
-// ToolTip Icons (Set with TTM_SETTITLE)
-         TTI_NONE                       = 0;
-         TTI_INFO                       = 1;
-         TTI_WARNING                    = 2;
-         TTI_ERROR                      = 3;
-
-// Tool Tip Messages
-         TTM_ACTIVATE                   = (WM_USER + 1);
-         TTM_SETDELAYTIME               = (WM_USER + 3);
-         TTM_ADDTOOLA                   = (WM_USER + 4);
-         TTM_ADDTOOLW                   = (WM_USER + 50);
-         TTM_DELTOOLA                   = (WM_USER + 5);
-         TTM_DELTOOLW                   = (WM_USER + 51);
-         TTM_NEWTOOLRECTA               = (WM_USER + 6);
-         TTM_NEWTOOLRECTW               = (WM_USER + 52);
-         TTM_RELAYEVENT                 = (WM_USER + 7);
-
-         TTM_GETTOOLINFOA               = (WM_USER + 8);
-         TTM_GETTOOLINFOW               = (WM_USER + 53);
-
-         TTM_SETTOOLINFOA               = (WM_USER + 9);
-         TTM_SETTOOLINFOW               = (WM_USER + 54);
-
-         TTM_HITTESTA                   = (WM_USER + 10);
-         TTM_HITTESTW                   = (WM_USER + 55);
-         TTM_GETTEXTA                   = (WM_USER + 11);
-         TTM_GETTEXTW                   = (WM_USER + 56);
-         TTM_UPDATETIPTEXTA             = (WM_USER + 12);
-         TTM_UPDATETIPTEXTW             = (WM_USER + 57);
-         TTM_GETTOOLCOUNT               = (WM_USER + 13);
-         TTM_ENUMTOOLSA                 = (WM_USER + 14);
-         TTM_ENUMTOOLSW                 = (WM_USER + 58);
-         TTM_GETCURRENTTOOLA            = (WM_USER + 15);
-         TTM_GETCURRENTTOOLW            = (WM_USER + 59);
-         TTM_WINDOWFROMPOINT            = (WM_USER + 16);
-{$ifdef ie3plus}
-         TTM_TRACKACTIVATE              = (WM_USER + 17);     // wParam = TRUE/FALSE start end  lparam = LPTOOLINFO
-         TTM_TRACKPOSITION              = (WM_USER + 18);     // lParam = dwPos
-         TTM_SETTIPBKCOLOR              = (WM_USER + 19);
-         TTM_SETTIPTEXTCOLOR            = (WM_USER + 20);
-         TTM_GETDELAYTIME               = (WM_USER + 21);
-         TTM_GETTIPBKCOLOR              = (WM_USER + 22);
-         TTM_GETTIPTEXTCOLOR            = (WM_USER + 23);
-         TTM_SETMAXTIPWIDTH             = (WM_USER + 24);
-         TTM_GETMAXTIPWIDTH             = (WM_USER + 25);
-         TTM_SETMARGIN                  = (WM_USER + 26);     // lParam = lprc
-         TTM_GETMARGIN                  = (WM_USER + 27);     // lParam = lprc
-         TTM_POP                        = (WM_USER + 28);
-{$ENDIF}
-{$ifdef ie4plus}
-         TTM_UPDATE                     = (WM_USER + 29);
-{$ENDIF}
-{$ifdef ie5plus}
-         TTM_GETBUBBLESIZE              = (WM_USER + 30);
-         TTM_ADJUSTRECT                 = (WM_USER + 31);
-         TTM_SETTITLEA                  = (WM_USER + 32);     // wParam = TTI_*, lParam = char* szTitle
-         TTM_SETTITLEW                  = (WM_USER + 33);     // wParam = TTI_*, lParam = wchar* szTitle
-{$ENDIF}
-
-{$ifdef Win32XP}
-         TTM_POPUP                      = (WM_USER + 34);
-         TTM_GETTITLE                   = (WM_USER + 35);     // wParam = 0, lParam = TTGETTITLE*
-
-TYPE
-
-         _TTGETTITLE          = Record
-                                 dwSize       : DWORD;
-                                 uTitleBitmap : UINT;
-                                 cch          : UINT;
-                                 pszTitle     : PWCHAR;
-                                 END;
-         TTGETTITLE           = _TTGETTITLE;
-         PTTGETTITLE          = ^_TTGETTITLE;
-         TTTGETTITLE          = _TTGETTITLE;
-         PTTTGETTITLE          = ^TTTGETTITLE;
-
-{$ENDIF}
-
-const
-{$IFDEF UNICODE}
-         TTM_ADDTOOL         = TTM_ADDTOOLW;
-         TTM_DELTOOL         = TTM_DELTOOLW;
-         TTM_NEWTOOLRECT     = TTM_NEWTOOLRECTW;
-         TTM_GETTOOLINFO     = TTM_GETTOOLINFOW;
-         TTM_SETTOOLINFO     = TTM_SETTOOLINFOW;
-         TTM_HITTEST         = TTM_HITTESTW;
-         TTM_GETTEXT         = TTM_GETTEXTW;
-         TTM_UPDATETIPTEXT   = TTM_UPDATETIPTEXTW;
-         TTM_ENUMTOOLS       = TTM_ENUMTOOLSW;
-         TTM_GETCURRENTTOOL  = TTM_GETCURRENTTOOLW;
-{$ifdef ie5plus}
-         TTM_SETTITLE        = TTM_SETTITLEW;
-{$ENDIF}
-{$ELSE}
-         TTM_ADDTOOL         = TTM_ADDTOOLA;
-         TTM_DELTOOL         = TTM_DELTOOLA;
-         TTM_NEWTOOLRECT     = TTM_NEWTOOLRECTA;
-         TTM_GETTOOLINFO     = TTM_GETTOOLINFOA;
-         TTM_SETTOOLINFO     = TTM_SETTOOLINFOA;
-         TTM_HITTEST         = TTM_HITTESTA;
-         TTM_GETTEXT         = TTM_GETTEXTA;
-         TTM_UPDATETIPTEXT   = TTM_UPDATETIPTEXTA;
-         TTM_ENUMTOOLS       = TTM_ENUMTOOLSA;
-         TTM_GETCURRENTTOOL  = TTM_GETCURRENTTOOLA;
-{$ifdef ie5plus}
-         TTM_SETTITLE        = TTM_SETTITLEA;
-{$ENDIF}
-{$ENDIF}
-
-{$ifdef win32xp}
-CONST
-         TTM_SETWINDOWTHEME             = CCM_SETWINDOWTHEME;
-{$ENDIF}
-
-
-TYPE
-
-
-         _TT_HITTESTINFOA     = Record
-                                 hwnd         : HWND;
-                                 pt           : POINT;
-                                 ti           : TTTOOLINFOA;
-                                 END;
-         TTHITTESTINFOA       = _TT_HITTESTINFOA;
-         LPTTHITTESTINFOA     = ^_TT_HITTESTINFOA;
-         TTT_HITTESTINFOA     = _TT_HITTESTINFOA;
-         PTT_HITTESTINFOA     = ^_TT_HITTESTINFOA;
-
-
-
-         _TT_HITTESTINFOW     = Record
-                                 hwnd         : HWND;
-                                 pt           : POINT;
-                                 ti           : TTTOOLINFOW;
-                                 END;
-         TTHITTESTINFOW       = _TT_HITTESTINFOW;
-         LPTTHITTESTINFOW     = ^_TT_HITTESTINFOW;
-         TTT_HITTESTINFOW     = _TT_HITTESTINFOW;
-         PTT_HITTESTINFOW     = ^_TT_HITTESTINFOW;
-
-{$IFDEF UNICODE}
-         TTHITTESTINFO       = TTHITTESTINFOW;
-         LPTTHITTESTINFO     = LPTTHITTESTINFOW;
-{$ELSE}
-         TTHITTESTINFO       = TTHITTESTINFOA;
-         LPTTHITTESTINFO     = LPTTHITTESTINFOA;
-{$ENDIF}
-         LPHITTESTINFO       = LPTTHITTESTINFO;
-{$ifdef ie3plus}
-         LPHITTESTINFOW      = LPTTHITTESTINFOW;
-         LPHITTESTINFOA      = LPTTHITTESTINFOA;
-{$ELSE}
-//         LPTTHITTESTINFOA    = LPHITTESTINFOA;
-//         LPTTHITTESTINFOW    = LPHITTESTINFOW;
-{$ENDIF}
-
-CONST
-         TTN_GETDISPINFOA               = (TTN_FIRST - 0);
-         TTN_GETDISPINFOW               = (TTN_FIRST - 10);
-         TTN_SHOW                       = (TTN_FIRST - 1);
-         TTN_POP                        = (TTN_FIRST - 2);
-         TTN_LINKCLICK                  = (TTN_FIRST - 3);
-
-CONST
-{$IFDEF UNICODE}
-         TTN_GETDISPINFO     = TTN_GETDISPINFOW;
-{$ELSE}
-         TTN_GETDISPINFO     = TTN_GETDISPINFOA;
-{$ENDIF}
-
-CONST
-         TTN_NEEDTEXT                   = TTN_GETDISPINFO;
-
-
-         TTN_NEEDTEXTA       = TTN_GETDISPINFOA;
-         TTN_NEEDTEXTW       = TTN_GETDISPINFOW;
-
-
-
-
-
-TYPE
-
-
-// #define NMTTDISPINFOA_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOA, uFlags)
-// #define NMTTDISPINFOW_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOW, uFlags)
-
-         tagNMTTDISPINFOA     = Record
-                                 hdr          : NMHDR;
-                                 lpszText     : LPSTR;
-                                 szText       : Array[0..79] of char;
-                                 hinst        : HINST;
-                                 uFlags       : UINT;
-{$ifdef ie3plus}
-                                 lParam       : LPARAM;
-{$ENDIF}
-                                 END;
-         NMTTDISPINFOA        = tagNMTTDISPINFOA;
-         LPNMTTDISPINFOA      = ^tagNMTTDISPINFOA;
-         TNMTTDISPINFOA       = tagNMTTDISPINFOA;
-         PNMTTDISPINFOA       = ^tagNMTTDISPINFOA;
-
-
-         tagNMTTDISPINFOW     = Record
-                                 hdr          : NMHDR;
-                                 lpszText     : LPWSTR;
-                                 szText       : Array[0..79] of WCHAR;
-                                 hinst        : HINST;
-                                 uFlags       : UINT;
-{$ifdef ie3plus}
-                                 lParam       : LPARAM;
-{$ENDIF}
-                                 END;
-         NMTTDISPINFOW        = tagNMTTDISPINFOW;
-         LPNMTTDISPINFOW      = ^tagNMTTDISPINFOW;
-         TNMTTDISPINFOW       = tagNMTTDISPINFOW;
-         PNMTTDISPINFOW       = ^tagNMTTDISPINFOW;
-
-{$ifdef ie3plus}
-         TOOLTIPTEXTW        = NMTTDISPINFOW;
-         TOOLTIPTEXTA        = NMTTDISPINFOA;
-         LPTOOLTIPTEXTA      = LPNMTTDISPINFOA;
-         LPTOOLTIPTEXTW      = LPNMTTDISPINFOW;
-         TTOOLTIPTEXTW       = NMTTDISPINFOW;
-         PTOOLTIPTEXTW       = LPNMTTDISPINFOW;
-{$ELSE}
-//         tagNMTTDISPINFOA    = tagTOOLTIPTEXTA;
-         NMTTDISPINFOA       = TOOLTIPTEXTA;
-//         LPNMTTDISPINFOA     = LPTOOLTIPTEXTA;
-         tagNMTTDISPINFOW    = tagTOOLTIPTEXTW;
-         NMTTDISPINFOW       = TOOLTIPTEXTW;
-         LPNMTTDISPINFOW     = LPTOOLTIPTEXTW;
-{$ENDIF}
-
-TYPE
-
-{$IFDEF UNICODE}
-         NMTTDISPINFO        = NMTTDISPINFOW;
-         LPNMTTDISPINFO      = LPNMTTDISPINFOW;
-//         NMTTDISPINFO_V1_SIZE           = NMTTDISPINFOW_V1_SIZE;
-{$ELSE}
-         NMTTDISPINFO        = NMTTDISPINFOA;
-         LPNMTTDISPINFO      = LPNMTTDISPINFOA;
-//         NMTTDISPINFO_V1_SIZE           = NMTTDISPINFOA_V1_SIZE;
-{$ENDIF}
-
-         TOOLTIPTEXT         = NMTTDISPINFO;
-         LPTOOLTIPTEXT       = LPNMTTDISPINFO;
-
-{$ENDIF}      // NOTOOLTIPS
-
-
-//====== STATUS BAR CONTROL ===================================================
-
-{$IFNDEF NOSTATUSBAR}
-
-// begin_r_commctrl
-CONST
-         SBARS_SIZEGRIP                 = $0100;
-{$ifdef ie5plus}
-         SBARS_TOOLTIPS                 = $0800;
-{$ENDIF}
-
-{$ifdef ie4plus}
-// this is a status bar flag, preference to SBARS_TOOLTIPS
-         SBT_TOOLTIPS                   = $0800;
-{$ENDIF}
-
-// end_r_commctrl
-
-procedure DrawStatusTextA(hDC:HDC;lprc:LPRECT;pszText:LPCSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextA';
-Procedure DrawStatusTextW(hDC:HDC;lprc:LPRECT;pszText:LPCWSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextW';
-
-function CreateStatusWindowA(style:LONG;lpszText:LPCSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowA';
-function CreateStatusWindowW(style:LONG;lpszText:LPCWSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowW';
-
-
-{$IFDEF UNICODE}
-function CreateStatusWindow(style:LONG;lpszText:LPCSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowA';
-procedure DrawStatusText(hDC:HDC;lprc:LPRECT;pszText:LPCSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextA';
-{$ELSE}
-function CreateStatusWindow(style:LONG;lpszText:LPCWSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowW';
-Procedure DrawStatusText(hDC:HDC;lprc:LPRECT;pszText:LPCWSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextW';
-{$ENDIF}
-
-CONST
-{$IFDEF _WIN32}
-         STATUSCLASSNAMEW               = {L}'msctls_statusbar32';
-         STATUSCLASSNAMEA               = 'msctls_statusbar32';
-
-{$IFDEF UNICODE}
-         STATUSCLASSNAME                = STATUSCLASSNAMEW;
-{$ELSE}
-         STATUSCLASSNAME                = STATUSCLASSNAMEA;
-{$ENDIF}
-{$ELSE}
-         STATUSCLASSNAME                = 'msctls_statusbar';
-{$ENDIF}
-
-         SB_SETTEXTA                    = (WM_USER+1);
-         SB_SETTEXTW                    = (WM_USER+11);
-         SB_GETTEXTA                    = (WM_USER+2);
-         SB_GETTEXTW                    = (WM_USER+13);
-         SB_GETTEXTLENGTHA              = (WM_USER+3);
-         SB_GETTEXTLENGTHW              = (WM_USER+12);
-
-
-         SB_SETPARTS                    = (WM_USER+4);
-         SB_GETPARTS                    = (WM_USER+6);
-         SB_GETBORDERS                  = (WM_USER+7);
-         SB_SETMINHEIGHT                = (WM_USER+8);
-         SB_SIMPLE                      = (WM_USER+9);
-         SB_GETRECT                     = (WM_USER+10);
-{$ifdef ie3plus}
-         SB_ISSIMPLE                    = (WM_USER+14);
-{$ENDIF}
-{$ifdef ie4plus}
-         SB_SETICON                     = (WM_USER+15);
-         SB_SETTIPTEXTA                 = (WM_USER+16);
-         SB_SETTIPTEXTW                 = (WM_USER+17);
-         SB_GETTIPTEXTA                 = (WM_USER+18);
-         SB_GETTIPTEXTW                 = (WM_USER+19);
-         SB_GETICON                     = (WM_USER+20);
-         SB_SETUNICODEFORMAT            = CCM_SETUNICODEFORMAT;
-         SB_GETUNICODEFORMAT            = CCM_GETUNICODEFORMAT;
-{$ENDIF}
-{$IFDEF UNICODE}
-         SB_GETTEXT                     = SB_GETTEXTW;
-         SB_SETTEXT                     = SB_SETTEXTW;
-         SB_GETTEXTLENGTH               = SB_GETTEXTLENGTHW;
-{$ifdef ie4plus}
-         SB_SETTIPTEXT                  = SB_SETTIPTEXTW;
-         SB_GETTIPTEXT                  = SB_GETTIPTEXTW;
-{$ENDIF}
-{$ELSE}
-         SB_GETTEXT                     = SB_GETTEXTA;
-         SB_SETTEXT                     = SB_SETTEXTA;
-         SB_GETTEXTLENGTH               = SB_GETTEXTLENGTHA;
-{$ifdef ie4plus}
-         SB_SETTIPTEXT                  = SB_SETTIPTEXTA;
-         SB_GETTIPTEXT                  = SB_GETTIPTEXTA;
-{$ENDIF}
-{$ENDIF}
-
-         SBT_OWNERDRAW                  = $1000;
-         SBT_NOBORDERS                  = $0100;
-         SBT_POPOUT                     = $0200;
-         SBT_RTLREADING                 = $0400;
-{$ifdef ie5plus}
-         SBT_NOTABPARSING               = $0800;
-{$ENDIF}
-
-         SB_SETBKCOLOR                  = CCM_SETBKCOLOR;     // lParam = bkColor
-
-/// status bar notifications
-{$ifdef ie4plus}
-         SBN_SIMPLEMODECHANGE           = (SBN_FIRST - 0);
-{$ENDIF}
-
-{$ifdef ie5plus}
-// refers to the data saved for simple mode
-         SB_SIMPLEID                    = $00ff;
-{$ENDIF}
-
-{$ENDIF}      // NOSTATUSBAR
-
-//====== MENU HELP ============================================================
-
-{$IFNDEF NOMENUHELP}
-
-Procedure MenuHelp(uMsg:UINT;wParam:WPARAM;lParam:LPARAM;hMainMenu:HMENU;hInst:HINST;hwndStatus:HWND;lpwIDs:PUINT); stdcall; external commctrldll name 'MenuHelp';
-function ShowHideMenuCtl(hWnd:HWND;uFlags:UINT_PTR;lpInfo:LPINT):BOOL; stdcall; external commctrldll name 'ShowHideMenuCtl';
-Procedure GetEffectiveClientRect(hWnd:HWND;lprc:LPRECT;lpInfo:LPINT); stdcall; external commctrldll name 'GetEffectiveClientRect';
-
-CONST
-         MINSYSCOMMAND                  = SC_SIZE;
-{$ENDIF}
-
-
-//====== TRACKBAR CONTROL =====================================================
-
-{$IFNDEF NOTRACKBAR}
-
-CONST
-
-{$IFDEF _WIN32}
-
-         TRACKBAR_CLASSA                = 'msctls_trackbar32';
-         TRACKBAR_CLASSW                = {L}'msctls_trackbar32';
-
-{$IFDEF UNICODE}
-         TRACKBAR_CLASS                 = TRACKBAR_CLASSW;
-{$ELSE}
-         TRACKBAR_CLASS                 = TRACKBAR_CLASSA;
-{$ENDIF}
-{$ELSE}
-         TRACKBAR_CLASS                 = 'msctls_trackbar';
-{$ENDIF}
-
-// begin_r_commctrl
-
-         TBS_AUTOTICKS                  = $0001;
-         TBS_VERT                       = $0002;
-         TBS_HORZ                       = $0000;
-         TBS_TOP                        = $0004;
-         TBS_BOTTOM                     = $0000;
-         TBS_LEFT                       = $0004;
-         TBS_RIGHT                      = $0000;
-         TBS_BOTH                       = $0008;
-         TBS_NOTICKS                    = $0010;
-         TBS_ENABLESELRANGE             = $0020;
-         TBS_FIXEDLENGTH                = $0040;
-         TBS_NOTHUMB                    = $0080;
-{$ifdef ie3plus}
-         TBS_TOOLTIPS                   = $0100;
-{$ENDIF}
-{$ifdef ie5plus}
-         TBS_REVERSED                   = $0200;              // Accessibility hint: the smaller number (usually the min value) means "high" and the larger number (usually the max value) means "low"
-{$ENDIF}
-
-{$ifdef ie501plus}
-         TBS_DOWNISLEFT                 = $0400;              // Down=Left and Up=Right (default is Down=Right and Up=Left)
-{$ENDIF}
-
-// end_r_commctrl
-
-         TBM_GETPOS                     = (WM_USER);
-         TBM_GETRANGEMIN                = (WM_USER+1);
-         TBM_GETRANGEMAX                = (WM_USER+2);
-         TBM_GETTIC                     = (WM_USER+3);
-         TBM_SETTIC                     = (WM_USER+4);
-         TBM_SETPOS                     = (WM_USER+5);
-         TBM_SETRANGE                   = (WM_USER+6);
-         TBM_SETRANGEMIN                = (WM_USER+7);
-         TBM_SETRANGEMAX                = (WM_USER+8);
-         TBM_CLEARTICS                  = (WM_USER+9);
-         TBM_SETSEL                     = (WM_USER+10);
-         TBM_SETSELSTART                = (WM_USER+11);
-         TBM_SETSELEND                  = (WM_USER+12);
-         TBM_GETPTICS                   = (WM_USER+14);
-         TBM_GETTICPOS                  = (WM_USER+15);
-         TBM_GETNUMTICS                 = (WM_USER+16);
-         TBM_GETSELSTART                = (WM_USER+17);
-         TBM_GETSELEND                  = (WM_USER+18);
-         TBM_CLEARSEL                   = (WM_USER+19);
-         TBM_SETTICFREQ                 = (WM_USER+20);
-         TBM_SETPAGESIZE                = (WM_USER+21);
-         TBM_GETPAGESIZE                = (WM_USER+22);
-         TBM_SETLINESIZE                = (WM_USER+23);
-         TBM_GETLINESIZE                = (WM_USER+24);
-         TBM_GETTHUMBRECT               = (WM_USER+25);
-         TBM_GETCHANNELRECT             = (WM_USER+26);
-         TBM_SETTHUMBLENGTH             = (WM_USER+27);
-         TBM_GETTHUMBLENGTH             = (WM_USER+28);
-{$ifdef ie3plus}
-         TBM_SETTOOLTIPS                = (WM_USER+29);
-         TBM_GETTOOLTIPS                = (WM_USER+30);
-         TBM_SETTIPSIDE                 = (WM_USER+31);
-// TrackBar Tip Side flags
-         TBTS_TOP                       = 0;
-         TBTS_LEFT                      = 1;
-         TBTS_BOTTOM                    = 2;
-         TBTS_RIGHT                     = 3;
-
-         TBM_SETBUDDY                   = (WM_USER+32);       // wparam = BOOL fLeft; (or right)
-         TBM_GETBUDDY                   = (WM_USER+33);       // wparam = BOOL fLeft; (or right)
-{$ENDIF}
-{$ifdef ie4plus}
-         TBM_SETUNICODEFORMAT           = CCM_SETUNICODEFORMAT;
-         TBM_GETUNICODEFORMAT           = CCM_GETUNICODEFORMAT;
-{$ENDIF}
-
-
-         TB_LINEUP                      = 0;
-         TB_LINEDOWN                    = 1;
-         TB_PAGEUP                      = 2;
-         TB_PAGEDOWN                    = 3;
-         TB_THUMBPOSITION               = 4;
-         TB_THUMBTRACK                  = 5;
-         TB_TOP                         = 6;
-         TB_BOTTOM                      = 7;
-         TB_ENDTRACK                    = 8;
-
-
-{$ifdef ie3plus}
-// custom draw item specs
-         TBCD_TICS                      = $0001;
-         TBCD_THUMB                     = $0002;
-         TBCD_CHANNEL                   = $0003;
-{$ENDIF}
-
-{$ENDIF} // trackbar
-
-//====== DRAG LIST CONTROL ====================================================
-
-{$IFNDEF NODRAGLIST}
-TYPE
-
-         tagDRAGLISTINFO      = Record
-                                 uNotification : UINT;
-                                 hWnd         : HWND;
-                                 ptCursor     : POINT;
-                                 END;
-         DRAGLISTINFO         = tagDRAGLISTINFO;
-         LPDRAGLISTINFO       = ^tagDRAGLISTINFO;
-         TDRAGLISTINFO        = tagDRAGLISTINFO;
-         PDRAGLISTINFO        = ^tagDRAGLISTINFO;
-
-
-
-CONST
-         DL_BEGINDRAG                   = (WM_USER+133);
-         DL_DRAGGING                    = (WM_USER+134);
-         DL_DROPPED                     = (WM_USER+135);
-         DL_CANCELDRAG                  = (WM_USER+136);
-
-         DL_CURSORSET                   = 0;
-         DL_STOPCURSOR                  = 1;
-         DL_COPYCURSOR                  = 2;
-         DL_MOVECURSOR                  = 3;
-
-         DRAGLISTMSGSTRING              = 'commctrl_DragListMsg'; // TEXT("commctrl_DragListMsg");
-
-function MakeDragList(hLB:HWND):BOOL; stdcall; external commctrldll name 'MakeDragList';
-Procedure DrawInsert(handParent:HWND;hLB:HWND;nItem:cint); stdcall; external commctrldll name 'DrawInsert';
-function LBItemFromPt(hLB:HWND;pt:POINT;bAutoScroll:BOOL):cint; stdcall; external commctrldll name 'LBItemFromPt';
-
-{$ENDIF}
-
-//====== UPDOWN CONTROL =======================================================
-
-{$IFNDEF NOUPDOWN}
-CONST
-{$IFDEF _WIN32}
-
-         UPDOWN_CLASSA                  = 'msctls_updown32';
-         UPDOWN_CLASSW                  = {L}'msctls_updown32';
-
-{$IFDEF UNICODE}
-         UPDOWN_CLASS                   = UPDOWN_CLASSW;
-{$ELSE}
-         UPDOWN_CLASS                   = UPDOWN_CLASSA;
-{$ENDIF}
-{$ELSE}
-         UPDOWN_CLASS                   = 'msctls_updown';
-{$ENDIF}
-
-TYPE
-
-         _UDACCEL             = Record
-                                 nSec         : UINT;
-                                 nInc         : UINT;
-                                 END;
-         UDACCEL              = _UDACCEL;
-         LPUDACCEL            = ^_UDACCEL;
-         TUDACCEL             = _UDACCEL;
-         PUDACCEL             = ^_UDACCEL;
-
-CONST
-         UD_MAXVAL                      = $7fff;
-         UD_MINVAL                      = (-UD_MAXVAL);
-
-// begin_r_commctrl
-
-         UDS_WRAP                       = $0001;
-         UDS_SETBUDDYINT                = $0002;
-         UDS_ALIGNRIGHT                 = $0004;
-         UDS_ALIGNLEFT                  = $0008;
-         UDS_AUTOBUDDY                  = $0010;
-         UDS_ARROWKEYS                  = $0020;
-         UDS_HORZ                       = $0040;
-         UDS_NOTHOUSANDS                = $0080;
-{$ifdef ie3plus}
-         UDS_HOTTRACK                   = $0100;
-{$ENDIF}
-
-// end_r_commctrl
-
-         UDM_SETRANGE                   = (WM_USER+101);
-         UDM_GETRANGE                   = (WM_USER+102);
-         UDM_SETPOS                     = (WM_USER+103);
-         UDM_GETPOS                     = (WM_USER+104);
-         UDM_SETBUDDY                   = (WM_USER+105);
-         UDM_GETBUDDY                   = (WM_USER+106);
-         UDM_SETACCEL                   = (WM_USER+107);
-         UDM_GETACCEL                   = (WM_USER+108);
-         UDM_SETBASE                    = (WM_USER+109);
-         UDM_GETBASE                    = (WM_USER+110);
-{$ifdef ie4plus}
-         UDM_SETRANGE32                 = (WM_USER+111);
-         UDM_GETRANGE32                 = (WM_USER+112);      // wParam & lParam are LPINT
-         UDM_SETUNICODEFORMAT           = CCM_SETUNICODEFORMAT;
-         UDM_GETUNICODEFORMAT           = CCM_GETUNICODEFORMAT;
-{$ENDIF}
-{$ifdef ie5plus}
-         UDM_SETPOS32                   = (WM_USER+113);
-         UDM_GETPOS32                   = (WM_USER+114);
-{$ENDIF}
-
-function CreateUpDownControl(dwStyle:DWORD;x:cint;y:cint;cx:cint;cy:cint;hParent:HWND;nID:cint;hInst:HINST;hBuddy:HWND;nUpper:cint;nLower:cint;nPos:cint):HWND; stdcall; external commctrldll name 'CreateUpDownControl';
-
-TYPE
-         _NM_UPDOWN           = Record
-                                 hdr          : NMHDR;
-                                 iPos         : cint;
-                                 iDelta       : cint;
-                                 END;
-         NMUPDOWN             = _NM_UPDOWN;
-         LPNMUPDOWN           = ^_NM_UPDOWN;
-         TNM_UPDOWN           = _NM_UPDOWN;
-         PNM_UPDOWN           = ^_NM_UPDOWN;
-
-{$ifdef ie3plus}
-         NM_UPDOWN                      = NMUPDOWN;
-         LPNM_UPDOWN                    = LPNMUPDOWN;
-{$ELSE}
-         NMUPDOWN                       = NM_UPDOWN;
-         LPNMUPDOWN                     = LPNM_UPDOWN;
-{$ENDIF}
-
-CONST
-         UDN_DELTAPOS                   = (UDN_FIRST - 1);
-
-{$ENDIF}  // NOUPDOWN
-
-
-//====== PROGRESS CONTROL =====================================================
-
-{$IFNDEF NOPROGRESS}
-
-CONST
-
-{$IFDEF _WIN32}
-
-         PROGRESS_CLASSA                = 'msctls_progress32';
-         PROGRESS_CLASSW                = {L}'msctls_progress32';
-
-{$IFDEF UNICODE}
-         PROGRESS_CLASS      = PROGRESS_CLASSW;
-{$ELSE}
-         PROGRESS_CLASS      = PROGRESS_CLASSA;
-{$ENDIF}
-
-{$ELSE}
-         PROGRESS_CLASS                 = 'msctls_progress';
-{$ENDIF}
-
-// begin_r_commctrl
-
-{$ifdef ie3plus}
-         PBS_SMOOTH                     = $01;
-         PBS_VERTICAL                   = $04;
-{$ENDIF}
-
-// end_r_commctrl
-
-         PBM_SETRANGE                   = (WM_USER+1);
-         PBM_SETPOS                     = (WM_USER+2);
-         PBM_DELTAPOS                   = (WM_USER+3);
-         PBM_SETSTEP                    = (WM_USER+4);
-         PBM_STEPIT                     = (WM_USER+5);
-{$ifdef ie3plus}
-         PBM_SETRANGE32                 = (WM_USER+6);        // lParam = high, wParam = low
-
-TYPE
-         PBRANGE              = Record
-                                 iLow         : cint;
-                                 iHigh        : cint;
-                                 END;
-         PPBRANGE             = ^PBRANGE;
-         TPBRANGE             = PBRANGE;
-//         PPBRANGE             = ^PBRANGE;
-
-
-CONST
-         PBM_GETRANGE                   = (WM_USER+7);        // wParam = return (TRUE ? low : high). lParam = PPBRANGE or NULL
-         PBM_GETPOS                     = (WM_USER+8);
-{$ifdef ie4plus}
-         PBM_SETBARCOLOR                = (WM_USER+9);        // lParam = bar color
-{$ENDIF}      // _WIN32_IE >= 0x0400
-         PBM_SETBKCOLOR                 = CCM_SETBKCOLOR;     // lParam = bkColor
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-
-{$ENDIF}  // NOPROGRESS
-
-
-//====== HOTKEY CONTROL =======================================================
-
-{$IFNDEF NOHOTKEY}
-         HOTKEYF_SHIFT                  = $01;
-         HOTKEYF_CONTROL                = $02;
-         HOTKEYF_ALT                    = $04;
-{$IFDEF _MAC}
-         HOTKEYF_EXT                    = $80;
-{$ELSE}
-         HOTKEYF_EXT                    = $08;
-{$ENDIF}
-         HKCOMB_NONE                    = $0001;
-         HKCOMB_S                       = $0002;
-         HKCOMB_C                       = $0004;
-         HKCOMB_A                       = $0008;
-         HKCOMB_SC                      = $0010;
-         HKCOMB_SA                      = $0020;
-         HKCOMB_CA                      = $0040;
-         HKCOMB_SCA                     = $0080;
-
-         HKM_SETHOTKEY                  = (WM_USER+1);
-         HKM_GETHOTKEY                  = (WM_USER+2);
-         HKM_SETRULES                   = (WM_USER+3);
-
-{$IFDEF _WIN32}
-         HOTKEY_CLASSA                  = 'msctls_hotkey32';
-         HOTKEY_CLASSW                  = widestring('msctls_hotkey32');
-{$IFDEF UNICODE}
-         HOTKEY_CLASS                   = HOTKEY_CLASSW;
-{$ELSE}
-         HOTKEY_CLASS                   = HOTKEY_CLASSA;
-{$ENDIF}
-{$ELSE}
-         HOTKEY_CLASS                   = 'msctls_hotkey';
-{$ENDIF}
-
-{$ENDIF}  // NOHOTKEY
-         HOTKEYCLASS                    = HOTKEY_CLASSA;
-
-// begin_r_commctrl
-
-//====== COMMON CONTROL STYLES ================================================
-
-         CCS_TOP                        = DWORD($00000001){L};
-         CCS_NOMOVEY                    = DWORD($00000002){L};
-         CCS_BOTTOM                     = DWORD($00000003){L};
-         CCS_NORESIZE                   = DWORD($00000004){L};
-         CCS_NOPARENTALIGN              = DWORD($00000008){L};
-         CCS_ADJUSTABLE                 = DWORD($00000020){L};
-         CCS_NODIVIDER                  = DWORD($00000040){L};
-{$ifdef ie3plus}
-         CCS_VERT                       = DWORD($00000080){L};
-         CCS_LEFT                       = (CCS_VERT  OR  CCS_TOP);
-         CCS_RIGHT                      = (CCS_VERT  OR  CCS_BOTTOM);
-         CCS_NOMOVEX                    = (CCS_VERT  OR  CCS_NOMOVEY);
-{$ENDIF}
-
-// end_r_commctrl
-
-//====== LISTVIEW CONTROL =====================================================
-
-{$IFNDEF NOLISTVIEW}
-
-{$IFDEF _WIN32}
-         WC_LISTVIEWA                   = 'SysListView32';
-         WC_LISTVIEWW                   = {L}'SysListView32';
-{$IFDEF UNICODE}
-         WC_LISTVIEW                    = WC_LISTVIEWW;
-{$ELSE}
-         WC_LISTVIEW                    = WC_LISTVIEWA;
-{$ENDIF}
-{$ELSE}
-         WC_LISTVIEW                    = 'SysListView';
-{$ENDIF}
-
-// begin_r_commctrl
-
-         LVS_ICON                       = $0000;
-         LVS_REPORT                     = $0001;
-         LVS_SMALLICON                  = $0002;
-         LVS_LIST                       = $0003;
-         LVS_TYPEMASK                   = $0003;
-         LVS_SINGLESEL                  = $0004;
-         LVS_SHOWSELALWAYS              = $0008;
-         LVS_SORTASCENDING              = $0010;
-         LVS_SORTDESCENDING             = $0020;
-         LVS_SHAREIMAGELISTS            = $0040;
-         LVS_NOLABELWRAP                = $0080;
-         LVS_AUTOARRANGE                = $0100;
-         LVS_EDITLABELS                 = $0200;
-{$ifdef ie3plus}
-         LVS_OWNERDATA                  = $1000;
-{$ENDIF}
-         LVS_NOSCROLL                   = $2000;
-
-         LVS_TYPESTYLEMASK              = $fc00;
-
-         LVS_ALIGNTOP                   = $0000;
-         LVS_ALIGNLEFT                  = $0800;
-         LVS_ALIGNMASK                  = $0c00;
-
-         LVS_OWNERDRAWFIXED             = $0400;
-         LVS_NOCOLUMNHEADER             = $4000;
-         LVS_NOSORTHEADER               = $8000;
-
-// end_r_commctrl
-
-{$ifdef ie4plus}
-         LVM_SETUNICODEFORMAT           = CCM_SETUNICODEFORMAT;
-
-// Macro 38
-Function ListView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
-
-CONST
-         LVM_GETUNICODEFORMAT           = CCM_GETUNICODEFORMAT;
-
-// Macro 39
-Function ListView_GetUnicodeFormat( hwnd : hwnd):BOOL;
-
-{$ENDIF}
-CONST
-         LVM_GETBKCOLOR                 = (LVM_FIRST + 0);
-
-// Macro 40
-Function ListView_GetBkColor( hwnd : hwnd):COLORREF;
-
-CONST
-         LVM_SETBKCOLOR                 = (LVM_FIRST + 1);
-
-// Macro 41
-Function ListView_SetBkColor( hwnd : hwnd; clrBk : COLORREF):BOOL;
-
-CONST
-         LVM_GETIMAGELIST               = (LVM_FIRST + 2);
-
-// Macro 42
-Function ListView_GetImageList( hwnd : hwnd; iImageList : CINT):HIMAGELIST;
-
-CONST
-         LVSIL_NORMAL                   = 0;
-         LVSIL_SMALL                    = 1;
-         LVSIL_STATE                    = 2;
-
-         LVM_SETIMAGELIST               = (LVM_FIRST + 3);
-
-// Macro 43
-Function ListView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImageList : WPARAM):HIMAGELIST;
-
-CONST
-         LVM_GETITEMCOUNT               = (LVM_FIRST + 4);
-
-// Macro 44
-Function ListView_GetItemCount( hwnd : hwnd):cint;
-
-CONST
-         LVIF_TEXT                      = $0001;
-         LVIF_IMAGE                     = $0002;
-         LVIF_PARAM                     = $0004;
-         LVIF_STATE                     = $0008;
-{$ifdef ie3plus}
-         LVIF_INDENT                    = $0010;
-         LVIF_NORECOMPUTE               = $0800;
-{$ENDIF}
-{$ifdef win32xp}
-         LVIF_GROUPID                   = $0100;
-         LVIF_COLUMNS                   = $0200;
-{$ENDIF}
-
-         LVIS_FOCUSED                   = $0001;
-         LVIS_SELECTED                  = $0002;
-         LVIS_CUT                       = $0004;
-         LVIS_DROPHILITED               = $0008;
-         LVIS_GLOW                      = $0010;
-         LVIS_ACTIVATING                = $0020;
-
-         LVIS_OVERLAYMASK               = $0F00;
-         LVIS_STATEIMAGEMASK            = $F000;
-
-// Macro 45
-// #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
-
-
-CONST
-         I_INDENTCALLBACK               = (-1);
-{$ENDIF}
-
-
-{$ifdef win32xp}
-
-CONST
-         I_GROUPIDCALLBACK              = (-1);
-         I_GROUPIDNONE                  = (-2);
-{$ENDIF}
-
-
-// #define LVITEMA_V1_SIZE CCSIZEOF_STRUCT(LVITEMA, lParam)
-// #define LVITEMW_V1_SIZE CCSIZEOF_STRUCT(LVITEMW, lParam)
-
-TYPE
-         tagLVITEMA           = Record
-                                 mask         : UINT;
-                                 iItem        : cint;
-                                 iSubItem     : cint;
-                                 state        : UINT;
-                                 stateMask    : UINT;
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 lParam       : LPARAM;
-{$ifdef ie3plus}
-                                 iIndent      : cint;
-{$ENDIF}
-{$ifdef win32xp}
-                                 iGroupId     : cint;
-                                 cColumns     : UINT;          // tile view columns
-                                 puColumns    : PUINT;
-{$ENDIF}
-                                 END;
-         LVITEMA              = tagLVITEMA;
-         LPLVITEMA            = ^tagLVITEMA;
-         TLVITEMA             = tagLVITEMA;
-         PLVITEMA             = ^tagLVITEMA;
-
-
-         tagLVITEMW           = Record
-                                 mask         : UINT;
-                                 iItem        : cint;
-                                 iSubItem     : cint;
-                                 state        : UINT;
-                                 stateMask    : UINT;
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 lParam       : LPARAM;
-{$ifdef ie3plus}
-                                 iIndent      : cint;
-{$ENDIF}
-{$ifdef win32xp}
-                                 iGroupId     : cint;
-                                 cColumns     : UINT;          // tile view columns
-                                 puColumns    : PUINT;
-{$ENDIF}
-                                 END;
-
-         LVITEMW              = tagLVITEMW;
-         LPLVITEMW            = ^tagLVITEMW;
-         TLVITEMW             = tagLVITEMW;
-         PLVITEMW             = ^tagLVITEMW;
-
-{$IFDEF UNICODE}
-         LVITEM              = LVITEMW;
-         LPLVITEM            = LPLVITEMW;
-
-//         LVITEM_V1_SIZE                 = LVITEMW_V1_SIZE;
-{$ELSE}
-
-TYPE
-         LVITEM              = LVITEMA;
-         LPLVITEM            = LPLVITEMA;
-
-//         LVITEM_V1_SIZE                 = LVITEMA_V1_SIZE;
-{$ENDIF}
-
-Type
-{$ifdef ie3plus}
-
-         LV_ITEMA            = LVITEMA;
-         LV_ITEMW            = LVITEMW;
-{$ELSE}
-
-         tagLVITEMA          = _LV_ITEMA;
-         LVITEMA             = LV_ITEMA;
-         tagLVITEMW          = _LV_ITEMW;
-         LVITEMW             = LV_ITEMW;
-{$ENDIF}
-         LV_ITEM                        = LVITEM;
-         TLVItem                        = LVITEM;
-         PLVItem                        = LPLVITEM;
-
-CONST
-         LPSTR_TEXTCALLBACKW = LPWSTR(-1);
-         LPSTR_TEXTCALLBACKA = LPSTR (-1);
-{$IFDEF UNICODE}
-         LPSTR_TEXTCALLBACK  = LPSTR_TEXTCALLBACKW;
-{$ELSE}
-         LPSTR_TEXTCALLBACK  = LPSTR_TEXTCALLBACKA;
-{$ENDIF}
-
-
-CONST
-         I_IMAGECALLBACK                = (-1);
-{$ifdef ie501plus}
-         I_IMAGENONE                    = (-2);
-{$ENDIF}  // 0x0501
-
-{$ifdef win32xp}
-// For tileview
-         I_COLUMNSCALLBACK              = UINT(-1);
-{$ENDIF}
-
-         LVM_GETITEMA                   = (LVM_FIRST + 5);
-         LVM_GETITEMW                   = (LVM_FIRST + 75);
-
-{$IFDEF UNICODE}
-         LVM_GETITEM         = LVM_GETITEMW;
-{$ELSE}
-         LVM_GETITEM         = LVM_GETITEMA;
-{$ENDIF}
-
-// Macro 46
-Function ListView_GetItem( hwnd : hwnd;var  pitem : LV_ITEM ):BOOL;
-
-CONST
-         LVM_SETITEMA                   = (LVM_FIRST + 6);
-         LVM_SETITEMW                   = (LVM_FIRST + 76);
-
-{$IFDEF UNICODE}
-         LVM_SETITEM         = LVM_SETITEMW;
-{$ELSE}
-         LVM_SETITEM         = LVM_SETITEMA;
-{$ENDIF}
-
-// Macro 47
-Function ListView_SetItem( hwnd : hwnd;const pitem : LV_ITEM ):BOOL;
-
-
-CONST
-         LVM_INSERTITEMA                = (LVM_FIRST + 7);
-         LVM_INSERTITEMW                = (LVM_FIRST + 77);
-{$IFDEF UNICODE}
-         LVM_INSERTITEM      = LVM_INSERTITEMW;
-{$ELSE}
-         LVM_INSERTITEM      = LVM_INSERTITEMA;
-{$ENDIF}
-
-// Macro 48
-Function ListView_InsertItem( hwnd : hwnd;Const pitem : LV_ITEM ):cint;
-
-CONST
-         LVM_DELETEITEM                 = (LVM_FIRST + 8);
-
-// Macro 49
-Function ListView_DeleteItem( hwnd : hwnd; i : cint):BOOL;
-
-CONST
-         LVM_DELETEALLITEMS             = (LVM_FIRST + 9);
-
-// Macro 50
-Function ListView_DeleteAllItems( hwnd : hwnd):BOOL;
-
-CONST
-         LVM_GETCALLBACKMASK            = (LVM_FIRST + 10);
-
-// Macro 51
-Function ListView_GetCallbackMask( hwnd : hwnd):BOOL;
-
-
-CONST
-         LVM_SETCALLBACKMASK            = (LVM_FIRST + 11);
-
-// Macro 52
-Function ListView_SetCallbackMask( hwnd : hwnd; mask : UINT):BOOL;
-
-
-CONST
-         LVNI_ALL                       = $0000;
-         LVNI_FOCUSED                   = $0001;
-         LVNI_SELECTED                  = $0002;
-         LVNI_CUT                       = $0004;
-         LVNI_DROPHILITED               = $0008;
-
-         LVNI_ABOVE                     = $0100;
-         LVNI_BELOW                     = $0200;
-         LVNI_TOLEFT                    = $0400;
-         LVNI_TORIGHT                   = $0800;
-
-
-         LVM_GETNEXTITEM                = (LVM_FIRST + 12);
-
-// Macro 53
-Function ListView_GetNextItem( hwnd : hwnd; i : cint; flags : cint ):cint;
-
-CONST
-         LVFI_PARAM                     = $0001;
-         LVFI_STRING                    = $0002;
-         LVFI_PARTIAL                   = $0008;
-         LVFI_WRAP                      = $0020;
-         LVFI_NEARESTXY                 = $0040;
-
-
-TYPE
-
-         tagLVFINDINFOA       = Record
-                                 flags        : UINT;
-                                 psz          : LPCSTR;
-                                 lParam       : LPARAM;
-                                 pt           : POINT;
-                                 vkDirection  : UINT;
-                                 END;
-         LVFINDINFOA          = tagLVFINDINFOA;
-         LPFINDINFOA          = ^tagLVFINDINFOA;
-         TLVFINDINFOA         = tagLVFINDINFOA;
-         PLVFINDINFOA         = ^tagLVFINDINFOA;
-
-
-         tagLVFINDINFOW       = Record
-                                 flags        : UINT;
-                                 psz          : LPCWSTR;
-                                 lParam       : LPARAM;
-                                 pt           : POINT;
-                                 vkDirection  : UINT;
-                                 END;
-         LVFINDINFOW          = tagLVFINDINFOW;
-         LPFINDINFOW          = ^tagLVFINDINFOW;
-         TLVFINDINFOW         = tagLVFINDINFOW;
-         PLVFINDINFOW         = ^tagLVFINDINFOW;
-
-{$IFDEF UNICODE}
-         LVFINDINFO          = LVFINDINFOW;
-{$ELSE}
-         LVFINDINFO          = LVFINDINFOA;
-{$ENDIF}
-
-{$ifdef ie3plus}
-         LV_FINDINFOA        = LVFINDINFOA;
-         LV_FINDINFOW        = LVFINDINFOW;
-{$ELSE}
-         tagLVFINDINFOA      = _LV_FINDINFOA;
-         LVFINDINFOA         = LV_FINDINFOA;
-         tagLVFINDINFOW      = _LV_FINDINFOW;
-         LVFINDINFOW         = LV_FINDINFOW;
-{$ENDIF}
-
-         TLVFindInfo         = LVFINDINFO;
-         PLVFindInfo         = ^LVFindInfo;
-
-         LV_FINDINFO                    = LVFINDINFO;
-
-CONST
-         LVM_FINDITEMA                  = (LVM_FIRST + 13);
-         LVM_FINDITEMW                  = (LVM_FIRST + 83);
-{$IFDEF UNICODE}
-         LVM_FINDITEM                   = LVM_FINDITEMW;
-{$ELSE}
-         LVM_FINDITEM                   = LVM_FINDITEMA;
-{$ENDIF}
-
-// Macro 54
-Function ListView_FindItem( hwnd : hwnd; iStart : cint;const plvfi : LV_FINDINFO ):cint;
-
-CONST
-         LVIR_BOUNDS                    = 0;
-         LVIR_ICON                      = 1;
-         LVIR_LABEL                     = 2;
-         LVIR_SELECTBOUNDS              = 3;
-
-
-         LVM_GETITEMRECT                = (LVM_FIRST + 14);
-
-// Macro 55 NI
-Function ListView_GetItemRect( hwnd : hwnd; i : cint;var prc : TRect;code : cint):BOOL;
-
-CONST
-         LVM_SETITEMPOSITION            = (LVM_FIRST + 15);
-
-// Macro 56
-Function ListView_SetItemPosition( hwndLV : hwnd; i : cint; x : cint ; y : cint ):BOOL;
-
-CONST
-         LVM_GETITEMPOSITION            = (LVM_FIRST + 16);
-
-// Macro 57
-Function ListView_GetItemPosition( hwndLV : hwnd; i : cint;var  ppt : POINT ):BOOL;
-
-CONST
-         LVM_GETSTRINGWIDTHA            = (LVM_FIRST + 17);
-         LVM_GETSTRINGWIDTHW            = (LVM_FIRST + 87);
-{$IFDEF UNICODE}
-         LVM_GETSTRINGWIDTH  = LVM_GETSTRINGWIDTHW;
-{$ELSE}
-         LVM_GETSTRINGWIDTH  = LVM_GETSTRINGWIDTHA;
-{$ENDIF}
-
-// Macro 58
-Function ListView_GetStringWidth( hwndLV : hwnd; psz : LPCTSTR):cint;
-
-CONST
-         LVHT_NOWHERE                   = $0001;
-         LVHT_ONITEMICON                = $0002;
-         LVHT_ONITEMLABEL               = $0004;
-         LVHT_ONITEMSTATEICON           = $0008;
-         LVHT_ONITEM                    = (LVHT_ONITEMICON  OR  LVHT_ONITEMLABEL  OR  LVHT_ONITEMSTATEICON);
-
-         LVHT_ABOVE                     = $0008;
-         LVHT_BELOW                     = $0010;
-         LVHT_TORIGHT                   = $0020;
-         LVHT_TOLEFT                    = $0040;
-
-
-
-// #define LVHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT(LVHITTESTINFO, iItem)
-
-TYPE
-
-         tagLVHITTESTINFO     = Record
-                                 pt           : POINT;
-                                 flags        : UINT;
-                                 iItem        : cint;
-{$ifdef ie3plus}
-                                 iSubItem     : cint;          // this is was NOT in win95.  valid only for LVM_SUBITEMHITTEST
-{$ENDIF}
-                                 END;
-         LVHITTESTINFO        = tagLVHITTESTINFO;
-         LPLVHITTESTINFO      = ^tagLVHITTESTINFO;
-         TLVHITTESTINFO       = tagLVHITTESTINFO;
-         PLVHITTESTINFO       = ^tagLVHITTESTINFO;
-
-{$ifdef ie3plus}
-         LV_HITTESTINFO                 = LVHITTESTINFO;
-{$ELSE}
-         tagLVHITTESTINFO               = _LV_HITTESTINFO;
-         LVHITTESTINFO                  = LV_HITTESTINFO;
-{$ENDIF}
-
-CONST
-         LVM_HITTEST                    = (LVM_FIRST + 18);
-
-// Macro 59
-Function ListView_HitTest( hwndLV : hwnd;var  pinfo : LV_HITTESTINFO ):cint;
-
-CONST
-         LVM_ENSUREVISIBLE              = (LVM_FIRST + 19);
-
-// Macro 60
-Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : cint ):BOOL;inline;
-Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : BOOL ):BOOL;inline;
-
-CONST
-         LVM_SCROLL                     = (LVM_FIRST + 20);
-
-// Macro 61
-Function ListView_Scroll( hwndLV : hwnd; dx : cint; dy : cint):BOOL;
-
-CONST
-         LVM_REDRAWITEMS                = (LVM_FIRST + 21);
-
-// Macro 62
-Function ListView_RedrawItems( hwndLV : hwnd; iFirst : cint; iLast : cint):BOOL;
-
-CONST
-         LVA_DEFAULT                    = $0000;
-         LVA_ALIGNLEFT                  = $0001;
-         LVA_ALIGNTOP                   = $0002;
-         LVA_ALIGNRIGHT                 = $0003;
-         LVA_ALIGNBOTTOM                = $0004;
-         LVA_SNAPTOGRID                 = $0005;
-         LVA_SORTASCENDING              = $0100;
-         LVA_SORTDESCENDING             = $0200;
-         LVM_ARRANGE                    = (LVM_FIRST + 22);
-
-// Macro 63
-Function ListView_Arrange( hwndLV : hwnd; code : UINT):BOOL;
-
-CONST
-         LVM_EDITLABELA                 = (LVM_FIRST + 23);
-         LVM_EDITLABELW                 = (LVM_FIRST + 118);
-{$IFDEF UNICODE}
-
-         LVM_EDITLABEL                  = LVM_EDITLABELW;
-{$ELSE}
-         LVM_EDITLABEL                  = LVM_EDITLABELA;
-{$ENDIF}
-
-// Macro 64
-Function ListView_EditLabel( hwndLV : hwnd; i : cint):HWND;
-
-CONST
-         LVM_GETEDITCONTROL             = (LVM_FIRST + 24);
-
-// Macro 65
-Function ListView_GetEditControl( hwndLV : hwnd):HWND;
-
-
-// #define LVCOLUMNA_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNA, iSubItem)
-// #define LVCOLUMNW_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNW, iSubItem)
-
-TYPE
-
-         tagLVCOLUMNA         = Record
-                                 mask         : UINT;
-                                 fmt          : cint;
-                                 cx           : cint;
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 iSubItem     : cint;
-{$ifdef ie3plus}
-                                 iImage       : cint;
-                                 iOrder       : cint;
-{$ENDIF}
-                                 END;
-         LVCOLUMNA            = tagLVCOLUMNA;
-         LPLVCOLUMNA          = ^tagLVCOLUMNA;
-         TLVCOLUMNA           = tagLVCOLUMNA;
-         PLVCOLUMNA           = ^tagLVCOLUMNA;
-
-
-         tagLVCOLUMNW         = Record
-                                 mask         : UINT;
-                                 fmt          : cint;
-                                 cx           : cint;
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 iSubItem     : cint;
-{$ifdef ie3plus}
-                                 iImage       : cint;
-                                 iOrder       : cint;
-{$ENDIF}
-                                 END;
-         LVCOLUMNW            = tagLVCOLUMNW;
-         LPLVCOLUMNW          = ^tagLVCOLUMNW;
-         TLVCOLUMNW           = tagLVCOLUMNW;
-         PLVCOLUMNW           = ^tagLVCOLUMNW;
-
-
-{$IFDEF UNICODE}
-         LVCOLUMN            = LVCOLUMNW;
-         LPLVCOLUMN          = LPLVCOLUMNW;
-//       LVCOLUMN_V1_SIZE               = LVCOLUMNW_V1_SIZE;
-{$ELSE}
-         LVCOLUMN            = LVCOLUMNA;
-         LPLVCOLUMN          = LPLVCOLUMNA;
-//       LVCOLUMN_V1_SIZE               = LVCOLUMNA_V1_SIZE;
-{$ENDIF}
-
-{$ifdef ie3plus}
-         LV_COLUMNA          = LVCOLUMNA;
-         LV_COLUMNW          = LVCOLUMNW;
-{$ELSE}
-         tagLVCOLUMNA        = _LV_COLUMNA;
-         LVCOLUMNA           = LV_COLUMNA;
-         tagLVCOLUMNW        = _LV_COLUMNW;
-         LVCOLUMNW           = LV_COLUMNW;
-{$ENDIF}
-
-
-         LV_COLUMN                      = LVCOLUMN;
-         TLVColumn                      = LVCOLUMN;
-         PLVColumn                      = LPLVCOLUMN;
-
-CONST
-         LVCF_FMT                       = $0001;
-         LVCF_WIDTH                     = $0002;
-         LVCF_TEXT                      = $0004;
-         LVCF_SUBITEM                   = $0008;
-{$ifdef ie3plus}
-         LVCF_IMAGE                     = $0010;
-         LVCF_ORDER                     = $0020;
-{$ENDIF}
-
-         LVCFMT_LEFT                    = $0000;
-         LVCFMT_RIGHT                   = $0001;
-         LVCFMT_CENTER                  = $0002;
-         LVCFMT_JUSTIFYMASK             = $0003;
-
-{$ifdef ie3plus}
-         LVCFMT_IMAGE                   = $0800;
-         LVCFMT_BITMAP_ON_RIGHT         = $1000;
-         LVCFMT_COL_HAS_IMAGES          = $8000;
-{$ENDIF}
-
-         LVM_GETCOLUMNA                 = (LVM_FIRST + 25);
-         LVM_GETCOLUMNW                 = (LVM_FIRST + 95);
-{$IFDEF UNICODE}
-         LVM_GETCOLUMN                  = LVM_GETCOLUMNW;
-{$ELSE}
-         LVM_GETCOLUMN                  = LVM_GETCOLUMNA;
-{$ENDIF}
-
-// Macro 66
-Function ListView_GetColumn( hwnd : hwnd; iCol : cint;var  pcol : LV_COLUMN ):BOOL;
-
-CONST
-         LVM_SETCOLUMNA                 = (LVM_FIRST + 26);
-         LVM_SETCOLUMNW                 = (LVM_FIRST + 96);
-{$IFDEF UNICODE}
-         LVM_SETCOLUMN                  = LVM_SETCOLUMNW;
-{$ELSE}
-         LVM_SETCOLUMN                  = LVM_SETCOLUMNA;
-{$ENDIF}
-
-// Macro 67
-Function ListView_SetColumn( hwnd : hwnd; iCol : cint;Const pcol : LV_COLUMN ):BOOL;
-
-CONST
-         LVM_INSERTCOLUMNA              = (LVM_FIRST + 27);
-         LVM_INSERTCOLUMNW              = (LVM_FIRST + 97);
-
-{$IFDEF UNICODE} // was already not active (spaces) in .h
-// #   define  LVM_INSERTCOLUMN    LVM_INSERTCOLUMNW
-{$ELSE}
-// #   define  LVM_INSERTCOLUMN    LVM_INSERTCOLUMNA
-{$ENDIF}
-
-// Macro 68
-Function ListView_InsertColumn( hwnd : hwnd; iCol : cint;Const pcol : LV_COLUMN ):cint;
-
-CONST
-         LVM_DELETECOLUMN               = (LVM_FIRST + 28);
-
-// Macro 69
-Function ListView_DeleteColumn( hwnd : hwnd; iCol : cint):BOOL;
-
-CONST
-         LVM_GETCOLUMNWIDTH             = (LVM_FIRST + 29);
-
-// Macro 70
-Function ListView_GetColumnWidth( hwnd : hwnd; iCol : cint):cint;
-
-CONST
-         LVSCW_AUTOSIZE                 = -1;
-         LVSCW_AUTOSIZE_USEHEADER       = -2;
-         LVM_SETCOLUMNWIDTH             = (LVM_FIRST + 30);
-
-// Macro 71
-Function ListView_SetColumnWidth( hwnd : hwnd; iCol : cint; cx : cint ):BOOL;
-
-
-{$ifdef ie3plus}
-
-CONST
-         LVM_GETHEADER                  = (LVM_FIRST + 31);
-
-// Macro 72
-Function ListView_GetHeader( hwnd : hwnd):HWND;
-
-{$ENDIF}
-
-CONST
-         LVM_CREATEDRAGIMAGE            = (LVM_FIRST + 33);
-
-// Macro 73
-Function ListView_CreateDragImage( hwnd : hwnd; i : cint; lpptUpLeft : LPPOINT):HIMAGELIST;inline;
-Function ListView_CreateDragImage( hwnd : hwnd; i : cint; const lpptUpLeft : POINT):HIMAGELIST;inline;
-
-CONST
-         LVM_GETVIEWRECT                = (LVM_FIRST + 34);
-
-// Macro 74
-Function ListView_GetViewRect( hwnd : hwnd;var  prc : RECT ):BOOL;
-
-CONST
-         LVM_GETTEXTCOLOR               = (LVM_FIRST + 35);
-
-// Macro 75
-Function ListView_GetTextColor( hwnd : hwnd):COLORREF;
-
-CONST
-         LVM_SETTEXTCOLOR               = (LVM_FIRST + 36);
-
-// Macro 76
-Function ListView_SetTextColor( hwnd : hwnd; clrText : COLORREF):BOOL;
-
-CONST
-         LVM_GETTEXTBKCOLOR             = (LVM_FIRST + 37);
-
-// Macro 77
-Function ListView_GetTextBkColor( hwnd : hwnd):COLORREF;
-
-CONST
-         LVM_SETTEXTBKCOLOR             = (LVM_FIRST + 38);
-
-// Macro 78
-Function ListView_SetTextBkColor( hwnd : hwnd; clrTextBk : COLORREF):BOOL;
-
-
-CONST
-         LVM_GETTOPINDEX                = (LVM_FIRST + 39);
-
-// Macro 79
-Function ListView_GetTopIndex( hwndLV : hwnd):cint;
-
-CONST
-         LVM_GETCOUNTPERPAGE            = (LVM_FIRST + 40);
-
-// Macro 80
-Function ListView_GetCountPerPage( hwndLV : hwnd):cint;
-
-CONST
-         LVM_GETORIGIN                  = (LVM_FIRST + 41);
-
-// Macro 81
-Function ListView_GetOrigin( hwndLV : hwnd;var  ppt : POINT ):BOOL;
-
-CONST
-         LVM_UPDATE                     = (LVM_FIRST + 42);
-
-// Macro 82
-Function ListView_Update( hwndLV : hwnd; i : WPARAM):BOOL;
-
-CONST
-         LVM_SETITEMSTATE               = (LVM_FIRST + 43);
-
-// Macro 83
-Procedure ListView_SetItemState(hwndLV :hwnd; i :cint ;data,mask:UINT);
-
-{$ifdef ie3plus}
-// Macro 84
-Procedure ListView_SetCheckState( hwndLV : hwnd; i : cint ; fCheck : bool );
-
-{$ENDIF}
-
-
-CONST
-         LVM_GETITEMSTATE               = (LVM_FIRST + 44);
-
-// Macro 85
-Function ListView_GetItemState( hwndLV : hwnd; i : WPARAM; mask : LPARAM):UINT;
-
-
-{$ifdef ie3plus}
-
-// Macro 86
-Function ListView_GetCheckState( hwndLV : hwnd; i : WPARAM):UINT;
-
-{$ENDIF}
-
-CONST
-         LVM_GETITEMTEXTA               = (LVM_FIRST + 45);
-         LVM_GETITEMTEXTW               = (LVM_FIRST + 115);
-
-{$IFDEF UNICODE}
-         LVM_GETITEMTEXT                = LVM_GETITEMTEXTW;
-{$ELSE}
-         LVM_GETITEMTEXT                = LVM_GETITEMTEXTA;
-{$ENDIF}
-
-// Macro 87
-Procedure ListView_GetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer;cchTextMax :cint);
-
-CONST
-         LVM_SETITEMTEXTA               = (LVM_FIRST + 46);
-         LVM_SETITEMTEXTW               = (LVM_FIRST + 116);
-
-{$IFDEF UNICODE}
-         LVM_SETITEMTEXT                = LVM_SETITEMTEXTW;
-{$ELSE}
-         LVM_SETITEMTEXT                = LVM_SETITEMTEXTA;
-{$ENDIF}
-
-// Macro 88
-Procedure ListView_SetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer);
-
-{$ifdef ie3plus}
-// these flags only apply to LVS_OWNERDATA listviews in report or list mode
-
-CONST
-         LVSICF_NOINVALIDATEALL         = $00000001;
-         LVSICF_NOSCROLL                = $00000002;
-{$ENDIF}
-
-         LVM_SETITEMCOUNT               = (LVM_FIRST + 47);
-
-// Macro 89
-Procedure ListView_SetItemCount( hwndLV : hwnd; cItems : WPARAM);
-
-{$ifdef ie3plus}
-
-// Macro 90
-Procedure ListView_SetItemCountEx( hwndLV : hwnd; cItems : WPARAM; dwFlags : LPARAM);
-
-{$ENDIF}
-
-TYPE
-         PFNLVCOMPARE=Function(a,b,c:LPARAM):cint;
-         TLVCompare = PFNLVCOMPARE;
-
-CONST
-         LVM_SORTITEMS                  = (LVM_FIRST + 48);
-
-// Macro 91
-Function ListView_SortItems( hwndLV : hwnd;pfnCompare : PFNLVCOMPARE; lPrm : LPARAM):BOOL;
-
-CONST
-         LVM_SETITEMPOSITION32          = (LVM_FIRST + 49);
-
-// Macro 92
-Procedure ListView_SetItemPosition32(hwndLV:hwnd; i:cint;x0,y0:long);
-
-CONST
-         LVM_GETSELECTEDCOUNT           = (LVM_FIRST + 50);
-
-// Macro 93
-Function ListView_GetSelectedCount( hwndLV : hwnd):UINT;
-
-CONST
-         LVM_GETITEMSPACING             = (LVM_FIRST + 51);
-
-// Macro 94
-Function ListView_GetItemSpacing( hwndLV : hwnd; fSmall : cint ):DWORD;
-
-CONST
-         LVM_GETISEARCHSTRINGA          = (LVM_FIRST + 52);
-         LVM_GETISEARCHSTRINGW          = (LVM_FIRST + 117);
-
-{$IFDEF UNICODE}
-         LVM_GETISEARCHSTRING           = LVM_GETISEARCHSTRINGW;
-{$ELSE}
-         LVM_GETISEARCHSTRING           = LVM_GETISEARCHSTRINGA;
-{$ENDIF}
-
-// Macro 95
-Function ListView_GetISearchString( hwndLV : hwnd; lpsz : LPTSTR):BOOL;
-
-
-{$ifdef ie3plus}
-
-CONST
-         LVM_SETICONSPACING             = (LVM_FIRST + 53);
-// -1 for cx and cy means we'll use the default (system settings)
-// 0 for cx or cy means use the current setting (allows you to change just one param)
-
-// Macro 96
-Function ListView_SetIconSpacing( hwndLV : hwnd; cx, cy : cint ):DWORD;
-
-CONST
-         LVM_SETEXTENDEDLISTVIEWSTYLE   = (LVM_FIRST + 54);   // optional wParam == mask
-
-// Macro 97
-Function ListView_SetExtendedListViewStyle( hwndLV : hwnd; dw : cint ):DWORD;
-
-{$ifdef ie4plus}
-
-// Macro 98
-Function ListView_SetExtendedListViewStyleEx( hwndLV : hwnd; dwMask, dw : cint ):DWORD;
-
-{$ENDIF}
-
-CONST
-         LVM_GETEXTENDEDLISTVIEWSTYLE   = (LVM_FIRST + 55);
-
-// Macro 99
-Function ListView_GetExtendedListViewStyle( hwndLV : hwnd):DWORD;
-
-CONST
-         LVS_EX_GRIDLINES               = $00000001;
-         LVS_EX_SUBITEMIMAGES           = $00000002;
-         LVS_EX_CHECKBOXES              = $00000004;
-         LVS_EX_TRACKSELECT             = $00000008;
-         LVS_EX_HEADERDRAGDROP          = $00000010;
-         LVS_EX_FULLROWSELECT           = $00000020;          // applies to report mode only
-         LVS_EX_ONECLICKACTIVATE        = $00000040;
-         LVS_EX_TWOCLICKACTIVATE        = $00000080;
-{$ifdef ie4plus}
-         LVS_EX_FLATSB                  = $00000100;
-         LVS_EX_REGIONAL                = $00000200;
-         LVS_EX_INFOTIP                 = $00000400;          // listview does InfoTips for you
-         LVS_EX_UNDERLINEHOT            = $00000800;
-         LVS_EX_UNDERLINECOLD           = $00001000;
-         LVS_EX_MULTIWORKAREAS          = $00002000;
-{$ENDIF}
-{$ifdef ie5plus}
-         LVS_EX_LABELTIP                = $00004000;          // listview unfolds partly hidden labels if it does not have infotip text
-         LVS_EX_BORDERSELECT            = $00008000;          // border selection style instead of highlight
-{$ENDIF}  // End (_WIN32_IE >= 0x0500)
-{$ifdef win32xp}
-         LVS_EX_DOUBLEBUFFER            = $00010000;
-         LVS_EX_HIDELABELS              = $00020000;
-         LVS_EX_SINGLEROW               = $00040000;
-         LVS_EX_SNAPTOGRID              = $00080000;          // Icons automatically snap to grid.
-         LVS_EX_SIMPLESELECT            = $00100000;          // Also changes overlay rendering to top right for icon mode.
-{$ENDIF}
-
-         LVM_GETSUBITEMRECT             = (LVM_FIRST + 56);
-
-// Macro 100
-Function ListView_GetSubItemRect( hwnd : hwnd; iItem : cint;iSubItem, code :cint ;prc:LPRECT):BOOL;
-
-CONST
-         LVM_SUBITEMHITTEST             = (LVM_FIRST + 57);
-
-// Macro 101
-Function ListView_SubItemHitTest( hwnd : hwnd; plvhti : LPLVHITTESTINFO):cint;
-
-CONST
-         LVM_SETCOLUMNORDERARRAY        = (LVM_FIRST + 58);
-
-// Macro 102
-Function ListView_SetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
-
-CONST
-         LVM_GETCOLUMNORDERARRAY        = (LVM_FIRST + 59);
-
-// Macro 103
-Function ListView_GetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
-
-
-CONST
-         LVM_SETHOTITEM                 = (LVM_FIRST + 60);
-
-// Macro 104
-Function ListView_SetHotItem( hwnd : hwnd; i : WPARAM):cint;
-
-CONST
-         LVM_GETHOTITEM                 = (LVM_FIRST + 61);
-
-// Macro 105
-Function ListView_GetHotItem( hwnd : hwnd):cint;
-
-CONST
-         LVM_SETHOTCURSOR               = (LVM_FIRST + 62);
-
-// Macro 106
-Function ListView_SetHotCursor( hwnd : hwnd; hcur : LPARAM):HCURSOR;
-
-CONST
-         LVM_GETHOTCURSOR               = (LVM_FIRST + 63);
-
-// Macro 107
-Function ListView_GetHotCursor( hwnd : hwnd):HCURSOR;
-
-CONST
-         LVM_APPROXIMATEVIEWRECT        = (LVM_FIRST + 64);
-
-// Macro 108
-Function ListView_ApproximateViewRect( hwnd : hwnd; iWidth, iHeight, iCount : cint ):DWORD;
-
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-{$ifdef ie4plus}
-
-CONST
-         LV_MAX_WORKAREAS               = 16;
-         LVM_SETWORKAREAS               = (LVM_FIRST + 65);
-
-// Macro 109
-Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var  prc : RECT ):BOOL;inline;
-Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint;  prc : PRECT ):BOOL;inline;
-
-CONST
-         LVM_GETWORKAREAS               = (LVM_FIRST + 70);
-
-// Macro 110
-Function ListView_GetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var  prc : RECT ):BOOL;
-
-CONST
-         LVM_GETNUMBEROFWORKAREAS       = (LVM_FIRST + 73);
-
-// Macro 111
-Function ListView_GetNumberOfWorkAreas( hwnd : hwnd;var  pnWorkAreas : UINT ):BOOL;
-
-CONST
-         LVM_GETSELECTIONMARK           = (LVM_FIRST + 66);
-
-// Macro 112
-Function ListView_GetSelectionMark( hwnd : hwnd):cint;
-
-CONST
-         LVM_SETSELECTIONMARK           = (LVM_FIRST + 67);
-
-// Macro 113
-Function ListView_SetSelectionMark( hwnd : hwnd; i : LPARAM):cint;
-
-CONST
-         LVM_SETHOVERTIME               = (LVM_FIRST + 71);
-
-// Macro 114
-Function ListView_SetHoverTime( hwndLV : hwnd; dwHoverTimeMs : LPARAM):DWORD;
-
-CONST
-         LVM_GETHOVERTIME               = (LVM_FIRST + 72);
-
-// Macro 115
-Function ListView_GetHoverTime( hwndLV : hwnd):DWORD;
-
-CONST
-         LVM_SETTOOLTIPS                = (LVM_FIRST + 74);
-
-// Macro 116
-Function ListView_SetToolTips( hwndLV : hwnd; hwndNewHwnd : WPARAM):HWND;
-
-CONST
-         LVM_GETTOOLTIPS                = (LVM_FIRST + 78);
-
-// Macro 117
-Function ListView_GetToolTips( hwndLV : hwnd):HWND;
-
-CONST
-         LVM_SORTITEMSEX                = (LVM_FIRST + 81);
-
-// Macro 118
-Function ListView_SortItemsEx( hwndLV : hwnd; _pfnCompare : PFNLVCOMPARE; _lPrm : LPARAM):BOOL;
-
-TYPE
-
-         tagLVBKIMAGEA        = Record
-                                 ulFlags      : ULONG;          // LVBKIF_*
-                                 hbm          : HBITMAP;
-                                 pszImage     : LPSTR;
-                                 cchImageMax  : UINT;
-                                 xOffsetPercent : cint;
-                                 yOffsetPercent : cint;
-                                 END;
-         LVBKIMAGEA           = tagLVBKIMAGEA;
-         LPLVBKIMAGEA         = ^tagLVBKIMAGEA;
-         TLVBKIMAGEA          = tagLVBKIMAGEA;
-         PLVBKIMAGEA          = ^tagLVBKIMAGEA;
-
-         tagLVBKIMAGEW        = Record
-                                 ulFlags      : ULONG;          // LVBKIF_*
-                                 hbm          : HBITMAP;
-                                 pszImage     : LPWSTR;
-                                 cchImageMax  : UINT;
-                                 xOffsetPercent : cint;
-                                 yOffsetPercent : cint;
-                                 END;
-         LVBKIMAGEW           = tagLVBKIMAGEW;
-         LPLVBKIMAGEW         = ^tagLVBKIMAGEW;
-         TLVBKIMAGEW          = tagLVBKIMAGEW;
-         PLVBKIMAGEW          = ^tagLVBKIMAGEW;
-
-CONST
-         LVBKIF_SOURCE_NONE             = $00000000;
-         LVBKIF_SOURCE_HBITMAP          = $00000001;
-         LVBKIF_SOURCE_URL              = $00000002;
-         LVBKIF_SOURCE_MASK             = $00000003;
-         LVBKIF_STYLE_NORMAL            = $00000000;
-         LVBKIF_STYLE_TILE              = $00000010;
-         LVBKIF_STYLE_MASK              = $00000010;
-{$ifdef win32xp}
-         LVBKIF_FLAG_TILEOFFSET         = $00000100;
-         LVBKIF_TYPE_WATERMARK          = $10000000;
-{$ENDIF}
-
-         LVM_SETBKIMAGEA                = (LVM_FIRST + 68);
-         LVM_SETBKIMAGEW                = (LVM_FIRST + 138);
-         LVM_GETBKIMAGEA                = (LVM_FIRST + 69);
-         LVM_GETBKIMAGEW                = (LVM_FIRST + 139);
-
-{$ifdef win32xp}
-         LVM_SETSELECTEDCOLUMN          = (LVM_FIRST + 140);
-
-// Macro 119
-Procedure ListView_SetSelectedColumn( hwnd : hwnd; iCol : WPARAM);
-
-CONST
-         LVM_SETTILEWIDTH               = (LVM_FIRST + 141);
-
-// Macro 120
-Procedure ListView_SetTileWidth( hwnd : hwnd; cpWidth : WPARAM);
-
-CONST
-         LV_VIEW_ICON                   = $0000;
-         LV_VIEW_DETAILS                = $0001;
-         LV_VIEW_SMALLICON              = $0002;
-         LV_VIEW_LIST                   = $0003;
-         LV_VIEW_TILE                   = $0004;
-         LV_VIEW_MAX                    = $0004;
-         LVM_SETVIEW                    = (LVM_FIRST + 142);
-
-// Macro 121
-Function ListView_SetView( hwnd : hwnd; iView : DWORD):DWORD;
-
-CONST
-         LVM_GETVIEW                    = (LVM_FIRST + 143);
-
-// Macro 122
-Function ListView_GetView( hwnd : hwnd):DWORD;
-
-CONST
-         LVGF_NONE                      = $00000000;
-         LVGF_HEADER                    = $00000001;
-         LVGF_FOOTER                    = $00000002;
-         LVGF_STATE                     = $00000004;
-         LVGF_ALIGN                     = $00000008;
-         LVGF_GROUPID                   = $00000010;
-
-         LVGS_NORMAL                    = $00000000;
-         LVGS_COLLAPSED                 = $00000001;
-         LVGS_HIDDEN                    = $00000002;
-
-         LVGA_HEADER_LEFT               = $00000001;
-         LVGA_HEADER_CENTER             = $00000002;
-         LVGA_HEADER_RIGHT              = $00000004;          // Don't forget to validate exclusivity
-         LVGA_FOOTER_LEFT               = $00000008;
-         LVGA_FOOTER_CENTER             = $00000010;
-         LVGA_FOOTER_RIGHT              = $00000020;          // Don't forget to validate exclusivity
-
-TYPE
-
-         tagLVGROUP           = Record
-                                 cbSize       : UINT;
-                                 mask         : UINT;
-                                 pszHeader    : LPWSTR;
-                                 cchHeader    : cint;
-                                 pszFooter    : LPWSTR;
-                                 cchFooter    : cint;
-                                 iGroupId     : cint;
-                                 stateMask    : UINT;
-                                 state        : UINT;
-                                 uAlign       : UINT;
-                                 END;
-         LVGROUP              = tagLVGROUP;
-         PLVGROUP             = ^tagLVGROUP;
-         TLVGROUP             = tagLVGROUP;
-
-
-CONST
-         LVM_INSERTGROUP                = (LVM_FIRST + 145);
-
-// Macro 123
-Procedure ListView_InsertGroup( hwnd : hwnd; index : WPARAM; pgrp : LPARAM);
-
-CONST
-         LVM_SETGROUPINFO               = (LVM_FIRST + 147);
-
-// Macro 124
-Procedure ListView_SetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
-
-CONST
-         LVM_GETGROUPINFO               = (LVM_FIRST + 149);
-
-// Macro 125
-Procedure ListView_GetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
-
-CONST
-         LVM_REMOVEGROUP                = (LVM_FIRST + 150);
-
-// Macro 126
-Procedure ListView_RemoveGroup( hwnd : hwnd; iGroupId : WPARAM);
-
-CONST
-         LVM_MOVEGROUP                  = (LVM_FIRST + 151);
-
-// Macro 127
-Procedure ListView_MoveGroup( hwnd : hwnd; iGroupId : WPARAM; toIndex : LPARAM);
-
-CONST
-         LVM_MOVEITEMTOGROUP            = (LVM_FIRST + 154);
-
-// Macro 128
-Procedure ListView_MoveItemToGroup( hwnd : hwnd; idItemFrom : WPARAM; idGroupTo : LPARAM);
-
-CONST
-         LVGMF_NONE                     = $00000000;
-         LVGMF_BORDERSIZE               = $00000001;
-         LVGMF_BORDERCOLOR              = $00000002;
-         LVGMF_TEXTCOLOR                = $00000004;
-
-TYPE
-
-         tagLVGROUPMETRICS    = Record
-                                 cbSize       : UINT;
-                                 mask         : UINT;
-                                 Left         : UINT;
-                                 Top          : UINT;
-                                 Right        : UINT;
-                                 Bottom       : UINT;
-                                 crLeft       : COLORREF;
-                                 crTop        : COLORREF;
-                                 crRight      : COLORREF;
-                                 crBottom     : COLORREF;
-                                 crHeader     : COLORREF;
-                                 crFooter     : COLORREF;
-                                 END;
-         LVGROUPMETRICS       = tagLVGROUPMETRICS;
-         PLVGROUPMETRICS      = ^tagLVGROUPMETRICS;
-         TLVGROUPMETRICS      = tagLVGROUPMETRICS;
-
-CONST
-         LVM_SETGROUPMETRICS            = (LVM_FIRST + 155);
-
-// Macro 129
-Procedure ListView_SetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
-
-CONST
-         LVM_GETGROUPMETRICS            = (LVM_FIRST + 156);
-
-// Macro 130
-Procedure ListView_GetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
-
-CONST
-         LVM_ENABLEGROUPVIEW            = (LVM_FIRST + 157);
-
-// Macro 131
-Procedure ListView_EnableGroupView( hwnd : hwnd; fEnable : WPARAM);
-
-TYPE
-         PFNLVGROUPCOMPARE = function(i,j:cint;k:pointer):cint; StdCall;
-
-CONST
-         LVM_SORTGROUPS                 = (LVM_FIRST + 158);
-
-// Macro 132
-Procedure ListView_SortGroups( hwnd : hwnd; _pfnGroupCompate : WPARAM; _plv : LPARAM);
-
-TYPE
-
-         tagLVINSERTGROUPSORTED = Record
-                                   pfnGroupCompare : PFNLVGROUPCOMPARE;
-                                   pvData       : Pointer;
-                                   lvGroup      : LVGROUP;
-                                   END;
-         LVINSERTGROUPSORTED  = tagLVINSERTGROUPSORTED;
-         PLVINSERTGROUPSORTED = ^tagLVINSERTGROUPSORTED;
-         TLVINSERTGROUPSORTED = tagLVINSERTGROUPSORTED;
-
-
-CONST
-         LVM_INSERTGROUPSORTED          = (LVM_FIRST + 159);
-
-// Macro 133
-Procedure ListView_InsertGroupSorted( hwnd : hwnd; structInsert : WPARAM);
-
-CONST
-         LVM_REMOVEALLGROUPS            = (LVM_FIRST + 160);
-
-// Macro 134
-Procedure ListView_RemoveAllGroups( hwnd : hwnd);
-
-CONST
-         LVM_HASGROUP                   = (LVM_FIRST + 161);
-
-// Macro 135
-Procedure ListView_HasGroup( hwnd : hwnd; dwGroupId : DWORD );
-
-CONST
-         LVTVIF_AUTOSIZE                = $00000000;
-         LVTVIF_FIXEDWIDTH              = $00000001;
-         LVTVIF_FIXEDHEIGHT             = $00000002;
-         LVTVIF_FIXEDSIZE               = $00000003;
-
-         LVTVIM_TILESIZE                = $00000001;
-         LVTVIM_COLUMNS                 = $00000002;
-         LVTVIM_LABELMARGIN             = $00000004;
-
-TYPE
-
-         tagLVTILEVIEWINFO    = Record
-                                 cbSize       : UINT;
-                                 dwMask       : DWORD;          //LVTVIM_*
-                                 dwFlags      : DWORD;          //LVTVIF_*
-                                 sizeTile     : SIZE;
-                                 cLines       : cint;
-                                 rcLabelMargin : RECT;
-                                 END;
-         LVTILEVIEWINFO       = tagLVTILEVIEWINFO;
-         PLVTILEVIEWINFO      = ^tagLVTILEVIEWINFO;
-         TLVTILEVIEWINFO      = tagLVTILEVIEWINFO;
-
-
-         tagLVTILEINFO        = Record
-                                 cbSize       : UINT;
-                                 iItem        : cint;
-                                 cColumns     : UINT;
-                                 puColumns    : PUINT;
-                                 END;
-         LVTILEINFO           = tagLVTILEINFO;
-         PLVTILEINFO          = ^tagLVTILEINFO;
-         TLVTILEINFO          = tagLVTILEINFO;
-
-
-CONST
-         LVM_SETTILEVIEWINFO            = (LVM_FIRST + 162);
-
-// Macro 136
-Procedure ListView_SetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
-
-CONST
-         LVM_GETTILEVIEWINFO            = (LVM_FIRST + 163);
-
-// Macro 137
-Procedure ListView_GetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
-
-CONST
-         LVM_SETTILEINFO                = (LVM_FIRST + 164);
-
-// Macro 138
-Procedure ListView_SetTileInfo( hwnd : hwnd; pti : LPARAM);
-
-CONST
-         LVM_GETTILEINFO                = (LVM_FIRST + 165);
-
-// Macro 139
-Procedure ListView_GetTileInfo( hwnd : hwnd; pti : LPARAM);
-
-TYPE
-
-         LVINSERTMARK         = Record
-                                 cbSize       : UINT;
-                                 dwFlags      : DWORD;
-                                 iItem        : cint;
-                                 dwReserved   : DWORD;
-                                 END;
-         LPLVINSERTMARK       = ^LVINSERTMARK;
-         TLVINSERTMARK        = LVINSERTMARK;
-         PLVINSERTMARK        = ^LVINSERTMARK;
-
-CONST
-         LVIM_AFTER                     = $00000001;          // TRUE = insert After iItem, otherwise before
-
-         LVM_SETINSERTMARK              = (LVM_FIRST + 166);
-
-// Macro 140
-Function ListView_SetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
-
-CONST
-         LVM_GETINSERTMARK              = (LVM_FIRST + 167);
-
-// Macro 141
-Function ListView_GetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
-
-CONST
-         LVM_INSERTMARKHITTEST          = (LVM_FIRST + 168);
-
-// Macro 142
-Function ListView_InsertMarkHitTest( hwnd : hwnd; point : LPPOINT; lvim : LPLVINSERTMARK):cint;
-
-CONST
-         LVM_GETINSERTMARKRECT          = (LVM_FIRST + 169);
-
-// Macro 143
-Function ListView_GetInsertMarkRect( hwnd : hwnd; rc : LPRECT):cint;
-
-CONST
-         LVM_SETINSERTMARKCOLOR         = (LVM_FIRST + 170);
-
-// Macro 144
-Function ListView_SetInsertMarkColor( hwnd : hwnd; color : COLORREF):COLORREF;
-
-CONST
-         LVM_GETINSERTMARKCOLOR         = (LVM_FIRST + 171);
-
-// Macro 145
-Function ListView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
-
-TYPE
-
-         tagLVSETINFOTIP      = Record
-                                 cbSize       : UINT;
-                                 dwFlags      : DWORD;
-                                 pszText      : LPWSTR;
-                                 iItem        : cint;
-                                 iSubItem     : cint;
-                                 END;
-         LVSETINFOTIP         = tagLVSETINFOTIP;
-         PLVSETINFOTIP        = ^tagLVSETINFOTIP;
-         TLVSETINFOTIP        = tagLVSETINFOTIP;
-
-
-CONST
-         LVM_SETINFOTIP                 = (LVM_FIRST + 173);
-
-// Macro 146
-Function ListView_SetInfoTip( hwndLV : hwnd; plvInfoTip : LPARAM):BOOL;
-
-CONST
-         LVM_GETSELECTEDCOLUMN          = (LVM_FIRST + 174);
-
-// Macro 147
-Function ListView_GetSelectedColumn( hwnd : hwnd):UINT;
-
-CONST
-         LVM_ISGROUPVIEWENABLED         = (LVM_FIRST + 175);
-
-// Macro 148
-Function ListView_IsGroupViewEnabled( hwnd : hwnd):BOOL;
-
-CONST
-         LVM_GETOUTLINECOLOR            = (LVM_FIRST + 176);
-
-// Macro 149
-Function ListView_GetOutlineColor( hwnd : hwnd):COLORREF;
-
-CONST
-         LVM_SETOUTLINECOLOR            = (LVM_FIRST + 177);
-
-// Macro 150
-Function ListView_SetOutlineColor( hwnd : hwnd; color : COLORREF):COLORREF;
-
-CONST
-         LVM_CANCELEDITLABEL            = (LVM_FIRST + 179);
-
-// Macro 151
-Procedure ListView_CancelEditLabel( hwnd : hwnd);
-
-// These next to methods make it easy to identify an item that can be repositioned
-// within listview. For example: Many developers use the lParam to store an identifier that is
-// unique. Unfortunatly, in order to find this item, they have to iterate through all of the items
-// in the listview. Listview will maintain a unique identifier.  The upper bound is the size of a DWORD.
-
-CONST
-         LVM_MAPINDEXTOID               = (LVM_FIRST + 180);
-
-// Macro 152
-Function ListView_MapIndexToID( hwnd : hwnd; index : WPARAM):UINT;
-
-CONST
-         LVM_MAPIDTOINDEX               = (LVM_FIRST + 181);
-
-// Macro 153
-Function ListView_MapIDToIndex( hwnd : hwnd; id : WPARAM):UINT;
-{$ENDIF}
-
-Type
-
-{$IFDEF UNICODE}
-         LVBKIMAGE           = LVBKIMAGEW;
-         LPLVBKIMAGE         = LPLVBKIMAGEW;
-CONST
-         LVM_SETBKIMAGE      = LVM_SETBKIMAGEW;
-         LVM_GETBKIMAGE      = LVM_GETBKIMAGEW;
-{$ELSE}
-         LVBKIMAGE           = LVBKIMAGEA;
-         LPLVBKIMAGE         = LPLVBKIMAGEA;
-CONST
-         LVM_SETBKIMAGE      = LVM_SETBKIMAGEA;
-         LVM_GETBKIMAGE      = LVM_GETBKIMAGEA;
-{$ENDIF}
-
-
-// Macro 154
-Function ListView_SetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
-
-// Macro 155
-Function ListView_GetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
-
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-TYPE
-
-         tagNMLISTVIEW        = Record
-                                 hdr          : NMHDR;
-                                 iItem        : cint;
-                                 iSubItem     : cint;
-                                 uNewState    : UINT;
-                                 uOldState    : UINT;
-                                 uChanged     : UINT;
-                                 ptAction     : POINT;
-                                 lParam       : LPARAM;
-                                 END;
-         NMLISTVIEW           = tagNMLISTVIEW;
-         LPNMLISTVIEW         = ^tagNMLISTVIEW;
-         TNMLISTVIEW          = tagNMLISTVIEW;
-         PNMLISTVIEW          = ^tagNMLISTVIEW;
-
-{$ifdef IE4plus}
-// NMITEMACTIVATE is used instead of NMLISTVIEW in IE >= 0x400
-// therefore all the fields are the same except for extra uKeyFlags
-// they are used to store key flags at the time of the single click with
-// delayed activation - because by the time the timer goes off a user may
-// not hold the keys (shift, ctrl) any more
-         tagNMITEMACTIVATE    = Record
-                                 hdr          : NMHDR;
-                                 iItem        : cint;
-                                 iSubItem     : cint;
-                                 uNewState    : UINT;
-                                 uOldState    : UINT;
-                                 uChanged     : UINT;
-                                 ptAction     : POINT;
-                                 lParam       : LPARAM;
-                                 uKeyFlags    : UINT;
-                                 END;
-         NMITEMACTIVATE       = tagNMITEMACTIVATE;
-         LPNMITEMACTIVATE     = ^tagNMITEMACTIVATE;
-         TNMITEMACTIVATE      = tagNMITEMACTIVATE;
-         PNMITEMACTIVATE      = ^tagNMITEMACTIVATE;
-
-// key flags stored in uKeyFlags
-
-CONST
-         LVKF_ALT                       = $0001;
-         LVKF_CONTROL                   = $0002;
-         LVKF_SHIFT                     = $0004;
-{$ENDIF} //(_WIN32_IE >= 0x0400)
-Type
-
-{$ifdef ie3plus}
-         LPNM_LISTVIEW       = LPNMLISTVIEW;
-         NM_LISTVIEW         = NMLISTVIEW;
-{$ELSE}
-         tagNMLISTVIEW       = _NM_LISTVIEW;
-         NMLISTVIEW          = NM_LISTVIEW;
-         LPNMLISTVIEW        = LPNM_LISTVIEW;
-{$ENDIF}
-
-
-{$ifdef ie3plus}
-// #define NMLVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMLVCUSTOMDRW, clrTextBk)
-
-TYPE
-
-         tagNMLVCUSTOMDRAW    = Record
-                                 nmcd         : NMCUSTOMDRAW;
-                                 clrText      : COLORREF;
-                                 clrTextBk    : COLORREF;
-{$ifdef ie4plus}
-                                 iSubItem     : cint;
-{$ENDIF}
-{$ifdef win32xp}
-                                 dwItemType   : DWORD;
-
-                                 clrFace      : COLORREF;
-                                 iIconEffect  : cint;
-                                 iIconPhase   : cint;
-                                 iPartId      : cint;
-                                 iStateId     : cint;
-
-                                 rcText       : RECT;
-                                 uAlign       : UINT;          // Alignment. Use LVGA_HEADER_CENTER, LVGA_HEADER_RIGHT, LVGA_HEADER_LEFT
-{$ENDIF}
-                                 END;
-         NMLVCUSTOMDRAW       = tagNMLVCUSTOMDRAW;
-         LPNMLVCUSTOMDRAW     = ^tagNMLVCUSTOMDRAW;
-         TNMLVCUSTOMDRAW      = tagNMLVCUSTOMDRAW;
-         PNMLVCUSTOMDRAW      = ^tagNMLVCUSTOMDRAW;
-
-
-// dwItemType
-
-CONST
-         LVCDI_ITEM                     = $00000000;
-         LVCDI_GROUP                    = $00000001;
-
-// ListView custom draw return values
-         LVCDRF_NOSELECT                = $00010000;
-         LVCDRF_NOGROUPFRAME            = $00020000;
-
-TYPE
-
-         tagNMLVCACHEHINT     = Record
-                                 hdr          : NMHDR;
-                                 iFrom        : cint;
-                                 iTo          : cint;
-                                 END;
-         NMLVCACHEHINT        = tagNMLVCACHEHINT;
-         LPNMLVCACHEHINT      = ^tagNMLVCACHEHINT;
-         TNMLVCACHEHINT       = tagNMLVCACHEHINT;
-         PNMLVCACHEHINT       = ^tagNMLVCACHEHINT;
-
-
-         LPNM_CACHEHINT      = LPNMLVCACHEHINT;
-         PNM_CACHEHINT       = LPNMLVCACHEHINT;
-
-         NM_CACHEHINT        = NMLVCACHEHINT;
-
-         tagNMLVFINDITEMA     = Record
-                                 hdr          : NMHDR;
-                                 iStart       : cint;
-                                 lvfi         : LVFINDINFOA;
-                                 END;
-         NMLVFINDITEMA        = tagNMLVFINDITEMA;
-         LPNMLVFINDITEMA      = ^tagNMLVFINDITEMA;
-         TNMLVFINDITEMA       = tagNMLVFINDITEMA;
-         PNMLVFINDITEMA       = ^tagNMLVFINDITEMA;
-
-
-         tagNMLVFINDITEMW     = Record
-                                 hdr          : NMHDR;
-                                 iStart       : cint;
-                                 lvfi         : LVFINDINFOW;
-                                 END;
-         NMLVFINDITEMW        = tagNMLVFINDITEMW;
-         LPNMLVFINDITEMW      = ^tagNMLVFINDITEMW;
-         TNMLVFINDITEMW       = tagNMLVFINDITEMW;
-         PNMLVFINDITEMW       = ^tagNMLVFINDITEMW;
-
-
-         PNM_FINDITEMA       = LPNMLVFINDITEMA;
-         LPNM_FINDITEMA      = LPNMLVFINDITEMA;
-         NM_FINDITEMA        = NMLVFINDITEMA;
-
-         PNM_FINDITEMW       = LPNMLVFINDITEMW;
-         LPNM_FINDITEMW      = LPNMLVFINDITEMW;
-         NM_FINDITEMW        = NMLVFINDITEMW;
-
-{$IFDEF UNICODE}
-         PNM_FINDITEM        = PNM_FINDITEMW;
-         LPNM_FINDITEM       = LPNM_FINDITEMW;
-         NM_FINDITEM         = NM_FINDITEMW;
-         NMLVFINDITEM        = NMLVFINDITEMW;
-         LPNMLVFINDITEM      = LPNMLVFINDITEMW;
-{$ELSE}
-         PNM_FINDITEM        = PNM_FINDITEMA;
-         LPNM_FINDITEM       = LPNM_FINDITEMA;
-         NM_FINDITEM         = NM_FINDITEMA;
-         NMLVFINDITEM        = NMLVFINDITEMA;
-         LPNMLVFINDITEM      = LPNMLVFINDITEMA;
-{$ENDIF}
-         PNMLVFindItem       = LPNMLVFINDITEM;
-         TNMLVFindItem       = NMLVFINDITEM;
-
-         tagNMLVODSTATECHANGE = Record
-                                 hdr          : NMHDR;
-                                 iFrom        : cint;
-                                 iTo          : cint;
-                                 uNewState    : UINT;
-                                 uOldState    : UINT;
-                                 END;
-         NMLVODSTATECHANGE    = tagNMLVODSTATECHANGE;
-         LPNMLVODSTATECHANGE  = ^tagNMLVODSTATECHANGE;
-         TNMLVODSTATECHANGE   = tagNMLVODSTATECHANGE;
-         PNMLVODSTATECHANGE   = ^tagNMLVODSTATECHANGE;
-
-
-         PNM_ODSTATECHANGE   = LPNMLVODSTATECHANGE;
-         LPNM_ODSTATECHANGE  = LPNMLVODSTATECHANGE;
-
-
-         NM_ODSTATECHANGE               = NMLVODSTATECHANGE;
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-CONST
-         LVN_ITEMCHANGING               = (LVN_FIRST-0);
-         LVN_ITEMCHANGED                = (LVN_FIRST-1);
-         LVN_INSERTITEM                 = (LVN_FIRST-2);
-         LVN_DELETEITEM                 = (LVN_FIRST-3);
-         LVN_DELETEALLITEMS             = (LVN_FIRST-4);
-         LVN_BEGINLABELEDITA            = (LVN_FIRST-5);
-         LVN_BEGINLABELEDITW            = (LVN_FIRST-75);
-         LVN_ENDLABELEDITA              = (LVN_FIRST-6);
-         LVN_ENDLABELEDITW              = (LVN_FIRST-76);
-         LVN_COLUMNCLICK                = (LVN_FIRST-8);
-         LVN_BEGINDRAG                  = (LVN_FIRST-9);
-         LVN_BEGINRDRAG                 = (LVN_FIRST-11);
-
-{$ifdef ie3plus}
-         LVN_ODCACHEHINT                = (LVN_FIRST-13);
-         LVN_ODFINDITEMA                = (LVN_FIRST-52);
-         LVN_ODFINDITEMW                = (LVN_FIRST-79);
-
-         LVN_ITEMACTIVATE               = (LVN_FIRST-14);
-         LVN_ODSTATECHANGED             = (LVN_FIRST-15);
-
-Const
-{$IFDEF UNICODE}
-         LVN_ODFINDITEM      = LVN_ODFINDITEMW;
-{$ELSE}
-         LVN_ODFINDITEM      = LVN_ODFINDITEMA;
-{$ENDIF}
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-
-CONST
-{$ifdef ie4plus}
-         LVN_HOTTRACK                   = (LVN_FIRST-21);
-{$ENDIF}
-
-         LVN_GETDISPINFOA               = (LVN_FIRST-50);
-         LVN_GETDISPINFOW               = (LVN_FIRST-77);
-         LVN_SETDISPINFOA               = (LVN_FIRST-51);
-         LVN_SETDISPINFOW               = (LVN_FIRST-78);
-
-Const
-{$IFDEF UNICODE}
-         LVN_BEGINLABELEDIT  = LVN_BEGINLABELEDITW;
-         LVN_ENDLABELEDIT    = LVN_ENDLABELEDITW;
-         LVN_GETDISPINFO     = LVN_GETDISPINFOW;
-         LVN_SETDISPINFO     = LVN_SETDISPINFOW;
-{$ELSE}
-         LVN_BEGINLABELEDIT  = LVN_BEGINLABELEDITA;
-         LVN_ENDLABELEDIT    = LVN_ENDLABELEDITA;
-         LVN_GETDISPINFO     = LVN_GETDISPINFOA;
-         LVN_SETDISPINFO     = LVN_SETDISPINFOA;
-{$ENDIF}
-
-CONST
-         LVIF_DI_SETITEM                = $1000;
-
-TYPE
-
-         tagLVDISPINFO       = Record
-                                 hdr          : NMHDR;
-                                 item         : LVITEMA;
-                                 END;
-         NMLVDISPINFOA       = tagLVDISPINFO;
-         LPNMLVDISPINFOA     = ^tagLVDISPINFO;
-         TLVDISPINFO         = tagLVDISPINFO;
-         PLVDISPINFO         = ^tagLVDISPINFO;
-
-
-         tagLVDISPINFOW      = Record
-                                 hdr          : NMHDR;
-                                 item         : LVITEMW;
-                                 END;
-         NMLVDISPINFOW       = tagLVDISPINFOW;
-         LPNMLVDISPINFOW     = ^tagLVDISPINFOW;
-         TLVDISPINFOW        = tagLVDISPINFOW;
-         PLVDISPINFOW        = ^tagLVDISPINFOW;
-
-
-{$IFDEF UNICODE}
-         NMLVDISPINFO        = NMLVDISPINFOW;
-{$ELSE}
-         NMLVDISPINFO        = NMLVDISPINFOA;
-{$ENDIF}
-
-{$ifdef ie3plus}
-         LV_DISPINFOA        = NMLVDISPINFOA;
-         LV_DISPINFOW        = NMLVDISPINFOW;
-{$ELSE}
-         tagLVDISPINFO       = _LV_DISPINFO;
-         NMLVDISPINFOA       = LV_DISPINFOA;
-         tagLVDISPINFOW      = _LV_DISPINFOW;
-         NMLVDISPINFOW       = LV_DISPINFOW;
-{$ENDIF}
-
-
-         LV_DISPINFO         = NMLVDISPINFO;
-
-CONST
-         LVN_KEYDOWN                    = (LVN_FIRST-55);
-
-
-
-{$IFDEF _WIN32}
-// include <pshpack1.h>
-{$ENDIF}
-
-TYPE
-         tagLVKEYDOWN         = Record
-                                 hdr          : NMHDR;
-                                 wVKey        : WORD;
-                                 flags        : UINT;
-                                 END;
-         NMLVKEYDOWN          = tagLVKEYDOWN;
-         LPNMLVKEYDOWN        = ^tagLVKEYDOWN;
-         TLVKEYDOWN           = tagLVKEYDOWN;
-         PLVKEYDOWN           = ^tagLVKEYDOWN;
-
-
-{$IFDEF _WIN32}
-//include <poppack.h>
-{$ENDIF}
-
-{$ifdef ie3plus}
-CONST
-         LVN_MARQUEEBEGIN               = (LVN_FIRST-56);
-{$ENDIF}
-
-{$ifdef ie4plus}
-TYPE
-
-         tagNMLVGETINFOTIPA   = Record
-                                 hdr          : NMHDR;
-                                 dwFlags      : DWORD;
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 iItem        : cint;
-                                 iSubItem     : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         NMLVGETINFOTIPA      = tagNMLVGETINFOTIPA;
-         LPNMLVGETINFOTIPA    = ^tagNMLVGETINFOTIPA;
-         TNMLVGETINFOTIPA     = tagNMLVGETINFOTIPA;
-         PNMLVGETINFOTIPA     = ^tagNMLVGETINFOTIPA;
-
-
-         tagNMLVGETINFOTIPW   = Record
-                                 hdr          : NMHDR;
-                                 dwFlags      : DWORD;
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 iItem        : cint;
-                                 iSubItem     : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         NMLVGETINFOTIPW      = tagNMLVGETINFOTIPW;
-         LPNMLVGETINFOTIPW    = ^tagNMLVGETINFOTIPW;
-         TNMLVGETINFOTIPW     = tagNMLVGETINFOTIPW;
-         PNMLVGETINFOTIPW     = ^tagNMLVGETINFOTIPW;
-
-{$ifdef ie3plus}
-         LV_KEYDOWN                     = NMLVKEYDOWN;
-{$ELSE}
-         tagLVKEYDOWN                   = _LV_KEYDOWN;
-         NMLVKEYDOWN                    = LV_KEYDOWN;
-{$ENDIF}
-
-
-// NMLVGETINFOTIPA.dwFlag values
-
-CONST
-         LVGIT_UNFOLDED                 = $0001;
-
-         LVN_GETINFOTIPA                = (LVN_FIRST-57);
-         LVN_GETINFOTIPW                = (LVN_FIRST-58);
-
-Const
-{$IFDEF UNICODE}
-         LVN_GETINFOTIP      = LVN_GETINFOTIPW;
-type
-         NMLVGETINFOTIP      = NMLVGETINFOTIPW;
-         LPNMLVGETINFOTIP    = LPNMLVGETINFOTIPW;
-{$ELSE}
-         LVN_GETINFOTIP      = LVN_GETINFOTIPA;
-type
-         NMLVGETINFOTIP      = NMLVGETINFOTIPA;
-         LPNMLVGETINFOTIP    = LPNMLVGETINFOTIPA;
-{$ENDIF}
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-
-{$ifdef win32xp}
-         tagNMLVSCROLL        = Record
-                                 hdr          : NMHDR;
-                                 dx           : cint;
-                                 dy           : cint;
-                                 END;
-         NMLVSCROLL           = tagNMLVSCROLL;
-         LPNMLVSCROLL         = ^tagNMLVSCROLL;
-         TNMLVSCROLL          = tagNMLVSCROLL;
-         PNMLVSCROLL          = ^tagNMLVSCROLL;
-
-
-CONST
-         LVN_BEGINSCROLL                = (LVN_FIRST-80)          ;
-         LVN_ENDSCROLL                  = (LVN_FIRST-81);
-// {$ENDIF}
-
-{$ENDIF} // NOLISTVIEW
-
-//====== TREEVIEW CONTROL =====================================================
-
-{$IFNDEF NOTREEVIEW}
-
-CONST
-{$IFDEF _WIN32}
-         WC_TREEVIEWA                   = 'SysTreeView32';
-         WC_TREEVIEWW                   = {L}'SysTreeView32';
-
-{$IFDEF UNICODE}
-         WC_TREEVIEW                    = WC_TREEVIEWW;
-{$ELSE}
-         WC_TREEVIEW                    = WC_TREEVIEWA;
-{$ENDIF}
-{$ELSE}
-         WC_TREEVIEW                    = 'SysTreeView';
-{$ENDIF}
-
-// begin_r_commctrl
-
-         TVS_HASBUTTONS                 = $0001;
-         TVS_HASLINES                   = $0002;
-         TVS_LINESATROOT                = $0004;
-         TVS_EDITLABELS                 = $0008;
-         TVS_DISABLEDRAGDROP            = $0010;
-         TVS_SHOWSELALWAYS              = $0020;
-{$ifdef ie3plus}
-         TVS_RTLREADING                 = $0040;
-
-         TVS_NOTOOLTIPS                 = $0080;
-         TVS_CHECKBOXES                 = $0100;
-         TVS_TRACKSELECT                = $0200;
-{$ifdef ie4plus}
-         TVS_SINGLEEXPAND               = $0400;
-         TVS_INFOTIP                    = $0800;
-         TVS_FULLROWSELECT              = $1000;
-         TVS_NOSCROLL                   = $2000;
-         TVS_NONEVENHEIGHT              = $4000;
-{$ENDIF}
-{$ifdef ie5plus}
-         TVS_NOHSCROLL                  = $8000;              // TVS_NOSCROLL overrides this
-{$ENDIF}
-{$ENDIF}
-
-
-// end_r_commctrl
-
-TYPE
-         HTREEITEM           = ^TREEITEM;
-
-CONST
-         TVIF_TEXT                      = $0001;
-         TVIF_IMAGE                     = $0002;
-         TVIF_PARAM                     = $0004;
-         TVIF_STATE                     = $0008;
-         TVIF_HANDLE                    = $0010;
-         TVIF_SELECTEDIMAGE             = $0020;
-         TVIF_CHILDREN                  = $0040;
-{$ifdef ie4plus}
-         TVIF_INTEGRAL                  = $0080;
-{$ENDIF}
-         TVIS_SELECTED                  = $0002;
-         TVIS_CUT                       = $0004;
-         TVIS_DROPHILITED               = $0008;
-         TVIS_BOLD                      = $0010;
-         TVIS_EXPANDED                  = $0020;
-         TVIS_EXPANDEDONCE              = $0040;
-{$ifdef ie3plus}
-         TVIS_EXPANDPARTIAL             = $0080;
-{$ENDIF}
-
-         TVIS_OVERLAYMASK               = $0F00;
-         TVIS_STATEIMAGEMASK            = $F000;
-         TVIS_USERMASK                  = $F000;
-
-         I_CHILDRENCALLBACK             = (-1);
-Type
-         tagTVITEMA           = Record
-                                 mask         : UINT;
-                                 hItem        : HTREEITEM;
-                                 state        : UINT;
-                                 stateMask    : UINT;
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 iSelectedImage : cint;
-                                 cChildren    : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         TVITEMA              = tagTVITEMA;
-         LPTVITEMA            = ^tagTVITEMA;
-         TTVITEMA             = tagTVITEMA;
-         PTVITEMA             = ^tagTVITEMA;
-
-
-         tagTVITEMW           = Record
-                                 mask         : UINT;
-                                 hItem        : HTREEITEM;
-                                 state        : UINT;
-                                 stateMask    : UINT;
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 iSelectedImage : cint;
-                                 cChildren    : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         TVITEMW              = tagTVITEMW;
-         LPTVITEMW            = ^tagTVITEMW;
-         TTVITEMW             = tagTVITEMW;
-         PTVITEMW             = ^tagTVITEMW;
-
-
-{$ifdef ie4plus}
-// only used for Get and Set messages.  no notifies
-         tagTVITEMEXA         = Record
-                                 mask         : UINT;
-                                 hItem        : HTREEITEM;
-                                 state        : UINT;
-                                 stateMask    : UINT;
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 iSelectedImage : cint;
-                                 cChildren    : cint;
-                                 lParam       : LPARAM;
-                                 iIntegral    : cint;
-                                 END;
-         TVITEMEXA            = tagTVITEMEXA;
-         LPTVITEMEXA          = ^tagTVITEMEXA;
-         TTVITEMEXA           = tagTVITEMEXA;
-         PTVITEMEXA           = ^tagTVITEMEXA;
-
-// only used for Get and Set messages.  no notifies
-         tagTVITEMEXW         = Record
-                                 mask         : UINT;
-                                 hItem        : HTREEITEM;
-                                 state        : UINT;
-                                 stateMask    : UINT;
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 iSelectedImage : cint;
-                                 cChildren    : cint;
-                                 lParam       : LPARAM;
-                                 iIntegral    : cint;
-                                 END;
-         TVITEMEXW            = tagTVITEMEXW;
-         LPTVITEMEXW          = ^tagTVITEMEXW;
-         TTVITEMEXW           = tagTVITEMEXW;
-         PTVITEMEXW           = ^tagTVITEMEXW;
-
-
-TYPE
-{$ifdef ie3plus}
-         LPTV_ITEMW          = LPTVITEMW;
-         LPTV_ITEMA          = LPTVITEMA;
-         TV_ITEMW            = TVITEMW;
-         TV_ITEMA            = TVITEMA;
-{$ELSE}
-         tagTVITEMA          = _TV_ITEMA;
-         TVITEMA             = TV_ITEMA;
-         LPTVITEMA           = LPTV_ITEMA;
-         tagTVITEMW          = _TV_ITEMW;
-         TVITEMW             = TV_ITEMW;
-         LPTVITEMW           = LPTV_ITEMW;
-{$ENDIF}
-         TTVItem             = TVITEMA;
-         PTVItem             = LPTVITEMA;
-
-
-
-
-
-{$IFDEF UNICODE}
-         TVITEMEX             = TVITEMEXW;
-         LPTVITEMEX           = LPTVITEMEXW;
-{$ELSE}
-         TVITEMEX             = TVITEMEXA;
-         LPTVITEMEX           = LPTVITEMEXA;
-{$ENDIF} // UNICODE
-
-
-{$ENDIF}
-
-{$IFDEF UNICODE}
-         TVITEM              = TVITEMW;
-         LPTVITEM            = LPTVITEMW;
-{$ELSE}
-         TVITEM              = TVITEMA;
-         LPTVITEM            = LPTVITEMA;
-{$ENDIF}
-
-         LPTV_ITEM           = LPTVITEM;
-         TV_ITEM             = TVITEM;
-
-CONST
-         TVI_ROOT                       = HTREEITEM(ULONG_PTR(-$10000));
-         TVI_FIRST                      = HTREEITEM(ULONG_PTR(-$0FFFF));
-         TVI_LAST                       = HTREEITEM(ULONG_PTR(-$0FFFE));
-         TVI_SORT                       = HTREEITEM(ULONG_PTR(-$0FFFD));
-
-
-
-// #define TVINSERTSTRUCTA_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTA, item)
-// #define TVINSERTSTRUCTW_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTW, item)
-Type
-         tagTVINSERTSTRUCTA   = Record
-                                 hParent      : HTREEITEM;
-                                 hInsertAfter : HTREEITEM;
-{$ifdef ie4plus}
-                                 case boolean of
-                                     false:   (itemex       : TVITEMEXA);
-                                     True:    (item         : TV_ITEMA);
-{$ELSE}
-                                 item         : TV_ITEMA;
-{$ENDIF}
-                                 END;
-         TVINSERTSTRUCTA      = tagTVINSERTSTRUCTA;
-         LPTVINSERTSTRUCTA    = ^tagTVINSERTSTRUCTA;
-         TTVINSERTSTRUCTA     = tagTVINSERTSTRUCTA;
-         PTVINSERTSTRUCTA     = ^tagTVINSERTSTRUCTA;
-         TTVINSERTSTRUCT      = TTVINSERTSTRUCTA;
-         PTVINSERTSTRUCT      = PTVINSERTSTRUCTA;
-
-
-         tagTVINSERTSTRUCTW   = Record
-                                 hParent      : HTREEITEM;
-                                 hInsertAfter : HTREEITEM;
-{$ifdef ie4plus}
-                                 case boolean of
-                                     false:   (itemex       : TVITEMEXW);
-                                     True:    (item         : TV_ITEMW);
-{$ELSE}
-                                 item         : TV_ITEMW;
-{$ENDIF}
-                                 END;
-         TVINSERTSTRUCTW      = tagTVINSERTSTRUCTW;
-         LPTVINSERTSTRUCTW    = ^tagTVINSERTSTRUCTW;
-         TTVINSERTSTRUCTW     = tagTVINSERTSTRUCTW;
-         PTVINSERTSTRUCTW     = ^tagTVINSERTSTRUCTW;
-
-
-{$IFDEF UNICODE}
-         TVINSERTSTRUCT      = TVINSERTSTRUCTW;
-         LPTVINSERTSTRUCT    = LPTVINSERTSTRUCTW;
-//       TVINSERTSTRUCT_V1_SIZE         = TVINSERTSTRUCTW_V1_SIZE;
-{$ELSE}
-         TVINSERTSTRUCT      = TVINSERTSTRUCTA;
-         LPTVINSERTSTRUCT    = LPTVINSERTSTRUCTA;
-//       TVINSERTSTRUCT_V1_SIZE         = TVINSERTSTRUCTA_V1_SIZE;
-{$ENDIF}
-CONST
-         TVM_INSERTITEMA                = (TV_FIRST + 0);
-         TVM_INSERTITEMW                = (TV_FIRST + 50);
-{$IFDEF UNICODE}
-         TVM_INSERTITEM      = TVM_INSERTITEMW;
-{$ELSE}
-         TVM_INSERTITEM      = TVM_INSERTITEMA;
-{$ENDIF}
-
-TYPE
-{$ifdef ie3plus}
-         LPTV_INSERTSTRUCTA  = LPTVINSERTSTRUCTA;
-         LPTV_INSERTSTRUCTW  = LPTVINSERTSTRUCTW;
-         TV_INSERTSTRUCTA    = TVINSERTSTRUCTA;
-         TV_INSERTSTRUCTW    = TVINSERTSTRUCTW;
-{$ELSE}
-         tagTVINSERTSTRUCTA  = _TV_INSERTSTRUCTA;
-         TVINSERTSTRUCTA     = TV_INSERTSTRUCTA;
-         LPTVINSERTSTRUCTA   = LPTV_INSERTSTRUCTA;
-         tagTVINSERTSTRUCTW  = _TV_INSERTSTRUCTW;
-         TVINSERTSTRUCTW     = TV_INSERTSTRUCTW;
-         LPTVINSERTSTRUCTW   = LPTV_INSERTSTRUCTW;
-{$ENDIF}
-
-
-         TV_INSERTSTRUCT     = TVINSERTSTRUCT;
-         LPTV_INSERTSTRUCT   = LPTVINSERTSTRUCT;
-
-
-// Macro 156
-Function TreeView_InsertItem( hwnd : hwnd; lpis : LPTV_INSERTSTRUCT):HTREEITEM;inline;
-Function TreeView_InsertItem( hwnd : hwnd; const lpis : TV_INSERTSTRUCT):HTREEITEM;inline;
-
-CONST
-         TVM_DELETEITEM                 = (TV_FIRST + 1);
-
-// Macro 157
-Function TreeView_DeleteItem( hwnd : hwnd; hitem : HTREEITEM):BOOL;
-
-// Macro 158
-Function TreeView_DeleteAllItems( hwnd : hwnd):BOOL;
-
-CONST
-         TVM_EXPAND                     = (TV_FIRST + 2);
-
-// Macro 159
-Function TreeView_Expand( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
-
-CONST
-         TVE_COLLAPSE                   = $0001;
-         TVE_EXPAND                     = $0002;
-         TVE_TOGGLE                     = $0003;
-{$ifdef ie3plus}
-         TVE_EXPANDPARTIAL              = $4000;
-{$ENDIF}
-         TVE_COLLAPSERESET              = $8000;
-
-
-         TVM_GETITEMRECT                = (TV_FIRST + 4);
-
-// Macro 160
-Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; code : WPARAM; prc : pRECT):BOOL;inline;
-Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; var prc : TRECT;code : Bool):BOOL;inline;
-
-CONST
-         TVM_GETCOUNT                   = (TV_FIRST + 5);
-
-// Macro 161
-Function TreeView_GetCount( hwnd : hwnd):UINT;
-
-CONST
-         TVM_GETINDENT                  = (TV_FIRST + 6);
-
-// Macro 162
-Function TreeView_GetIndent( hwnd : hwnd):UINT;
-
-CONST
-         TVM_SETINDENT                  = (TV_FIRST + 7);
-
-// Macro 163
-Function TreeView_SetIndent( hwnd : hwnd; indent : WPARAM):BOOL;
-
-CONST
-         TVM_GETIMAGELIST               = (TV_FIRST + 8);
-
-// Macro 164
-Function TreeView_GetImageList( hwnd : hwnd; iImage : cint ):HIMAGELIST;
-
-CONST
-         TVSIL_NORMAL                   = 0;
-         TVSIL_STATE                    = 2;
-
-
-         TVM_SETIMAGELIST               = (TV_FIRST + 9);
-
-// Macro 165
-Function TreeView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImage : cint):HIMAGELIST;
-
-CONST
-         TVM_GETNEXTITEM                = (TV_FIRST + 10);
-
-// Macro 166
-Function TreeView_GetNextItem( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):HTREEITEM;
-
-CONST
-         TVGN_ROOT                      = $0000;
-         TVGN_NEXT                      = $0001;
-         TVGN_PREVIOUS                  = $0002;
-         TVGN_PARENT                    = $0003;
-         TVGN_CHILD                     = $0004;
-         TVGN_FIRSTVISIBLE              = $0005;
-         TVGN_NEXTVISIBLE               = $0006;
-         TVGN_PREVIOUSVISIBLE           = $0007;
-         TVGN_DROPHILITE                = $0008;
-         TVGN_CARET                     = $0009;
-
-{$ifdef ie4plus}
-         TVGN_LASTVISIBLE               = $000A;
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-{$ifdef win32xp}
-         TVSI_NOSINGLEEXPAND            = $8000;              // Should not conflict with TVGN flags.
-{$ENDIF}
-
-function TreeView_GetChild(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
-function TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
-function TreeView_GetPrevSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
-function TreeView_GetParent(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
-function TreeView_GetFirstVisible(hwnd:hwnd) : HTREEITEM;inline;
-function TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
-function TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
-function TreeView_GetSelection(hwnd:hwnd) : HTREEITEM;inline;
-function TreeView_GetDropHilight(hwnd:hwnd) : HTREEITEM;inline;
-function TreeView_GetDropHilite(hwnd:hwnd) : HTREEITEM;inline;
-function TreeView_GetRoot(hwnd:hwnd) : HTREEITEM;inline;
-function TreeView_GetLastVisible(hwnd:hwnd) : HTREEITEM;inline;
-
-
-CONST
-         TVM_SELECTITEM                 = (TV_FIRST + 11);
-
-// Macro 178
-Function TreeView_Select( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
-
-// Macro 179
-Procedure TreeView_SelectItem(hwnd:hwnd; hitem:HTREEITEM);
-
-// Macro 180
-Procedure TreeView_SelectDropTarget(hwnd:hwnd; hitem:HTREEITEM);
-
-// Macro 181
-Procedure TreeView_SelectSetFirstVisible(hwnd:hwnd; hitem:HTREEITEM);
-
-CONST
-         TVM_GETITEMA                   = (TV_FIRST + 12);
-         TVM_GETITEMW                   = (TV_FIRST + 62);
-
-{$IFDEF UNICODE}
-
-TYPE
-         TVM_GETITEM         = TVM_GETITEMW;
-{$ELSE}
-         TVM_GETITEM         = TVM_GETITEMA;
-{$ENDIF}
-
-// Macro 182
-
-
-Function TreeView_GetItem( hwnd : hwnd;var  pitem : TV_ITEM ):BOOL;
-
-
-
-
-CONST
-         TVM_SETITEMA                   = (TV_FIRST + 13);
-         TVM_SETITEMW                   = (TV_FIRST + 63);
-
-{$IFDEF UNICODE}
-
-TYPE
-         TVM_SETITEM         = TVM_SETITEMW;
-{$ELSE}
-         TVM_SETITEM         = TVM_SETITEMA;
-{$ENDIF}
-
-// Macro 183
-
-
-Function TreeView_SetItem( hwnd : hwnd;const  pitem : TV_ITEM ):BOOL;
-
-
-CONST
-         TVM_EDITLABELA                 = (TV_FIRST + 14);
-         TVM_EDITLABELW                 = (TV_FIRST + 65);
-{$IFDEF UNICODE}
-
-TYPE
-         TVM_EDITLABEL       = TVM_EDITLABELW;
-{$ELSE}
-         TVM_EDITLABEL       = TVM_EDITLABELA;
-{$ENDIF}
-
-// Macro 184
-
-
-Function TreeView_EditLabel( hwnd : hwnd; hitem : HTREEITEM):HWND;
-
-
-
-
-CONST
-         TVM_GETEDITCONTROL             = (TV_FIRST + 15);
-// Macro 185
-
-
-Function TreeView_GetEditControl( hwnd : hwnd):HWND;
-
-
-
-
-CONST
-         TVM_GETVISIBLECOUNT            = (TV_FIRST + 16);
-// Macro 186
-
-
-Function TreeView_GetVisibleCount( hwnd : hwnd):UINT;
-
-
-
-
-CONST
-         TVM_HITTEST                    = (TV_FIRST + 17);
-
-TYPE
-
-         tagTVHITTESTINFO     = Record
-                                 pt           : POINT;
-                                 flags        : UINT;
-                                 hItem        : HTREEITEM;
-                                 END;
-         TVHITTESTINFO        = tagTVHITTESTINFO;
-         LPTVHITTESTINFO      = ^tagTVHITTESTINFO;
-         TTVHITTESTINFO       = tagTVHITTESTINFO;
-         PTVHITTESTINFO       = ^tagTVHITTESTINFO;
-
-
-{$ifdef ie3plus}
-         LPTV_HITTESTINFO    = LPTVHITTESTINFO;
-         TV_HITTESTINFO                 = TVHITTESTINFO;
-{$ELSE}
-         tagTVHITTESTINFO               = _TV_HITTESTINFO;
-         TVHITTESTINFO                  = TV_HITTESTINFO;
-
-         LPTVHITTESTINFO     = LPTV_HITTESTINFO;
-{$ENDIF}
-
-
-CONST
-         TVHT_NOWHERE                   = $0001;
-         TVHT_ONITEMICON                = $0002;
-         TVHT_ONITEMLABEL               = $0004;
-         TVHT_ONITEM                    = (TVHT_ONITEMICON  OR  TVHT_ONITEMLABEL  OR  TVHT_ONITEMSTATEICON);
-         TVHT_ONITEMINDENT              = $0008;
-         TVHT_ONITEMBUTTON              = $0010;
-         TVHT_ONITEMRIGHT               = $0020;
-         TVHT_ONITEMSTATEICON           = $0040;
-
-         TVHT_ABOVE                     = $0100;
-         TVHT_BELOW                     = $0200;
-         TVHT_TORIGHT                   = $0400;
-         TVHT_TOLEFT                    = $0800;
-
-
-         TVM_CREATEDRAGIMAGE            = (TV_FIRST + 18);
-
-// Macro 187
-Function TreeView_HitTest( hwnd : hwnd; lpht : LPTV_HITTESTINFO):HTREEITEM;inline;
-Function TreeView_HitTest( hwnd : hwnd; var lpht : TV_HITTESTINFO):HTREEITEM;inline;
-
-
-// Macro 188
-
-
-Function TreeView_CreateDragImage( hwnd : hwnd; hitem : HTREEITEM):HIMAGELIST;
-
-
-
-
-CONST
-         TVM_SORTCHILDREN               = (TV_FIRST + 19);
-// Macro 189
-
-
-Function TreeView_SortChildren( hwnd : hwnd; hitem : HTREEITEM; recurse : WPARAM):BOOL;
-
-
-
-
-CONST
-         TVM_ENSUREVISIBLE              = (TV_FIRST + 20);
-// Macro 190
-
-
-Function TreeView_EnsureVisible( hwnd : hwnd; hitem : HTREEITEM):BOOL;
-
-
-
-
-
-CONST
-         TVM_ENDEDITLABELNOW            = (TV_FIRST + 22);
-// Macro 192
-
-
-Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : WPARAM):BOOL;inline;
-Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : Bool):BOOL;inline;
-
-
-
-
-CONST
-         TVM_GETISEARCHSTRINGA          = (TV_FIRST + 23);
-         TVM_GETISEARCHSTRINGW          = (TV_FIRST + 64);
-
-{$IFDEF UNICODE}
-
-TYPE
-         TVM_GETISEARCHSTRING= TVM_GETISEARCHSTRINGW;
-{$ELSE}
-         TVM_GETISEARCHSTRING= TVM_GETISEARCHSTRINGA;
-{$ENDIF}
-
-{$ifdef ie3plus}
-
-CONST
-         TVM_SETTOOLTIPS                = (TV_FIRST + 24);
-// Macro 193
-
-
-Function TreeView_SetToolTips( hwnd : hwnd; hwndTT : WPARAM):HWND;
-
-
-CONST
-         TVM_GETTOOLTIPS                = (TV_FIRST + 25);
-// Macro 194
-
-
-Function TreeView_GetToolTips( hwnd : hwnd):HWND;
-
-{$ENDIF}
-
-// Macro 195
-
-
-Function TreeView_GetISearchString( hwndTV : hwnd; lpsz : LPTSTR):BOOL;
-
-
-{$ifdef ie4plus}
-
-CONST
-         TVM_SETINSERTMARK              = (TV_FIRST + 26);
-// Macro 196
-
-
-Function TreeView_SetInsertMark( hwnd : hwnd; hItem : LPARAM ; fAfter : WPARAM ):BOOL;
-
-
-
-CONST
-         TVM_SETUNICODEFORMAT           = CCM_SETUNICODEFORMAT;
-// Macro 197
-
-
-Function TreeView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
-
-
-
-CONST
-         TVM_GETUNICODEFORMAT           = CCM_GETUNICODEFORMAT;
-// Macro 198
-
-
-Function TreeView_GetUnicodeFormat( hwnd : hwnd):BOOL;
-
-
-{$ENDIF}
-
-{$ifdef ie4plus}
-
-CONST
-         TVM_SETITEMHEIGHT              = (TV_FIRST + 27);
-// Macro 199
-
-
-Function TreeView_SetItemHeight( hwnd : hwnd; iHeight : WPARAM):cint;
-
-
-CONST
-         TVM_GETITEMHEIGHT              = (TV_FIRST + 28);
-// Macro 200
-
-
-Function TreeView_GetItemHeight( hwnd : hwnd):cint;
-
-
-
-CONST
-         TVM_SETBKCOLOR                 = (TV_FIRST + 29);
-// Macro 201
-
-
-Function TreeView_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
-
-
-
-CONST
-         TVM_SETTEXTCOLOR               = (TV_FIRST + 30);
-// Macro 202
-
-
-Function TreeView_SetTextColor( hwnd : hwnd; clr : LPARAM):COLORREF;
-
-
-
-CONST
-         TVM_GETBKCOLOR                 = (TV_FIRST + 31);
-
-// Macro 203
-Function TreeView_GetBkColor( hwnd : hwnd):COLORREF;
-
-
-CONST
-         TVM_GETTEXTCOLOR               = (TV_FIRST + 32);
-
-// Macro 204
-Function TreeView_GetTextColor( hwnd : hwnd):COLORREF;
-
-
-
-CONST
-         TVM_SETSCROLLTIME              = (TV_FIRST + 33);
-
-// Macro 205
-Function TreeView_SetScrollTime( hwnd : hwnd; uTime :wparam ):UINT;
-
-
-
-CONST
-         TVM_GETSCROLLTIME              = (TV_FIRST + 34);
-// Macro 206
-
-
-Function TreeView_GetScrollTime( hwnd : hwnd):UINT;
-
-
-
-
-CONST
-         TVM_SETINSERTMARKCOLOR         = (TV_FIRST + 37);
-// Macro 207
-
-
-Function TreeView_SetInsertMarkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
-
-
-CONST
-         TVM_GETINSERTMARKCOLOR         = (TV_FIRST + 38);
-// Macro 208
-
-
-Function TreeView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
-
-
-{$ENDIF}  // (_WIN32_IE >= 0x0400)
-
-{$ifdef ie5plus}
-// tvm_?etitemstate only uses mask, state and stateMask.
-// so unicode or ansi is irrelevant.
-// Macro 209
-
-Procedure TreeView_SetItemState(hwndTV:HWND;hti:HTreeItem;data:UINT;_mask:UINT);
-
-
-// Macro 210
-
-Procedure TreeView_SetCheckState( hwndTV : hwnd; hti : HTreeItem ; fCheck : bool );
-
-
-CONST
-         TVM_GETITEMSTATE               = (TV_FIRST + 39);
-
-// Macro 211
-Function TreeView_GetItemState( hwndTV : hwnd; hti : WPARAM; mask : LPARAM):UINT;
-
-
-// Macro 212
-Function TreeView_GetCheckState( hwndTV : hwnd; hti : WPARAM):UINT;
-
-
-CONST
-         TVM_SETLINECOLOR               = (TV_FIRST + 40);
-// Macro 213
-Function TreeView_SetLineColor( hwnd : hwnd; clr : LPARAM):COLORREF;
-
-CONST
-         TVM_GETLINECOLOR               = (TV_FIRST + 41);
-
-// Macro 214
-Function TreeView_GetLineColor( hwnd : hwnd):COLORREF;
-
-
-{$ENDIF}
-
-{$ifdef Win32XP}
-
-CONST
-         TVM_MAPACCIDTOHTREEITEM        = (TV_FIRST + 42);
-
-// Macro 215
-Function TreeView_MapAccIDToHTREEITEM( hwnd : hwnd; id : UINT ):HTREEITEM;
-
-
-
-CONST
-         TVM_MAPHTREEITEMTOACCID        = (TV_FIRST + 43);
-
-// Macro 216
-Function TreeView_MapHTREEITEMToAccID( hwnd : hwnd; htreeitem : WPARAM):UINT;
-
-
-
-{$ENDIF}
-
-TYPE
-         PFNTVCOMPARE =function (lparam1:LPARAM;lparam2:LPARAM;lParamSort:LParam): cint; STDCALL;
-         TTVCompare = PFNTVCOMPARE;
-
-
-         tagTVSORTCB          = Record
-                                 hParent      : HTREEITEM;
-                                 lpfnCompare  : PFNTVCOMPARE;
-                                 lParam       : LPARAM;
-                                 END;
-         TVSORTCB             = tagTVSORTCB;
-         LPTVSORTCB           = ^tagTVSORTCB;
-         TTVSORTCB            = tagTVSORTCB;
-         PTVSORTCB            = ^tagTVSORTCB;
-
-{$ifdef ie3plus}
-         LPTV_SORTCB         = LPTVSORTCB;
-
-
-         TV_SORTCB                      = TVSORTCB;
-{$ELSE}
-         tagTVSORTCB                    = _TV_SORTCB;
-         TVSORTCB                       = TV_SORTCB;
-
-
-         LPTVSORTCB          = LPTV_SORTCB;
-{$ENDIF}
-
-
-         tagNMTREEVIEWA       = Record
-                                 hdr          : NMHDR;
-                                 action       : UINT;
-                                 itemOld      : TVITEMA;
-                                 itemNew      : TVITEMA;
-                                 ptDrag       : POINT;
-                                 END;
-         NMTREEVIEWA          = tagNMTREEVIEWA;
-         LPNMTREEVIEWA        = ^tagNMTREEVIEWA;
-         TNMTREEVIEWA         = tagNMTREEVIEWA;
-         PNMTREEVIEWA         = ^tagNMTREEVIEWA;
-         PNMTreeView          = PNMTreeViewA;
-         TNMTreeView          = TNMTreeViewA;
-
-
-
-         tagNMTREEVIEWW       = Record
-                                 hdr          : NMHDR;
-                                 action       : UINT;
-                                 itemOld      : TVITEMW;
-                                 itemNew      : TVITEMW;
-                                 ptDrag       : POINT;
-                                 END;
-         NMTREEVIEWW          = tagNMTREEVIEWW;
-         LPNMTREEVIEWW        = ^tagNMTREEVIEWW;
-         TNMTREEVIEWW         = tagNMTREEVIEWW;
-         PNMTREEVIEWW         = ^tagNMTREEVIEWW;
-
-
-
-{$IFDEF UNICODE}
-         NMTREEVIEW          = NMTREEVIEWW;
-         LPNMTREEVIEW        = LPNMTREEVIEWW;
-{$ELSE}
-         NMTREEVIEW          = NMTREEVIEWA;
-         LPNMTREEVIEW        = LPNMTREEVIEWA;
-{$ENDIF}
-
-{$ifdef ie3plus}
-         LPNM_TREEVIEWA      = LPNMTREEVIEWA;
-         LPNM_TREEVIEWW      = LPNMTREEVIEWW;
-         NM_TREEVIEWW        = NMTREEVIEWW;
-         NM_TREEVIEWA        = NMTREEVIEWA;
-{$ELSE}
-         tagNMTREEVIEWA      = _NM_TREEVIEWA;
-         tagNMTREEVIEWW      = _NM_TREEVIEWW;
-         NMTREEVIEWA         = NM_TREEVIEWA;
-         NMTREEVIEWW         = NM_TREEVIEWW;
-         LPNMTREEVIEWA       = LPNM_TREEVIEWA;
-         LPNMTREEVIEWW       = LPNM_TREEVIEWW;
-{$ENDIF}
-
-         LPNM_TREEVIEW       = LPNMTREEVIEW;
-         NM_TREEVIEW         = NMTREEVIEW;
-
-
-
-CONST
-         TVN_SELCHANGINGA               = (TVN_FIRST-1);
-         TVN_SELCHANGINGW               = (TVN_FIRST-50);
-         TVN_SELCHANGEDA                = (TVN_FIRST-2);
-         TVN_SELCHANGEDW                = (TVN_FIRST-51);
-
-         TVC_UNKNOWN                    = $0000;
-         TVC_BYMOUSE                    = $0001;
-         TVC_BYKEYBOARD                 = $0002;
-
-         TVN_GETDISPINFOA               = (TVN_FIRST-3);
-         TVN_GETDISPINFOW               = (TVN_FIRST-52);
-         TVN_SETDISPINFOA               = (TVN_FIRST-4);
-         TVN_SETDISPINFOW               = (TVN_FIRST-53);
-
-         TVIF_DI_SETITEM                = $1000;
-
-Type
-         tagTVDISPINFOA       = Record
-                                 hdr          : NMHDR;
-                                 item         : TVITEMA;
-                                 END;
-         NMTVDISPINFOA        = tagTVDISPINFOA;
-         LPNMTVDISPINFOA      = ^tagTVDISPINFOA;
-         TTVDISPINFOA         = tagTVDISPINFOA;
-         PTVDISPINFOA         = ^tagTVDISPINFOA;
-         TTVDispInfo          = TTVDISPINFOA;
-         PTVDispInfo          = PTVDISPINFOA;
-
-
-         tagTVDISPINFOW       = Record
-                                 hdr          : NMHDR;
-                                 item         : TVITEMW;
-                                 END;
-         NMTVDISPINFOW        = tagTVDISPINFOW;
-         LPNMTVDISPINFOW      = ^tagTVDISPINFOW;
-         TTVDISPINFOW         = tagTVDISPINFOW;
-         PTVDISPINFOW         = ^tagTVDISPINFOW;
-
-{$IFDEF UNICODE}
-         NMTVDISPINFO        = NMTVDISPINFOW;
-         LPNMTVDISPINFO      = LPNMTVDISPINFOW;
-{$ELSE}
-         NMTVDISPINFO        = NMTVDISPINFOA;
-         LPNMTVDISPINFO      = LPNMTVDISPINFOA;
-{$ENDIF}
-
-
-{$ifdef ie3plus}
-          TV_DISPINFOA        = NMTVDISPINFOA;
-         TV_DISPINFOW        = NMTVDISPINFOW;
-{$ELSE}
-         tagTVDISPINFOA      = _TV_DISPINFOA;
-         NMTVDISPINFOA       = TV_DISPINFOA;
-         tagTVDISPINFOW      = _TV_DISPINFOW;
-         NMTVDISPINFOW       = TV_DISPINFOW;
-{$ENDIF}
-         TV_DISPINFO                    = NMTVDISPINFO;
-
-
-CONST
-         TVM_SORTCHILDRENCB             = (TV_FIRST + 21);
-
-// Macro 191
-Function TreeView_SortChildrenCB( hwnd : hwnd;psort :lpTV_sortcb; recurse : WPARAM):BOOL;inline;
-Function TreeView_SortChildrenCB( hwnd : hwnd;const psort :tagTVsortcb; recurse : WPARAM):BOOL;inline;
-
-CONST
-         TVN_ITEMEXPANDINGA             = (TVN_FIRST-5);
-         TVN_ITEMEXPANDINGW             = (TVN_FIRST-54);
-         TVN_ITEMEXPANDEDA              = (TVN_FIRST-6);
-         TVN_ITEMEXPANDEDW              = (TVN_FIRST-55);
-         TVN_BEGINDRAGA                 = (TVN_FIRST-7);
-         TVN_BEGINDRAGW                 = (TVN_FIRST-56);
-         TVN_BEGINRDRAGA                = (TVN_FIRST-8);
-         TVN_BEGINRDRAGW                = (TVN_FIRST-57);
-         TVN_DELETEITEMA                = (TVN_FIRST-9);
-         TVN_DELETEITEMW                = (TVN_FIRST-58);
-         TVN_BEGINLABELEDITA            = (TVN_FIRST-10);
-         TVN_BEGINLABELEDITW            = (TVN_FIRST-59);
-         TVN_ENDLABELEDITA              = (TVN_FIRST-11);
-         TVN_ENDLABELEDITW              = (TVN_FIRST-60);
-         TVN_KEYDOWN                    = (TVN_FIRST-12);
-
-{$ifdef ie4plus}
-         TVN_GETINFOTIPA                = (TVN_FIRST-13);
-         TVN_GETINFOTIPW                = (TVN_FIRST-14);
-         TVN_SINGLEEXPAND               = (TVN_FIRST-15);
-
-         TVNRET_DEFAULT                 = 0;
-         TVNRET_SKIPOLD                 = 1;
-         TVNRET_SKIPNEW                 = 2;
-
-{$ENDIF} // 0x400
-
-
-
-{$IFDEF _WIN32}
-// #include <pshpack1.h>
-{$ENDIF}
-
-TYPE
-
-         tagTVKEYDOWN         = Record
-                                 hdr          : NMHDR;
-                                 wVKey        : WORD;
-                                 flags        : UINT;
-                                 END;
-         NMTVKEYDOWN          = tagTVKEYDOWN;
-         LPNMTVKEYDOWN        = ^tagTVKEYDOWN;
-         TTVKEYDOWN           = tagTVKEYDOWN;
-         PTVKEYDOWN           = ^tagTVKEYDOWN;
-
-{$ifdef ie3plus}
-         TV_KEYDOWN                     = NMTVKEYDOWN;
-{$ELSE}
-         tagTVKEYDOWN                   = _TV_KEYDOWN;
-         NMTVKEYDOWN                    = TV_KEYDOWN;
-{$ENDIF}
-
-
-{$IFDEF _WIN32}
-// #include <poppack.h>
-{$ENDIF}
-
-Const
-
-{$IFDEF UNICODE}
-         TVN_SELCHANGING     = TVN_SELCHANGINGW;
-         TVN_SELCHANGED      = TVN_SELCHANGEDW;
-         TVN_GETDISPINFO     = TVN_GETDISPINFOW;
-         TVN_SETDISPINFO     = TVN_SETDISPINFOW;
-         TVN_ITEMEXPANDING   = TVN_ITEMEXPANDINGW;
-         TVN_ITEMEXPANDED    = TVN_ITEMEXPANDEDW;
-         TVN_BEGINDRAG       = TVN_BEGINDRAGW;
-         TVN_BEGINRDRAG      = TVN_BEGINRDRAGW;
-         TVN_DELETEITEM      = TVN_DELETEITEMW;
-         TVN_BEGINLABELEDIT  = TVN_BEGINLABELEDITW;
-         TVN_ENDLABELEDIT    = TVN_ENDLABELEDITW;
-{$ELSE}
-         TVN_SELCHANGING     = TVN_SELCHANGINGA;
-         TVN_SELCHANGED      = TVN_SELCHANGEDA;
-         TVN_GETDISPINFO     = TVN_GETDISPINFOA;
-         TVN_SETDISPINFO     = TVN_SETDISPINFOA;
-         TVN_ITEMEXPANDING   = TVN_ITEMEXPANDINGA;
-         TVN_ITEMEXPANDED    = TVN_ITEMEXPANDEDA;
-         TVN_BEGINDRAG       = TVN_BEGINDRAGA;
-         TVN_BEGINRDRAG      = TVN_BEGINRDRAGA;
-         TVN_DELETEITEM      = TVN_DELETEITEMA;
-         TVN_BEGINLABELEDIT  = TVN_BEGINLABELEDITA;
-         TVN_ENDLABELEDIT    = TVN_ENDLABELEDITA;
-{$ENDIF}
-
-
-{$ifdef ie3plus}
-// #define NMTVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMTVCUSTOMDRAW, clrTextBk)
-Type
-         tagNMTVCUSTOMDRAW    = Record
-                                 nmcd         : NMCUSTOMDRAW;
-                                 clrText      : COLORREF;
-                                 clrTextBk    : COLORREF;
-{$ifdef ie4plus}
-                                 iLevel       : cint;
-{$ENDIF}
-                                 END;
-         NMTVCUSTOMDRAW       = tagNMTVCUSTOMDRAW;
-         LPNMTVCUSTOMDRAW     = ^tagNMTVCUSTOMDRAW;
-         TNMTVCUSTOMDRAW      = tagNMTVCUSTOMDRAW;
-         PNMTVCUSTOMDRAW      = ^tagNMTVCUSTOMDRAW;
-
-{$ENDIF}
-
-
-{$ifdef ie4plus}
-
-// for tooltips
-
-         tagNMTVGETINFOTIPA   = Record
-                                 hdr          : NMHDR;
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 hItem        : HTREEITEM;
-                                 lParam       : LPARAM;
-                                 END;
-         NMTVGETINFOTIPA      = tagNMTVGETINFOTIPA;
-         LPNMTVGETINFOTIPA    = ^tagNMTVGETINFOTIPA;
-         TNMTVGETINFOTIPA     = tagNMTVGETINFOTIPA;
-         PNMTVGETINFOTIPA     = ^tagNMTVGETINFOTIPA;
-
-
-         tagNMTVGETINFOTIPW   = Record
-                                 hdr          : NMHDR;
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 hItem        : HTREEITEM;
-                                 lParam       : LPARAM;
-                                 END;
-         NMTVGETINFOTIPW      = tagNMTVGETINFOTIPW;
-         LPNMTVGETINFOTIPW    = ^tagNMTVGETINFOTIPW;
-         TNMTVGETINFOTIPW     = tagNMTVGETINFOTIPW;
-         PNMTVGETINFOTIPW     = ^tagNMTVGETINFOTIPW;
-
-
-CONST
-{$IFDEF UNICODE}
-         TVN_GETINFOTIP      = TVN_GETINFOTIPW;
-TYPE
-         NMTVGETINFOTIP      = NMTVGETINFOTIPW;
-         LPNMTVGETINFOTIP    = LPNMTVGETINFOTIPW;
-{$ELSE}
-         TVN_GETINFOTIP      = TVN_GETINFOTIPA;
-TYPE
-         NMTVGETINFOTIP      = NMTVGETINFOTIPA;
-         LPNMTVGETINFOTIP    = LPNMTVGETINFOTIPA;
-{$ENDIF}
-
-// treeview's customdraw return meaning don't draw images.  valid on CDRF_NOTIFYITEMPREPAINT
-
-CONST
-         TVCDRF_NOIMAGES                = $00010000;
-
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-{$ENDIF}      // NOTREEVIEW
-
-{$ifdef ie3plus}
-
-{$IFNDEF NOUSEREXCONTROLS}
-
-////////////////////  ComboBoxEx ////////////////////////////////
-
-         WC_COMBOBOXEXW                 = {L}'ComboBoxEx32';
-         WC_COMBOBOXEXA                 = 'ComboBoxEx32';
-
-
-{$IFDEF UNICODE}
-         WC_COMBOBOXEX       = WC_COMBOBOXEXW;
-{$ELSE}
-         WC_COMBOBOXEX       = WC_COMBOBOXEXA;
-{$ENDIF}
-
-CONST
-         CBEIF_TEXT                     = $00000001;
-         CBEIF_IMAGE                    = $00000002;
-         CBEIF_SELECTEDIMAGE            = $00000004;
-         CBEIF_OVERLAY                  = $00000008;
-         CBEIF_INDENT                   = $00000010;
-         CBEIF_LPARAM                   = $00000020;
-         CBEIF_DI_SETITEM               = $10000000;
-
-TYPE
-
-         tagCOMBOBOXEXITEMA   = Record
-                                 mask         : UINT;
-                                 iItem        : INT_PTR;
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 iSelectedImage : cint;
-                                 iOverlay     : cint;
-                                 iIndent      : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         COMBOBOXEXITEMA      = tagCOMBOBOXEXITEMA;
-         PCOMBOBOXEXITEMA     = ^tagCOMBOBOXEXITEMA;
-         TCOMBOBOXEXITEMA     = tagCOMBOBOXEXITEMA;
-//         PCOMBOBOXEXITEMA     = ^tagCOMBOBOXEXITEMA;
-
-         PCCOMBOBOXEXITEMA = ^COMBOBOXEXITEMA;
-
-
-         tagCOMBOBOXEXITEMW   = Record
-                                 mask         : UINT;
-                                 iItem        : INT_PTR;
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 iSelectedImage : cint;
-                                 iOverlay     : cint;
-                                 iIndent      : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         COMBOBOXEXITEMW      = tagCOMBOBOXEXITEMW;
-         PCOMBOBOXEXITEMW     = ^tagCOMBOBOXEXITEMW;
-         TCOMBOBOXEXITEMW     = tagCOMBOBOXEXITEMW;
-//         PCOMBOBOXEXITEMW     = ^tagCOMBOBOXEXITEMW;
-
-         PCCOMBOBOXEXITEMW        = ^COMBOBOXEXITEMW;
-
-{$IFDEF UNICODE}
-         COMBOBOXEXITEM      = COMBOBOXEXITEMW;
-         PCOMBOBOXEXITEM     = PCOMBOBOXEXITEMW;
-         PCCOMBOBOXEXITEM    = PCCOMBOBOXEXITEMW;
-{$ELSE}
-         COMBOBOXEXITEM      = COMBOBOXEXITEMA;
-         PCOMBOBOXEXITEM     = PCOMBOBOXEXITEMA;
-         PCCOMBOBOXEXITEM    = PCCOMBOBOXEXITEMA;
-{$ENDIF}
-         TComboBoxExItem     = COMBOBOXEXITEM;
-
-
-CONST
-         CBEM_INSERTITEMA               = (WM_USER + 1);
-         CBEM_SETIMAGELIST              = (WM_USER + 2);
-         CBEM_GETIMAGELIST              = (WM_USER + 3);
-         CBEM_GETITEMA                  = (WM_USER + 4);
-         CBEM_SETITEMA                  = (WM_USER + 5);
-         CBEM_DELETEITEM                = CB_DELETESTRING;
-         CBEM_GETCOMBOCONTROL           = (WM_USER + 6);
-         CBEM_GETEDITCONTROL            = (WM_USER + 7);
-{$ifdef ie4plus}
-         CBEM_SETEXSTYLE                = (WM_USER + 8);      // use  SETEXTENDEDSTYLE instead
-         CBEM_SETEXTENDEDSTYLE          = (WM_USER + 14);     // lparam == new style, wParam (optional) == mask
-         CBEM_GETEXSTYLE                = (WM_USER + 9);      // use GETEXTENDEDSTYLE instead
-         CBEM_GETEXTENDEDSTYLE          = (WM_USER + 9);
-         CBEM_SETUNICODEFORMAT          = CCM_SETUNICODEFORMAT;
-         CBEM_GETUNICODEFORMAT          = CCM_GETUNICODEFORMAT;
-{$ELSE}
-         CBEM_SETEXSTYLE                = (WM_USER + 8);
-         CBEM_GETEXSTYLE                = (WM_USER + 9);
-{$ENDIF}
-         CBEM_HASEDITCHANGED            = (WM_USER + 10);
-         CBEM_INSERTITEMW               = (WM_USER + 11);
-         CBEM_SETITEMW                  = (WM_USER + 12);
-         CBEM_GETITEMW                  = (WM_USER + 13);
-
-{$IFDEF UNICODE}
-
-         CBEM_INSERTITEM     = CBEM_INSERTITEMW;
-         CBEM_SETITEM        = CBEM_SETITEMW;
-         CBEM_GETITEM        = CBEM_GETITEMW;
-{$ELSE}
-         CBEM_INSERTITEM     = CBEM_INSERTITEMA;
-         CBEM_SETITEM        = CBEM_SETITEMA;
-         CBEM_GETITEM        = CBEM_GETITEMA;
-{$ENDIF}
-
-{$ifdef win32xp}
-
-         CBEM_SETWINDOWTHEME            = CCM_SETWINDOWTHEME;
-{$ENDIF}
-
-         CBES_EX_NOEDITIMAGE            = $00000001;
-         CBES_EX_NOEDITIMAGEINDENT      = $00000002;
-         CBES_EX_PATHWORDBREAKPROC      = $00000004;
-{$ifdef ie4plus}
-         CBES_EX_NOSIZELIMIT            = $00000008;
-         CBES_EX_CASESENSITIVE          = $00000010;
-
-TYPE
-
-         DummyStruct9         = Record
-                                 hdr          : NMHDR;
-                                 ceItem       : COMBOBOXEXITEMA;
-                                 END;
-         NMCOMBOBOXEXA        = DummyStruct9;
-         PNMCOMBOBOXEXA       = ^DummyStruct9;
-         TDummyStruct9        = DummyStruct9;
-         PDummyStruct9        = ^DummyStruct9;
-
-
-         DummyStruct10        = Record
-                                 hdr          : NMHDR;
-                                 ceItem       : COMBOBOXEXITEMW;
-                                 END;
-         NMCOMBOBOXEXW        = DummyStruct10;
-         PNMCOMBOBOXEXW       = ^DummyStruct10;
-         TDummyStruct10       = DummyStruct10;
-         PDummyStruct10       = ^DummyStruct10;
-
-
-
-{$ELSE}
-         DummyStruct11        = Record
-                                 hdr          : NMHDR;
-                                 ceItem       : COMBOBOXEXITEM;
-                                 END;
-         NMCOMBOBOXEX         = DummyStruct11;
-         PNMCOMBOBOXEX        = ^DummyStruct11;
-         TDummyStruct11       = DummyStruct11;
-         PDummyStruct11       = ^DummyStruct11;
-
-
-
-CONST
-         CBEN_GETDISPINFO               = (CBEN_FIRST - 0);
-
-{$ENDIF}      // _WIN32_IE >= 0x0400
-CONST
-{$ifdef ie4plus}
-         CBEN_GETDISPINFOA              = (CBEN_FIRST - 0);
-{$ENDIF}
-         CBEN_INSERTITEM                = (CBEN_FIRST - 1);
-         CBEN_DELETEITEM                = (CBEN_FIRST - 2);
-         CBEN_BEGINEDIT                 = (CBEN_FIRST - 4);
-         CBEN_ENDEDITA                  = (CBEN_FIRST - 5);
-         CBEN_ENDEDITW                  = (CBEN_FIRST - 6);
-
-{$ifdef ie4plus}
-         CBEN_GETDISPINFOW              = (CBEN_FIRST - 7);
-{$ENDIF}
-
-{$ifdef ie4plus}
-         CBEN_DRAGBEGINA                = (CBEN_FIRST - 8);
-         CBEN_DRAGBEGINW                = (CBEN_FIRST - 9);
-
-{$IFDEF UNICODE}
-
-         CBEN_DRAGBEGIN      = CBEN_DRAGBEGINW;
-{$ELSE}
-         CBEN_DRAGBEGIN      = CBEN_DRAGBEGINA;
-{$ENDIF}
-
-{$ENDIF}  //(_WIN32_IE >= 0x0400)
-TYPE
-{$IFDEF UNICODE}
-         NMCOMBOBOXEX        = NMCOMBOBOXEXW;
-         PNMCOMBOBOXEX       = PNMCOMBOBOXEXW;
-CONST
-         CBEN_GETDISPINFO    = CBEN_GETDISPINFOW;
-{$ELSE}
-         NMCOMBOBOXEX        = NMCOMBOBOXEXA;
-         PNMCOMBOBOXEX       = PNMCOMBOBOXEXA;
-CONST
-         CBEN_GETDISPINFO    = CBEN_GETDISPINFOA;
-{$ENDIF}
-
-// lParam specifies why the endedit is happening
-{$IFDEF UNICODE}
-         CBEN_ENDEDIT        = CBEN_ENDEDITW;
-{$ELSE}
-         CBEN_ENDEDIT        = CBEN_ENDEDITA;
-{$ENDIF}
-
-
-CONST
-         CBENF_KILLFOCUS                = 1;
-         CBENF_RETURN                   = 2;
-         CBENF_ESCAPE                   = 3;
-         CBENF_DROPDOWN                 = 4;
-
-         CBEMAXSTRLEN                   = 260;
-
-{$ifdef ie4plus}
-// CBEN_DRAGBEGIN sends this information ...
-
-TYPE
-
-         DummyStruct12        = Record
-                                 hdr          : NMHDR;
-                                 iItemid      : cint;
-                                 szText       : Array[0..CBEMAXSTRLEN-1] OF WCHAR;
-                                 END;
-         NMCBEDRAGBEGINW      = DummyStruct12;
-         LPNMCBEDRAGBEGINW    = ^DummyStruct12;
-         PNMCBEDRAGBEGINW     = ^DummyStruct12;
-         TDummyStruct12       = DummyStruct12;
-         PDummyStruct12       = ^DummyStruct12;
-
-
-
-         DummyStruct13        = Record
-                                 hdr          : NMHDR;
-                                 iItemid      : cint;
-                                 szText       : Array[0..CBEMAXSTRLEN-1] OF char;
-                                 END;
-         NMCBEDRAGBEGINA      = DummyStruct13;
-         LPNMCBEDRAGBEGINA    = ^DummyStruct13;
-         PNMCBEDRAGBEGINA     = ^DummyStruct13;
-         TDummyStruct13       = DummyStruct13;
-         PDummyStruct13       = ^DummyStruct13;
-
-
-{$IFDEF UNICODE}
-         NMCBEDRAGBEGIN      = NMCBEDRAGBEGINW;
-         LPNMCBEDRAGBEGIN    = LPNMCBEDRAGBEGINW;
-         PNMCBEDRAGBEGIN     = PNMCBEDRAGBEGINW;
-{$ELSE}
-         NMCBEDRAGBEGIN      = NMCBEDRAGBEGINA;
-         LPNMCBEDRAGBEGIN    = LPNMCBEDRAGBEGINA;
-         PNMCBEDRAGBEGIN     = PNMCBEDRAGBEGINA;
-{$ENDIF}
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-// CBEN_ENDEDIT sends this information...
-// fChanged if the user actually did anything
-// iNewSelection gives what would be the new selection unless the notify is failed
-//                      iNewSelection may be CB_ERR if there's no match
-         DummyStruct14        = Record
-                                 hdr          : NMHDR;
-                                 fChanged     : BOOL;
-                                 iNewSelection : cint;
-                                 szText       : Array[0..CBEMAXSTRLEN-1] OF WCHAR;
-                                 iWhy         : cint;
-                                 END;
-         NMCBEENDEDITW        = DummyStruct14;
-         LPNMCBEENDEDITW      = ^DummyStruct14;
-         PNMCBEENDEDITW       = ^DummyStruct14;
-         TDummyStruct14       = DummyStruct14;
-         PDummyStruct14       = ^DummyStruct14;
-
-
-         DummyStruct15        = Record
-                                 hdr          : NMHDR;
-                                 fChanged     : BOOL;
-                                 iNewSelection : cint;
-                                 szText       : Array[0..CBEMAXSTRLEN-1] OF char;
-                                 iWhy         : cint;
-                                 END;
-         NMCBEENDEDITA        = DummyStruct15;
-         LPNMCBEENDEDITA      = ^DummyStruct15;
-         PNMCBEENDEDITA       = ^DummyStruct15;
-         TDummyStruct15       = DummyStruct15;
-         PDummyStruct15       = ^DummyStruct15;
-
-
-{$IFDEF UNICODE}
-         NMCBEENDEDIT        = NMCBEENDEDITW;
-         LPNMCBEENDEDIT      = LPNMCBEENDEDITW;
-         PNMCBEENDEDIT       = PNMCBEENDEDITW;
-{$ELSE}
-         NMCBEENDEDIT        = NMCBEENDEDITA;
-         LPNMCBEENDEDIT      = LPNMCBEENDEDITA;
-         PNMCBEENDEDIT       = PNMCBEENDEDITA;
-{$ENDIF}
-
-{$ENDIF}
-
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-
-
-//====== TAB CONTROL ==========================================================
-
-{$IFNDEF NOTABCONTROL}
-
-{$IFDEF _WIN32}
-
-
-CONST
-         WC_TABCONTROLA                 = 'SysTabControl32';
-         WC_TABCONTROLW                 = {L}'SysTabControl32';
-
-{$IFDEF UNICODE}
-
-TYPE
-         WC_TABCONTROL       = WC_TABCONTROLW;
-{$ELSE}
-         WC_TABCONTROL       = WC_TABCONTROLA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         WC_TABCONTROL                  = 'SysTabControl';
-{$ENDIF}
-
-// begin_r_commctrl
-
-{$ifdef ie3plus}
-         TCS_SCROLLOPPOSITE             = $0001;              // assumes multiline tab
-         TCS_BOTTOM                     = $0002;
-         TCS_RIGHT                      = $0002;
-         TCS_MULTISELECT                = $0004;              // allow multi-select in button mode
-{$ENDIF}
-{$ifdef ie4plus}
-         TCS_FLATBUTTONS                = $0008;
-{$ENDIF}
-         TCS_FORCEICONLEFT              = $0010;
-         TCS_FORCELABELLEFT             = $0020;
-{$ifdef ie3plus}
-         TCS_HOTTRACK                   = $0040;
-         TCS_VERTICAL                   = $0080;
-{$ENDIF}
-         TCS_TABS                       = $0000;
-         TCS_BUTTONS                    = $0100;
-         TCS_SINGLELINE                 = $0000;
-         TCS_MULTILINE                  = $0200;
-         TCS_RIGHTJUSTIFY               = $0000;
-         TCS_FIXEDWIDTH                 = $0400;
-         TCS_RAGGEDRIGHT                = $0800;
-         TCS_FOCUSONBUTTONDOWN          = $1000;
-         TCS_OWNERDRAWFIXED             = $2000;
-         TCS_TOOLTIPS                   = $4000;
-         TCS_FOCUSNEVER                 = $8000;
-
-// end_r_commctrl
-
-{$ifdef ie4plus}
-// EX styles for use with TCM_SETEXTENDEDSTYLE
-         TCS_EX_FLATSEPARATORS          = $00000001;
-         TCS_EX_REGISTERDROP            = $00000002;
-{$ENDIF}
-
-
-         TCM_GETIMAGELIST               = (TCM_FIRST + 2);
-// Macro 217
-
-
-Function TabCtrl_GetImageList( hwnd : hwnd):HIMAGELIST;
-
-
-
-
-CONST
-         TCM_SETIMAGELIST               = (TCM_FIRST + 3);
-// Macro 218
-
-
-Function TabCtrl_SetImageList( hwnd : hwnd; himl : HIMAGELIST):HIMAGELIST;
-
-
-
-
-CONST
-         TCM_GETITEMCOUNT               = (TCM_FIRST + 4);
-// Macro 219
-
-
-Function TabCtrl_GetItemCount( hwnd : hwnd):cint;
-
-
-
-
-CONST
-         TCIF_TEXT                      = $0001;
-         TCIF_IMAGE                     = $0002;
-         TCIF_RTLREADING                = $0004;
-         TCIF_PARAM                     = $0008;
-{$ifdef ie3plus}
-         TCIF_STATE                     = $0010;
-
-
-         TCIS_BUTTONPRESSED             = $0001;
-{$ENDIF}
-{$ifdef ie4plus}
-         TCIS_HIGHLIGHTED               = $0002;
-{$ENDIF}
-TYPE
-
-
-
-
-         tagTCITEMHEADERA     = Record
-                                 mask         : UINT;
-                                 lpReserved1  : UINT;
-                                 lpReserved2  : UINT;
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 END;
-         TCITEMHEADERA        = tagTCITEMHEADERA;
-         LPTCITEMHEADERA      = ^tagTCITEMHEADERA;
-         TTCITEMHEADERA       = tagTCITEMHEADERA;
-         PTCITEMHEADERA       = ^tagTCITEMHEADERA;
-
-
-         tagTCITEMHEADERW     = Record
-                                 mask         : UINT;
-                                 lpReserved1  : UINT;
-                                 lpReserved2  : UINT;
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 END;
-         TCITEMHEADERW        = tagTCITEMHEADERW;
-         LPTCITEMHEADERW      = ^tagTCITEMHEADERW;
-         TTCITEMHEADERW       = tagTCITEMHEADERW;
-         PTCITEMHEADERW       = ^tagTCITEMHEADERW;
-
-
-{$IFDEF UNICODE}
-         TCITEMHEADER        = TCITEMHEADERW;
-         LPTCITEMHEADER      = LPTCITEMHEADERW;
-{$ELSE}
-         TCITEMHEADER        = TCITEMHEADERA;
-         LPTCITEMHEADER      = LPTCITEMHEADERA;
-{$ENDIF}
-
-
-{$ifdef ie3plus}
-         TC_ITEMHEADERA      = TCITEMHEADERA;
-         TC_ITEMHEADERW      = TCITEMHEADERW;
-{$ELSE}
-         tagTCITEMHEADERA    = _TC_ITEMHEADERA;
-         TCITEMHEADERA       = TC_ITEMHEADERA;
-         tagTCITEMHEADERW    = _TC_ITEMHEADERW;
-         TCITEMHEADERW       = TC_ITEMHEADERW;
-{$ENDIF}
-
-
-         TC_ITEMHEADER                  = TCITEMHEADER;
-
-
-
-
-
-         tagTCITEMA           = Record
-                                 mask         : UINT;
-{$ifdef ie3plus}
-                                 dwState      : DWORD;
-                                 dwStateMask  : DWORD;
-{$ELSE}
-                                 lpReserved1  : UINT;
-                                 lpReserved2  : UINT;
-{$ENDIF}
-                                 pszText      : LPSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         TCITEMA              = tagTCITEMA;
-         LPTCITEMA            = ^tagTCITEMA;
-         TTCITEMA             = tagTCITEMA;
-         PTCITEMA             = ^tagTCITEMA;
-
-
-         tagTCITEMW           = Record
-                                 mask         : UINT;
-{$ifdef ie3plus}
-                                 dwState      : DWORD;
-                                 dwStateMask  : DWORD;
-{$ELSE}
-                                 lpReserved1  : UINT;
-                                 lpReserved2  : UINT;
-{$ENDIF}
-                                 pszText      : LPWSTR;
-                                 cchTextMax   : cint;
-                                 iImage       : cint;
-                                 lParam       : LPARAM;
-                                 END;
-         TCITEMW              = tagTCITEMW;
-         LPTCITEMW            = ^tagTCITEMW;
-         TTCITEMW             = tagTCITEMW;
-         PTCITEMW             = ^tagTCITEMW;
-
-
-{$IFDEF UNICODE}
-         TCITEM              = TCITEMW;
-         LPTCITEM            = LPTCITEMW;
-{$ELSE}
-         TCITEM              = TCITEMA;
-         LPTCITEM            = LPTCITEMA;
-{$ENDIF}
-
-
-{$ifdef ie3plus}
-         TC_ITEMA            = TCITEMA;
-         TC_ITEMW            = TCITEMW;
-{$ELSE}
-         tagTCITEMA          = _TC_ITEMA;
-         TCITEMA             = TC_ITEMA;
-         tagTCITEMW          = _TC_ITEMW;
-         TCITEMW             = TC_ITEMW;
-{$ENDIF}
-
-
-         TC_ITEM                        = TCITEM;
-
-
-
-
-CONST
-         TCM_GETITEMA                   = (TCM_FIRST + 5);
-         TCM_GETITEMW                   = (TCM_FIRST + 60);
-
-{$IFDEF UNICODE}
-
-TYPE
-         TCM_GETITEM         = TCM_GETITEMW;
-{$ELSE}
-         TCM_GETITEM         = TCM_GETITEMA;
-{$ENDIF}
-
-// Macro 220
-Function TabCtrl_GetItem( hwnd : hwnd; iItem : cint;var  pitem : TC_ITEM ):BOOL;
-
-
-
-
-CONST
-         TCM_SETITEMA                   = (TCM_FIRST + 6);
-         TCM_SETITEMW                   = (TCM_FIRST + 61);
-
-{$IFDEF UNICODE}
-
-TYPE
-         TCM_SETITEM         = TCM_SETITEMW;
-{$ELSE}
-         TCM_SETITEM         = TCM_SETITEMA;
-{$ENDIF}
-
-// Macro 221
-Function TabCtrl_SetItem( hwnd : hwnd; iItem : cint;var  pitem : TC_ITEM ):BOOL;
-
-
-
-
-CONST
-         TCM_INSERTITEMA                = (TCM_FIRST + 7);
-         TCM_INSERTITEMW                = (TCM_FIRST + 62);
-
-{$IFDEF UNICODE}
-         TCM_INSERTITEM      = TCM_INSERTITEMW;
-{$ELSE}
-         TCM_INSERTITEM      = TCM_INSERTITEMA;
-{$ENDIF}
-
-// Macro 222
-Function TabCtrl_InsertItem( hwnd : hwnd; iItem : cint;CONST  pitem : TC_ITEM ):cint;
-
-
-CONST
-         TCM_DELETEITEM                 = (TCM_FIRST + 8);
-
-// Macro 223
-Function TabCtrl_DeleteItem( hwnd : hwnd; i : cint):BOOL;
-
-CONST
-         TCM_DELETEALLITEMS             = (TCM_FIRST + 9);
-
-// Macro 224
-Function TabCtrl_DeleteAllItems( hwnd : hwnd):BOOL;
-
-CONST
-         TCM_GETITEMRECT                = (TCM_FIRST + 10);
-
-// Macro 225
-Function TabCtrl_GetItemRect( hwnd : hwnd; i : cint;var  prc : RECT ):BOOL;
-
-CONST
-         TCM_GETCURSEL                  = (TCM_FIRST + 11);
-// Macro 226
-
-Function TabCtrl_GetCurSel( hwnd : hwnd):cint;
-
-
-CONST
-         TCM_SETCURSEL                  = (TCM_FIRST + 12);
-
-// Macro 227
-Function TabCtrl_SetCurSel( hwnd : hwnd; i : WPARAM):cint;
-
-CONST
-         TCHT_NOWHERE                   = $0001;
-         TCHT_ONITEMICON                = $0002;
-         TCHT_ONITEMLABEL               = $0004;
-         TCHT_ONITEM                    = (TCHT_ONITEMICON  OR  TCHT_ONITEMLABEL);
-
-TYPE
-
-         tagTCHITTESTINFO     = Record
-                                 pt           : POINT;
-                                 flags        : UINT;
-                                 END;
-         TCHITTESTINFO        = tagTCHITTESTINFO;
-         LPTCHITTESTINFO      = ^tagTCHITTESTINFO;
-         TTCHITTESTINFO       = tagTCHITTESTINFO;
-         PTCHITTESTINFO       = ^tagTCHITTESTINFO;
-
-{$ifdef ie3plus}
-         LPTC_HITTESTINFO    = LPTCHITTESTINFO;
-         TC_HITTESTINFO                 = TCHITTESTINFO;
-{$ELSE}
-         tagTCHITTESTINFO               = _TC_HITTESTINFO;
-         TCHITTESTINFO                  = TC_HITTESTINFO;
-         LPTCHITTESTINFO     = LPTC_HITTESTINFO;
-{$ENDIF}
-
-
-CONST
-         TCM_HITTEST                    = (TCM_FIRST + 13);
-
-// Macro 228
-Function TabCtrl_HitTest( hwndTC : hwnd;var  pinfo : TC_HITTESTINFO ):cint;inline;
-Function TabCtrl_HitTest( hwndTC : hwnd;pinfo : LPTCHITTESTINFO ):cint;inline;
-
-CONST
-         TCM_SETITEMEXTRA               = (TCM_FIRST + 14);
-
-// Macro 229
-Function TabCtrl_SetItemExtra( hwndTC : hwnd; cb : WPARAM):BOOL;
-
-
-
-
-CONST
-         TCM_ADJUSTRECT                 = (TCM_FIRST + 40);
-
-// Macro 230
-Function TabCtrl_AdjustRect( hwnd : hwnd; bLarger : BOOL;var  prc : RECT ):cint;
-
-
-
-
-CONST
-         TCM_SETITEMSIZE                = (TCM_FIRST + 41);
-
-// Macro 231
-Function TabCtrl_SetItemSize( hwnd : hwnd; x :wparam ; y : lparam ):DWORD;
-
-CONST
-         TCM_REMOVEIMAGE                = (TCM_FIRST + 42);
-
-// Macro 232
-Procedure TabCtrl_RemoveImage( hwnd : hwnd; i : wparam );
-
-
-
-
-CONST
-         TCM_SETPADDING                 = (TCM_FIRST + 43);
-
-// Macro 233
-Procedure TabCtrl_SetPadding( hwnd : hwnd; cx : wparam ; cy : lparam );
-
-
-
-
-CONST
-         TCM_GETROWCOUNT                = (TCM_FIRST + 44);
-
-// Macro 234
-Function TabCtrl_GetRowCount( hwnd : hwnd):cint;
-
-
-
-
-CONST
-         TCM_GETTOOLTIPS                = (TCM_FIRST + 45);
-
-// Macro 235
-Function TabCtrl_GetToolTips( hwnd : hwnd):HWND;
-
-
-
-
-CONST
-         TCM_SETTOOLTIPS                = (TCM_FIRST + 46);
-
-// Macro 236
-Procedure TabCtrl_SetToolTips( hwnd : hwnd; hwndTT : WPARAM);
-
-
-
-
-CONST
-         TCM_GETCURFOCUS                = (TCM_FIRST + 47);
-// Macro 237
-
-
-Function TabCtrl_GetCurFocus( hwnd : hwnd):cint;
-
-
-
-CONST
-         TCM_SETCURFOCUS                = (TCM_FIRST + 48);
-
-// Macro 238
-Procedure TabCtrl_SetCurFocus( hwnd : hwnd; i : LParam );
-
-
-{$ifdef ie3plus}
-
-CONST
-         TCM_SETMINTABWIDTH             = (TCM_FIRST + 49);
-
-// Macro 239
-Function TabCtrl_SetMinTabWidth( hwnd : hwnd; x : WParam ):cint;
-
-
-CONST
-         TCM_DESELECTALL                = (TCM_FIRST + 50);
-
-// Macro 240
-Procedure TabCtrl_DeselectAll( hwnd : hwnd; fExcludeFocus : WPARAM );
-
-{$ENDIF}
-
-{$ifdef ie4plus}
-CONST
-         TCM_HIGHLIGHTITEM              = (TCM_FIRST + 51);
-
-// Macro 241
-Function TabCtrl_HighlightItem( hwnd : hwnd; i : WPARAM; fHighlight :bool):BOOL;
-
-
-
-CONST
-         TCM_SETEXTENDEDSTYLE           = (TCM_FIRST + 52);   // optional wParam == mask
-
-// Macro 242
-Function TabCtrl_SetExtendedStyle( hwnd : hwnd; dw :LPARAM ):DWORD;
-
-
-CONST
-         TCM_GETEXTENDEDSTYLE           = (TCM_FIRST + 53);
-
-// Macro 243
-Function TabCtrl_GetExtendedStyle( hwnd : hwnd):DWORD;
-
-
-
-CONST
-         TCM_SETUNICODEFORMAT           = CCM_SETUNICODEFORMAT;
-
-// Macro 244
-Function TabCtrl_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
-
-
-
-CONST
-         TCM_GETUNICODEFORMAT           = CCM_GETUNICODEFORMAT;
-
-// Macro 245
-Function TabCtrl_GetUnicodeFormat( hwnd : hwnd):BOOL;
-
-
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-
-CONST
-         TCN_KEYDOWN                    = (TCN_FIRST - 0);
-
-
-{$IFDEF _WIN32}
-// #include <pshpack1.h>
-{$ENDIF}
-
-TYPE
-
-         tagTCKEYDOWN         = Record
-                                 hdr          : NMHDR;
-                                 wVKey        : WORD;
-                                 flags        : UINT;
-                                 END;
-         NMTCKEYDOWN          = tagTCKEYDOWN;
-         TTCKEYDOWN           = tagTCKEYDOWN;
-         PTCKEYDOWN           = ^tagTCKEYDOWN;
-
-{$ifdef ie3plus}
-         TC_KEYDOWN                     = NMTCKEYDOWN;
-{$ELSE}
-         tagTCKEYDOWN                   = _TC_KEYDOWN;
-         NMTCKEYDOWN                    = TC_KEYDOWN;
-{$ENDIF}
-
-
-{$IFDEF _WIN32}
-// #include <poppack.h>
-{$ENDIF}
-
-
-CONST
-         TCN_SELCHANGE                  = (TCN_FIRST - 1);
-         TCN_SELCHANGING                = (TCN_FIRST - 2);
-{$ifdef ie4plus}
-         TCN_GETOBJECT                  = (TCN_FIRST - 3);
-{$ENDIF}      // _WIN32_IE >= 0x0400
-{$ifdef ie5plus}
-         TCN_FOCUSCHANGE                = (TCN_FIRST - 4);
-{$ENDIF}      // _WIN32_IE >= 0x0500
-{$ENDIF}      // NOTABCONTROL
-
-//====== ANIMATE CONTROL ======================================================
-
-{$IFNDEF NOANIMATE}
-
-{$IFDEF _WIN32}
-
-         ANIMATE_CLASSW                 = {L}'SysAnimate32';
-         ANIMATE_CLASSA                 = 'SysAnimate32';
-
-{$IFDEF UNICODE}
-         ANIMATE_CLASS       = ANIMATE_CLASSW;
-{$ELSE}
-         ANIMATE_CLASS       = ANIMATE_CLASSA;
-{$ENDIF}
-
-// begin_r_commctrl
-
-
-CONST
-         ACS_CENTER                     = $0001;
-         ACS_TRANSPARENT                = $0002;
-         ACS_AUTOPLAY                   = $0004;
-{$ifdef ie3plus}
-         ACS_TIMER                      = $0008;              // don't use threads... use timers
-{$ENDIF}
-
-// end_r_commctrl
-
-         ACM_OPENA                      = (WM_USER+100);
-         ACM_OPENW                      = (WM_USER+103);
-
-{$IFDEF UNICODE}
-
-
-         ACM_OPEN            = ACM_OPENW;
-{$ELSE}
-         ACM_OPEN            = ACM_OPENA;
-{$ENDIF}
-
-
-CONST
-         ACM_PLAY                       = (WM_USER+101);
-         ACM_STOP                       = (WM_USER+102);
-
-
-         ACN_START                      = 1;
-         ACN_STOP                       = 2;
-
-
-// Macro 246
-
-
-Function Animate_Create(hwndP :HWND;id:HMENU;dwStyle:dword;hInstance:HINST):HWND;
-
-// Macro 247
-
-// #define Animate_Open(hwnd, szName)          (BOOL)SNDMSG(hwnd, ACM_OPEN, 0, (LPARAM)(LPTSTR)(szName))
-// Macro 248
-
-// #define Animate_OpenEx(hwnd, hInst, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, (WPARAM)(hInst), (LPARAM)(LPTSTR)(szName))
-// Macro 249
-
-// #define Animate_Play(hwnd, from, to, rep)   (BOOL)SNDMSG(hwnd, ACM_PLAY, (WPARAM)(rep), (LPARAM)MAKELONG(from, to))
-// Macro 250
-
-// #define Animate_Stop(hwnd)                  (BOOL)SNDMSG(hwnd, ACM_STOP, 0, 0)
-// Macro 251
-
-// #define Animate_Close(hwnd)                 Animate_Open(hwnd, NULL)
-// Macro 252
-
-// #define Animate_Seek(hwnd, frame)           Animate_Play(hwnd, frame, frame, 1)
-{$ENDIF}
-
-{$ENDIF}      // NOANIMATE
-
-{$ifdef ie3plus}
-//====== MONTHCAL CONTROL ======================================================
-
-{$IFNDEF NOMONTHCAL}
-{$IFDEF _WIN32}
-
-
-CONST
-         MONTHCAL_CLASSW                = {L}'SysMonthCal32';
-         MONTHCAL_CLASSA                = 'SysMonthCal32';
-
-
-{$IFDEF UNICODE}
-         MONTHCAL_CLASS      = MONTHCAL_CLASSW;
-{$ELSE}
-         MONTHCAL_CLASS      = MONTHCAL_CLASSA;
-{$ENDIF}
-
-TYPE
-// bit-packed array of "bold" info for a month
-// if a bit is on, that day is drawn bold
-
-         MONTHDAYSTATE       = DWORD;
-         LPMONTHDAYSTATE     = ^MONTHDAYSTATE;
-         TMonthDayState      = MONTHDAYSTATE;
-         PMonthDayState      = LPMONTHDAYSTATE;
-
-
-CONST
-         MCM_FIRST                      = $1000;
-
-// BOOL MonthCal_GetCurSel(HWND hmc, LPSYSTEMTIME pst)
-//   returns FALSE if MCS_MULTISELECT
-//   returns TRUE and sets *pst to the currently selected date otherwise
-
-
-
-
-CONST
-         MCM_GETCURSEL                  = (MCM_FIRST + 1);
-
-// Macro 253
-// #define MonthCal_GetCurSel(hmc, pst)    (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst))
-
-function MonthCal_GetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
-
-// BOOL MonthCal_SetCurSel(HWND hmc, LPSYSTEMTIME pst)
-//   returns FALSE if MCS_MULTISELECT
-//   returns TURE and sets the currently selected date to *pst otherwise
-
-
-
-CONST
-         MCM_SETCURSEL                  = (MCM_FIRST + 2);
-
-// Macro 254
-// #define MonthCal_SetCurSel(hmc, pst)    (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst))
-// DWORD MonthCal_GetMaxSelCount(HWND hmc)
-//   returns the maximum number of selectable days allowed
-
-function MonthCal_SetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;inline;
-function MonthCal_SetCurSel(hwndMC:HWND; var lpSysTime :TSYSTEMTIME):Bool;inline;
-
-
-CONST
-         MCM_GETMAXSELCOUNT             = (MCM_FIRST + 3);
-
-// Macro 255
-// #define MonthCal_GetMaxSelCount(hmc)    (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, 0L)
-// BOOL MonthCal_SetMaxSelCount(HWND hmc, UINT n)
-//   sets the max number days that can be selected iff MCS_MULTISELECT
-
-function MonthCal_GetMaxSelCount(hwndMC:HWND):Bool;
-
-CONST
-         MCM_SETMAXSELCOUNT             = (MCM_FIRST + 4);
-
-// Macro 256
-// #define MonthCal_SetMaxSelCount(hmc, n) (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), 0L)
-
-function MonthCal_SetMaxSelCount(hwndMC:HWND;n:uint):Bool;
-
-// BOOL MonthCal_GetSelRange(HWND hmc, LPSYSTEMTIME rgst)
-//   sets rgst[0] to the first day of the selection range
-//   sets rgst[1] to the last day of the selection range
-
-CONST
-         MCM_GETSELRANGE                = (MCM_FIRST + 5);
-
-// Macro 257
-// #define MonthCal_GetSelRange(hmc, rgst) SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst))
-// BOOL MonthCal_SetSelRange(HWND hmc, LPSYSTEMTIME rgst)
-//   selects the range of days from rgst[0] to rgst[1]
-
-function MonthCal_GetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
-
-
-CONST
-         MCM_SETSELRANGE                = (MCM_FIRST + 6);
-
-// Macro 258
-// #define MonthCal_SetSelRange(hmc, rgst) SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst))
-// DWORD MonthCal_GetMonthRange(HWND hmc, DWORD gmr, LPSYSTEMTIME rgst)
-//   if rgst specified, sets rgst[0] to the starting date and
-//      and rgst[1] to the ending date of the the selectable (non-grayed)
-//      days if GMR_VISIBLE or all the displayed days (including grayed)
-//      if GMR_DAYSTATE.
-//   returns the number of months spanned by the above range.
-
-function MonthCal_SetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
-
-
-CONST
-         MCM_GETMONTHRANGE              = (MCM_FIRST + 7);
-
-// Macro 259
-// #define MonthCal_GetMonthRange(hmc, gmr, rgst)  (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst))
-// BOOL MonthCal_SetDayState(HWND hmc, int cbds, DAYSTATE *rgds)
-//   cbds is the count of DAYSTATE items in rgds and it must be equal
-//   to the value returned from MonthCal_GetMonthRange(hmc, GMR_DAYSTATE, NULL)
-//   This sets the DAYSTATE bits for each month (grayed and non-grayed
-//   days) displayed in the calendar. The first bit in a month's DAYSTATE
-//   corresponts to bolding day 1, the second bit affects day 2, etc.
-
-function MonthCal_GetMonthRange(hwndMC:HWND; gmr: DWORD;lpSysTime :LPSYSTEMTIME):Bool;
-
-
-CONST
-         MCM_SETDAYSTATE                = (MCM_FIRST + 8);
-
-// Macro 260
-// #define MonthCal_SetDayState(hmc, cbds, rgds)   SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds))
-// BOOL MonthCal_GetMinReqRect(HWND hmc, LPRECT prc)
-//   sets *prc the minimal size needed to display one month
-//   To display two months, undo the AdjustWindowRect calculation already done to
-//   this rect, double the width, and redo the AdjustWindowRect calculation --
-//   the monthcal control will display two calendars in this window (if you also
-//   double the vertical size, you will get 4 calendars)
-//   NOTE: if you want to gurantee that the "Today" string is not clipped,
-//   get the MCM_GETMAXTODAYWIDTH and use the max of that width and this width
-
-function MonthCal_SetDayState(hwndMC:HWND; gmr: Longint;lpDay :LPMONTHDAYSTATE):Bool;
-
-
-CONST
-         MCM_GETMINREQRECT              = (MCM_FIRST + 9);
-
-// Macro 261
-// #define MonthCal_GetMinReqRect(hmc, prc)        SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc))
-// set colors to draw control with -- see MCSC_ bits below
-
-function MonthCal_GetMinReqRect(hwndMC:HWND; lpr :LPRect):Bool;inline;
-function MonthCal_GetMinReqRect(hwndMC:HWND; var lpr :TRect):Bool;inline;
-
-
-CONST
-         MCM_SETCOLOR                   = (MCM_FIRST + 10);
-
-// Macro 262
-// #define MonthCal_SetColor(hmc, iColor, clr) SNDMSG(hmc, MCM_SETCOLOR, iColor, clr)
-
-function MonthCal_SetColor(hwndMC:HWND; ic:longint;clr:COLORREF):DWORD;inline;
-
-
-CONST
-         MCM_GETCOLOR                   = (MCM_FIRST + 11);
-
-// Macro 263
-// #define MonthCal_GetColor(hmc, iColor) SNDMSG(hmc, MCM_GETCOLOR, iColor, 0)
-
-function MonthCal_GetColor(hwndMC:HWND; ic:longint):Bool;
-
-
-CONST
-         MCSC_BACKGROUND                = 0;                  // the background color (between months)
-         MCSC_TEXT                      = 1;                  // the dates
-         MCSC_TITLEBK                   = 2;                  // background of the title
-         MCSC_TITLETEXT                 = 3;
-         MCSC_MONTHBK                   = 4;                  // background within the month cal
-         MCSC_TRAILINGTEXT              = 5;                  // the text color of header & trailing days
-
-// set what day is "today"   send NULL to revert back to real date
-         MCM_SETTODAY                   = (MCM_FIRST + 12);
-
-// Macro 264
-// #define MonthCal_SetToday(hmc, pst)             SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)(pst))
-// get what day is "today"
-// returns BOOL for success/failure
-
-function MonthCal_SetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
-
-
-CONST
-         MCM_GETTODAY                   = (MCM_FIRST + 13);
-
-// Macro 265
-// #define MonthCal_GetToday(hmc, pst)             (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)(pst))
-// determine what pinfo->pt is over
-
-function MonthCal_GetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
-
-
-CONST
-         MCM_HITTEST                    = (MCM_FIRST + 14);
-
-TYPE
-
-         DummyStruct16        = Record
-                                 cbSize       : UINT;
-                                 pt           : POINT;
-                                 uHit         : UINT;          // out param
-                                 st           : SYSTEMTIME;
-                                 END;
-         MCHITTESTINFO        = DummyStruct16;
-         PMCHITTESTINFO       = ^DummyStruct16;
-         TDummyStruct16       = DummyStruct16;
-         PDummyStruct16       = ^DummyStruct16;
-
-
-// Macro 266
-FUNCTION MonthCal_HitTest( hmc :HWND ; pinfo : PMCHITTESTINFO):DWORD;
-
-
-CONST
-         MCHT_TITLE                     = $00010000;
-         MCHT_CALENDAR                  = $00020000;
-         MCHT_TODAYLINK                 = $00030000;
-
-         MCHT_NEXT                      = $01000000;          // these indicate that hitting
-         MCHT_PREV                      = $02000000;          // here will go to the next/prev month
-
-         MCHT_NOWHERE                   = $00000000;
-
-         MCHT_TITLEBK                   = (MCHT_TITLE);
-         MCHT_TITLEMONTH                = (MCHT_TITLE  OR  $0001);
-         MCHT_TITLEYEAR                 = (MCHT_TITLE  OR  $0002);
-         MCHT_TITLEBTNNEXT              = (MCHT_TITLE  OR  MCHT_NEXT  OR  $0003);
-         MCHT_TITLEBTNPREV              = (MCHT_TITLE  OR  MCHT_PREV  OR  $0003);
-
-         MCHT_CALENDARBK                = (MCHT_CALENDAR);
-         MCHT_CALENDARDATE              = (MCHT_CALENDAR  OR  $0001);
-         MCHT_CALENDARDATENEXT          = (MCHT_CALENDARDATE  OR  MCHT_NEXT);
-         MCHT_CALENDARDATEPREV          = (MCHT_CALENDARDATE  OR  MCHT_PREV);
-         MCHT_CALENDARDAY               = (MCHT_CALENDAR  OR  $0002);
-         MCHT_CALENDARWEEKNUM           = (MCHT_CALENDAR  OR  $0003);
-
-// set first day of week to iDay:
-// 0 for Monday, 1 for Tuesday, ..., 6 for Sunday
-// -1 for means use locale info
-         MCM_SETFIRSTDAYOFWEEK          = (MCM_FIRST + 15);
-// Macro 267
-
-
-function MonthCal_SetFirstDayOfWeek( hmc : HWND ; iDay :LONGINT ):DWORD;
-
-
-// DWORD result...  low word has the day.  high word is bool if this is app set
-// or not (FALSE == using locale info)
-
-CONST
-         MCM_GETFIRSTDAYOFWEEK          = (MCM_FIRST + 16);
-// Macro 268
-
-
-Function MonthCal_GetFirstDayOfWeek( hmc : HWND ):DWORD;
-
-
-// DWORD MonthCal_GetRange(HWND hmc, LPSYSTEMTIME rgst)
-//   modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no minimum)
-//   modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no maximum)
-//   returns GDTR_MIN|GDTR_MAX if there is a minimum|maximum limit
-
-CONST
-         MCM_GETRANGE                   = (MCM_FIRST + 17);
-// Macro 269
-
-
-Function MonthCal_GetRange( hmc : HWND ; rgst : LPSYSTEMTIME):DWORD;
-
-
-// BOOL MonthCal_SetRange(HWND hmc, DWORD gdtr, LPSYSTEMTIME rgst)
-//   if GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0], otherwise removes minimum
-//   if GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1], otherwise removes maximum
-//   returns TRUE on success, FALSE on error (such as invalid parameters)
-
-CONST
-         MCM_SETRANGE                   = (MCM_FIRST + 18);
-// Macro 270
-
-
-Function MonthCal_SetRange( hmc : HWND ; gd : DWORD; rgst : LPSYSTEMTIME):BOOL;
-
-
-// int MonthCal_GetMonthDelta(HWND hmc)
-//   returns the number of months one click on a next/prev button moves by
-
-CONST
-         MCM_GETMONTHDELTA              = (MCM_FIRST + 19);
-// Macro 271
-
-
-Function MonthCal_GetMonthDelta( hmc :hwnd ):cint;
-
-
-// int MonthCal_SetMonthDelta(HWND hmc, int n)
-//   sets the month delta to n. n==0 reverts to moving by a page of months
-//   returns the previous value of n.
-
-CONST
-         MCM_SETMONTHDELTA              = (MCM_FIRST + 20);
-// Macro 272
-
-
-Function MonthCal_SetMonthDelta( hmc :hwnd ; n :cint ):cint;
-
-
-// DWORD MonthCal_GetMaxTodayWidth(HWND hmc, LPSIZE psz)
-//   sets *psz to the maximum width/height of the "Today" string displayed
-//   at the bottom of the calendar (as long as MCS_NOTODAY is not specified)
-
-CONST
-         MCM_GETMAXTODAYWIDTH           = (MCM_FIRST + 21);
-// Macro 273
-
-
-Function MonthCal_GetMaxTodayWidth( hmc :hwnd ):DWORD;
-
-
-{$ifdef ie4plus}
-
-CONST
-         MCM_SETUNICODEFORMAT           = CCM_SETUNICODEFORMAT;
-// Macro 274
-
-
-Function MonthCal_SetUnicodeFormat( hwnd : hwnd; fUnicode : bool):BOOL;
-
-
-CONST
-         MCM_GETUNICODEFORMAT           = CCM_GETUNICODEFORMAT;
-// Macro 275
-
-
-Function MonthCal_GetUnicodeFormat( hwnd : hwnd):BOOL;
-
-{$ENDIF}
-
-// MCN_SELCHANGE is sent whenever the currently displayed date changes
-// via month change, year change, keyboard navigation, prev/next button
-//
-TYPE
-
-         tagNMSELCHANGE       = Record
-                                 nmhdr        : NMHDR;          // this must be first, so we don't break WM_NOTIFY
-                                 stSelStart   : SYSTEMTIME;
-                                 stSelEnd     : SYSTEMTIME;
-                                 END;
-         NMSELCHANGE          = tagNMSELCHANGE;
-         LPNMSELCHANGE        = ^tagNMSELCHANGE;
-         TNMSELCHANGE         = tagNMSELCHANGE;
-         PNMSELCHANGE         = ^tagNMSELCHANGE;
-
-
-
-CONST
-         MCN_SELCHANGE                  = (MCN_FIRST + 1);
-
-// MCN_GETDAYSTATE is sent for MCS_DAYSTATE controls whenever new daystate
-// information is needed (month or year scroll) to draw bolding information.
-// The app must fill in cDayState months worth of information starting from
-// stStart date. The app may fill in the array at prgDayState or change
-// prgDayState to point to a different array out of which the information
-// will be copied. (similar to tooltips)
-//
-TYPE
-
-         tagNMDAYSTATE        = Record
-                                 nmhdr        : NMHDR;          // this must be first, so we don't break WM_NOTIFY
-                                 stStart      : SYSTEMTIME;
-                                 cDayState    : cint;
-                                 prgDayState  : LPMONTHDAYSTATE;          // points to cDayState MONTHDAYSTATEs
-                                 END;
-         NMDAYSTATE           = tagNMDAYSTATE;
-         LPNMDAYSTATE         = ^tagNMDAYSTATE;
-         TNMDAYSTATE          = tagNMDAYSTATE;
-         PNMDAYSTATE          = ^tagNMDAYSTATE;
-
-
-
-CONST
-         MCN_GETDAYSTATE                = (MCN_FIRST + 3);
-
-// MCN_SELECT is sent whenever a selection has occured (via mouse or keyboard)
-//
-TYPE
-
-         NMSELECT             = NMSELCHANGE;
-         LPNMSELECT           = ^NMSELCHANGE;
-
-
-CONST
-         MCN_SELECT                     = (MCN_FIRST + 4);
-
-
-// begin_r_commctrl
-
-         MCS_DAYSTATE                   = $0001;
-         MCS_MULTISELECT                = $0002;
-         MCS_WEEKNUMBERS                = $0004;
-{$ifdef ie4plus}
-         MCS_NOTODAYCIRCLE              = $0008;
-         MCS_NOTODAY                    = $0010;
-{$ELSE}
-         MCS_NOTODAY                    = $0008;
-{$ENDIF}
-
-
-// end_r_commctrl
-
-         GMR_VISIBLE                    = 0;                  // visible portion of display
-         GMR_DAYSTATE                   = 1;                  // above plus the grayed out parts of
-                                // partially displayed months
-
-
-{$ENDIF} // _WIN32
-{$ENDIF} // NOMONTHCAL
-
-
-//====== DATETIMEPICK CONTROL ==================================================
-
-{$IFNDEF NODATETIMEPICK}
-{$IFDEF _WIN32}
-
-         DATETIMEPICK_CLASSW            = {L}'SysDateTimePick32';
-         DATETIMEPICK_CLASSA            = 'SysDateTimePick32';
-
-{$IFDEF UNICODE}
-
-TYPE
-         DATETIMEPICK_CLASS  = DATETIMEPICK_CLASSW;
-{$ELSE}
-         DATETIMEPICK_CLASS  = DATETIMEPICK_CLASSA;
-{$ENDIF}
-
-
-CONST
-         DTM_FIRST                      = $1000;
-
-// DWORD DateTimePick_GetSystemtime(HWND hdp, LPSYSTEMTIME pst)
-//   returns GDT_NONE if "none" is selected (DTS_SHOWNONE only)
-//   returns GDT_VALID and modifies *pst to be the currently selected value
-         DTM_GETSYSTEMTIME              = (DTM_FIRST + 1);
-// Macro 276
-
-// #define DateTime_GetSystemtime(hdp, pst)    (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst))
-
-// BOOL DateTime_SetSystemtime(HWND hdp, DWORD gd, LPSYSTEMTIME pst)
-//   if gd==GDT_NONE, sets datetimepick to None (DTS_SHOWNONE only)
-//   if gd==GDT_VALID, sets datetimepick to *pst
-//   returns TRUE on success, FALSE on error (such as bad params)
-
-CONST
-         DTM_SETSYSTEMTIME              = (DTM_FIRST + 2);
-// Macro 277
-
-// #define DateTime_SetSystemtime(hdp, gd, pst)    (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (WPARAM)(gd), (LPARAM)(pst))
-function DateTime_SetSystemTime(hdp: HWND; gd: DWORD; const pst: TSystemTime): BOOL;inline;
-
-// DWORD DateTime_GetRange(HWND hdp, LPSYSTEMTIME rgst)
-//   modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no minimum)
-//   modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no maximum)
-//   returns GDTR_MIN|GDTR_MAX if there is a minimum|maximum limit
-
-CONST
-         DTM_GETRANGE                   = (DTM_FIRST + 3);
-// Macro 278
-
-// #define DateTime_GetRange(hdp, rgst)  (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst))
-
-// BOOL DateTime_SetRange(HWND hdp, DWORD gdtr, LPSYSTEMTIME rgst)
-//   if GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0], otherwise removes minimum
-//   if GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1], otherwise removes maximum
-//   returns TRUE on success, FALSE on error (such as invalid parameters)
-
-CONST
-         DTM_SETRANGE                   = (DTM_FIRST + 4);
-// Macro 279
-
-// #define DateTime_SetRange(hdp, gd, rgst)  (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
-function DateTime_SetRange(hdp: HWND; gdtr: DWORD; rgst: PSystemTime): BOOL;inline;
-
-// BOOL DateTime_SetFormat(HWND hdp, LPCTSTR sz)
-//   sets the display formatting string to sz (see GetDateFormat and GetTimeFormat for valid formatting chars)
-//   NOTE: 'X' is a valid formatting character which indicates that the application
-//   will determine how to display information. Such apps must support DTN_WMKEYDOWN,
-//   DTN_FORMAT, and DTN_FORMATQUERY.
-
-CONST
-         DTM_SETFORMATA                 = (DTM_FIRST + 5);
-         DTM_SETFORMATW                 = (DTM_FIRST + 50);
-
-{$IFDEF UNICODE}
-
-TYPE
-         DTM_SETFORMAT       = DTM_SETFORMATW;
-{$ELSE}
-         DTM_SETFORMAT       = DTM_SETFORMATA;
-{$ENDIF}
-
-// Macro 280
-
-// #define DateTime_SetFormat(hdp, sz)  (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz))
-
-
-
-CONST
-         DTM_SETMCCOLOR                 = (DTM_FIRST + 6);
-// Macro 281
-
-// #define DateTime_SetMonthCalColor(hdp, iColor, clr) SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr)
-function DateTime_SetMonthCalColor(hdp: HWND; iColor: DWORD; clr: TColorRef): TColorRef;inline;
-
-CONST
-         DTM_GETMCCOLOR                 = (DTM_FIRST + 7);
-// Macro 282
-
-// #define DateTime_GetMonthCalColor(hdp, iColor) SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0)
-
-// HWND DateTime_GetMonthCal(HWND hdp)
-//   returns the HWND of the MonthCal popup window. Only valid
-// between DTN_DROPDOWN and DTN_CLOSEUP notifications.
-
-CONST
-         DTM_GETMONTHCAL                = (DTM_FIRST + 8);
-// Macro 283
-
-// #define DateTime_GetMonthCal(hdp) (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0)
-function DateTime_GetMonthCal(hdp: HWND): HWND;inline;
-
-{$ifdef ie4plus}
-
-
-CONST
-         DTM_SETMCFONT                  = (DTM_FIRST + 9);
-// Macro 284
-
-// #define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)(hfont), (LPARAM)(fRedraw))
-
-
-CONST
-         DTM_GETMCFONT                  = (DTM_FIRST + 10);
-// Macro 285
-
-// #define DateTime_GetMonthCalFont(hdp) SNDMSG(hdp, DTM_GETMCFONT, 0, 0)
-
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-// begin_r_commctrl
-
-
-CONST
-         DTS_UPDOWN                     = $0001;              // use UPDOWN instead of MONTHCAL
-         DTS_SHOWNONE                   = $0002;              // allow a NONE selection
-         DTS_SHORTDATEFORMAT            = $0000;              // use the short date format (app must forward WM_WININICHANGE messages)
-         DTS_LONGDATEFORMAT             = $0004;              // use the long date format (app must forward WM_WININICHANGE messages)
-{$ifdef ie5plus}
-         DTS_SHORTDATECENTURYFORMAT     = $000C;              // short date format with century (app must forward WM_WININICHANGE messages)
-{$ENDIF} // (_WIN32_IE >= 0x500)
-         DTS_TIMEFORMAT                 = $0009;              // use the time format (app must forward WM_WININICHANGE messages)
-         DTS_APPCANPARSE                = $0010;              // allow user entered strings (app MUST respond to DTN_USERSTRING)
-         DTS_RIGHTALIGN                 = $0020;              // right-align popup instead of left-align it
-
-// end_r_commctrl
-
-         DTN_DATETIMECHANGE             = (DTN_FIRST + 1);    // the systemtime has changed
-TYPE
-
-         tagNMDATETIMECHANGE  = Record
-                                 nmhdr        : NMHDR;
-                                 dwFlags      : DWORD;          // GDT_VALID or GDT_NONE
-                                 st           : SYSTEMTIME;          // valid iff dwFlags==GDT_VALID
-                                 END;
-         NMDATETIMECHANGE     = tagNMDATETIMECHANGE;
-         LPNMDATETIMECHANGE   = ^tagNMDATETIMECHANGE;
-         TNMDATETIMECHANGE    = tagNMDATETIMECHANGE;
-         PNMDATETIMECHANGE    = ^tagNMDATETIMECHANGE;
-
-
-
-CONST
-         DTN_USERSTRINGA                = (DTN_FIRST + 2);    // the user has entered a string
-         DTN_USERSTRINGW                = (DTN_FIRST + 15);
-TYPE
-
-         tagNMDATETIMESTRINGA = Record
-                                 nmhdr        : NMHDR;
-                                 pszUserString : LPCSTR;          // string user entered
-                                 st           : SYSTEMTIME;          // app fills this in
-                                 dwFlags      : DWORD;          // GDT_VALID or GDT_NONE
-                                 END;
-         NMDATETIMESTRINGA    = tagNMDATETIMESTRINGA;
-         LPNMDATETIMESTRINGA  = ^tagNMDATETIMESTRINGA;
-         TNMDATETIMESTRINGA   = tagNMDATETIMESTRINGA;
-         PNMDATETIMESTRINGA   = ^tagNMDATETIMESTRINGA;
-
-
-         tagNMDATETIMESTRINGW = Record
-                                 nmhdr        : NMHDR;
-                                 pszUserString : LPCWSTR;          // string user entered
-                                 st           : SYSTEMTIME;          // app fills this in
-                                 dwFlags      : DWORD;          // GDT_VALID or GDT_NONE
-                                 END;
-         NMDATETIMESTRINGW    = tagNMDATETIMESTRINGW;
-         LPNMDATETIMESTRINGW  = ^tagNMDATETIMESTRINGW;
-         TNMDATETIMESTRINGW   = tagNMDATETIMESTRINGW;
-         PNMDATETIMESTRINGW   = ^tagNMDATETIMESTRINGW;
-
-
-{$IFDEF UNICODE}
-CONST
-         DTN_USERSTRING      = DTN_USERSTRINGW;
-TYPE
-         NMDATETIMESTRING    = NMDATETIMESTRINGW;
-         LPNMDATETIMESTRING  = LPNMDATETIMESTRINGW;
-{$ELSE}
-CONST
-         DTN_USERSTRING      = DTN_USERSTRINGA;
-TYPE
-         NMDATETIMESTRING    = NMDATETIMESTRINGA;
-         LPNMDATETIMESTRING  = LPNMDATETIMESTRINGA;
-{$ENDIF}
-         TNMDateTimeString   = NMDATETIMESTRING;
-         PNMDateTimeString   = LPNMDATETIMESTRING;
-
-
-
-CONST
-         DTN_WMKEYDOWNA                 = (DTN_FIRST + 3);    // modify keydown on app format field (X)
-         DTN_WMKEYDOWNW                 = (DTN_FIRST + 16);
-TYPE
-
-         tagNMDATETIMEWMKEYDOWNA = Record
-                                    nmhdr        : NMHDR;
-                                    nVirtKey     : cint;          // virtual key code of WM_KEYDOWN which MODIFIES an X field
-                                    pszFormat    : LPCSTR;          // format substring
-                                    st           : SYSTEMTIME;          // current systemtime, app should modify based on key
-                                    END;
-         NMDATETIMEWMKEYDOWNA = tagNMDATETIMEWMKEYDOWNA;
-         LPNMDATETIMEWMKEYDOWNA = ^tagNMDATETIMEWMKEYDOWNA;
-         TNMDATETIMEWMKEYDOWNA = tagNMDATETIMEWMKEYDOWNA;
-         PNMDATETIMEWMKEYDOWNA = ^tagNMDATETIMEWMKEYDOWNA;
-
-
-         tagNMDATETIMEWMKEYDOWNW = Record
-                                    nmhdr        : NMHDR;
-                                    nVirtKey     : cint;          // virtual key code of WM_KEYDOWN which MODIFIES an X field
-                                    pszFormat    : LPCWSTR;          // format substring
-                                    st           : SYSTEMTIME;          // current systemtime, app should modify based on key
-                                    END;
-         NMDATETIMEWMKEYDOWNW = tagNMDATETIMEWMKEYDOWNW;
-         LPNMDATETIMEWMKEYDOWNW = ^tagNMDATETIMEWMKEYDOWNW;
-         TNMDATETIMEWMKEYDOWNW = tagNMDATETIMEWMKEYDOWNW;
-         PNMDATETIMEWMKEYDOWNW = ^tagNMDATETIMEWMKEYDOWNW;
-
-
-{$IFDEF UNICODE}
-CONST
-         DTN_WMKEYDOWN       = DTN_WMKEYDOWNW;
-TYPE
-         NMDATETIMEWMKEYDOWN = NMDATETIMEWMKEYDOWNW;
-         LPNMDATETIMEWMKEYDOWN= LPNMDATETIMEWMKEYDOWNW;
-{$ELSE}
-CONST
-         DTN_WMKEYDOWN       = DTN_WMKEYDOWNA;
-TYPE
-         NMDATETIMEWMKEYDOWN = NMDATETIMEWMKEYDOWNA;
-         LPNMDATETIMEWMKEYDOWN= LPNMDATETIMEWMKEYDOWNA;
-{$ENDIF}
-
-
-
-CONST
-         DTN_FORMATA                    = (DTN_FIRST + 4);    // query display for app format field (X)
-         DTN_FORMATW                    = (DTN_FIRST + 17);
-TYPE
-
-         tagNMDATETIMEFORMATA = Record
-                                 nmhdr        : NMHDR;
-                                 pszFormat    : LPCSTR;          // format substring
-                                 st           : SYSTEMTIME;      // current systemtime
-                                 pszDisplay   : LPCSTR;          // string to display
-                                 szDisplay    : Array [0..63] OF CHAR;          // buffer pszDisplay originally points at
-                                 END;
-         NMDATETIMEFORMATA    = tagNMDATETIMEFORMATA;
-         LPNMDATETIMEFORMATA  = ^tagNMDATETIMEFORMATA;
-         TNMDATETIMEFORMATA   = tagNMDATETIMEFORMATA;
-         PNMDATETIMEFORMATA   = ^tagNMDATETIMEFORMATA;
-
-
-         tagNMDATETIMEFORMATW = Record
-                                 nmhdr        : NMHDR;
-                                 pszFormat    : LPCWSTR;          // format substring
-                                 st           : SYSTEMTIME;       // current systemtime
-                                 pszDisplay   : LPCWSTR;          // string to display
-                                 szDisplay    : Array [0..63] OF WCHAR;          // buffer pszDisplay originally points at
-                                 END;
-         NMDATETIMEFORMATW    = tagNMDATETIMEFORMATW;
-         LPNMDATETIMEFORMATW  = ^tagNMDATETIMEFORMATW;
-         TNMDATETIMEFORMATW   = tagNMDATETIMEFORMATW;
-         PNMDATETIMEFORMATW   = ^tagNMDATETIMEFORMATW;
-
-
-{$IFDEF UNICODE}
-CONST
-         DTN_FORMAT          = DTN_FORMATW;
-TYPE
-         NMDATETIMEFORMAT    = NMDATETIMEFORMATW;
-         LPNMDATETIMEFORMAT  = LPNMDATETIMEFORMATW;
-{$ELSE}
-CONST
-         DTN_FORMAT          = DTN_FORMATA;
-TYPE
-         NMDATETIMEFORMAT    = NMDATETIMEFORMATA;
-         LPNMDATETIMEFORMAT  = LPNMDATETIMEFORMATA;
-{$ENDIF}
-
-
-
-CONST
-         DTN_FORMATQUERYA               = (DTN_FIRST + 5);    // query formatting info for app format field (X)
-         DTN_FORMATQUERYW               = (DTN_FIRST + 18);
-TYPE
-
-         tagNMDATETIMEFORMATQUERYA = Record
-                                      nmhdr        : NMHDR;
-                                      pszFormat    : LPCSTR;          // format substring
-                                      szMax        : SIZE;          // max bounding rectangle app will use for this format string
-                                      END;
-         NMDATETIMEFORMATQUERYA = tagNMDATETIMEFORMATQUERYA;
-         LPNMDATETIMEFORMATQUERYA = ^tagNMDATETIMEFORMATQUERYA;
-         TNMDATETIMEFORMATQUERYA = tagNMDATETIMEFORMATQUERYA;
-         PNMDATETIMEFORMATQUERYA = ^tagNMDATETIMEFORMATQUERYA;
-
-
-         tagNMDATETIMEFORMATQUERYW = Record
-                                      nmhdr        : NMHDR;
-                                      pszFormat    : LPCWSTR;          // format substring
-                                      szMax        : SIZE;          // max bounding rectangle app will use for this format string
-                                      END;
-         NMDATETIMEFORMATQUERYW = tagNMDATETIMEFORMATQUERYW;
-         LPNMDATETIMEFORMATQUERYW = ^tagNMDATETIMEFORMATQUERYW;
-         TNMDATETIMEFORMATQUERYW = tagNMDATETIMEFORMATQUERYW;
-         PNMDATETIMEFORMATQUERYW = ^tagNMDATETIMEFORMATQUERYW;
-
-
-{$IFDEF UNICODE}
-CONST
-         DTN_FORMATQUERY     = DTN_FORMATQUERYW;
-TYPE
-         NMDATETIMEFORMATQUERY= NMDATETIMEFORMATQUERYW;
-         LPNMDATETIMEFORMATQUERY= LPNMDATETIMEFORMATQUERYW;
-{$ELSE}
-CONST
-         DTN_FORMATQUERY     = DTN_FORMATQUERYA;
-TYPE
-         NMDATETIMEFORMATQUERY= NMDATETIMEFORMATQUERYA;
-         LPNMDATETIMEFORMATQUERY= LPNMDATETIMEFORMATQUERYA;
-{$ENDIF}
-
-
-
-CONST
-         DTN_DROPDOWN                   = (DTN_FIRST + 6);    // MonthCal has dropped down
-         DTN_CLOSEUP                    = (DTN_FIRST + 7);    // MonthCal is popping up
-
-
-         GDTR_MIN                       = $0001;
-         GDTR_MAX                       = $0002;
-
-         GDT_ERROR                      = -1;
-         GDT_VALID                      = 0;
-         GDT_NONE                       = 1;
-
-
-{$ENDIF} // _WIN32
-{$ENDIF} // NODATETIMEPICK
-
-
-{$ifdef ie4plus}
-
-{$IFNDEF NOIPADDRESS}
-
-///////////////////////////////////////////////
-///    IP Address edit control
-
-// Messages sent to IPAddress controls
-
-         IPM_CLEARADDRESS               = (WM_USER+100);      // no parameters
-         IPM_SETADDRESS                 = (WM_USER+101);      // lparam = TCP/IP address
-         IPM_GETADDRESS                 = (WM_USER+102);      // lresult = # of non black fields.  lparam = LPDWORD for TCP/IP address
-         IPM_SETRANGE                   = (WM_USER+103);      // wparam = field, lparam = range
-         IPM_SETFOCUS                   = (WM_USER+104);      // wparam = field
-         IPM_ISBLANK                    = (WM_USER+105);      // no parameters
-
-         WC_IPADDRESSW                  = {L}'SysIPAddress32';
-         WC_IPADDRESSA                  = 'SysIPAddress32';
-
-{$IFDEF UNICODE}
-
-TYPE
-         WC_IPADDRESS        = WC_IPADDRESSW;
-{$ELSE}
-         WC_IPADDRESS        = WC_IPADDRESSA;
-{$ENDIF}
-
-
-CONST
-         IPN_FIELDCHANGED               = (IPN_FIRST - 0);
-TYPE
-
-         tagNMIPADDRESS       = Record
-                                 hdr          : NMHDR;
-                                 iField       : cint;
-                                 iValue       : cint;
-                                 END;
-         NMIPADDRESS          = tagNMIPADDRESS;
-         LPNMIPADDRESS        = ^tagNMIPADDRESS;
-         TNMIPADDRESS         = tagNMIPADDRESS;
-         PNMIPADDRESS         = ^tagNMIPADDRESS;
-
-
-// The following is a useful macro for passing the range values in the
-// IPM_SETRANGE message.
-
-// Macro 286
-
-// #define MAKEIPRANGE(low, high)    ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low)))
-
-// And this is a useful macro for making the IP Address to be passed
-// as a LPARAM.
-
-// Macro 287
-
-// #define MAKEIPADDRESS(b1,b2,b3,b4)  ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4))))
-
-// Get individual number
-// Macro 288
-
-// #define FIRST_IPADDRESS(x)  ((x>>24) & 0xff)
-// Macro 289
-
-// #define SECOND_IPADDRESS(x) ((x>>16) & 0xff)
-// Macro 290
-
-// #define THIRD_IPADDRESS(x)  ((x>>8) & 0xff)
-// Macro 291
-
-// #define FOURTH_IPADDRESS(x) (x & 0xff)
-
-
-{$ENDIF} // NOIPADDRESS
-
-
-//---------------------------------------------------------------------------------------
-//---------------------------------------------------------------------------------------
-///  ====================== Pager Control =============================
-//---------------------------------------------------------------------------------------
-//---------------------------------------------------------------------------------------
-
-{$IFNDEF NOPAGESCROLLER}
-
-//Pager Class Name
-
-CONST
-         WC_PAGESCROLLERW               = {L}'SysPager';
-         WC_PAGESCROLLERA               = 'SysPager';
-
-{$IFDEF UNICODE}
-
-TYPE
-         WC_PAGESCROLLER     = WC_PAGESCROLLERW;
-{$ELSE}
-         WC_PAGESCROLLER     = WC_PAGESCROLLERA;
-{$ENDIF}
-
-
-//---------------------------------------------------------------------------------------
-// Pager Control Styles
-//---------------------------------------------------------------------------------------
-// begin_r_commctrl
-
-
-CONST
-         PGS_VERT                       = $00000000;
-         PGS_HORZ                       = $00000001;
-         PGS_AUTOSCROLL                 = $00000002;
-         PGS_DRAGNDROP                  = $00000004;
-
-// end_r_commctrl
-
-
-//---------------------------------------------------------------------------------------
-// Pager Button State
-//---------------------------------------------------------------------------------------
-//The scroll can be in one of the following control State
-         PGF_INVISIBLE                  = 0;                  // Scroll button is not visible
-         PGF_NORMAL                     = 1;                  // Scroll button is in normal state
-         PGF_GRAYED                     = 2;                  // Scroll button is in grayed state
-         PGF_DEPRESSED                  = 4;                  // Scroll button is in depressed state
-         PGF_HOT                        = 8;                  // Scroll button is in hot state
-
-
-// The following identifiers specifies the button control
-         PGB_TOPORLEFT                  = 0;
-         PGB_BOTTOMORRIGHT              = 1;
-
-//---------------------------------------------------------------------------------------
-// Pager Control  Messages
-//---------------------------------------------------------------------------------------
-         PGM_SETCHILD                   = (PGM_FIRST + 1);    // lParam == hwnd
-// Macro 292
-
-
-Procedure Pager_SetChild( hwnd : hwnd; hwndChild : LPARAM);
-
-
-
-CONST
-         PGM_RECALCSIZE                 = (PGM_FIRST + 2);
-// Macro 293
-
-
-Procedure Pager_RecalcSize( hwnd : hwnd);
-
-
-
-CONST
-         PGM_FORWARDMOUSE               = (PGM_FIRST + 3);
-// Macro 294
-
-
-Procedure Pager_ForwardMouse( hwnd : hwnd; bForward : WPARAM);
-
-
-
-CONST
-         PGM_SETBKCOLOR                 = (PGM_FIRST + 4);
-// Macro 295
-
-
-Function Pager_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
-
-
-
-CONST
-         PGM_GETBKCOLOR                 = (PGM_FIRST + 5);
-// Macro 296
-
-
-Function Pager_GetBkColor( hwnd : hwnd):COLORREF;
-
-
-
-CONST
-         PGM_SETBORDER                  = (PGM_FIRST + 6);
-// Macro 297
-
-
-Function Pager_SetBorder( hwnd : hwnd; iBorder : LPARAM):cint;
-
-
-
-CONST
-         PGM_GETBORDER                  = (PGM_FIRST + 7);
-// Macro 298
-
-
-Function Pager_GetBorder( hwnd : hwnd):cint;
-
-
-
-CONST
-         PGM_SETPOS                     = (PGM_FIRST + 8);
-// Macro 299
-
-
-Function Pager_SetPos( hwnd : hwnd; iPos : LPARAM):cint;
-
-
-
-CONST
-         PGM_GETPOS                     = (PGM_FIRST + 9);
-// Macro 300
-
-
-Function Pager_GetPos( hwnd : hwnd):cint;
-
-
-
-CONST
-         PGM_SETBUTTONSIZE              = (PGM_FIRST + 10);
-// Macro 301
-
-
-Function Pager_SetButtonSize( hwnd : hwnd; iSize : LPARAM):cint;
-
-
-
-CONST
-         PGM_GETBUTTONSIZE              = (PGM_FIRST + 11);
-// Macro 302
-
-
-Function Pager_GetButtonSize( hwnd : hwnd):cint;
-
-
-
-CONST
-         PGM_GETBUTTONSTATE             = (PGM_FIRST + 12);
-// Macro 303
-
-
-Function Pager_GetButtonState( hwnd : hwnd; iButton : LPARAM):DWORD;
-
-
-
-CONST
-         PGM_GETDROPTARGET              = CCM_GETDROPTARGET;
-// Macro 304
-
-
-Procedure Pager_GetDropTarget( hwnd : hwnd; ppdt : LPARAM);
-
-//---------------------------------------------------------------------------------------
-//Pager Control Notification Messages
-//---------------------------------------------------------------------------------------
-
-
-// PGN_SCROLL Notification Message
-
-
-CONST
-         PGN_SCROLL                     = (PGN_FIRST-1);
-
-         PGF_SCROLLUP                   = 1;
-         PGF_SCROLLDOWN                 = 2;
-         PGF_SCROLLLEFT                 = 4;
-         PGF_SCROLLRIGHT                = 8;
-
-
-//Keys down
-         PGK_SHIFT                      = 1;
-         PGK_CONTROL                    = 2;
-         PGK_MENU                       = 4;
-
-
-{$IFDEF _WIN32}
-// #include <pshpack1.h>
-{$ENDIF}
-
-// This structure is sent along with PGN_SCROLL notifications
-TYPE
-
-         DummyStruct17        = Record
-                                 hdr          : NMHDR;
-                                 fwKeys       : WORD;          // Specifies which keys are down when this notification is send
-                                 rcParent     : RECT;          // Contains Parent Window Rect
-                                 iDir         : cint;          // Scrolling Direction
-                                 iXpos        : cint;          // Horizontal scroll position
-                                 iYpos        : cint;          // Vertical scroll position
-                                 iScroll      : cint;          // [in/out] Amount to scroll
-                                 END;
-         NMPGSCROLL           = DummyStruct17;
-         LPNMPGSCROLL         = ^DummyStruct17;
-         TNMPGScroll          = NMPGSCROLL;
-         PNMPGScroll          = LPNMPGSCROLL;
-
-
-{$IFDEF _WIN32}
-// #include <poppack.h>
-{$ENDIF}
-
-// PGN_CALCSIZE Notification Message
-
-
-CONST
-         PGN_CALCSIZE                   = (PGN_FIRST-2);
-
-         PGF_CALCWIDTH                  = 1;
-         PGF_CALCHEIGHT                 = 2;
-
-TYPE
-
-         DummyStruct18        = Record
-                                 hdr          : NMHDR;
-                                 dwFlag       : DWORD;
-                                 iWidth       : cint;
-                                 iHeight      : cint;
-                                 END;
-         NMPGCALCSIZE         = DummyStruct18;
-         LPNMPGCALCSIZE       = ^DummyStruct18;
-         TNMPGCalcSize        = DummyStruct18;
-         PNMPGCalcSize        = LPNMPGCALCSIZE;
-
-
-
-// PGN_HOTITEMCHANGE Notification Message
-
-
-CONST
-         PGN_HOTITEMCHANGE              = (PGN_FIRST-3);
-
-{
-The PGN_HOTITEMCHANGE notification uses these notification
-flags defined in TOOLBAR:
-
-         HICF_ENTERING                  = $00000010;          // idOld is invalid
-         HICF_LEAVING                   = $00000020;          // idNew is invalid
-}
-
-// Structure for PGN_HOTITEMCHANGE notification
-//
-TYPE
-
-         tagNMPGHOTITEM       = Record
-                                 hdr          : NMHDR;
-                                 idOld        : cint;
-                                 idNew        : cint;
-                                 dwFlags      : DWORD;          // HICF_*
-                                 END;
-         NMPGHOTITEM          = tagNMPGHOTITEM;
-         LPNMPGHOTITEM        = ^tagNMPGHOTITEM;
-         TNMPGHOTITEM         = tagNMPGHOTITEM;
-         PNMPGHOTITEM         = ^tagNMPGHOTITEM;
-
-
-{$ENDIF} // NOPAGESCROLLER
-
-////======================  End Pager Control ==========================================
-
-//
-// === Native Font Control ===
-//
-{$IFNDEF NONATIVEFONTCTL}
-//NativeFont Class Name
-
-CONST
-         WC_NATIVEFONTCTLW              = {L}'NativeFontCtl';
-         WC_NATIVEFONTCTLA              = 'NativeFontCtl';
-
-{$IFDEF UNICODE}
-
-TYPE
-         WC_NATIVEFONTCTL    = WC_NATIVEFONTCTLW;
-{$ELSE}
-         WC_NATIVEFONTCTL    = WC_NATIVEFONTCTLA;
-{$ENDIF}
-
-// begin_r_commctrl
-
-// style definition
-
-CONST
-         NFS_EDIT                       = $0001;
-         NFS_STATIC                     = $0002;
-         NFS_LISTCOMBO                  = $0004;
-         NFS_BUTTON                     = $0008;
-         NFS_ALL                        = $0010;
-         NFS_USEFONTASSOC               = $0020;
-
-// end_r_commctrl
-
-{$ENDIF} // NONATIVEFONTCTL
-// === End Native Font Control ===
-
-/// ====================== Button Control =============================
-
-{$IFNDEF NOBUTTON}
-
-{$IFDEF _WIN32}
-
-// Button Class Name
-         WC_BUTTONA                     = 'Button';
-         WC_BUTTONW                     = {L}'Button';
-
-CONST
-{$IFDEF UNICODE}
-         WC_BUTTON           = WC_BUTTONW;
-{$ELSE}
-         WC_BUTTON           = WC_BUTTONA;
-{$ENDIF}
-
-{$ELSE}
-
-         WC_BUTTON                      = 'Button';
-{$ENDIF}
-
-{$ifdef win32xp}
-         BUTTON_IMAGELIST_ALIGN_LEFT    = 0;
-         BUTTON_IMAGELIST_ALIGN_RIGHT   = 1;
-         BUTTON_IMAGELIST_ALIGN_TOP     = 2;
-         BUTTON_IMAGELIST_ALIGN_BOTTOM  = 3;
-         BUTTON_IMAGELIST_ALIGN_CENTER  = 4;                  // Doesn't draw text
-
-TYPE
-
-         DummyStruct19        = Record
-                                 himl         : HIMAGELIST;          // Index: Normal, hot pushed, disabled. If count is less than 4, we use index 1
-                                 margin       : RECT;          // Margin around icon.
-                                 uAlign       : UINT;
-                                 END;
-         BUTTON_IMAGELIST     = DummyStruct19;
-         PBUTTON_IMAGELIST    = ^DummyStruct19;
-         TDummyStruct19       = DummyStruct19;
-         PDummyStruct19       = ^DummyStruct19;
-
-
-
-CONST
-         BCM_GETIDEALSIZE               = (BCM_FIRST + $0001);
-// Macro 305
-
-
-Function Button_GetIdealSize( hwnd : hwnd; psize : LPARAM):BOOL;
-
-
-
-CONST
-         BCM_SETIMAGELIST               = (BCM_FIRST + $0002);
-// Macro 306
-
-
-Function Button_SetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
-
-
-
-CONST
-         BCM_GETIMAGELIST               = (BCM_FIRST + $0003);
-// Macro 307
-
-
-Function Button_GetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
-
-
-
-CONST
-         BCM_SETTEXTMARGIN              = (BCM_FIRST + $0004);
-// Macro 308
-
-
-Function Button_SetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
-
-
-CONST
-         BCM_GETTEXTMARGIN              = (BCM_FIRST + $0005);
-// Macro 309
-
-
-Function Button_GetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
-
-
-TYPE
-
-         tagNMBCHOTITEM       = Record
-                                 hdr          : NMHDR;
-                                 dwFlags      : DWORD;          // HICF_*
-                                 END;
-         NMBCHOTITEM          = tagNMBCHOTITEM;
-         LPNMBCHOTITEM        = ^tagNMBCHOTITEM;
-         TNMBCHOTITEM         = tagNMBCHOTITEM;
-         PNMBCHOTITEM         = ^tagNMBCHOTITEM;
-
-
-
-CONST
-         BCN_HOTITEMCHANGE              = (BCN_FIRST + $0001);
-
-         BST_HOT                        = $0200;
-
-{$ENDIF}
-
-
-{$ENDIF} // NOBUTTON
-
-/// =====================  End Button Control =========================
-
-/// ====================== Static Control =============================
-
-{$IFNDEF NOSTATIC}
-
-{$IFDEF _WIN32}
-
-// Static Class Name
-         WC_STATICA                     = 'Static';
-         WC_STATICW                     = {L}'Static';
-
-{$IFDEF UNICODE}
-
-TYPE
-         WC_STATIC           = WC_STATICW;
-{$ELSE}
-         WC_STATIC           = WC_STATICA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         WC_STATIC                      = 'Static';
-{$ENDIF}
-
-{$ENDIF} // NOSTATIC
-
-/// =====================  End Static Control =========================
-
-/// ====================== Edit Control =============================
-
-{$IFNDEF NOEDIT}
-
-{$IFDEF _WIN32}
-
-// Edit Class Name
-         WC_EDITA                       = 'Edit';
-         WC_EDITW                       = {L}'Edit';
-
-{$IFDEF UNICODE}
-
-TYPE
-         WC_EDIT             = WC_EDITW;
-{$ELSE}
-         WC_EDIT             = WC_EDITA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         WC_EDIT                        = 'Edit';
-{$ENDIF}
-
-{$ifdef win32xp}
-         EM_SETCUEBANNER                = (ECM_FIRST + 1);    // Set the cue banner with the lParm = LPCWSTR
-// Macro 310
-
-
-Function Edit_SetCueBannerText( hwnd : hwnd; lpcwText : LPARAM):BOOL;
-
-
-CONST
-         EM_GETCUEBANNER                = (ECM_FIRST + 2);    // Set the cue banner with the lParm = LPCWSTR
-// Macro 311
-
-
-Function Edit_GetCueBannerText( hwnd : hwnd; lpwText : WPARAM; cchText : LPARAM):BOOL;
-
-
-TYPE
-
-         _tagEDITBALLOONTIP   = Record
-                                 cbStruct     : DWORD;
-                                 pszTitle     : LPCWSTR;
-                                 pszText      : LPCWSTR;
-                                 ttiIcon      : cint;          // From TTI_*
-                                 END;
-         EDITBALLOONTIP       = _tagEDITBALLOONTIP;
-         PEDITBALLOONTIP      = ^_tagEDITBALLOONTIP;
-         TEDITBALLOONTIP      = _tagEDITBALLOONTIP;
-
-
-
-CONST
-         EM_SHOWBALLOONTIP              = (ECM_FIRST + 3);    // Show a balloon tip associated to the edit control
-// Macro 312
-
-
-Function Edit_ShowBalloonTip( hwnd : hwnd; peditballoontip : LPARAM):BOOL;
-
-
-CONST
-         EM_HIDEBALLOONTIP              = (ECM_FIRST + 4);    // Hide any balloon tip associated with the edit control
-// Macro 313
-
-
-Function Edit_HideBalloonTip( hwnd : hwnd):BOOL;
-
-{$ENDIF}
-
-{$ENDIF} // NOEDIT
-
-/// =====================  End Edit Control =========================
-
-/// ====================== Listbox Control =============================
-
-{$IFNDEF NOLISTBOX}
-
-{$IFDEF _WIN32}
-
-// Listbox Class Name
-
-CONST
-         WC_LISTBOXA                    = 'ListBox';
-         WC_LISTBOXW                    = {L}'ListBox';
-
-{$IFDEF UNICODE}
-
-TYPE
-         WC_LISTBOX          = WC_LISTBOXW;
-{$ELSE}
-         WC_LISTBOX          = WC_LISTBOXA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         WC_LISTBOX                     = 'ListBox';
-{$ENDIF}
-
-{$ENDIF} // NOLISTBOX
-
-
-/// =====================  End Listbox Control =========================
-
-/// ====================== Combobox Control =============================
-
-{$IFNDEF NOCOMBOBOX}
-
-{$IFDEF _WIN32}
-
-// Combobox Class Name
-         WC_COMBOBOXA                   = 'ComboBox';
-         WC_COMBOBOXW                   = {L}'ComboBox';
-
-{$IFDEF UNICODE}
-
-TYPE
-         WC_COMBOBOX         = WC_COMBOBOXW;
-{$ELSE}
-         WC_COMBOBOX         = WC_COMBOBOXA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         WC_COMBOBOX                    = 'ComboBox';
-{$ENDIF}
-
-{$ENDIF} // NOCOMBOBOX
-
-
-{$ifdef win32xp}
-
-// custom combobox control messages
-         CB_SETMINVISIBLE               = (CBM_FIRST + 1);
-         CB_GETMINVISIBLE               = (CBM_FIRST + 2);
-
-// Macro 314
-
-
-Function ComboBox_SetMinVisible( hwnd : hwnd; iMinVisible : WPARAM):BOOL;
-
-
-// Macro 315
-
-
-Function ComboBox_GetMinVisible( hwnd : hwnd):cint;
-
-
-{$ENDIF}
-
-/// =====================  End Combobox Control =========================
-
-/// ====================== Scrollbar Control ============================
-
-{$IFNDEF NOSCROLLBAR}
-
-{$IFDEF _WIN32}
-
-// Scrollbar Class Name
-
-CONST
-         WC_SCROLLBARA                  = 'ScrollBar';
-         WC_SCROLLBARW                  = {L}'ScrollBar';
-
-{$IFDEF UNICODE}
-
-TYPE
-         WC_SCROLLBAR        = WC_SCROLLBARW;
-{$ELSE}
-         WC_SCROLLBAR        = WC_SCROLLBARA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         WC_SCROLLBAR                   = 'ScrollBar';
-{$ENDIF}
-
-{$ENDIF} // NOSCROLLBAR
-
-
-/// ===================== End Scrollbar Control =========================
-
-
-//====== SysLink control =========================================
-
-{$IFDEF _WIN32}
-{$ifdef win32xp}
-
-         INVALID_LINK_INDEX             = (-1);
-         MAX_LINKID_TEXT                = 48;
-         L_MAX_URL_LENGTH               = (2048 + 32 + length('://'));
-
-         WC_LINK                        = {L}'SysLink';
-
-         LWS_TRANSPARENT                = $0001;
-         LWS_IGNORERETURN               = $0002;
-
-         LIF_ITEMINDEX                  = $00000001;
-         LIF_STATE                      = $00000002;
-         LIF_ITEMID                     = $00000004;
-         LIF_URL                        = $00000008;
-
-         LIS_FOCUSED                    = $00000001;
-         LIS_ENABLED                    = $00000002;
-         LIS_VISITED                    = $00000004;
-
-TYPE
-
-         tagLITEM             = Record
-                                 mask         : UINT;
-                                 iLink        : cint;
-                                 state        : UINT;
-                                 stateMask    : UINT;
-                                 szID         : Array [0..MAX_LINKID_TEXT-1] OF WCHAR;
-                                 szUrl        : Array [0..L_MAX_URL_LENGTH-1] OF WCHAR;
-                                 END;
-         LITEM                = tagLITEM;
-         PLITEM               = ^tagLITEM;
-         TLITEM               = tagLITEM;
-//         PLITEM               = ^tagLITEM;
-
-
-         tagLHITTESTINFO      = Record
-                                 pt           : POINT;
-                                 item         : LITEM;
-                                 END;
-         LHITTESTINFO         = tagLHITTESTINFO;
-         PLHITTESTINFO        = ^tagLHITTESTINFO;
-         TLHITTESTINFO        = tagLHITTESTINFO;
-//         PLHITTESTINFO        = ^tagLHITTESTINFO;
-
-
-         tagNMLINK            = Record
-                                 hdr          : NMHDR;
-                                 item         : LITEM;
-                                 END;
-         NMLINK               = tagNMLINK;
-         PNMLINK              = ^tagNMLINK;
-         TNMLINK              = tagNMLINK;
-//         PNMLINK              = ^tagNMLINK;
-
-
-//  SysLink notifications
-//  NM_CLICK   // wParam: control ID, lParam: PNMLINK, ret: ignored.
-
-//  LinkWindow messages
-
-CONST
-         LM_HITTEST                     = (WM_USER+$300);     // wParam: n/a, lparam: PLHITTESTINFO, ret: BOOL
-         LM_GETIDEALHEIGHT              = (WM_USER+$301);     // wParam: n/a, lparam: n/a, ret: cy
-         LM_SETITEM                     = (WM_USER+$302);     // wParam: n/a, lparam: LITEM*, ret: BOOL
-         LM_GETITEM                     = (WM_USER+$303);     // wParam: n/a, lparam: LITEM*, ret: BOOL
-
-{$ENDIF}
-{$ENDIF} // _WIN32
-//====== End SysLink control =========================================
-
-
-//
-// === MUI APIs ===
-//
-{$IFNDEF NOMUI}
-procedure InitMUILanguage(uiLang:LANGID); stdcall; external commctrldll name 'InitMUILanguage';
-
-
-function GetMUILanguage:LANGID; stdcall; external commctrldll name 'GetMUILanguage';
-{$ENDIF}  // NOMUI
-
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-{$IFDEF _WIN32}
-//====== TrackMouseEvent  =====================================================
-
-{$IFNDEF NOTRACKMOUSEEVENT}
-
-//
-// If the messages for TrackMouseEvent have not been defined then define them
-// now.
-//
-{$IFNDEF WM_MOUSEHOVER}
-
-CONST
-         WM_MOUSEHOVER                  = $02A1;
-         WM_MOUSELEAVE                  = $02A3;
-{$ENDIF}
-
-//
-// If the TRACKMOUSEEVENT structure and associated flags havent been declared
-// then declare them now.
-//
-{$IFNDEF TME_HOVER}
-
-         TME_HOVER                      = $00000001;
-         TME_LEAVE                      = $00000002;
-{$ifdef win32xp}
-         TME_NONCLIENT                  = $00000010;
-{$ENDIF} { WINVER >= 0x0500 }
-         TME_QUERY                      = $40000000;
-         TME_CANCEL                     = $80000000;
-
-
-
-         HOVER_DEFAULT                  = $FFFFFFFF;
-
-TYPE
-
-         tagTRACKMOUSEEVENT   = Record
-                                 cbSize       : DWORD;
-                                 dwFlags      : DWORD;
-                                 hwndTrack    : HWND;
-                                 dwHoverTime  : DWORD;
-                                 END;
-         TRACKMOUSEEVENT      = tagTRACKMOUSEEVENT;
-         LPTRACKMOUSEEVENT    = ^tagTRACKMOUSEEVENT;
-         TTRACKMOUSEEVENT     = tagTRACKMOUSEEVENT;
-         PTRACKMOUSEEVENT     = ^tagTRACKMOUSEEVENT;
-
-
-{$ENDIF} // !TME_HOVER
-
-
-
-//
-// Declare _TrackMouseEvent.  This API tries to use the window manager's
-// implementation of TrackMouseEvent if it is present, otherwise it emulates.
-//
-function _TrackMouseEvent(lpEventTrack:LPTRACKMOUSEEVENT):BOOL; stdcall; external commctrldll name '_TrackMouseEvent';
-
-{$ENDIF} // !NOTRACKMOUSEEVENT
-
-{$ifdef ie4plus}
-
-//====== Flat Scrollbar APIs=========================================
-{$IFNDEF NOFLATSBAPIS}
-
-
-CONST
-         WSB_PROP_CYVSCROLL             = LONG($00000001);
-         WSB_PROP_CXHSCROLL             = LONG($00000002);
-         WSB_PROP_CYHSCROLL             = LONG($00000004);
-         WSB_PROP_CXVSCROLL             = LONG($00000008);
-         WSB_PROP_CXHTHUMB              = LONG($00000010);
-         WSB_PROP_CYVTHUMB              = LONG($00000020);
-         WSB_PROP_VBKGCOLOR             = LONG($00000040);
-         WSB_PROP_HBKGCOLOR             = LONG($00000080);
-         WSB_PROP_VSTYLE                = LONG($00000100);
-         WSB_PROP_HSTYLE                = LONG($00000200);
-         WSB_PROP_WINSTYLE              = LONG($00000400);
-         WSB_PROP_PALETTE               = LONG($00000800);
-         WSB_PROP_MASK                  = LONG($00000FFF);
-
-         FSB_FLAT_MODE                  = 2;
-         FSB_ENCARTA_MODE               = 1;
-         FSB_REGULAR_MODE               = 0;
-
-function FlatSB_EnableScrollBar(hwnd:HWND;code : cint;p3 : UINT):BOOL; stdcall; external commctrldll name 'FlatSB_EnableScrollBar';
-function FlatSB_ShowScrollBar(hwnd:HWND;code : cint;p3 : BOOL):BOOL; stdcall; external commctrldll name 'FlatSB_ShowScrollBar';
-
-function FlatSB_GetScrollRange(hwnd:HWND;code : cint;p3 : LPINT;p4 : LPINT):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollRange';
-function FlatSB_GetScrollRange(hwnd:HWND;code : cint;var p3,p4 : cint):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollRange';
-function FlatSB_GetScrollInfo(hwnd:HWND;code : cint;ScrollInfo : LPSCROLLINFO):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollInfo';
-function FlatSB_GetScrollInfo(hwnd:HWND;code : cint;var ScrollInfo : TSCROLLINFO):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollInfo';
-
-function FlatSB_GetScrollPos(hwnd:HWND;code : cint):cint; stdcall; external commctrldll name 'FlatSB_GetScrollPos';
-
-
-function FlatSB_GetScrollProp(hwnd:HWND):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollProp';
-{$IFDEF _WIN64}
-function FlatSB_GetScrollPropPtr(hwnd:HWND;propIndex : cint;p3 : LPINT):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollPropPtr';
-{$ELSE}
-function FlatSB_GetScrollPropPtr(hwnd:HWND;code : cint):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollProp';
-{$ENDIF}
-
-
-function FlatSB_SetScrollPos(hWnd:HWND;nBar,nPos:cint;bRedraw:BOOL):cint; stdcall; external commctrldll name 'FlatSB_SetScrollPos';
-
-function FlatSB_SetScrollInfo(hWnd:HWND;BarFlag:cint;const ScrollInfo:TScrollInfo;Redraw:BOOL):cint; stdcall; external commctrldll name 'FlatSB_SetScrollInfo';
-
-
-function FlatSB_SetScrollRange(hWnd: HWND; nBar,nMinPos,nMaxPos: cint; bRedraw: BOOL):cint; stdcall; external commctrldll name 'FlatSB_SetScrollRange';
-function FlatSB_SetScrollProp(p1: HWND; index : UINT; newValue: INT_PTR; p4: BOOL):BOOL; stdcall; external commctrldll name 'FlatSB_SetScrollProp';
-
-function InitializeFlatSB(hWnd:HWND):BOOL; stdcall; external commctrldll name 'InitializeFlatSB';
-function UninitializeFlatSB(hWnd:HWND):HRESULT; stdcall; external commctrldll name 'UninitializeFlatSB';
-
-{$ENDIF}  //  NOFLATSBAPIS
-
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-{$ENDIF} { _WIN32 }
-
-{$ENDIF}      // _WIN32_IE >= 0x0300
-
-{$ifdef win32xp}
-//
-// subclassing stuff
-//
-TYPE
-    subclassproc=function (hwnd:HWND;uMsg:cUINT; wParam:WPARAM;lparam:LPARAM;uISubClass : UINT_PTR;dwRefData:DWORD_PTR):LRESULT; stdcall;
-
-{
-     (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam, = LRESULT
-    LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData);
-
-typedef LRESULT (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam,
-    LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData);
-
-    hwnd:HWND;uMsg:cUINT; wParam:WPARAM;lparam:LPARAM;uISubClass : CUINT_PTR;dwRefData:DWORD_PTR):LRESULT; stdcall;
-}
-
-function SetWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR;dwRefData:DWORD_PTR):BOOL; stdcall; external commctrldll name 'SetWindowSubclass';
-function GetWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR;pdwRefData:PDWORD_PTR):BOOL; stdcall; external commctrldll name 'GetWindowSubclass';
-function RemoveWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR):BOOL; stdcall; external commctrldll name 'RemoveWindowSubclass';
-
-function DefSubclassProc(hWnd:HWND;uMsg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT; stdcall; external commctrldll name 'DefSubclassProc';
-{$ENDIF}
-
-
-{$ifdef win32xp}
-
-function DrawShadowText(hdc:HDC;pszText:LPCWSTR;cch:UINT;prc:PRECT;dwFlags:DWORD;crText:COLORREF;crShadow:COLORREF;ixOffset:cint;iyOffset:cint):cint; stdcall; external commctrldll name 'DrawShadowText';
-{$ENDIF}
-
-
-IMPLEMENTATION
-
-// Macro 8
-
-//#define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \
-//     (fn)((hwnd), (int)(wParam), (NMHDR *)(lParam))
-
-Procedure HANDLE_WM_NOTIFY( hwnd : hwnd; wParam : cint;var _lParam : NMHDR ;fn:Pointer);
-
-TYPE FnType=procedure ( hwnd : hwnd; wParam : cint;tst:LPARAM); stdcall;
-
-Begin
- fnType(fn)(hwnd, wParam, LPARAM(@_lParam));
-end;
-
-// Macro 9
-
-//#define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) \
-//     (LRESULT)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(idFrom), (LPARAM)(NMHDR *)(pnmhdr))
-
-Function FORWARD_WM_NOTIFY( hwnd : hwnd; idFrom : cint;var  pnmhdr : NMHDR ; fn : pointer ):LRESULT;
-
-TYPE FnType=Function( hwnd : hwnd; wParam : cint;wparam2:cint;lparam1:lparam):LResult; stdcall;
-
-Begin
- Result:=LRESULT(fntype(fn)(hwnd, WM_NOTIFY, idFrom, LPARAM(@pnmhdr)));
-end;
-
-// Macro 10
-// #define CCSIZEOF_STRUCT(structname, member)  (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
-
-
-// Macro 11
-// #define     ImageList_AddIcon(himl, hicon) ImageList_ReplaceIcon(himl, -1, hicon)
-
-Function ImageList_AddIcon(Himl:HIMAGELIST;hicon:HICON):cint;
-Begin
-  Result:=ImageList_ReplaceIcon(himl,-1,hicon);
-end;
-
-
-// Macro 12
-// #define INDEXTOOVERLAYMASK(i)   ((i) << 8)
-
-// Macro 13
-// #define     ImageList_RemoveAll(himl) ImageList_Remove(himl, -1)
-
-Procedure ImageList_RemoveAll(himl:HIMAGELIST);
-Begin
- ImageList_Remove(himl, -1)
-End;
-
-// Macro 14
-// #define     ImageList_ExtractIcon(hi, himl, i) ImageList_GetIcon(himl, i, 0)
-
-Procedure ImageList_ExtractIcon(hi:longint; {dummy?} himl:HIMAGELIST;i:cint);
-
-Begin
- ImageList_GetIcon(himl, i,0);
-end;
-
-
-// Macro 15
-// #define     ImageList_LoadBitmap(hi, lpbmp, cx, cGrow, crMask)
-// ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0)
-
-Procedure ImageList_LoadBitmap(hi:HINST;bmp:LPCTSTR;cx:cint;cGrow:cint;crMask:COLORREF);
-
-Begin
- ImageList_LoadImage(hi, bmp, cx, cGrow, crMask, IMAGE_BITMAP, 0);
-End;
-
-// Macro 16
-// #define Header_GetItemCount(hwndHD) \
-//     (int)SNDMSG((hwndHD), HDM_GETITEMCOUNT, 0, DWord(0))
-
-Function Header_GetItemCount( hwndHD : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwndHD), HDM_GETITEMCOUNT, 0, LPARAM(0)))
-end;
-
-
-// Macro 17
-//#define Header_InsertItem(hwndHD, i, phdi) \
-//     (int)SNDMSG((hwndHD), HDM_INSERTITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi))
-
-Function Header_InsertItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):cint;
-
-Begin
- Result:=cint(SendMessage((hwndHD), HDM_INSERTITEM, (i), LPARAM(@phdi)));
-end;
-
-// Macro 18
-//#define Header_DeleteItem(hwndHD, i) \
-//     (BOOL)SNDMSG((hwndHD), HDM_DELETEITEM, (WPARAM)(int)(i), LPARAM(0))
-
-Function Header_DeleteItem( hwndHD : hwnd; i : cint):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndHD), HDM_DELETEITEM, (i), LPARAM(0)));
-end;
-
-
-// Macro 19
-// #define Header_GetItem(hwndHD, i, phdi) \
-//     (BOOL)SNDMSG((hwndHD), HDM_GETITEM, (WPARAM)(int)(i), (LPARAM)(HD_ITEM *)(phdi))
-
-Function Header_GetItem( hwndHD : hwnd; i : cint;var  phdi : HD_ITEM ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndHD), HDM_GETITEM, (i), LPARAM(@phdi)));
-end;
-
-
-// Macro 20
-// #define Header_SetItem(hwndHD, i, phdi) \
-//     (BOOL)SNDMSG((hwndHD), HDM_SETITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi))
-
-Function Header_SetItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndHD), HDM_SETITEM, (i), LPARAM(@phdi)));
-end;
-
-
-// Macro 21
-// #define Header_Layout(hwndHD, playout) \
-//     (BOOL)SNDMSG((hwndHD), HDM_LAYOUT, 0, (LPARAM)(HD_LAYOUT *)(playout))
-
-Function Header_Layout( hwndHD : hwnd;var  playout : HD_LAYOUT ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndHD), HDM_LAYOUT, 0, LPARAM(@playout)))
-end;
-
-
-// Macro 22
-// #define Header_GetItemRect(hwnd, iItem, lprc) \
-//         (BOOL)SNDMSG((hwnd), HDM_GETITEMRECT, (WPARAM)(iItem), (LPARAM)(lprc))
-
-Function Header_GetItemRect( hwnd : hwnd; iItem : WPARAM; lprc : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), HDM_GETITEMRECT, iItem, lprc));
-end;
-
-
-// Macro 23
-// #define Header_SetImageList(hwnd, himl) \
-//         (HIMAGELIST)SNDMSG((hwnd), HDM_SETIMAGELIST, 0, (LPARAM)(himl))
-
-Function Header_SetImageList( hwnd : hwnd; himl : LPARAM):HIMAGELIST;
-
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), HDM_SETIMAGELIST, 0, himl))
-end;
-
-
-// Macro 24
-// #define Header_GetImageList(hwnd) \
-//         (HIMAGELIST)SNDMSG((hwnd), HDM_GETIMAGELIST, 0, 0)
-
-Function Header_GetImageList( hwnd : hwnd):HIMAGELIST;
-
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), HDM_GETIMAGELIST, 0, 0))
-end;
-
-
-// Macro 25
-// #define Header_OrderToIndex(hwnd, i) \
-//         (int)SNDMSG((hwnd), HDM_ORDERTOINDEX, (WPARAM)(i), 0)
-
-Function Header_OrderToIndex( hwnd : hwnd; i : WPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), HDM_ORDERTOINDEX, (i), 0))
-end;
-
-
-// Macro 26
-// #define Header_CreateDragImage(hwnd, i) \
-//         (HIMAGELIST)SNDMSG((hwnd), HDM_CREATEDRAGIMAGE, (WPARAM)(i), 0)
-
-Function Header_CreateDragImage( hwnd : hwnd; i : WPARAM):HIMAGELIST;
-
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), HDM_CREATEDRAGIMAGE, (i), 0))
-end;
-
-
-// Macro 27
-// #define Header_GetOrderArray(hwnd, iCount, lpi) \
-//         (BOOL)SNDMSG((hwnd), HDM_GETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi))
-
-Function Header_GetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), HDM_GETORDERARRAY, iCount, lpi))
-end;
-
-
-// Macro 28
-// #define Header_SetOrderArray(hwnd, iCount, lpi) \
-//         (BOOL)SNDMSG((hwnd), HDM_SETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi))
-
-Function Header_SetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : PInteger):BOOL;inline;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), HDM_SETORDERARRAY, iCount, LPARAM(lpi)))
-end;
-
-
-// Macro 29
-// #define Header_SetHotDivider(hwnd, fPos, dw) \
-//         (int)SNDMSG((hwnd), HDM_SETHOTDIVIDER, (WPARAM)(fPos), (LPARAM)(dw))
-
-Function Header_SetHotDivider( hwnd : hwnd; fPos : WPARAM; dw : LPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), HDM_SETHOTDIVIDER, fPos, dw))
-end;
-
-
-{$ifdef ie5plus}
-// Macro 30
-// #define Header_SetBitmapMargin(hwnd, iWidth) \
-//         (int)SNDMSG((hwnd), HDM_SETBITMAPMARGIN, (WPARAM)(iWidth), 0)
-
-Function Header_SetBitmapMargin( hwnd : hwnd; iWidth : WPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), HDM_SETBITMAPMARGIN, iWidth, 0))
-end;
-
-
-// Macro 31
-// #define Header_GetBitmapMargin(hwnd) \
-//         (int)SNDMSG((hwnd), HDM_GETBITMAPMARGIN, 0, 0)
-
-Function Header_GetBitmapMargin( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), HDM_GETBITMAPMARGIN, 0, 0))
-end;
-
-{$ENDIF}
-
-// Macro 32
-// #define Header_SetUnicodeFormat(hwnd, fUnicode)  \
-//     (BOOL)SNDMSG((hwnd), HDM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
-
-Function Header_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), HDM_SETUNICODEFORMAT, fUnicode, 0));
-end;
-
-
-// Macro 33
-// #define Header_GetUnicodeFormat(hwnd)  \
-//     (BOOL)SNDMSG((hwnd), HDM_GETUNICODEFORMAT, 0, 0)
-
-Function Header_GetUnicodeFormat( hwnd : hwnd):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), HDM_GETUNICODEFORMAT, 0, 0))
-end;
-
-
-{$ifdef IE5plus}
-// Macro 34
-// #define Header_SetFilterChangeTimeout(hwnd, i) \
-//         (int)SNDMSG((hwnd), HDM_SETFILTERCHANGETIMEOUT, 0, (LPARAM)(i))
-
-Function Header_SetFilterChangeTimeout( hwnd : hwnd; i : LPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), HDM_SETFILTERCHANGETIMEOUT, 0, (i)))
-end;
-
-
-// Macro 35
-// #define Header_EditFilter(hwnd, i, fDiscardChanges) \
-//         (int)SNDMSG((hwnd), HDM_EDITFILTER, (WPARAM)(i), MAKELPARAM(fDiscardChanges, 0))
-
-Function Header_EditFilter( hwnd : hwnd; i : WPARAM; fDiscardChanges :cint ):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), HDM_EDITFILTER, (i), MAKELPARAM(fDiscardChanges, 0)));
-end;
-
-
-// Macro 36
-// #define Header_ClearFilter(hwnd, i) \
-//         (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)(i), 0)
-
-Function Header_ClearFilter( hwnd : hwnd; i : WPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), HDM_CLEARFILTER, (i), 0))
-end;
-
-
-// Macro 37
-// #define Header_ClearAllFilters(hwnd) \
-//         (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)-1, 0)
-
-Function Header_ClearAllFilters( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), HDM_CLEARFILTER, WPARAM(-1), 0))
-end;
-{$endif}
-
-// Macro 38
-// #define ListView_SetUnicodeFormat(hwnd, fUnicode)  \
-//     (BOOL)SNDMSG((hwnd), LVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
-
-Function ListView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETUNICODEFORMAT, fUnicode, 0));
-end;
-
-
-// Macro 39
-// #define ListView_GetUnicodeFormat(hwnd)  \
-//     (BOOL)SNDMSG((hwnd), LVM_GETUNICODEFORMAT, 0, 0)
-
-Function ListView_GetUnicodeFormat( hwnd : hwnd):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_GETUNICODEFORMAT, 0, 0))
-end;
-
-
-// Macro 40
-// #define ListView_GetBkColor(hwnd)  \
-//     (COLORREF)SNDMSG((hwnd), LVM_GETBKCOLOR, 0, LPARAM(0))
-
-Function ListView_GetBkColor( hwnd : hwnd):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), LVM_GETBKCOLOR, 0, LPARAM(0)))
-end;
-
-
-// Macro 41
-// #define ListView_SetBkColor(hwnd, clrBk) \
-//     (BOOL)SNDMSG((hwnd), LVM_SETBKCOLOR, 0, (LPARAM)(COLORREF)(clrBk))
-
-Function ListView_SetBkColor( hwnd : hwnd; clrBk : COLORREF):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETBKCOLOR, 0, clrBk))
-end;
-
-
-// Macro 42
-// #define ListView_GetImageList(hwnd, iImageList) \
-//     (HIMAGELIST)SNDMSG((hwnd), LVM_GETIMAGELIST, (WPARAM)(INT)(iImageList), DWord(0))
-
-Function ListView_GetImageList( hwnd : hwnd; iImageList : CINT):HIMAGELIST;
-
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), LVM_GETIMAGELIST, iImageList, LPARAM(0)))
-end;
-
-
-// Macro 43
-// #define ListView_SetImageList(hwnd, himl, iImageList) \
-//     (HIMAGELIST)SNDMSG((hwnd), LVM_SETIMAGELIST, (WPARAM)(iImageList), (LPARAM)(HIMAGELIST)(himl))
-
-Function ListView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImageList : WPARAM):HIMAGELIST;
-
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), LVM_SETIMAGELIST, iImageList, himl))
-end;
-
-
-// Macro 44
-// #define ListView_GetItemCount(hwnd) \
-//     (int)SNDMSG((hwnd), LVM_GETITEMCOUNT, 0, DWord(0))
-
-Function ListView_GetItemCount( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), LVM_GETITEMCOUNT, 0, LPARAM(0)))
-end;
-
-
-// Macro 45
-// #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
-
-// Macro 46
-// #define ListView_GetItem(hwnd, pitem) \
-//     (BOOL)SNDMSG((hwnd), LVM_GETITEM, 0, (LPARAM)(LV_ITEM *)(pitem))
-
-Function ListView_GetItem( hwnd : hwnd;var  pitem : LV_ITEM ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_GETITEM, 0, LPARAM(@pitem)))
-end;
-
-
-// Macro 47
-// #define ListView_SetItem(hwnd, pitem) \
-//     (BOOL)SNDMSG((hwnd), LVM_SETITEM, 0, (LPARAM)(const LV_ITEM *)(pitem))
-
-Function ListView_SetItem( hwnd : hwnd;const pitem : LV_ITEM ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETITEM, 0, LPARAM(@pitem)))
-end;
-
-
-// Macro 48
-// #define ListView_InsertItem(hwnd, pitem)   \
-//     (int)SNDMSG((hwnd), LVM_INSERTITEM, 0, (LPARAM)(const LV_ITEM *)(pitem))
-
-Function ListView_InsertItem( hwnd : hwnd;Const pitem : LV_ITEM ):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), LVM_INSERTITEM, 0, LPARAM(@pitem)))
-end;
-
-
-// Macro 49
-// #define ListView_DeleteItem(hwnd, i) \
-//     (BOOL)SNDMSG((hwnd), LVM_DELETEITEM, (WPARAM)(int)(i), DWord(0))
-
-Function ListView_DeleteItem( hwnd : hwnd; i : cint):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_DELETEITEM, (i), LPARAM(0)))
-end;
-
-
-// Macro 50
-// #define ListView_DeleteAllItems(hwnd) \
-//     (BOOL)SNDMSG((hwnd), LVM_DELETEALLITEMS, 0, DWord(0))
-
-Function ListView_DeleteAllItems( hwnd : hwnd):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_DELETEALLITEMS, 0, LPARAM(0)))
-end;
-
-
-// Macro 51
-// #define ListView_GetCallbackMask(hwnd) \
-//     (BOOL)SNDMSG((hwnd), LVM_GETCALLBACKMASK, 0, 0)
-
-Function ListView_GetCallbackMask( hwnd : hwnd):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_GETCALLBACKMASK, 0, 0))
-end;
-
-
-// Macro 52
-// #define ListView_SetCallbackMask(hwnd, mask) \
-//     (BOOL)SNDMSG((hwnd), LVM_SETCALLBACKMASK, (WPARAM)(UINT)(mask), 0)
-
-Function ListView_SetCallbackMask( hwnd : hwnd; mask : UINT):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETCALLBACKMASK, mask, 0))
-end;
-
-
-// Macro 53
-// #define ListView_GetNextItem(hwnd, i, flags) \
-//     (int)SNDMSG((hwnd), LVM_GETNEXTITEM, (WPARAM)(int)(i), MAKELPARAM((flags), 0))
-
-Function ListView_GetNextItem( hwnd : hwnd; i : cint; flags : cint):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), LVM_GETNEXTITEM, (i), MAKELPARAM((flags), 0)))
-end;
-
-
-// Macro 54
-// #define ListView_FindItem(hwnd, iStart, plvfi) \
-//     (int)SNDMSG((hwnd), LVM_FINDITEM, (WPARAM)(int)(iStart), (LPARAM)(const LV_FINDINFO *)(plvfi))
-
-Function ListView_FindItem( hwnd : hwnd; iStart : cint;const plvfi : LV_FINDINFO ):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), LVM_FINDITEM, iStart, LPARAM(@plvfi)))
-end;
-
-
-// Macro 55
-// #define ListView_GetItemRect(hwnd, i, prc, code) \
-//      (BOOL)SNDMSG((hwnd), LVM_GETITEMRECT, (WPARAM)(int)(i), \
-//            ((prc) ? (((RECT *)(prc))->left = (code),(LPARAM)(RECT *)(prc)) : (LPARAM)(RECT *)NULL))
-
-Function ListView_GetItemRect( hwnd : hwnd; i : cint;var prc : TRect;code : cint):BOOL;
-begin
-  if assigned(@prc) then
-    begin
-      prc.left:=Code;
-      Result:=BOOL(SendMessage(hWnd,LVM_GETITEMRECT,i,LPARAM(@prc)));
-    end
-  else
-    Result:=BOOL(SendMessage(hWnd,LVM_GETITEMRECT,i,0));
-end;
-
-
-// Macro 56
-// #define ListView_SetItemPosition(hwndLV, i, x, y) \
-//     (BOOL)SNDMSG((hwndLV), LVM_SETITEMPOSITION, (WPARAM)(int)(i), MAKELPARAM((x), (y)))
-
-Function ListView_SetItemPosition( hwndLV : hwnd; i : cint; x : cint ; y : cint ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_SETITEMPOSITION, (i), MAKELPARAM((x), (y))))
-end;
-
-
-// Macro 57
-// #define ListView_GetItemPosition(hwndLV, i, ppt) \
-//     (BOOL)SNDMSG((hwndLV), LVM_GETITEMPOSITION, (WPARAM)(int)(i), (LPARAM)(POINT *)(ppt))
-
-Function ListView_GetItemPosition( hwndLV : hwnd; i : cint;var  ppt : POINT ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_GETITEMPOSITION, (i), LPAram(@ppt)))
-end;
-
-// Macro 58
-// #define ListView_GetStringWidth(hwndLV, psz) \
-//     (int)SNDMSG((hwndLV), LVM_GETSTRINGWIDTH, 0, (LPARAM)(LPCTSTR)(psz))
-
-Function ListView_GetStringWidth( hwndLV : hwnd; psz : LPCTSTR):cint;
-
-Begin
- Result:=cint(SendMessage((hwndLV), LVM_GETSTRINGWIDTH, 0, LPARAM(psz)))
-end;
-
-
-// Macro 59
-// #define ListView_HitTest(hwndLV, pinfo) \
-//     (int)SNDMSG((hwndLV), LVM_HITTEST, 0, (LPARAM)(LV_HITTESTINFO *)(pinfo))
-
-Function ListView_HitTest( hwndLV : hwnd;var  pinfo : LV_HITTESTINFO ):cint;
-
-Begin
- Result:=cint(SendMessage((hwndLV), LVM_HITTEST, 0, LParam(@pinfo)))
-end;
-
-
-// Macro 60
-// #define ListView_EnsureVisible(hwndLV, i, fPartialOK) \
-//     (BOOL)SNDMSG((hwndLV), LVM_ENSUREVISIBLE, (WPARAM)(int)(i), MAKELPARAM((fPartialOK), 0))
-
-Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : cint ):BOOL;inline;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_ENSUREVISIBLE, (i), MAKELPARAM((fPartialOK), 0)))
-end;
-
-
-Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : BOOL ):BOOL;inline;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_ENSUREVISIBLE, (i), LPARAM(fPartialOK)))
-end;
-
-
-// Macro 61
-// #define ListView_Scroll(hwndLV, dx, dy) \
-//     (BOOL)SNDMSG((hwndLV), LVM_SCROLL, (WPARAM)(int)(dx), (LPARAM)(int)(dy))
-
-Function ListView_Scroll( hwndLV : hwnd; dx : cint; dy : cint):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_SCROLL, dx, dy))
-end;
-
-
-// Macro 62
-// #define ListView_RedrawItems(hwndLV, iFirst, iLast) \
-//     (BOOL)SNDMSG((hwndLV), LVM_REDRAWITEMS, (WPARAM)(int)(iFirst), (LPARAM)(int)(iLast))
-
-Function ListView_RedrawItems( hwndLV : hwnd; iFirst : cint; iLast : cint):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_REDRAWITEMS, iFirst, iLast))
-end;
-
-
-// Macro 63
-// #define ListView_Arrange(hwndLV, code) \
-//     (BOOL)SNDMSG((hwndLV), LVM_ARRANGE, (WPARAM)(UINT)(code), DWord(0))
-
-Function ListView_Arrange( hwndLV : hwnd; code : UINT):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_ARRANGE, code, LPARAM(0)))
-end;
-
-
-// Macro 64
-// #define ListView_EditLabel(hwndLV, i) \
-//     (HWND)SNDMSG((hwndLV), LVM_EDITLABEL, (WPARAM)(int)(i), DWord(0))
-
-Function ListView_EditLabel( hwndLV : hwnd; i : cint):HWND;
-
-Begin
- Result:=HWND(SendMessage((hwndLV), LVM_EDITLABEL, (i), LPARAM(0)))
-end;
-
-
-// Macro 65
-// #define ListView_GetEditControl(hwndLV) \
-//     (HWND)SNDMSG((hwndLV), LVM_GETEDITCONTROL, 0, DWord(0))
-
-Function ListView_GetEditControl( hwndLV : hwnd):HWND;
-
-Begin
- Result:=HWND(SendMessage((hwndLV), LVM_GETEDITCONTROL, 0, LPARAM(0)))
-end;
-
-
-// Macro 66
-// #define ListView_GetColumn(hwnd, iCol, pcol) \
-//     (BOOL)SNDMSG((hwnd), LVM_GETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(LV_COLUMN *)(pcol))
-
-Function ListView_GetColumn( hwnd : hwnd; iCol : cint;var  pcol : LV_COLUMN ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_GETCOLUMN, iCol, LPARAM(@pcol)))
-end;
-
-
-// Macro 67
-// #define ListView_SetColumn(hwnd, iCol, pcol) \
-//     (BOOL)SNDMSG((hwnd), LVM_SETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol))
-
-Function ListView_SetColumn( hwnd : hwnd; iCol : cint; Const pcol : LV_COLUMN ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMN, iCol, LPARAM(@pcol)))
-end;
-
-
-// Macro 68
-// #define ListView_InsertColumn(hwnd, iCol, pcol) \
-//     (int)SNDMSG((hwnd), LVM_INSERTCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol))
-
-Function ListView_InsertColumn( hwnd : hwnd; iCol : cint;const pcol : LV_COLUMN ):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), LVM_INSERTCOLUMN, iCol, LPARAM(@pcol)))
-end;
-
-
-// Macro 69
-// #define ListView_DeleteColumn(hwnd, iCol) \
-//     (BOOL)SNDMSG((hwnd), LVM_DELETECOLUMN, (WPARAM)(int)(iCol), 0)
-
-Function ListView_DeleteColumn( hwnd : hwnd; iCol : cint):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_DELETECOLUMN, iCol, 0))
-end;
-
-
-// Macro 70
-// #define ListView_GetColumnWidth(hwnd, iCol) \
-//     (int)SNDMSG((hwnd), LVM_GETCOLUMNWIDTH, (WPARAM)(int)(iCol), 0)
-
-Function ListView_GetColumnWidth( hwnd : hwnd; iCol : cint):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), LVM_GETCOLUMNWIDTH, iCol, 0))
-end;
-
-
-// Macro 71
-// #define ListView_SetColumnWidth(hwnd, iCol, cx) \
-//     (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNWIDTH, (WPARAM)(int)(iCol), MAKELPARAM((cx), 0))
-
-Function ListView_SetColumnWidth( hwnd : hwnd; iCol : cint; cx :cint ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMNWIDTH, iCol, MAKELPARAM((cx), 0)))
-end;
-
-
-// Macro 72
-// #define ListView_GetHeader(hwnd)\
-//     (HWND)SNDMSG((hwnd), LVM_GETHEADER, 0, DWord(0))
-
-Function ListView_GetHeader( hwnd : hwnd):HWND;
-
-Begin
- Result:=Windows.HWND(SendMessage((hwnd), LVM_GETHEADER, 0, LPARAM(0)));
-end;
-
-
-// Macro 73
-// #define ListView_CreateDragImage(hwnd, i, lpptUpLeft) \
-//     (HIMAGELIST)SNDMSG((hwnd), LVM_CREATEDRAGIMAGE, (WPARAM)(int)(i), (LPARAM)(LPPOINT)(lpptUpLeft))
-
-Function ListView_CreateDragImage( hwnd : hwnd; i : cint; lpptUpLeft : LPPOINT):HIMAGELIST;inline;
-
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), LVM_CREATEDRAGIMAGE, WPARAM(i), LPARAM(lpptUpLeft)))
-end;
-
-Function ListView_CreateDragImage( hwnd : hwnd; i : cint; const lpptUpLeft : POINT):HIMAGELIST;inline;
-
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), LVM_CREATEDRAGIMAGE, WPARAM(i), LPARAM(@lpptUpLeft)))
-end;
-
-
-// Macro 74
-// #define ListView_GetViewRect(hwnd, prc) \
-//     (BOOL)SNDMSG((hwnd), LVM_GETVIEWRECT, 0, (LPARAM)(RECT *)(prc))
-
-Function ListView_GetViewRect( hwnd : hwnd;var  prc : RECT ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_GETVIEWRECT, 0, LPARAM(@prc)))
-end;
-
-// Macro 75
-// #define ListView_GetTextColor(hwnd)  \
-//     (COLORREF)SNDMSG((hwnd), LVM_GETTEXTCOLOR, 0, DWord(0))
-
-Function ListView_GetTextColor( hwnd : hwnd):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), LVM_GETTEXTCOLOR, 0, LPARAM(0)))
-end;
-
-
-// Macro 76
-// #define ListView_SetTextColor(hwnd, clrText) \
-//     (BOOL)SNDMSG((hwnd), LVM_SETTEXTCOLOR, 0, (LPARAM)(COLORREF)(clrText))
-
-Function ListView_SetTextColor( hwnd : hwnd; clrText : COLORREF):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETTEXTCOLOR, 0, clrText))
-end;
-
-
-// Macro 77
-// #define ListView_GetTextBkColor(hwnd)  \
-//     (COLORREF)SNDMSG((hwnd), LVM_GETTEXTBKCOLOR, 0, DWord(0))
-
-Function ListView_GetTextBkColor( hwnd : hwnd):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), LVM_GETTEXTBKCOLOR, 0, LPARAM(0)))
-end;
-
-
-// Macro 78
-// #define ListView_SetTextBkColor(hwnd, clrTextBk) \
-//     (BOOL)SNDMSG((hwnd), LVM_SETTEXTBKCOLOR, 0, (LPARAM)(COLORREF)(clrTextBk))
-
-Function ListView_SetTextBkColor( hwnd : hwnd; clrTextBk : COLORREF):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETTEXTBKCOLOR, 0, clrTextBk))
-end;
-
-
-// Macro 79
-// #define ListView_GetTopIndex(hwndLV) \
-//     (int)SNDMSG((hwndLV), LVM_GETTOPINDEX, 0, 0)
-
-Function ListView_GetTopIndex( hwndLV : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwndLV), LVM_GETTOPINDEX, 0, 0))
-end;
-
-
-// Macro 80
-// #define ListView_GetCountPerPage(hwndLV) \
-//     (int)SNDMSG((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0)
-
-Function ListView_GetCountPerPage( hwndLV : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0))
-end;
-
-
-// Macro 81
-//
-// #define ListView_GetOrigin(hwndLV, ppt) \
-//     (BOOL)SNDMSG((hwndLV), LVM_GETORIGIN, (WPARAM)0, (LPARAM)(POINT *)(ppt))
-
-Function ListView_GetOrigin( hwndLV : hwnd;var  ppt : POINT ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_GETORIGIN, WPARAM(0), LPARAM(@ppt)))
-end;
-
-
-// Macro 82
-// #define ListView_Update(hwndLV, i) \
-//     (BOOL)SNDMSG((hwndLV), LVM_UPDATE, (WPARAM)(i), DWord(0))
-
-Function ListView_Update( hwndLV : hwnd; i : WPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_UPDATE, (i), LPARAM(0)))
-end;
-
-
-// Macro 83
-// #define ListView_SetItemState(hwndLV, i, data, mask) \
-// { LV_ITEM _ms_lvi;\
-//   _ms_lvi.stateMask = mask;\
-//   _ms_lvi.state = data;\
-//   SNDMSG((hwndLV), LVM_SETITEMSTATE, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\
-// }
-
-Procedure ListView_SetItemState(hwndLV :hwnd; i :cint ;data,mask:UINT);
-
-Var _ms_lvi : LV_ITEM;
-
-Begin
- _ms_lvi.stateMask:=mask;
- _ms_lvi.state:=data;
- SendMessage(hwndLV, LVM_SETITEMSTATE, i,LPARAM(@_ms_lvi));
-end;
-
-
-// Macro 84
-// #define ListView_SetCheckState(hwndLV, i, fCheck) \
-//   ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK)
-
-Procedure ListView_SetCheckState( hwndLV : hwnd; i : cint ; fCheck : BOOL );
-
-var j:longint;
-Begin
- IF not fCheck Then  // (or inc(longint(fCheck)) if you like it dirty)
-  j:=1
- Else
-  j:=2;
-ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK(j), LVIS_STATEIMAGEMASK);
-end;
-
-
-// Macro 85
-// #define ListView_GetItemState(hwndLV, i, mask) \
-//    (UINT)SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), (LPARAM)(mask))
-
-Function ListView_GetItemState( hwndLV : hwnd; i : WPARAM; mask : LPARAM):UINT;
-
-Begin
- Result:=UINT(SendMessage((hwndLV), LVM_GETITEMSTATE, (i), mask))
-end;
-
-
-// Macro 86
-// #define ListView_GetCheckState(hwndLV, i) \
-//    ((((UINT)(SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), LVIS_STATEIMAGEMASK))) >> 12) -1)
-
-Function ListView_GetCheckState( hwndLV : hwnd; i : WPARAM):UINT;
-
-Begin
- Result:=(SendMessage((hwndLV), LVM_GETITEMSTATE, (i), LVIS_STATEIMAGEMASK) shl 12) -1;
-end;
-
-
-// Macro 87
-// #define ListView_GetItemText(hwndLV, i, iSubItem_, pszText_, cchTextMax_) \
-// { LV_ITEM _ms_lvi;\
-//   _ms_lvi.iSubItem = iSubItem_;\
-//   _ms_lvi.cchTextMax = cchTextMax_;\
-//   _ms_lvi.pszText = pszText_;\
-//   SNDMSG((hwndLV), LVM_GETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\
-// }
-
-Procedure ListView_GetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer;cchTextMax :cint);
-
-Var _ms_lvi : LV_ITEM;
-
-Begin
-     _ms_lvi.iSubItem := iSubItem;
-     _ms_lvi.cchTextMax := cchTextMax;
-     _ms_lvi.pszText := pszText;        // unicode dependant!
-    SendMessage(hwndLV, LVM_GETITEMTEXT,  i, LPARAM(@_ms_LVI));
-end;
-
-
-// Macro 88
-// #define ListView_SetItemText(hwndLV, i, iSubItem_, pszText_) \
-// { LV_ITEM _ms_lvi;\
-//   _ms_lvi.iSubItem = iSubItem_;\
-//   _ms_lvi.pszText = pszText_;\
-//   SNDMSG((hwndLV), LVM_SETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\
-// }
-
-Procedure ListView_SetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer);
-
-Var _ms_lvi : LV_ITEM;
-
-Begin
-     _ms_lvi.iSubItem := iSubItem;
-     _ms_lvi.pszText := pszText;        // unicode dependant!
-    SendMessage(hwndLV, LVM_SETITEMTEXT,  i, LPARAM(@_ms_lvi));
-End;
-
-// Macro 89
-// #define ListView_SetItemCount(hwndLV, cItems) \
-//   SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), 0)
-
-Procedure ListView_SetItemCount( hwndLV : hwnd; cItems : WPARAM);
-
-Begin
- SendMessage((hwndLV), LVM_SETITEMCOUNT, cItems, 0)
-end;
-
-
-// Macro 90
-// #define ListView_SetItemCountEx(hwndLV, cItems, dwFlags) \
-//   SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), (LPARAM)(dwFlags))
-
-Procedure ListView_SetItemCountEx( hwndLV : hwnd; cItems : WPARAM; dwFlags : LPARAM);
-
-Begin
- SendMessage((hwndLV), LVM_SETITEMCOUNT, cItems, dwFlags)
-end;
-
-
-// Macro 91
-// #define ListView_SortItems(hwndLV, _pfnCompare, _lPrm) \
-//   (BOOL)SNDMSG((hwndLV), LVM_SORTITEMS, (WPARAM)(LPARAM)(_lPrm), \
-//   (LPARAM)(PFNLVCOMPARE)(_pfnCompare))
-
-Function ListView_SortItems( hwndLV : hwnd;pfnCompare : PFNLVCOMPARE; lPrm : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_SORTITEMS, lPrm,  LPARAM(@pfncompare)));
-end;
-
-
-// Macro 92
-// #define ListView_SetItemPosition32(hwndLV, i, x0, y0) \
-// {   POINT ptNewPos; \
-//     ptNewPos.x = x0; ptNewPos.y = y0; \
-//     SNDMSG((hwndLV), LVM_SETITEMPOSITION32, (WPARAM)(int)(i), (LPARAM)&ptNewPos); \
-// }
-
-Procedure ListView_SetItemPosition32(hwndLV:hwnd; i:cint;x0,y0:long);
-
-Var ptNewPos:POINT;
-
-Begin
- ptNewPos.X:=x0; ptNewPos.Y:=y0;
- SendMessage(hwndlv, LVM_SETITEMPOSITION32, I,LPARAM(@ptNewPos));
-end;
-
-
-// Macro 93
-// #define ListView_GetSelectedCount(hwndLV) \
-//     (UINT)SNDMSG((hwndLV), LVM_GETSELECTEDCOUNT, 0, DWord(0))
-
-Function ListView_GetSelectedCount( hwndLV : hwnd):UINT;
-
-Begin
- Result:=SendMessage(hwndLV, LVM_GETSELECTEDCOUNT, 0, LPARAM(0));
-end;
-
-// Macro 94
-// #define ListView_GetItemSpacing(hwndLV, fSmall) \
-//         (DWORD)SNDMSG((hwndLV), LVM_GETITEMSPACING, fSmall, DWord(0))
-
-Function ListView_GetItemSpacing( hwndLV : hwnd; fSmall : cint ):DWORD;
-
-Begin
- Result:=LPARAM(SendMessage((hwndLV), LVM_GETITEMSPACING, fSmall, LPARAM(0)));
-end;
-
-// Macro 95
-// #define ListView_GetISearchString(hwndLV, lpsz) \
-//         (BOOL)SNDMSG((hwndLV), LVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz))
-
-Function ListView_GetISearchString( hwndLV : hwnd; lpsz : LPTSTR):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_GETISEARCHSTRING, 0, LPARAM(lpsz)))
-end;
-
-// Macro 96
-// #define ListView_SetIconSpacing(hwndLV, cx, cy) \
-//         (DWORD)SNDMSG((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy))
-
-Function ListView_SetIconSpacing( hwndLV : hwnd; cx,cy : cint ):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy)))
-end;
-
-
-// Macro 97
-// #define ListView_SetExtendedListViewStyle(hwndLV, dw)\
-//         (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw)
-
-Function ListView_SetExtendedListViewStyle( hwndLV : hwnd; dw :cint ):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw))
-end;
-
-
-// Macro 98
-// #define ListView_SetExtendedListViewStyleEx(hwndLV, dwMask, dw)\
-//         (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw)
-
-Function ListView_SetExtendedListViewStyleEx( hwndLV : hwnd; dwMask, dw : cint ):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw))
-end;
-
-
-// Macro 99
-// #define ListView_GetExtendedListViewStyle(hwndLV)\
-//         (DWORD)SNDMSG((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
-
-Function ListView_GetExtendedListViewStyle( hwndLV : hwnd):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0))
-end;
-
-
-// Macro 100
-// #define ListView_GetSubItemRect(hwnd, iItem, iSubItem, code, prc) \
-//         (BOOL)SNDMSG((hwnd), LVM_GETSUBITEMRECT, (WPARAM)(int)(iItem), \
-//                 ((prc) ? ((((LPRECT)(prc))->top = iSubItem), (((LPRECT)(prc))->left = code), (LPARAM)(prc)) : (LPARAM)(LPRECT)NULL))
-
-Function ListView_GetSubItemRect( hwnd : hwnd; iItem : cint;iSubItem, code :cint ;prc:LPRECT):BOOL;
-
-VAR LastParam : LPRECT;
-Begin
- if prc<>nil then
-    begin
-       prc^.top:=iSubItem;
-       prc^.left:=code;
-       lastparam:=prc;
-    end
- else
-    lastparam:=nil;
- Result:=bool(SendMessage((hwnd), LVM_GETSUBITEMRECT, iItem, LPARAM(lastparam)));
-End;
-
-// Macro 101
-// #define ListView_SubItemHitTest(hwnd, plvhti) \
-//         (int)SNDMSG((hwnd), LVM_SUBITEMHITTEST, 0, (LPARAM)(LPLVHITTESTINFO)(plvhti))
-
-Function ListView_SubItemHitTest( hwnd : hwnd; plvhti : LPLVHITTESTINFO):cint;
-Begin
- Result:=cint(SendMessage((hwnd), LVM_SUBITEMHITTEST, 0, LParam(plvhti)))
-end;
-
-
-// Macro 102
-// #define ListView_SetColumnOrderArray(hwnd, iCount, pi) \
-//         (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi))
-
-Function ListView_SetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMNORDERARRAY, iCount, LPARAM(pi)));
-end;
-
-
-// Macro 103
-// #define ListView_GetColumnOrderArray(hwnd, iCount, pi) \
-//         (BOOL)SNDMSG((hwnd), LVM_GETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi))
-
-Function ListView_GetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_GETCOLUMNORDERARRAY, iCount, LPARAM(pi)))
-end;
-
-
-// Macro 104
-// #define ListView_SetHotItem(hwnd, i) \
-//         (int)SNDMSG((hwnd), LVM_SETHOTITEM, (WPARAM)(i), 0)
-
-Function ListView_SetHotItem( hwnd : hwnd; i : WPARAM):cint;
-Begin
- Result:=cint(SendMessage((hwnd), LVM_SETHOTITEM, (i), 0))
-end;
-
-// Macro 105
-// #define ListView_GetHotItem(hwnd) \
-//         (int)SNDMSG((hwnd), LVM_GETHOTITEM, 0, 0)
-
-Function ListView_GetHotItem( hwnd : hwnd):cint;
-Begin
- Result:=cint(SendMessage((hwnd), LVM_GETHOTITEM, 0, 0))
-end;
-
-// Macro 106
-// #define ListView_SetHotCursor(hwnd, hcur) \
-//         (HCURSOR)SNDMSG((hwnd), LVM_SETHOTCURSOR, 0, (LPARAM)(hcur))
-
-Function ListView_SetHotCursor( hwnd : hwnd; hcur : LPARAM):HCURSOR;
-Begin
- Result:=HCURSOR(SendMessage((hwnd), LVM_SETHOTCURSOR, 0, hcur))
-end;
-
-// Macro 107
-// #define ListView_GetHotCursor(hwnd) \
-//         (HCURSOR)SNDMSG((hwnd), LVM_GETHOTCURSOR, 0, 0)
-
-Function ListView_GetHotCursor( hwnd : hwnd):HCURSOR;
-Begin
- Result:=HCURSOR(SendMessage((hwnd), LVM_GETHOTCURSOR, 0, 0))
-end;
-
-
-// Macro 108
-// #define ListView_ApproximateViewRect(hwnd, iWidth, iHeight, iCount) \
-//         (DWORD)SNDMSG((hwnd), LVM_APPROXIMATEVIEWRECT, iCount, MAKELPARAM(iWidth, iHeight))
-
-Function ListView_ApproximateViewRect( hwnd : hwnd; iWidth, iHeight, iCount : cint ):DWORD;
-Begin
- Result:=DWORD(SendMessage((hwnd), LVM_APPROXIMATEVIEWRECT, iCount, MAKELPARAM(iWidth, iHeight)));
-end;
-
-
-// Macro 109
-// #define ListView_SetWorkAreas(hwnd, nWorkAreas, prc) \
-//     (BOOL)SNDMSG((hwnd), LVM_SETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc))
-
-Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;inline;
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETWORKAREAS, nWorkAreas, LPARAM(@prc)))
-end;
-
-
-Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint;  prc : PRECT ):BOOL;inline;
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETWORKAREAS, nWorkAreas, LPARAM(prc)))
-end;
-
-// Macro 110
-// #define ListView_GetWorkAreas(hwnd, nWorkAreas, prc) \
-//     (BOOL)SNDMSG((hwnd), LVM_GETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc))
-
-Function ListView_GetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var  prc : RECT ):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_GETWORKAREAS, nWorkAreas, LPARAM(@prc)))
-end;
-
-
-// Macro 111
-// #define ListView_GetNumberOfWorkAreas(hwnd, pnWorkAreas) \
-//     (BOOL)SNDMSG((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, (LPARAM)(UINT *)(pnWorkAreas))
-
-Function ListView_GetNumberOfWorkAreas( hwnd : hwnd;var pnWorkAreas : UINT ):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, LPARAM(@pnWorkAreas)))
-end;
-
-
-// Macro 112
-// #define ListView_GetSelectionMark(hwnd) \
-//     (int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, 0)
-
-Function ListView_GetSelectionMark( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), LVM_GETSELECTIONMARK, 0, 0))
-end;
-
-
-// Macro 113
-// #define ListView_SetSelectionMark(hwnd, i) \
-//     (int)SNDMSG((hwnd), LVM_SETSELECTIONMARK, 0, (LPARAM)(i))
-
-Function ListView_SetSelectionMark( hwnd : hwnd; i : LPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), LVM_SETSELECTIONMARK, 0, (i)))
-end;
-
-
-// Macro 114
-// #define ListView_SetHoverTime(hwndLV, dwHoverTimeMs)\
-//         (DWORD)SNDMSG((hwndLV), LVM_SETHOVERTIME, 0, (LPARAM)(dwHoverTimeMs))
-
-Function ListView_SetHoverTime( hwndLV : hwnd; dwHoverTimeMs : LPARAM):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwndLV), LVM_SETHOVERTIME, 0, dwHoverTimeMs))
-end;
-
-
-// Macro 115
-// #define ListView_GetHoverTime(hwndLV)\
-//         (DWORD)SNDMSG((hwndLV), LVM_GETHOVERTIME, 0, 0)
-
-Function ListView_GetHoverTime( hwndLV : hwnd):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwndLV), LVM_GETHOVERTIME, 0, 0))
-end;
-
-
-// Macro 116
-// #define ListView_SetToolTips(hwndLV, hwndNewHwnd)\
-//         (HWND)SNDMSG((hwndLV), LVM_SETTOOLTIPS, (WPARAM)(hwndNewHwnd), 0)
-
-Function ListView_SetToolTips( hwndLV : hwnd; hwndNewHwnd : WPARAM):HWND;
-
-Begin
- Result:=HWND(SendMessage((hwndLV), LVM_SETTOOLTIPS, hwndNewHwnd, 0))
-end;
-
-
-// Macro 117
-// #define ListView_GetToolTips(hwndLV)\
-//         (HWND)SNDMSG((hwndLV), LVM_GETTOOLTIPS, 0, 0)
-
-Function ListView_GetToolTips( hwndLV : hwnd):HWND;
-
-Begin
- Result:=HWND(SendMessage((hwndLV), LVM_GETTOOLTIPS, 0, 0))
-end;
-
-
-// Macro 118
-// #define ListView_SortItemsEx(hwndLV, _pfnCompare, _lPrm) \
-//   (BOOL)SNDMSG((hwndLV), LVM_SORTITEMSEX, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare))
-
-Function ListView_SortItemsEx( hwndLV : hwnd; _pfnCompare : PFNLVCOMPARE; _lPrm : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_SORTITEMSEX, _lPrm, LPAram(@_pfnCompare)))
-end;
-
-{$ifdef win32xp}
-// Macro 119
-// #define ListView_SetSelectedColumn(hwnd, iCol) \
-//     SNDMSG((hwnd), LVM_SETSELECTEDCOLUMN, (WPARAM)iCol, 0)
-
-Procedure ListView_SetSelectedColumn( hwnd : hwnd; iCol : WPARAM);
-
-Begin
- SendMessage((hwnd), LVM_SETSELECTEDCOLUMN, iCol, 0)
-end;
-
-// Macro 120
-// #define ListView_SetTileWidth(hwnd, cpWidth) \
-//     SNDMSG((hwnd), LVM_SETTILEWIDTH, (WPARAM)cpWidth, 0)
-
-Procedure ListView_SetTileWidth( hwnd : hwnd; cpWidth : WPARAM);
-
-Begin
- SendMessage((hwnd), LVM_SETTILEWIDTH, cpWidth, 0)
-end;
-
-
-// Macro 121
-// #define ListView_SetView(hwnd, iView) \
-//     (DWORD)SNDMSG((hwnd), LVM_SETVIEW, (WPARAM)(DWORD)iView, 0)
-
-Function ListView_SetView( hwnd : hwnd; iView : DWORD):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwnd), LVM_SETVIEW, iView, 0))
-end;
-
-
-// Macro 122
-// #define ListView_GetView(hwnd) \
-//     (DWORD)SNDMSG((hwnd), LVM_GETVIEW, 0, 0)
-
-Function ListView_GetView( hwnd : hwnd):DWORD;
-Begin
- Result:=DWORD(SendMessage((hwnd), LVM_GETVIEW, 0, 0))
-end;
-
-
-// Macro 123
-// #define ListView_InsertGroup(hwnd, index, pgrp) \
-//     SNDMSG((hwnd), LVM_INSERTGROUP, (WPARAM)index, (LPARAM)pgrp)
-
-Procedure ListView_InsertGroup( hwnd : hwnd; index : WPARAM; pgrp : LPARAM);
-Begin
- SendMessage((hwnd), LVM_INSERTGROUP, index, pgrp)
-end;
-
-
-// Macro 124
-// #define ListView_SetGroupInfo(hwnd, iGroupId, pgrp) \
-//     SNDMSG((hwnd), LVM_SETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp)
-
-Procedure ListView_SetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
-Begin
- SendMessage((hwnd), LVM_SETGROUPINFO, iGroupId, pgrp)
-end;
-
-
-// Macro 125
-// #define ListView_GetGroupInfo(hwnd, iGroupId, pgrp) \
-//     SNDMSG((hwnd), LVM_GETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp)
-
-Procedure ListView_GetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
-Begin
- SendMessage((hwnd), LVM_GETGROUPINFO, iGroupId, pgrp)
-end;
-
-
-// Macro 126
-// #define ListView_RemoveGroup(hwnd, iGroupId) \
-//     SNDMSG((hwnd), LVM_REMOVEGROUP, (WPARAM)iGroupId, 0)
-
-Procedure ListView_RemoveGroup( hwnd : hwnd; iGroupId : WPARAM);
-Begin
- SendMessage((hwnd), LVM_REMOVEGROUP, iGroupId, 0)
-end;
-
-
-// Macro 127
-// #define ListView_MoveGroup(hwnd, iGroupId, toIndex) \
-//     SNDMSG((hwnd), LVM_MOVEGROUP, (WPARAM)iGroupId, (LPARAM)toIndex)
-
-Procedure ListView_MoveGroup( hwnd : hwnd; iGroupId : WPARAM; toIndex : LPARAM);
-Begin
- SendMessage((hwnd), LVM_MOVEGROUP, iGroupId, toIndex)
-end;
-
-
-// Macro 128
-// #define ListView_MoveItemToGroup(hwnd, idItemFrom, idGroupTo) \
-//     SNDMSG((hwnd), LVM_MOVEITEMTOGROUP, (WPARAM)idItemFrom, (LPARAM)idGroupTo)
-
-Procedure ListView_MoveItemToGroup( hwnd : hwnd; idItemFrom : WPARAM; idGroupTo : LPARAM);
-
-Begin
- SendMessage((hwnd), LVM_MOVEITEMTOGROUP, idItemFrom, idGroupTo)
-end;
-
-
-// Macro 129
-// #define ListView_SetGroupMetrics(hwnd, pGroupMetrics) \
-//     SNDMSG((hwnd), LVM_SETGROUPMETRICS, 0, (LPARAM)pGroupMetrics)
-
-Procedure ListView_SetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
-
-Begin
- SendMessage((hwnd), LVM_SETGROUPMETRICS, 0, pGroupMetrics)
-end;
-
-
-// Macro 130
-// #define ListView_GetGroupMetrics(hwnd, pGroupMetrics) \
-//     SNDMSG((hwnd), LVM_GETGROUPMETRICS, 0, (LPARAM)pGroupMetrics)
-
-Procedure ListView_GetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
-
-Begin
-SendMessage((hwnd), LVM_GETGROUPMETRICS, 0, pGroupMetrics)
-end;
-
-
-// Macro 131
-// #define ListView_EnableGroupView(hwnd, fEnable) \
-//     SNDMSG((hwnd), LVM_ENABLEGROUPVIEW, (WPARAM)fEnable, 0)
-
-Procedure ListView_EnableGroupView( hwnd : hwnd; fEnable : WPARAM);
-
-Begin
- SendMessage((hwnd), LVM_ENABLEGROUPVIEW, fEnable, 0)
-end;
-
-
-// Macro 132
-// #define ListView_SortGroups(hwnd, _pfnGroupCompate, _plv) \
-//     SNDMSG((hwnd), LVM_SORTGROUPS, (WPARAM)_pfnGroupCompate, (LPARAM)_plv)
-
-Procedure ListView_SortGroups( hwnd : hwnd; _pfnGroupCompate : WPARAM; _plv : LPARAM);
-
-Begin
- SendMessage((hwnd), LVM_SORTGROUPS, _pfnGroupCompate, _plv)
-end;
-
-// Macro 133
-// #define ListView_InsertGroupSorted(hwnd, structInsert) \
-//     SNDMSG((hwnd), LVM_INSERTGROUPSORTED, (WPARAM)structInsert, 0)
-
-Procedure ListView_InsertGroupSorted( hwnd : hwnd; structInsert : WPARAM);
-
-Begin
- SendMessage((hwnd), LVM_INSERTGROUPSORTED, structInsert, 0)
-end;
-
-
-// Macro 134
-// #define ListView_RemoveAllGroups(hwnd) \
-//     SNDMSG((hwnd), LVM_REMOVEALLGROUPS, 0, 0)
-
-Procedure ListView_RemoveAllGroups( hwnd : hwnd);
-
-Begin
-SendMessage((hwnd), LVM_REMOVEALLGROUPS, 0, 0)
-end;
-
-
-// Macro 135
-// #define ListView_HasGroup(hwnd, dwGroupId) \
-//     SNDMSG((hwnd), LVM_HASGROUP, dwGroupId, 0)
-
-Procedure ListView_HasGroup( hwnd : hwnd; dwGroupId :DWORD );
-
-Begin
- SendMessage((hwnd), LVM_HASGROUP, dwGroupId, 0)
-end;
-
-
-// Macro 136
-// #define ListView_SetTileViewInfo(hwnd, ptvi) \
-//     SNDMSG((hwnd), LVM_SETTILEVIEWINFO, 0, (LPARAM)ptvi)
-
-Procedure ListView_SetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
-
-Begin
- SendMessage((hwnd), LVM_SETTILEVIEWINFO, 0, ptvi)
-end;
-
-
-// Macro 137
-// #define ListView_GetTileViewInfo(hwnd, ptvi) \
-//     SNDMSG((hwnd), LVM_GETTILEVIEWINFO, 0, (LPARAM)ptvi)
-
-Procedure ListView_GetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
-
-Begin
- SendMessage((hwnd), LVM_GETTILEVIEWINFO, 0, ptvi)
-end;
-
-
-// Macro 138
-// #define ListView_SetTileInfo(hwnd, pti) \
-//     SNDMSG((hwnd), LVM_SETTILEINFO, 0, (LPARAM)pti)
-
-Procedure ListView_SetTileInfo( hwnd : hwnd; pti : LPARAM);
-
-Begin
- SendMessage((hwnd), LVM_SETTILEINFO, 0, pti)
-end;
-
-
-// Macro 139
-// #define ListView_GetTileInfo(hwnd, pti) \
-//     SNDMSG((hwnd), LVM_GETTILEINFO, 0, (LPARAM)pti)
-
-Procedure ListView_GetTileInfo( hwnd : hwnd; pti : LPARAM);
-
-Begin
- SendMessage((hwnd), LVM_GETTILEINFO, 0, pti)
-end;
-
-
-// Macro 140
-// #define ListView_SetInsertMark(hwnd, lvim) \
-//     (BOOL)SNDMSG((hwnd), LVM_SETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim))
-
-Function ListView_SetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETINSERTMARK, 0, lvim));
-end;
-
-
-// Macro 141
-// #define ListView_GetInsertMark(hwnd, lvim) \
-//     (BOOL)SNDMSG((hwnd), LVM_GETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim))
-
-Function ListView_GetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_GETINSERTMARK, WPARAM (0), LPARAM (lvim)));
-end;
-
-
-// Macro 142
-// #define ListView_InsertMarkHitTest(hwnd, point, lvim) \
-//    (int)SNDMSG((hwnd), LVM_INSERTMARKHITTEST, (WPARAM)(LPPOINT)(point), (LPARAM)(LPLVINSERTMARK)(lvim))
-
-Function ListView_InsertMarkHitTest( hwnd : hwnd; point : LPPOINT; lvim : LPLVINSERTMARK):cint;
-Begin
- Result:=cint(SendMessage((hwnd), LVM_INSERTMARKHITTEST, wparam(point), lparam(lvim)));
-end;
-
-
-// Macro 143
-// #define ListView_GetInsertMarkRect(hwnd, rc) \
-//     (int)SNDMSG((hwnd), LVM_GETINSERTMARKRECT, (WPARAM)0, (LPARAM)(LPRECT)(rc))
-
-Function ListView_GetInsertMarkRect( hwnd : hwnd; rc : LPRECT):cint;
-Begin
- Result:=cint(SendMessage((hwnd), LVM_GETINSERTMARKRECT, WPARAM(0), LPARAM(rc)))
-end;
-
-
-// Macro 144
-// #define ListView_SetInsertMarkColor(hwnd, color) \
-//     (COLORREF)SNDMSG((hwnd), LVM_SETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color))
-
-Function ListView_SetInsertMarkColor( hwnd : hwnd; color : COLORREF):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), LVM_SETINSERTMARKCOLOR, WPARAM(0), color));
-end;
-
-// Macro 145
-// #define ListView_GetInsertMarkColor(hwnd) \
-//     (COLORREF)SNDMSG((hwnd), LVM_GETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)0)
-
-Function ListView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), LVM_GETINSERTMARKCOLOR, WPARAM(0), LPARAM(0)));
-end;
-
-// Macro 146
-// #define ListView_SetInfoTip(hwndLV, plvInfoTip)\
-//         (BOOL)SNDMSG((hwndLV), LVM_SETINFOTIP, (WPARAM)0, (LPARAM)plvInfoTip)
-
-Function ListView_SetInfoTip( hwndLV : hwnd; plvInfoTip : LPARAM):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_SETINFOTIP, WPARAM(0), plvInfoTip));
-end;
-
-// Macro 147
-// #define ListView_GetSelectedColumn(hwnd) \
-//     (UINT)SNDMSG((hwnd), LVM_GETSELECTEDCOLUMN, 0, 0)
-
-Function ListView_GetSelectedColumn( hwnd : hwnd):UINT;
-Begin
- Result:=UINT(SendMessage((hwnd), LVM_GETSELECTEDCOLUMN, 0, 0));
-end;
-
-// Macro 148
-// #define ListView_IsGroupViewEnabled(hwnd) \
-//     (BOOL)SNDMSG((hwnd), LVM_ISGROUPVIEWENABLED, 0, 0)
-
-Function ListView_IsGroupViewEnabled( hwnd : hwnd):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_ISGROUPVIEWENABLED, 0, 0));
-end;
-
-// Macro 149
-// #define ListView_GetOutlineColor(hwnd) \
-//     (COLORREF)SNDMSG((hwnd), LVM_GETOUTLINECOLOR, 0, 0)
-
-Function ListView_GetOutlineColor( hwnd : hwnd):COLORREF;
-Begin
- Result:=COLORREF(SendMessage((hwnd), LVM_GETOUTLINECOLOR, 0, 0));
-end;
-
-
-// Macro 150
-// #define ListView_SetOutlineColor(hwnd, color) \
-//     (COLORREF)SNDMSG((hwnd), LVM_SETOUTLINECOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color))
-
-Function ListView_SetOutlineColor( hwnd : hwnd; color : COLORREF):COLORREF;
-Begin
- Result:=COLORREF(SendMessage((hwnd), LVM_SETOUTLINECOLOR, WPARAM(0), color));
-end;
-
-// Macro 151
-// #define ListView_CancelEditLabel(hwnd) \
-//     (VOID)SNDMSG((hwnd), LVM_CANCELEDITLABEL, (WPARAM)0, (LPARAM)0)
-
-procedure ListView_CancelEditLabel( hwnd : hwnd);
-Begin
- SendMessage((hwnd), LVM_CANCELEDITLABEL, WPARAM(0), LPARAM(0));
-end;
-
-// Macro 152
-// #define ListView_MapIndexToID(hwnd, index) \
-//     (UINT)SNDMSG((hwnd), LVM_MAPINDEXTOID, (WPARAM)index, (LPARAM)0)
-
-Function ListView_MapIndexToID( hwnd : hwnd; index : WPARAM):UINT;
-
-Begin
- Result:=UINT(SendMessage((hwnd), LVM_MAPINDEXTOID, index, LPARAM(0)));
-end;
-
-// Macro 153
-// #define ListView_MapIDToIndex(hwnd, id) \
-//     (UINT)SNDMSG((hwnd), LVM_MAPIDTOINDEX, (WPARAM)id, (LPARAM)0)
-
-Function ListView_MapIDToIndex( hwnd : hwnd; id : WPARAM):UINT;
-Begin
- Result:=UINT(SendMessage((hwnd), LVM_MAPIDTOINDEX, id, LPARAM(0)));
-end;
-{$ENDIF}
-
-// Macro 154
-// #define ListView_SetBkImage(hwnd, plvbki) \
-//     (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki))
-
-Function ListView_SetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETBKIMAGE, 0, plvbki));
-end;
-
-// Macro 155
-// #define ListView_GetBkImage(hwnd, plvbki) \
-//     (BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki))
-
-Function ListView_GetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_GETBKIMAGE, 0, plvbki));
-end;
-
-// Macro 156
-// #define TreeView_InsertItem(hwnd, lpis) \
-//     (HTREEITEM)SNDMSG((hwnd), TVM_INSERTITEM, 0, (LPARAM)(LPTV_INSERTSTRUCT)(lpis))
-
-Function TreeView_InsertItem( hwnd : hwnd; lpis : LPTV_INSERTSTRUCT):HTREEITEM;inline;
-Begin
- Result:=HTREEITEM(SendMessage((hwnd), TVM_INSERTITEM, 0, LPARAM(lpis)));
-end;
-
-
-Function TreeView_InsertItem( hwnd : hwnd; const lpis : TV_INSERTSTRUCT):HTREEITEM;inline;
-Begin
- Result:=HTREEITEM(SendMessage((hwnd), TVM_INSERTITEM, 0, LPARAM(@lpis)));
-end;
-
-// Macro 157
-// #define TreeView_DeleteItem(hwnd, hitem) \
-//     (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)(HTREEITEM)(hitem))
-
-Function TreeView_DeleteItem( hwnd : hwnd; hitem : HTREEITEM):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_DELETEITEM, 0, LPARAM(hitem)));
-end;
-
-
-// Macro 158
-// #define TreeView_DeleteAllItems(hwnd) \
-//     (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT)
-
-Function TreeView_DeleteAllItems( hwnd : hwnd):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_DELETEITEM, 0, LPARAM(HTREEITEM(TVI_ROOT))));
-end;
-
-
-// Macro 159
-// #define TreeView_Expand(hwnd, hitem, code) \
-//     (BOOL)SNDMSG((hwnd), TVM_EXPAND, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem))
-
-Function TreeView_Expand( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_EXPAND, code, lparam(hitem)))
-end;
-
-
-// Macro 160
-// #define TreeView_GetItemRect(hwnd, hitem, prc, code) \
-//     (*(HTREEITEM *)prc = (hitem), (BOOL)SNDMSG((hwnd), TVM_GETITEMRECT, (WPARAM)(code), (LPARAM)(RECT *)(prc)))
-
-Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; code : WPARAM; prc : pRECT):BOOL;inline;
-Begin
- HTREEITEM(prc):=HITEM;
- Result:=Bool(SendMessage((hwnd), TVM_GETITEMRECT, code, LPARAM(prc)));
-end;
-
-Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; var prc : TRECT;code : Bool):BOOL;inline;
-Begin
- HTREEITEM(Pointer(@prc)^):=HITEM;
- Result:=Bool(SendMessage((hwnd), TVM_GETITEMRECT, WPARAM(code), LPARAM(@prc)));
-end;
-
-// Macro 161
-// #define TreeView_GetCount(hwnd) \
-//     (UINT)SNDMSG((hwnd), TVM_GETCOUNT, 0, 0)
-
-Function TreeView_GetCount( hwnd : hwnd):UINT;
-Begin
- Result:=UINT(SendMessage((hwnd), TVM_GETCOUNT, 0, 0))
-end;
-
-// Macro 162
-// #define TreeView_GetIndent(hwnd) \
-//     (UINT)SNDMSG((hwnd), TVM_GETINDENT, 0, 0)
-
-Function TreeView_GetIndent( hwnd : hwnd):UINT;
-Begin
- Result:=UINT(SendMessage((hwnd), TVM_GETINDENT, 0, 0))
-end;
-
-
-// Macro 163
-// #define TreeView_SetIndent(hwnd, indent) \
-//     (BOOL)SNDMSG((hwnd), TVM_SETINDENT, (WPARAM)(indent), 0)
-
-Function TreeView_SetIndent( hwnd : hwnd; indent : WPARAM):BOOL;
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_SETINDENT, indent, 0))
-end;
-
-
-// Macro 164
-// #define TreeView_GetImageList(hwnd, iImage) \
-//     (HIMAGELIST)SNDMSG((hwnd), TVM_GETIMAGELIST, iImage, 0)
-
-Function TreeView_GetImageList( hwnd : hwnd; iImage : cint ):HIMAGELIST;
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), TVM_GETIMAGELIST, iImage, 0))
-end;
-
-
-// Macro 165
-// #define TreeView_SetImageList(hwnd, himl, iImage) \
-//     (HIMAGELIST)SNDMSG((hwnd), TVM_SETIMAGELIST, iImage, (LPARAM)(HIMAGELIST)(himl))
-
-Function TreeView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImage : cint ):HIMAGELIST;
-Begin
-  Result:=HIMAGELIST(SendMessage((hwnd), TVM_SETIMAGELIST, iImage, himl))
-end;
-
-// Macro 166
-// #define TreeView_GetNextItem(hwnd, hitem, code) \
-//     (HTREEITEM)SNDMSG((hwnd), TVM_GETNEXTITEM, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem))
-
-Function TreeView_GetNextItem( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):HTREEITEM;
-
-Begin
-  Result:=HTREEITEM(SendMessage((hwnd), TVM_GETNEXTITEM, code, lparam(hitem)))
-end;
-
-
-// Macro 167
-
-function TreeView_GetChild(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;
-
-Begin
-  Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD)
-End;
-// Macro 168
-
-// #define TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM);
-// (hwnd, hitem)
-// TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT)
-
-
-
-function TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;
-// (hwnd, hitem)
-// TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT)
-
-Begin
-  Result:=TreeView_getNextItem(hwnd,hitem,TVGN_NEXT);
-end;
-
-// Macro 169
-function TreeView_GetPrevSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;
-begin
-  Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS);
-end;
-
-// Macro 170
-
-function TreeView_GetParent(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;
-begin
-  Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT)
-end;
-
-// Macro 171
-// #define TreeView_GetFirstVisible(hwnd:hwnd);
-// TreeView_GetNextItem(hwnd, NULL,  TVGN_FIRSTVISIBLE)
-
-function TreeView_GetFirstVisible(hwnd:hwnd) : HTREEITEM;inline;
-begin
-  Result:=TreeView_GetNextItem(hwnd, NIL,  TVGN_FIRSTVISIBLE)
-end;
-
-// Macro 172
-
-//#define TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM);
-//(hwnd, hitem)    TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE)
-function TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
-begin
-  Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE)
-end;
-
-// Macro 173
-//#define TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM);
-// (hwnd, hitem)    TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE)
-
-
-function TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
-Begin
-  Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE);
-end;
-
-// Macro 174
-
-function TreeView_GetSelection(hwnd:hwnd) : HTREEITEM;inline;
-begin
-  Result:=TreeView_GetNextItem(hwnd, NIL,  TVGN_CARET);
-end;
-
-// Macro 175
-
-//#define TreeView_GetDropHilight(hwnd:hwnd);
-//TreeView_GetNextItem(hwnd, NULL,  TVGN_DROPHILITE)
-
-function TreeView_GetDropHilight(hwnd:hwnd) : HTREEITEM;inline;
-
-begin
-  Result:=TreeView_GetNextItem(hwnd, NIL,  TVGN_DROPHILITE);
-end;
-
-function TreeView_GetDropHilite(hwnd:hwnd) : HTREEITEM;inline;
-
-begin
-  Result:=TreeView_GetNextItem(hwnd, NIL,  TVGN_DROPHILITE);
-end;
-
-
-// Macro 176
-
-function TreeView_GetRoot(hwnd:hwnd) : HTREEITEM;inline;
-
-begin
-  TreeView_GetNextItem(hwnd, NIL,  TVGN_ROOT);
-end;
-
-// Macro 177
-//#define TreeView_GetLastVisible(hwnd:hwnd);
-//TreeView_GetNextItem(hwnd, NULL,  TVGN_LASTVISIBLE)
-
-function TreeView_GetLastVisible(hwnd:hwnd) : HTREEITEM;inline;
-begin
-  TreeView_GetNextItem(hwnd, NIL,  TVGN_LASTVISIBLE)
-end;
-
-// Macro 178
-
-
-Function TreeView_Select( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_SELECTITEM, code, LPARAM(hitem)))
-end;
-
-// Macro 179
-// #define TreeView_SelectItem(hwnd, hitem)            TreeView_Select(hwnd, hitem, TVGN_CARET)
-// Macro 180
-// #define TreeView_SelectDropTarget(hwnd, hitem)      TreeView_Select(hwnd, hitem, TVGN_DROPHILITE)
-// Macro 181
-// #define TreeView_SelectSetFirstVisible(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE)
-
-// Macro 179
-Procedure TreeView_SelectItem(hwnd:hwnd; hitem:HTREEITEM);
-Begin
- TreeView_Select(hwnd, hitem, TVGN_CARET)
-End;
-
-// Macro 180
-Procedure TreeView_SelectDropTarget(hwnd:hwnd; hitem:HTREEITEM);
-Begin
- TreeView_Select(hwnd, hitem, TVGN_DROPHILITE)
-End;
-
-// Macro 181
-Procedure TreeView_SelectSetFirstVisible(hwnd:hwnd; hitem:HTREEITEM);
-Begin
- TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE)
-End;
-
-// Macro 182
-// #define TreeView_GetItem(hwnd, pitem) \
-//     (BOOL)SNDMSG((hwnd), TVM_GETITEM, 0, (LPARAM)(TV_ITEM *)(pitem))
-
-Function TreeView_GetItem( hwnd : hwnd;var  pitem : TV_ITEM ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_GETITEM, 0, LPARAM(@pitem)))
-end;
-
-
-// Macro 183
-
-//#define TreeView_SetItem(hwnd, pitem) \
-//     (BOOL)SNDMSG((hwnd), TVM_SETITEM, 0, (LPARAM)(const TV_ITEM *)(pitem))
-
-Function TreeView_SetItem( hwnd : hwnd;const  pitem : TV_ITEM ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_SETITEM, 0, LParam(@pitem)))
-end;
-
-
-// Macro 184
-
-//#define TreeView_EditLabel(hwnd, hitem) \
-//     (HWND)SNDMSG((hwnd), TVM_EDITLABEL, 0, (LPARAM)(HTREEITEM)(hitem))
-
-Function TreeView_EditLabel( hwnd : hwnd; hitem : HTREEITEM):HWND;
-
-Begin
- Result:=Windows.HWND(SendMessage((hwnd), TVM_EDITLABEL, 0, LParam(hitem)))
-end;
-
-
-// Macro 185
-
-//#define TreeView_GetEditControl(hwnd) \
-//     (HWND)SNDMSG((hwnd), TVM_GETEDITCONTROL, 0, 0)
-
-Function TreeView_GetEditControl( hwnd : hwnd):HWND;
-
-Begin
- Result:=Windows.HWND(SendMessage((hwnd), TVM_GETEDITCONTROL, 0, 0))
-end;
-
-
-// Macro 186
-
-//#define TreeView_GetVisibleCount(hwnd) \
-//     (UINT)SNDMSG((hwnd), TVM_GETVISIBLECOUNT, 0, 0)
-
-Function TreeView_GetVisibleCount( hwnd : hwnd):UINT;
-
-Begin
- Result:=UINT(SendMessage((hwnd), TVM_GETVISIBLECOUNT, 0, 0))
-end;
-
-
-// Macro 187
-
-//#define TreeView_HitTest(hwnd, lpht) \
-//     (HTREEITEM)SNDMSG((hwnd), TVM_HITTEST, 0, (LPARAM)(LPTV_HITTESTINFO)(lpht))
-
-Function TreeView_HitTest( hwnd : hwnd; lpht : LPTV_HITTESTINFO):HTREEITEM;inline;
-
-Begin
- Result:=HTREEITEM(SendMessage((hwnd), TVM_HITTEST, 0, lparam(lpht)))
-end;
-
-
-Function TreeView_HitTest( hwnd : hwnd; var lpht : TV_HITTESTINFO):HTREEITEM;inline;
-
-Begin
- Result:=HTREEITEM(SendMessage((hwnd), TVM_HITTEST, 0, lparam(@lpht)))
-end;
-// Macro 188
-
-//#define TreeView_CreateDragImage(hwnd, hitem) \
-//     (HIMAGELIST)SNDMSG((hwnd), TVM_CREATEDRAGIMAGE, 0, (LPARAM)(HTREEITEM)(hitem))
-
-Function TreeView_CreateDragImage( hwnd : hwnd; hitem : HTREEITEM):HIMAGELIST;
-
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), TVM_CREATEDRAGIMAGE, 0, Lparam(hitem)))
-end;
-
-
-// Macro 189
-
-//#define TreeView_SortChildren(hwnd, hitem, recurse) \
-//     (BOOL)SNDMSG((hwnd), TVM_SORTCHILDREN, (WPARAM)(recurse), (LPARAM)(HTREEITEM)(hitem))
-
-Function TreeView_SortChildren( hwnd : hwnd; hitem : HTREEITEM; recurse : WPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDREN, recurse, LParam(hitem)))
-end;
-
-
-// Macro 190
-
-//#define TreeView_EnsureVisible(hwnd, hitem) \
-//     (BOOL)SNDMSG((hwnd), TVM_ENSUREVISIBLE, 0, (LPARAM)(HTREEITEM)(hitem))
-
-Function TreeView_EnsureVisible( hwnd : hwnd; hitem : HTREEITEM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_ENSUREVISIBLE, 0, LParam(hitem)))
-end;
-
-
-// Macro 191
-
-//#define TreeView_SortChildrenCB(hwnd, psort, recurse) \
-//     (BOOL)SNDMSG((hwnd), TVM_SORTCHILDRENCB, (WPARAM)(recurse), \
-//     (LPARAM)(LPTV_SORTCB)(psort))
-
-Function TreeView_SortChildrenCB( hwnd : hwnd;psort :lpTV_sortcb; recurse : WPARAM):BOOL;inline;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDRENCB, recurse, LPARAM(psort)))
-end;
-
-
-Function TreeView_SortChildrenCB( hwnd : hwnd;const psort :tagTVsortcb; recurse : WPARAM):BOOL;inline;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDRENCB, recurse, LPARAM(@psort)))
-end;
-
-
-// Macro 192
-
-//#define TreeView_EndEditLabelNow(hwnd, fCancel) \
-//     (BOOL)SNDMSG((hwnd), TVM_ENDEDITLABELNOW, (WPARAM)(fCancel), 0)
-
-Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : WPARAM):BOOL;inline;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_ENDEDITLABELNOW, fCancel, 0))
-end;
-
-
-Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : Bool):BOOL;inline;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_ENDEDITLABELNOW, WPARAM(fCancel), 0))
-end;
-
-
-// Macro 193
-
-//#define TreeView_SetToolTips(hwnd,  hwndTT) \
-//     (HWND)SNDMSG((hwnd), TVM_SETTOOLTIPS, (WPARAM)(hwndTT), 0)
-
-Function TreeView_SetToolTips( hwnd : hwnd; hwndTT : WPARAM):HWND;
-
-Begin
- Result:=Windows.HWND(SendMessage((hwnd), TVM_SETTOOLTIPS, hwndTT, 0))
-end;
-
-
-// Macro 194
-
-//#define TreeView_GetToolTips(hwnd) \
-//     (HWND)SNDMSG((hwnd), TVM_GETTOOLTIPS, 0, 0)
-
-Function TreeView_GetToolTips( hwnd : hwnd):HWND;
-
-Begin
- Result:=Windows.HWND(SendMessage((hwnd), TVM_GETTOOLTIPS, 0, 0))
-end;
-
-
-// Macro 195
-
-//#define TreeView_GetISearchString(hwndTV, lpsz) \
-//         (BOOL)SNDMSG((hwndTV), TVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz))
-
-Function TreeView_GetISearchString( hwndTV : hwnd; lpsz : LPTSTR):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndTV), TVM_GETISEARCHSTRING, 0, LPARAM(lpsz)))
-end;
-
-
-// Macro 196
-
-//#define TreeView_SetInsertMark(hwnd, hItem, fAfter) \
-//         (BOOL)SNDMSG((hwnd), TVM_SETINSERTMARK, (WPARAM) (fAfter), (LPARAM) (hItem))
-
-Function TreeView_SetInsertMark( hwnd : hwnd; hItem : LParam ; fAfter : WParam ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_SETINSERTMARK, (fAfter), (hItem)))
-end;
-
-
-// Macro 197
-
-//#define TreeView_SetUnicodeFormat(hwnd, fUnicode)  \
-//     (BOOL)SNDMSG((hwnd), TVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
-
-Function TreeView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_SETUNICODEFORMAT, fUnicode, 0))
-end;
-
-
-// Macro 198
-
-//#define TreeView_GetUnicodeFormat(hwnd)  \
-//     (BOOL)SNDMSG((hwnd), TVM_GETUNICODEFORMAT, 0, 0)
-
-Function TreeView_GetUnicodeFormat( hwnd : hwnd):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_GETUNICODEFORMAT, 0, 0))
-end;
-
-
-// Macro 199
-
-//#define TreeView_SetItemHeight(hwnd,  iHeight) \
-//     (int)SNDMSG((hwnd), TVM_SETITEMHEIGHT, (WPARAM)(iHeight), 0)
-
-Function TreeView_SetItemHeight( hwnd : hwnd; iHeight : WPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), TVM_SETITEMHEIGHT, iHeight, 0))
-end;
-
-
-// Macro 200
-
-//#define TreeView_GetItemHeight(hwnd) \
-//     (int)SNDMSG((hwnd), TVM_GETITEMHEIGHT, 0, 0)
-
-Function TreeView_GetItemHeight( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), TVM_GETITEMHEIGHT, 0, 0))
-end;
-
-
-// Macro 201
-
-//#define TreeView_SetBkColor(hwnd, clr) \
-//     (COLORREF)SNDMSG((hwnd), TVM_SETBKCOLOR, 0, (LPARAM)(clr))
-
-Function TreeView_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), TVM_SETBKCOLOR, 0, clr))
-end;
-
-
-// Macro 202
-
-//#define TreeView_SetTextColor(hwnd, clr) \
-//     (COLORREF)SNDMSG((hwnd), TVM_SETTEXTCOLOR, 0, (LPARAM)(clr))
-
-Function TreeView_SetTextColor( hwnd : hwnd; clr : LPARAM):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), TVM_SETTEXTCOLOR, 0, clr))
-end;
-
-
-// Macro 203
-
-//#define TreeView_GetBkColor(hwnd) \
-//     (COLORREF)SNDMSG((hwnd), TVM_GETBKCOLOR, 0, 0)
-
-Function TreeView_GetBkColor( hwnd : hwnd):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), TVM_GETBKCOLOR, 0, 0))
-end;
-
-
-// Macro 204
-
-//#define TreeView_GetTextColor(hwnd) \
-//     (COLORREF)SNDMSG((hwnd), TVM_GETTEXTCOLOR, 0, 0)
-
-Function TreeView_GetTextColor( hwnd : hwnd):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), TVM_GETTEXTCOLOR, 0, 0))
-end;
-
-
-// Macro 205
-
-//#define TreeView_SetScrollTime(hwnd, uTime) \
-//     (UINT)SNDMSG((hwnd), TVM_SETSCROLLTIME, uTime, 0)
-
-Function TreeView_SetScrollTime( hwnd : hwnd; uTime : wparam ):UINT;
-
-Begin
- Result:=UINT(SendMessage((hwnd), TVM_SETSCROLLTIME, uTime, 0))
-end;
-
-
-// Macro 206
-
-//#define TreeView_GetScrollTime(hwnd) \
-//     (UINT)SNDMSG((hwnd), TVM_GETSCROLLTIME, 0, 0)
-
-Function TreeView_GetScrollTime( hwnd : hwnd):UINT;
-
-Begin
- Result:=UINT(SendMessage((hwnd), TVM_GETSCROLLTIME, 0, 0))
-end;
-
-
-// Macro 207
-
-//#define TreeView_SetInsertMarkColor(hwnd, clr) \
-//     (COLORREF)SNDMSG((hwnd), TVM_SETINSERTMARKCOLOR, 0, (LPARAM)(clr))
-
-Function TreeView_SetInsertMarkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), TVM_SETINSERTMARKCOLOR, 0, clr))
-end;
-
-
-// Macro 208
-
-//#define TreeView_GetInsertMarkColor(hwnd) \
-//     (COLORREF)SNDMSG((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0)
-
-Function TreeView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0))
-end;
-
-
-// Macro 209
-
-//#define TreeView_SetItemState(hwndTV, hti, data, _mask) \
-// { TVITEM _ms_TVi;\
-//   _ms_TVi.mask = TVIF_STATE; \
-//   _ms_TVi.hItem = hti; \
-//   _ms_TVi.stateMask = _mask;\
-//   _ms_TVi.state = data;\
-//   SNDMSG((hwndTV), TVM_SETITEM, 0, (LPARAM)(TV_ITEM *)&_ms_TVi);\
-// }
-
-Procedure TreeView_SetItemState(hwndTV:HWND;hti:HTreeItem;data:UINT;_mask:UINT);
-
-var _ms_TVi : TVITEM;
-
-Begin
- _ms_TVi.mask:=TVIF_STATE;
- _ms_TVi.hItem := hti;
- _ms_TVi.stateMask := _mask;
- _ms_TVi.state := data;
- SendMessage(hwndTV,TVM_SETITEM, 0, LPARAM(@_ms_TVi));
-end;
-
-
-// Macro 210
-
-//#define TreeView_SetCheckState(hwndTV, hti, fCheck) \
-//   TreeView_SetItemState(hwndTV, hti, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), TVIS_STATEIMAGEMASK)
-
-Procedure TreeView_SetCheckState( hwndTV : hwnd; hti : HTreeItem ; fCheck : bool );
-
-var j : cint;
-
-Begin
- IF not fCheck Then  // (or inc(longint(fCheck)) if you like it dirty)
-  j:=1
- Else
-  j:=2;
-
- TreeView_SetItemState(hwndTV, hti, INDEXTOSTATEIMAGEMASK(j), TVIS_STATEIMAGEMASK)
-end;
-
-
-{$ifdef IE5plus}
-// Macro 211
-
-//#define TreeView_GetItemState(hwndTV, hti, mask) \
-//    (UINT)SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), (LPARAM)(mask))
-
-Function TreeView_GetItemState( hwndTV : hwnd; hti : WPARAM; mask : LPARAM):UINT;
-
-Begin
- Result:=UINT(SendMessage((hwndTV), TVM_GETITEMSTATE, hti, mask))
-end;
-
-
-
-// Macro 212
-// #define TreeView_GetCheckState(hwndTV, hti) \
-//    ((((UINT)(SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), TVIS_STATEIMAGEMASK))) >> 12) -1)
-
-Function TreeView_GetCheckState( hwndTV : hwnd; hti : WPARAM):UINT;
-
-Begin
- Result:=((UINT(SendMessage((hwndTV), TVM_GETITEMSTATE, hti, TVIS_STATEIMAGEMASK) shr 12) -1));
-end;
-
-
-// Macro 213
-
-// #define TreeView_SetLineColor(hwnd, clr) \
-//     (COLORREF)SNDMSG((hwnd), TVM_SETLINECOLOR, 0, (LPARAM)(clr))
-
-Function TreeView_SetLineColor( hwnd : hwnd; clr : LPARAM):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), TVM_SETLINECOLOR, 0, clr))
-end;
-
-
-// Macro 214
-
-// #define TreeView_GetLineColor(hwnd) \
-//     (COLORREF)SNDMSG((hwnd), TVM_GETLINECOLOR, 0, 0)
-
-Function TreeView_GetLineColor( hwnd : hwnd):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), TVM_GETLINECOLOR, 0, 0))
-end;
-
-
-// Macro 215
-// #define TreeView_MapAccIDToHTREEITEM(hwnd, id) \
-//     (HTREEITEM)SNDMSG((hwnd), TVM_MAPACCIDTOHTREEITEM, id, 0)
-
-Function TreeView_MapAccIDToHTREEITEM( hwnd : hwnd; id :uint):HTREEITEM;
-
-Begin
- Result:=HTREEITEM(SendMessage((hwnd), TVM_MAPACCIDTOHTREEITEM, id, 0))
-end;
-
-
-// Macro 216
-// #define TreeView_MapHTREEITEMToAccID(hwnd, htreeitem) \
-//     (UINT)SNDMSG((hwnd), TVM_MAPHTREEITEMTOACCID, (WPARAM)htreeitem, 0)
-
-Function TreeView_MapHTREEITEMToAccID( hwnd : hwnd; htreeitem : WPARAM):UINT;
-
-Begin
- Result:=UINT(SendMessage((hwnd), TVM_MAPHTREEITEMTOACCID, htreeitem, 0))
-end;
-{$endif}
-
-// Macro 217
-
-//#define TabCtrl_GetImageList(hwnd) \
-//     (HIMAGELIST)SNDMSG((hwnd), TCM_GETIMAGELIST, 0, DWord(0))
-
-Function TabCtrl_GetImageList( hwnd : hwnd):HIMAGELIST;
-
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), TCM_GETIMAGELIST, 0, LPARAM(0)))
-end;
-
-
-// Macro 218
-
-//#define TabCtrl_SetImageList(hwnd, himl) \
-//     (HIMAGELIST)SNDMSG((hwnd), TCM_SETIMAGELIST, 0, (LPARAM)(HIMAGELIST)(himl))
-
-Function TabCtrl_SetImageList( hwnd : hwnd; himl : HIMAGELIST):HIMAGELIST;
-
-Begin
- Result:=HIMAGELIST(SendMessage((hwnd), TCM_SETIMAGELIST, 0, himl))
-end;
-
-
-// Macro 219
-
-//#define TabCtrl_GetItemCount(hwnd) \
-//     (int)SNDMSG((hwnd), TCM_GETITEMCOUNT, 0, DWord(0))
-
-Function TabCtrl_GetItemCount( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), TCM_GETITEMCOUNT, 0, LPARAM(0)))
-end;
-
-
-// Macro 220
-
-//#define TabCtrl_GetItem(hwnd, iItem, pitem) \
-//     (BOOL)SNDMSG((hwnd), TCM_GETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem))
-
-Function TabCtrl_GetItem( hwnd : hwnd; iItem : cint;var  pitem : TC_ITEM ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TCM_GETITEM, iItem, LPARAM(@pitem)))
-end;
-
-
-// Macro 221
-
-//#define TabCtrl_SetItem(hwnd, iItem, pitem) \
-//     (BOOL)SNDMSG((hwnd), TCM_SETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem))
-
-Function TabCtrl_SetItem( hwnd : hwnd; iItem : cint;var  pitem : TC_ITEM ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TCM_SETITEM, iItem, LPARAM(@pitem)))
-end;
-
-
-// Macro 222
-
-//#define TabCtrl_InsertItem(hwnd, iItem, pitem)   \
-//     (int)SNDMSG((hwnd), TCM_INSERTITEM, (WPARAM)(int)(iItem), (LPARAM)(const TC_ITEM *)(pitem))
-
-Function TabCtrl_InsertItem( hwnd : hwnd; iItem : cint;const  pitem : TC_ITEM ):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), TCM_INSERTITEM, iItem, LPARAM(@pitem)))
-end;
-
-
-// Macro 223
-
-//#define TabCtrl_DeleteItem(hwnd, i) \
-//     (BOOL)SNDMSG((hwnd), TCM_DELETEITEM, (WPARAM)(int)(i), DWord(0))
-
-Function TabCtrl_DeleteItem( hwnd : hwnd; i : cint):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TCM_DELETEITEM, (i), LPARAM(0)))
-end;
-
-
-// Macro 224
-
-//#define TabCtrl_DeleteAllItems(hwnd) \
-//     (BOOL)SNDMSG((hwnd), TCM_DELETEALLITEMS, 0, DWord(0))
-
-Function TabCtrl_DeleteAllItems( hwnd : hwnd):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TCM_DELETEALLITEMS, 0, LPARAM(0)))
-end;
-
-
-// Macro 225
-
-//#define TabCtrl_GetItemRect(hwnd, i, prc) \
-//     (BOOL)SNDMSG((hwnd), TCM_GETITEMRECT, (WPARAM)(int)(i), (LPARAM)(RECT *)(prc))
-
-Function TabCtrl_GetItemRect( hwnd : hwnd; i : cint;var  prc : RECT ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TCM_GETITEMRECT, (i), LPARAM(@prc)))
-end;
-
-
-// Macro 226
-
-//#define TabCtrl_GetCurSel(hwnd) \
-//     (int)SNDMSG((hwnd), TCM_GETCURSEL, 0, 0)
-
-Function TabCtrl_GetCurSel( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), TCM_GETCURSEL, 0, 0))
-end;
-
-
-// Macro 227
-
-//#define TabCtrl_SetCurSel(hwnd, i) \
-//     (int)SNDMSG((hwnd), TCM_SETCURSEL, (WPARAM)(i), 0)
-
-Function TabCtrl_SetCurSel( hwnd : hwnd; i : WPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), TCM_SETCURSEL, (i), 0))
-end;
-
-
-// Macro 228
-
-//#define TabCtrl_HitTest(hwndTC, pinfo) \
-//     (int)SNDMSG((hwndTC), TCM_HITTEST, 0, (LPARAM)(TC_HITTESTINFO *)(pinfo))
-
-Function TabCtrl_HitTest( hwndTC : hwnd;var  pinfo : TC_HITTESTINFO ):cint;inline;
-
-Begin
- Result:=cint(SendMessage((hwndTC), TCM_HITTEST, 0, LPARAM(@pinfo)))
-end;
-
-
-Function TabCtrl_HitTest( hwndTC : hwnd;pinfo : LPTCHITTESTINFO ):cint;inline;
-
-Begin
- Result:=cint(SendMessage((hwndTC), TCM_HITTEST, 0, LPARAM(@pinfo)))
-end;
-
-
-// Macro 229
-
-//#define TabCtrl_SetItemExtra(hwndTC, cb) \
-//     (BOOL)SNDMSG((hwndTC), TCM_SETITEMEXTRA, (WPARAM)(cb), DWord(0))
-
-Function TabCtrl_SetItemExtra( hwndTC : hwnd; cb : WPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndTC), TCM_SETITEMEXTRA, cb, LPARAM(0)))
-end;
-
-
-// Macro 230
-
-//#define TabCtrl_AdjustRect(hwnd, bLarger, prc) \
-//     (int)SNDMSG(hwnd, TCM_ADJUSTRECT, (WPARAM)(BOOL)(bLarger), (LPARAM)(RECT *)prc)
-
-Function TabCtrl_AdjustRect( hwnd : hwnd; bLarger : BOOL;var  prc : RECT ):cint;
-
-Begin
- Result:=cint(SendMessage(hwnd, TCM_ADJUSTRECT, Wparam(bLarger), Lparam(@prc)));
-end;
-
-
-// Macro 231
-
-//#define TabCtrl_SetItemSize(hwnd, x, y) \
-//     (DWORD)SNDMSG((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y))
-
-Function TabCtrl_SetItemSize( hwnd : hwnd; x : wparam ; y : lparam ):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y)))
-end;
-
-
-// Macro 232
-
-//#define TabCtrl_RemoveImage(hwnd, i) \
-//         (void)SNDMSG((hwnd), TCM_REMOVEIMAGE, i, DWord(0))
-
-Procedure TabCtrl_RemoveImage( hwnd : hwnd; i : WPARAM);
-
-Begin
-SendMessage((hwnd), TCM_REMOVEIMAGE, i, LPARAM(0))
-end;
-
-
-// Macro 233
-
-//#define TabCtrl_SetPadding(hwnd,  cx, cy) \
-//         (void)SNDMSG((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy))
-
-Procedure TabCtrl_SetPadding( hwnd : hwnd; cx : WPARAM ; cy : LPARAM );
-
-Begin
-SendMessage((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy))
-end;
-
-
-// Macro 234
-
-//#define TabCtrl_GetRowCount(hwnd) \
-//         (int)SNDMSG((hwnd), TCM_GETROWCOUNT, 0, DWord(0))
-
-Function TabCtrl_GetRowCount( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), TCM_GETROWCOUNT, 0, LPARAM(0)))
-end;
-
-
-// Macro 235
-
-//#define TabCtrl_GetToolTips(hwnd) \
-//         (HWND)SNDMSG((hwnd), TCM_GETTOOLTIPS, 0, DWord(0))
-
-Function TabCtrl_GetToolTips( hwnd : hwnd):HWND;
-
-Begin
- Result:=Windows.HWND(SendMessage((hwnd), TCM_GETTOOLTIPS, 0, LPARAM(0)))
-end;
-
-
-// Macro 236
-
-//#define TabCtrl_SetToolTips(hwnd, hwndTT) \
-//         (void)SNDMSG((hwnd), TCM_SETTOOLTIPS, (WPARAM)(hwndTT), DWord(0))
-
-Procedure TabCtrl_SetToolTips( hwnd : hwnd; hwndTT : WPARAM);
-
-Begin
-SendMessage((hwnd), TCM_SETTOOLTIPS, hwndTT, LPARAM(0))
-end;
-
-
-// Macro 237
-
-//#define TabCtrl_GetCurFocus(hwnd) \
-//     (int)SNDMSG((hwnd), TCM_GETCURFOCUS, 0, 0)
-
-Function TabCtrl_GetCurFocus( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), TCM_GETCURFOCUS, 0, 0))
-end;
-
-
-// Macro 238
-
-//#define TabCtrl_SetCurFocus(hwnd, i) \
-//     SNDMSG((hwnd),TCM_SETCURFOCUS, i, 0)
-
-Procedure TabCtrl_SetCurFocus( hwnd : hwnd; i : LPARAM );
-
-Begin
-SendMessage((hwnd),TCM_SETCURFOCUS, i, 0)
-end;
-
-
-// Macro 239
-
-//#define TabCtrl_SetMinTabWidth(hwnd, x) \
-//         (int)SNDMSG((hwnd), TCM_SETMINTABWIDTH, 0, x)
-
-Function TabCtrl_SetMinTabWidth( hwnd : hwnd; x : WPARAM ):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), TCM_SETMINTABWIDTH, 0, x))
-end;
-
-
-// Macro 240
-
-//#define TabCtrl_DeselectAll(hwnd, fExcludeFocus)\
-//         (void)SNDMSG((hwnd), TCM_DESELECTALL, fExcludeFocus, 0)
-
-Procedure TabCtrl_DeselectAll( hwnd : hwnd; fExcludeFocus : WPARAM );
-
-Begin
-SendMessage((hwnd), TCM_DESELECTALL, fExcludeFocus, 0)
-end;
-
-
-// Macro 241
-
-//#define TabCtrl_HighlightItem(hwnd, i, fHighlight) \
-//     (BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)(i), (LPARAM)MAKELONG (fHighlight, 0))
-
-Function TabCtrl_HighlightItem( hwnd : hwnd; i : WPARAM; fHighlight :bool ):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TCM_HIGHLIGHTITEM, (i), LPARAM(MAKELONG (cint(fHighlight), 0))))
-end;
-
-
-// Macro 242
-
-//#define TabCtrl_SetExtendedStyle(hwnd, dw)\
-//         (DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw)
-
-Function TabCtrl_SetExtendedStyle( hwnd : hwnd; dw : LPARAM):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwnd), TCM_SETEXTENDEDSTYLE, 0,lparam(dw)))
-end;
-
-
-// Macro 243
-
-//#define TabCtrl_GetExtendedStyle(hwnd)\
-//         (DWORD)SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0)
-
-Function TabCtrl_GetExtendedStyle( hwnd : hwnd):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0))
-end;
-
-
-// Macro 244
-
-//#define TabCtrl_SetUnicodeFormat(hwnd, fUnicode)  \
-//     (BOOL)SNDMSG((hwnd), TCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
-
-Function TabCtrl_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TCM_SETUNICODEFORMAT, fUnicode, 0))
-end;
-
-
-// Macro 245
-
-//#define TabCtrl_GetUnicodeFormat(hwnd)  \
-//     (BOOL)SNDMSG((hwnd), TCM_GETUNICODEFORMAT, 0, 0)
-
-Function TabCtrl_GetUnicodeFormat( hwnd : hwnd):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TCM_GETUNICODEFORMAT, 0, 0));
-end;
-
-
-// Macro 246
-
-//#define Animate_Create(hwndP, id, dwStyle, hInstance)   \
-//             CreateWindow(ANIMATE_CLASS, NULL,           \
-//                 dwStyle, 0, 0, 0, 0, hwndP, (HMENU)(id), hInstance, NULL)
-
-Function Animate_Create(hwndP :HWND;id:HMENU;dwStyle:dword;hInstance:HINST):HWND;
-
-Begin
-     result:=CreateWindow(ANIMATE_CLASS, NIL,
-                 dwStyle, 0, 0, 0, 0, hwndP, id, hInstance, NIL);
-end;
-
-
-// Macro 247
-//#define Animate_Open(hwnd, szName)  (BOOL)SNDMSG(hwnd, ACM_OPEN, 0, (LPARAM)(LPTSTR)(szName))
-
-Function Animate_Open(hwndP :HWND;szName:LPTSTR):BOOL;
-
-Begin
-  Result:=BOOL(SendMessage(hwndp, ACM_OPEN, 0, LPARAM(szName)));
-end;
-
-
-// Macro 248
-//#define Animate_OpenEx(hwnd, hInst, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, (WPARAM)(hInst), (LPARAM)(LPTSTR)(szName))
-
-Function Animate_OpenEx(hwndP :HWND;HInst:HInst; szName:LPTSTR):BOOL;
-
-Begin
-  Result:=BOOL(SendMessage(hwndp, ACM_OPEN, hinst, LPARAM(szName)));
-end;
-
-
-// Macro 249
-//#define Animate_Play(hwnd, from, to, rep)   (BOOL)SNDMSG(hwnd, ACM_PLAY, (WPARAM)(rep), (LPARAM)MAKELONG(from, to))
-
-Function Animate_Play(hwndP :HWND;from,_to,rep:uint):BOOL;
-
-Begin
-  Result:=BOOL(SendMessage(hwndP, ACM_PLAY, wparam(rep), LPARAM(MAKELONG(From,_to))));
-end;
-
-
-// Macro 250
-//#define Animate_Stop(hwnd)                  (BOOL)SNDMSG(hwnd, ACM_STOP, 0, 0)
-
-Function Animate_stop(hwndP :HWND):BOOL;
-
-Begin
-  Result:=BOOL(SendMessage(hwndP, ACM_STOP, 0, 0));
-end;
-
-
-// Macro 251
-//#define Animate_Close(hwnd)                 Animate_Open(hwnd, NULL)
-
-Function Animate_close(hwndP :HWND):BOOL;
-
-Begin
-  Result:=BOOL(Animate_Open(hwndP,NIL));
-end;
-
-
-// Macro 252
-//#define Animate_Seek(hwnd, frame)           Animate_Play(hwnd, frame, frame, 1)
-
-Function Animate_Seek(hwndP :HWND;frame:uint):BOOL;
-
-Begin
-  Result:=BOOL(Animate_Play(hwndP,frame,frame,1));
-end;
-
-// Macro 253
-//#define MonthCal_GetCurSel(hmc, pst)    (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst))
-
-function MonthCal_GetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_GETCURSEL , 0, LPARAM(lpsystime)));
-end;
-
-// Macro 254
-//#define MonthCal_SetCurSel(hmc, pst)    (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst))
-
-function MonthCal_SetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool; inline;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_SETCURSEL, 0, LPARAM(lpsystime)));
-end;
-
-function MonthCal_SetCurSel(hwndMC:HWND; var lpSysTime :SYSTEMTIME):Bool; inline;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_SETCURSEL, 0, LPARAM(@lpsystime)));
-end;
-
-// Macro 255
-//#define MonthCal_GetMaxSelCount(hmc)    (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, DWord(0))
-
-function MonthCal_GetMaxSelCount(hwndMC:HWND):Bool;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_GETMAXSELCOUNT, 0, LPARAM(0)));
-end;
-
-// Macro 256
-//#define MonthCal_SetMaxSelCount(hmc, n) (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), DWord(0))
-
-function MonthCal_SetMaxSelCount(hwndMC:HWND;n:uint):Bool;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_SETMAXSELCOUNT,WPARAM(N), LPARAM(0)));
-end;
-
-// Macro 257
-//#define MonthCal_GetSelRange(hmc, rgst) SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst))
-
-function MonthCal_GetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_GETSELRANGE,WPARAM(0), LPARAM(lpsystime)));
-end;
-
-// Macro 258
-//#define MonthCal_SetSelRange(hmc, rgst) SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst))
-
-function MonthCal_SetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_SETSELRANGE,WPARAM(0), LPARAM(lpsystime)));
-end;
-
-
-// Macro 259
-//#define MonthCal_GetMonthRange(hmc, gmr, rgst)  (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst))
-
-function MonthCal_GetMonthRange(hwndMC:HWND; gmr: DWORD;lpSysTime :LPSYSTEMTIME):Bool;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_GETMONTHRANGE,WPARAM(gmr), LPARAM(lpsystime)));
-end;
-
-// Macro 260
-//#define MonthCal_SetDayState(hmc, cbds, rgds)   SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds))
-
-function MonthCal_SetDayState(hwndMC:HWND; gmr: Longint;lpDay :LPMONTHDAYSTATE):Bool;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_SETDAYSTATE,WPARAM(gmr), LPARAM(lpDay)));
-end;
-
-// Macro 261
-// #define MonthCal_GetMinReqRect(hmc, prc)        SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc))
-
-function MonthCal_GetMinReqRect(hwndMC:HWND; lpr :LPRect):Bool;inline;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_GETMINREQRECT,0, LPARAM(lpr)));
-end;
-
-function MonthCal_GetMinReqRect(hwndMC:HWND;var lpr :TRect):Bool;inline;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_GETMINREQRECT,0, LPARAM(@lpr)));
-end;
-
-// Macro 262
-// #define MonthCal_SetColor(hmc, iColor, clr) SNDMSG(hmc, MCM_SETCOLOR, iColor, clr)
-
-function MonthCal_SetColor(hwndMC:HWND; ic:longint;clr:COLORREF):DWORD;inline;
-
-begin
-     Result:=DWORD(SendMessage(hwndmc, MCM_SETCOLOR,ic, LPARAM(clr)));
-end;
-
-// Macro 263
-// #define MonthCal_GetColor(hmc, iColor) SNDMSG(hmc, MCM_GETCOLOR, iColor, 0)
-
-function MonthCal_GetColor(hwndMC:HWND; ic:longint):Bool;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_GETCOLOR,ic, 0));
-end;
-
-// Macro 264
-// #define MonthCal_SetToday(hmc, pst)             SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)(pst))
-
-function MonthCal_SetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_SETTODAY,0, LPARAM(lps)));
-end;
-
-// Macro 265
-// #define MonthCal_GetToday(hmc, pst)             (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)(pst))
-
-function MonthCal_GetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
-
-begin
-     Result:=BOOL(SendMessage(hwndmc, MCM_GETTODAY,0, LPARAM(lps)));
-end;
-
-
-// Macro 266
-// #define MonthCal_HitTest(hmc, pinfo) \
-//         SNDMSG(hmc, MCM_HITTEST, 0, (LPARAM)(PMCHITTESTINFO)(pinfo))
-
-FUNCTION MonthCal_HitTest( hmc :HWND ; pinfo : PMCHITTESTINFO):DWORD;
-
-Begin
-   Result:=DWORD(SendMessage(hmc, MCM_HITTEST, 0, LPARAM(pinfo)));
-end;
-
-
-// Macro 267
-// #define MonthCal_SetFirstDayOfWeek(hmc, iDay) \
-//         SNDMSG(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay)
-
-function MonthCal_SetFirstDayOfWeek( hmc : HWND ; iDay :LONGINT ):DWORD;
-
-Begin
-   Result:=SendMessage(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay);
-end;
-
-
-// Macro 268
-// #define MonthCal_GetFirstDayOfWeek(hmc) \
-//         (DWORD)SNDMSG(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0)
-
-Function MonthCal_GetFirstDayOfWeek( hmc : HWND ):DWORD;
-
-Begin
- Result:=DWORD(SendMessage(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0))
-end;
-
-
-// Macro 269
-// #define MonthCal_GetRange(hmc, rgst) \
-//         (DWORD)SNDMSG(hmc, MCM_GETRANGE, 0, (LPARAM)(rgst))
-
-Function MonthCal_GetRange( hmc : HWND ; rgst : LPSYSTEMTIME):DWORD;
-
-Begin
-  Result:=DWORD(SendMessage(hmc, MCM_GETRANGE, 0, lparam(rgst)));
-end;
-
-
-// Macro 270
-// #define MonthCal_SetRange(hmc, gd, rgst) \
-//         (BOOL)SNDMSG(hmc, MCM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
-
-Function MonthCal_SetRange( hmc : HWND ; gd : DWORD; rgst : LPSYSTEMTIME):BOOL;
-
-Begin
-  Result:=BOOL(SendMessage(hmc, MCM_SETRANGE, gd,LPARAM(rgst)))
-end;
-
-
-// Macro 271
-// #define MonthCal_GetMonthDelta(hmc) \
-//         (int)SNDMSG(hmc, MCM_GETMONTHDELTA, 0, 0)
-
-Function MonthCal_GetMonthDelta( hmc :hwnd ):cint;
-
-Begin
- Result:=cint(SendMessage(hmc, MCM_GETMONTHDELTA, 0, 0))
-end;
-
-
-// Macro 272
-// #define MonthCal_SetMonthDelta(hmc, n) \
-//         (int)SNDMSG(hmc, MCM_SETMONTHDELTA, n, 0)
-
-Function MonthCal_SetMonthDelta( hmc :hwnd ; n :cint ):cint;
-
-Begin
- Result:=cint(SendMessage(hmc, MCM_SETMONTHDELTA, n, 0))
-end;
-
-
-// Macro 273
-
-// #define MonthCal_GetMaxTodayWidth(hmc) \
-//         (DWORD)SNDMSG(hmc, MCM_GETMAXTODAYWIDTH, 0, 0)
-
-Function MonthCal_GetMaxTodayWidth( hmc :hwnd ):DWORD;
-
-Begin
- Result:=DWORD(SendMessage(hmc, MCM_GETMAXTODAYWIDTH, 0, 0))
-end;
-
-
-// Macro 274
-// #define MonthCal_SetUnicodeFormat(hwnd, fUnicode)  \
-//     (BOOL)SNDMSG((hwnd), MCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
-
-Function MonthCal_SetUnicodeFormat( hwnd : hwnd; fUnicode : bool):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), MCM_SETUNICODEFORMAT, wparam(fUnicode), 0))
-end;
-
-
-// Macro 275
-
-// #define MonthCal_GetUnicodeFormat(hwnd)  \
-//     (BOOL)SNDMSG((hwnd), MCM_GETUNICODEFORMAT, 0, 0)
-
-Function MonthCal_GetUnicodeFormat( hwnd : hwnd):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), MCM_GETUNICODEFORMAT, 0, 0))
-end;
-
-
-// Macro 276
-// #define DateTime_GetSystemtime(hdp, pst)    (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst))
-
-// Macro 277
-
-//#define DateTime_SetSystemtime(hdp, gd, pst)    (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (WPARAM)(gd), (LPARAM)(pst))
-function DateTime_SetSystemTime(hdp: HWND; gd: DWORD; const pst: TSystemTime): BOOL;inline;
-begin
-  result:=BOOL(SendMessage(hdp, DTM_SETSYSTEMTIME, WPARAM(gd), LPARAM(@pst)));
-end;
-
-// Macro 278
-
-//#define DateTime_GetRange(hdp, rgst)  (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst))
-
-// Macro 279
-
-//#define DateTime_SetRange(hdp, gd, rgst)  (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
-function DateTime_SetRange(hdp: HWND; gdtr: DWORD; rgst: PSystemTime): BOOL;inline;
-begin
-  result:=BOOL(SendMessage(hdp, DTM_SETRANGE, WPARAM(gdtr), LPARAM(rgst)));
-end;
-
-// Macro 280
-
-//#define DateTime_SetFormat(hdp, sz)  (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz))
-
-// Macro 281
-
-//#define DateTime_SetMonthCalColor(hdp, iColor, clr) SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr)
-function DateTime_SetMonthCalColor(hdp: HWND; iColor: DWORD; clr: TColorRef): TColorRef;inline;
-begin
-  result:=TColorRef(SendMessage(hdp, DTM_SETMCCOLOR, iColor, clr));
-end;
-
-// Macro 282
-
-//#define DateTime_GetMonthCalColor(hdp, iColor) SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0)
-
-// Macro 283
-
-//#define DateTime_GetMonthCal(hdp) (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0)
-function DateTime_GetMonthCal(hdp: HWND): HWND;inline;
-begin
-  result:=HWND(SendMessage(hdp, DTM_GETMONTHCAL, 0, 0));
-end;
-
-// Macro 284
-
-//#define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)(hfont), (LPARAM)(fRedraw))
-
-// Macro 285
-
-//#define DateTime_GetMonthCalFont(hdp) SNDMSG(hdp, DTM_GETMCFONT, 0, 0)
-
-// Macro 286
-
-//#define MAKEIPRANGE(low, high)    ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low)))
-
-// Macro 287
-
-//#define MAKEIPADDRESS(b1,b2,b3,b4)  ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4))))
-
-// Macro 288
-
-//#define FIRST_IPADDRESS(x)  ((x>>24) & 0xff)
-
-// Macro 289
-
-//#define SECOND_IPADDRESS(x) ((x>>16) & 0xff)
-
-// Macro 290
-
-//#define THIRD_IPADDRESS(x)  ((x>>8) & 0xff)
-
-// Macro 291
-
-//#define FOURTH_IPADDRESS(x) (x & 0xff)
-
-// Macro 292
-
-//#define Pager_SetChild(hwnd, hwndChild) \
-//         (void)SNDMSG((hwnd), PGM_SETCHILD, 0, (LPARAM)(hwndChild))
-
-Procedure Pager_SetChild( hwnd : hwnd; hwndChild : LPARAM);
-
-Begin
-SendMessage((hwnd), PGM_SETCHILD, 0, hwndChild)
-end;
-
-
-// Macro 293
-
-//#define Pager_RecalcSize(hwnd) \
-//         (void)SNDMSG((hwnd), PGM_RECALCSIZE, 0, 0)
-
-Procedure Pager_RecalcSize( hwnd : hwnd);
-
-Begin
-SendMessage((hwnd), PGM_RECALCSIZE, 0, 0)
-end;
-
-
-// Macro 294
-
-//#define Pager_ForwardMouse(hwnd, bForward) \
-//         (void)SNDMSG((hwnd), PGM_FORWARDMOUSE, (WPARAM)(bForward), 0)
-
-Procedure Pager_ForwardMouse( hwnd : hwnd; bForward : WPARAM);
-
-Begin
-SendMessage((hwnd), PGM_FORWARDMOUSE, bForward, 0)
-end;
-
-
-// Macro 295
-
-//#define Pager_SetBkColor(hwnd, clr) \
-//         (COLORREF)SNDMSG((hwnd), PGM_SETBKCOLOR, 0, (LPARAM)(clr))
-
-Function Pager_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), PGM_SETBKCOLOR, 0, clr))
-end;
-
-
-// Macro 296
-
-//#define Pager_GetBkColor(hwnd) \
-//         (COLORREF)SNDMSG((hwnd), PGM_GETBKCOLOR, 0, 0)
-
-Function Pager_GetBkColor( hwnd : hwnd):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), PGM_GETBKCOLOR, 0, 0))
-end;
-
-
-// Macro 297
-
-//#define Pager_SetBorder(hwnd, iBorder) \
-//         (int)SNDMSG((hwnd), PGM_SETBORDER, 0, (LPARAM)(iBorder))
-
-Function Pager_SetBorder( hwnd : hwnd; iBorder : LPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), PGM_SETBORDER, 0, iBorder))
-end;
-
-
-// Macro 298
-// #define Pager_GetBorder(hwnd) \
-//         (int)SNDMSG((hwnd), PGM_GETBORDER, 0, 0)
-
-Function Pager_GetBorder( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), PGM_GETBORDER, 0, 0))
-end;
-
-
-// Macro 299
-
-//#define Pager_SetPos(hwnd, iPos) \
-//         (int)SNDMSG((hwnd), PGM_SETPOS, 0, (LPARAM)(iPos))
-
-Function Pager_SetPos( hwnd : hwnd; iPos : LPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), PGM_SETPOS, 0, iPos))
-end;
-
-
-// Macro 300
-
-//#define Pager_GetPos(hwnd) \
-//         (int)SNDMSG((hwnd), PGM_GETPOS, 0, 0)
-
-Function Pager_GetPos( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), PGM_GETPOS, 0, 0))
-end;
-
-
-// Macro 301
-
-//#define Pager_SetButtonSize(hwnd, iSize) \
-//         (int)SNDMSG((hwnd), PGM_SETBUTTONSIZE, 0, (LPARAM)(iSize))
-
-Function Pager_SetButtonSize( hwnd : hwnd; iSize : LPARAM):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), PGM_SETBUTTONSIZE, 0, iSize))
-end;
-
-
-// Macro 302
-
-//#define Pager_GetButtonSize(hwnd) \
-//         (int)SNDMSG((hwnd), PGM_GETBUTTONSIZE, 0,0)
-
-Function Pager_GetButtonSize( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), PGM_GETBUTTONSIZE, 0,0))
-end;
-
-
-// Macro 303
-
-//#define Pager_GetButtonState(hwnd, iButton) \
-//         (DWORD)SNDMSG((hwnd), PGM_GETBUTTONSTATE, 0, (LPARAM)(iButton))
-
-Function Pager_GetButtonState( hwnd : hwnd; iButton : LPARAM):DWORD;
-
-Begin
- Result:=DWORD(SendMessage((hwnd), PGM_GETBUTTONSTATE, 0, iButton))
-end;
-
-
-// Macro 304
-// #define Pager_GetDropTarget(hwnd, ppdt) \
-//         (void)SNDMSG((hwnd), PGM_GETDROPTARGET, 0, (LPARAM)(ppdt))
-
-Procedure Pager_GetDropTarget( hwnd : hwnd; ppdt : LPARAM);
-
-Begin
-SendMessage((hwnd), PGM_GETDROPTARGET, 0, ppdt)
-end;
-
-
-// Macro 305
-// #define Button_GetIdealSize(hwnd, psize)\
-//     (BOOL)SNDMSG((hwnd), BCM_GETIDEALSIZE, 0, (LPARAM)(psize))
-
-Function Button_GetIdealSize( hwnd : hwnd; psize : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), BCM_GETIDEALSIZE, 0, psize))
-end;
-
-
-// Macro 306
-// #define Button_SetImageList(hwnd, pbuttonImagelist)\
-//     (BOOL)SNDMSG((hwnd), BCM_SETIMAGELIST, 0, (LPARAM)(pbuttonImagelist))
-
-Function Button_SetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), BCM_SETIMAGELIST, 0, pbuttonImagelist))
-end;
-
-// Macro 307
-// #define Button_GetImageList(hwnd, pbuttonImagelist)\
-//     (BOOL)SNDMSG((hwnd), BCM_GETIMAGELIST, 0, (LPARAM)(pbuttonImagelist))
-
-Function Button_GetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), BCM_GETIMAGELIST, 0, pbuttonImagelist))
-end;
-
-
-// Macro 308
-// #define Button_SetTextMargin(hwnd, pmargin)\
-//     (BOOL)SNDMSG((hwnd), BCM_SETTEXTMARGIN, 0, (LPARAM)(pmargin))
-
-Function Button_SetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), BCM_SETTEXTMARGIN, 0, pmargin))
-end;
-
-
-// Macro 309
-// #define Button_GetTextMargin(hwnd, pmargin)\
-//     (BOOL)SNDMSG((hwnd), BCM_GETTEXTMARGIN, 0, (LPARAM)(pmargin))
-
-Function Button_GetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), BCM_GETTEXTMARGIN, 0, pmargin))
-end;
-
-
-// Macro 310
-// #define Edit_SetCueBannerText(hwnd, lpcwText) \
-//         (BOOL)SNDMSG((hwnd), EM_SETCUEBANNER, 0, (LPARAM)(lpcwText))
-
-Function Edit_SetCueBannerText( hwnd : hwnd; lpcwText : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), EM_SETCUEBANNER, 0, lpcwText))
-end;
-
-
-// Macro 311
-//#define Edit_GetCueBannerText(hwnd, lpwText, cchText) \
-//         (BOOL)SNDMSG((hwnd), EM_GETCUEBANNER, (WPARAM)(lpwText), (LPARAM)(cchText))
-
-Function Edit_GetCueBannerText( hwnd : hwnd; lpwText : WPARAM; cchText : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), EM_GETCUEBANNER, lpwText, cchText))
-end;
-
-
-// Macro 312
-// #define Edit_ShowBalloonTip(hwnd, peditballoontip) \
-//         (BOOL)SNDMSG((hwnd), EM_SHOWBALLOONTIP, 0, (LPARAM)(peditballoontip))
-
-Function Edit_ShowBalloonTip( hwnd : hwnd; peditballoontip : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), EM_SHOWBALLOONTIP, 0, peditballoontip))
-end;
-
-
-// Macro 313
-// #define Edit_HideBalloonTip(hwnd) \
-//         (BOOL)SNDMSG((hwnd), EM_HIDEBALLOONTIP, 0, 0)
-
-Function Edit_HideBalloonTip( hwnd : hwnd):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), EM_HIDEBALLOONTIP, 0, 0))
-end;
-
-
-// Macro 314
-//#define ComboBox_SetMinVisible(hwnd, iMinVisible) \
-//             (BOOL)SNDMSG((hwnd), CB_SETMINVISIBLE, (WPARAM)iMinVisible, 0)
-
-Function ComboBox_SetMinVisible( hwnd : hwnd; iMinVisible : WPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), CB_SETMINVISIBLE, iMinVisible, 0))
-end;
-
-
-// Macro 315
-// #define ComboBox_GetMinVisible(hwnd) \
-//             (int)SNDMSG((hwnd), CB_GETMINVISIBLE, 0, 0)
-
-Function ComboBox_GetMinVisible( hwnd : hwnd):cint;
-
-Begin
- Result:=cint(SendMessage((hwnd), CB_GETMINVISIBLE, 0, 0))
-end;
-
-
-End.

+ 0 - 1060
packages/base/winunits/comobj.pp

@@ -1,1060 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2006 by Florian Klaempfl
-    member of the Free Pascal development team.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-{$mode objfpc}
-{$H+}
-{$inline on}
-unit comobj;
-
-  interface
-
-    uses
-      Windows,Types,Variants,Sysutils,ActiveX;
-
-    type
-      EOleError = class(Exception);
-
-      EOleSysError = class(EOleError)
-      private
-        FErrorCode: HRESULT;
-      public
-        constructor Create(const Msg: string; aErrorCode: HRESULT;aHelpContext: Integer);
-        property ErrorCode: HRESULT read FErrorCode write FErrorCode;
-      end;
-
-      EOleException = class(EOleSysError)
-      private
-        FHelpFile: string;
-        FSource: string;
-      public
-        constructor Create(const Msg: string; aErrorCode: HRESULT;const aSource,aHelpFile: string;aHelpContext: Integer);
-        property HelpFile: string read FHelpFile write FHelpFile;
-        property Source: string read FSource write FSource;
-      end;
-
-      EOleRegistrationError = class(EOleError);
-
-      TComServerObject = class(TObject)
-      protected
-        function CountObject(Created: Boolean): Integer; virtual; abstract;
-        function CountFactory(Created: Boolean): Integer; virtual; abstract;
-        function GetHelpFileName: string; virtual; abstract;
-        function GetServerFileName: string; virtual; abstract;
-        function GetServerKey: string; virtual; abstract;
-        function GetServerName: string; virtual; abstract;
-        function GetStartSuspended: Boolean; virtual; abstract;
-        function GetTypeLib: ITypeLib; virtual; abstract;
-        procedure SetHelpFileName(const Value: string); virtual; abstract;
-      public
-        property HelpFileName: string read GetHelpFileName write SetHelpFileName;
-        property ServerFileName: string read GetServerFileName;
-        property ServerKey: string read GetServerKey;
-        property ServerName: string read GetServerName;
-        property TypeLib: ITypeLib read GetTypeLib;
-        property StartSuspended: Boolean read GetStartSuspended;
-      end;
-
-      TComObjectFactory = class;
-
-      TFactoryProc = procedure(Factory: TComObjectFactory) of object;
-
-      TComClassManager = class(TObject)
-        constructor Create;
-        destructor Destroy; override;
-        procedure ForEachFactory(ComServer: TComServerObject; FactoryProc: TFactoryProc);
-        function GetFactoryFromClass(ComClass: TClass): TComObjectFactory;
-        function GetFactoryFromClassID(const ClassID: TGUID): TComObjectFactory;
-      end;
-
-      IServerExceptionHandler = interface
-        ['{6A8D432B-EB81-11D1-AAB1-00C04FB16FBC}']
-        procedure OnException(const ServerClass, ExceptionClass, ErrorMessage: WideString;
-          ExceptAddr: PtrInt; const ErrorIID, ProgID: WideString; var Handled: Integer; var Result: HResult); dispid 2;
-      end;
-
-      TComObject = class(TObject, IUnknown, ISupportErrorInfo)
-      private
-        FController : Pointer;
-        FFactory : TComObjectFactory;
-        FRefCount : Integer;
-        FServerExceptionHandler : IServerExceptionHandler;
-        FCounted : Boolean;
-        function GetController : IUnknown;
-      protected
-        { IUnknown }
-        function IUnknown.QueryInterface = ObjQueryInterface;
-        function IUnknown._AddRef = ObjAddRef;
-        function IUnknown._Release = ObjRelease;
-
-        { IUnknown methods for other interfaces }
-        function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
-        function _AddRef: Integer; stdcall;
-        function _Release: Integer; stdcall;
-
-        { ISupportErrorInfo }
-        function InterfaceSupportsErrorInfo(const iid: TIID): HResult; stdcall;
-      public
-        constructor Create;
-        constructor CreateAggregated(const Controller: IUnknown);
-        constructor CreateFromFactory(Factory: TComObjectFactory; const Controller: IUnknown);
-        destructor Destroy; override;
-        procedure Initialize; virtual;
-        function ObjAddRef: Integer; virtual; stdcall;
-        function ObjQueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
-        function ObjRelease: Integer; virtual; stdcall;
-        function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; override;
-        property Controller: IUnknown read GetController;
-        property Factory: TComObjectFactory read FFactory;
-        property RefCount: Integer read FRefCount;
-        property ServerExceptionHandler: IServerExceptionHandler read FServerExceptionHandler write FServerExceptionHandler;
-      end;
-      TComClass = class of TComObject;
-
-      TClassInstancing = (ciInternal, ciSingleInstance, ciMultiInstance);
-      TThreadingModel = (tmSingle, tmApartment, tmFree, tmBoth, tmNeutral);
-
-      TComObjectFactory = class(TObject, IUnknown, IClassFactory, IClassFactory2)
-      private
-        Next: TComObjectFactory;
-        FComServer: TComServerObject;
-        FComClass: TClass;
-        FClassID: TGUID;
-        FClassName: string;
-        FDescription: string;
-        FErrorIID: TGUID;
-        FInstancing: TClassInstancing;
-        FLicString: WideString;
-        FRegister: Longint;
-        FShowErrors: Boolean;
-        FSupportsLicensing: Boolean;
-        FThreadingModel: TThreadingModel;
-        function GetProgID: string;
-      protected
-        { IUnknown }
-        function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
-        function _AddRef: Integer; stdcall;
-        function _Release: Integer; stdcall;
-        { IClassFactory }
-        function CreateInstance(const UnkOuter: IUnknown; const IID: TGUID;
-          out Obj): HResult; stdcall;
-        function LockServer(fLock: BOOL): HResult; stdcall;
-        { IClassFactory2 }
-        function GetLicInfo(var licInfo: TLicInfo): HResult; stdcall;
-        function RequestLicKey(dwResrved: DWORD; out bstrKey: WideString): HResult; stdcall;
-        function CreateInstanceLic(const unkOuter: IUnknown; const unkReserved: IUnknown;
-          const iid: TIID; const bstrKey: WideString; out vObject): HResult; stdcall;
-      public
-        constructor Create(ComServer: TComServerObject; ComClass: TComClass;
-          const ClassID: TGUID; const Name, Description: string;
-          Instancing: TClassInstancing; ThreadingModel: TThreadingModel = tmSingle);
-        destructor Destroy; override;
-        function CreateComObject(const Controller: IUnknown): TComObject; virtual;
-        procedure RegisterClassObject;
-        procedure UpdateRegistry(Register: Boolean); virtual;
-        property ClassID: TGUID read FClassID;
-        property ClassName: string read FClassName;
-        property ComClass: TClass read FComClass;
-        property ComServer: TComServerObject read FComServer;
-        property Description: string read FDescription;
-        property ErrorIID: TGUID read FErrorIID write FErrorIID;
-        property LicString: WideString read FLicString write FLicString;
-        property ProgID: string read GetProgID;
-        property Instancing: TClassInstancing read FInstancing;
-        property ShowErrors: Boolean read FShowErrors write FShowErrors;
-        property SupportsLicensing: Boolean read FSupportsLicensing write FSupportsLicensing;
-        property ThreadingModel: TThreadingModel read FThreadingModel;
-      end;
-
-    function CreateClassID : ansistring;
-
-    function CreateComObject(const ClassID: TGUID) : IUnknown;
-    function CreateRemoteComObject(const MachineName : WideString;const ClassID : TGUID) : IUnknown;
-    function CreateOleObject(const ClassName : string) : IDispatch;
-    function GetActiveOleObject(const ClassName: string) : IDispatch;
-
-    procedure OleCheck(Value : HResult);inline;
-    procedure OleError(Code: HResult);
-
-    function ProgIDToClassID(const id : string) : TGUID;
-
-    procedure DispatchInvoke(const Dispatch: IDispatch; CallDesc: PCallDesc;
-       DispIDs: PDispIDList; Params: Pointer; Result: PVariant);
-    procedure DispatchInvokeError(Status: HRESULT; const ExceptInfo: TExcepInfo);
-
-    function HandleSafeCallException(ExceptObject: TObject; ExceptAddr: Pointer; const ErrorIID: TGUID; const ProgID,
-      HelpFileName: WideString): HResult;
-
-    function ComClassManager : TComClassManager;
-
-    type
-      TCoCreateInstanceExProc = function(const clsid: TCLSID; unkOuter: IUnknown; dwClsCtx: DWORD; ServerInfo: PCoServerInfo;
-      dwCount: ULONG; rgmqResults: PMultiQIArray): HResult stdcall;
-      TCoInitializeExProc = function (pvReserved: Pointer;
-      coInit: DWORD): HResult; stdcall;
-      TCoAddRefServerProcessProc = function : ULONG; stdcall;
-      TCoReleaseServerProcessProc = function : ULONG; stdcall;
-      TCoResumeClassObjectsProc = function : HResult; stdcall;
-      TCoSuspendClassObjectsProc = function : HResult; stdcall;
-
-    const
-      CoCreateInstanceEx : TCoCreateInstanceExProc = nil;
-      CoInitializeEx : TCoInitializeExProc = nil;
-      CoAddRefServerProcess : TCoAddRefServerProcessProc = nil;
-      CoReleaseServerProcess : TCoReleaseServerProcessProc = nil;
-      CoResumeClassObjects : TCoResumeClassObjectsProc = nil;
-      CoSuspendClassObjects : TCoSuspendClassObjectsProc = nil;
-
-implementation
-
-    uses
-      ComConst,Ole2;
-
-    var
-      Uninitializing : boolean;
-
-    function HandleSafeCallException(ExceptObject: TObject; ExceptAddr: Pointer; const ErrorIID: TGUID; const ProgID,
-      HelpFileName: WideString): HResult;
-      var
-        _CreateErrorInfo : ICreateErrorInfo;
-        ErrorInfo : IErrorInfo;
-      begin
-        Result:=E_UNEXPECTED;
-        if Succeeded(CreateErrorInfo(_CreateErrorInfo)) then
-          begin
-            _CreateErrorInfo.SetGUID(ErrorIID);
-            if ProgID<>'' then
-              _CreateErrorInfo.SetSource(PWidechar(ProgID));
-            if HelpFileName<>'' then
-              _CreateErrorInfo.SetHelpFile(PWidechar(HelpFileName));
-            if ExceptObject is Exception then
-              begin
-                _CreateErrorInfo.SetDescription(PWidechar(Widestring(Exception(ExceptObject).Message)));
-                _CreateErrorInfo.SetHelpContext(Exception(ExceptObject).HelpContext);
-                if (ExceptObject is EOleSyserror) and (EOleSysError(ExceptObject).ErrorCode<0) then
-                  Result:=EOleSysError(ExceptObject).ErrorCode
-              end;
-            if _CreateErrorInfo.QueryInterface(IErrorInfo,ErrorInfo)=S_OK then
-              SetErrorInfo(0,ErrorInfo);
-          end;
-      end;
-
-
-    constructor EOleSysError.Create(const Msg: string; aErrorCode: HRESULT; aHelpContext: Integer);
-      var
-        m : string;
-      begin
-        if Msg='' then
-          m:=SysErrorMessage(aErrorCode)
-        else
-          m:=Msg;
-        inherited CreateHelp(m,HelpContext);
-        FErrorCode:=aErrorCode;
-      end;
-
-
-    constructor EOleException.Create(const Msg: string; aErrorCode: HRESULT;const aSource,aHelpFile: string; aHelpContext: Integer);
-      begin
-        inherited Create(Msg,aErrorCode,aHelpContext);
-        FHelpFile:=aHelpFile;
-        FSource:=aSource;
-      end;
-
-    {$define FPC_COMOBJ_HAS_CREATE_CLASS_ID}
-    function CreateClassID : ansistring;
-      var
-         ClassID : TCLSID;
-         p : PWideChar;
-      begin
-         CoCreateGuid(ClassID);
-         StringFromCLSID(ClassID,p);
-         result:=p;
-         CoTaskMemFree(p);
-      end;
-
-
-   function CreateComObject(const ClassID : TGUID) : IUnknown;
-     begin
-       OleCheck(CoCreateInstance(ClassID,nil,CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER,IUnknown,result));
-     end;
-
-
-   function CreateRemoteComObject(const MachineName : WideString;const ClassID : TGUID) : IUnknown;
-     var
-       flags : DWORD;
-       localhost : array[0..MAX_COMPUTERNAME_LENGTH] of WideChar;
-       server : TCoServerInfo;
-       mqi : TMultiQI;
-       size : DWORD;
-     begin
-       if not(assigned(CoCreateInstanceEx)) then
-         raise Exception.CreateRes(@SDCOMNotInstalled);
-
-       FillChar(server,sizeof(server),0);
-       server.pwszName:=PWideChar(MachineName);
-
-       FillChar(mqi,sizeof(mqi),0);
-       mqi.iid:=@IID_IUnknown;
-
-       flags:=CLSCTX_LOCAL_SERVER or CLSCTX_REMOTE_SERVER or CLSCTX_INPROC_SERVER;
-
-       { actually a remote call? }
-{$ifndef wince}
-       //roozbeh although there is a way to retrive computer name...HKLM\Ident\Name..but are they same?
-	     size:=sizeof(localhost);
-       if (MachineName<>'') and
-          (not(GetComputerNameW(localhost,size)) or
-          (WideCompareText(localhost,MachineName)<>0)) then
-           flags:=CLSCTX_REMOTE_SERVER;
-{$endif}
-
-       OleCheck(CoCreateInstanceEx(ClassID,nil,flags,@server,1,@mqi));
-       OleCheck(mqi.hr);
-       Result:=mqi.itf;
-     end;
-
-
-   function CreateOleObject(const ClassName : string) : IDispatch;
-     var
-       id : TCLSID;
-     begin
-        id:=ProgIDToClassID(ClassName);
-        OleCheck(CoCreateInstance(id,nil,CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER,IDispatch,result));
-     end;
-
-
-   function GetActiveOleObject(const ClassName : string) : IDispatch;
-     var
-     	 intf : IUnknown;
-       id : TCLSID;
-     begin
-       id:=ProgIDToClassID(ClassName);
-       OleCheck(GetActiveObject(id,nil,intf));
-       OleCheck(intf.QueryInterface(IDispatch,Result));
-     end;
-
-
-   procedure OleError(Code: HResult);
-     begin
-       raise EOleSysError.Create('',Code,0);
-     end;
-
-
-   procedure OleCheck(Value : HResult);inline;
-     begin
-       if not(Succeeded(Value)) then
-         OleError(Value);
-     end;
-
-
-   function ProgIDToClassID(const id : string) : TGUID;
-     begin
-       OleCheck(CLSIDFromProgID(PWideChar(WideString(id)),result));
-     end;
-
-
-   procedure SafeCallErrorHandler(err : HResult;addr : pointer);
-     var
-       info : IErrorInfo;
-       descr,src,helpfile : widestring;
-       helpctx : DWORD;
-     begin
-       if GetErrorInfo(0,info)=S_OK then
-         begin
-           info.GetDescription(descr);
-           info.GetSource(src);
-           info.GetHelpFile(helpfile);
-           info.GetHelpContext(helpctx);
-           raise EOleException.Create(descr,err,src,helpfile,helpctx) at addr;
-         end
-       else
-         raise EOleException.Create('',err,'','',0) at addr;
-     end;
-
-
-    procedure DispatchInvokeError(Status: HRESULT; const ExceptInfo: TExcepInfo);
-      begin
-        if Status=DISP_E_EXCEPTION then
-          raise EOleException.Create(ExceptInfo.Description,ExceptInfo.scode,ExceptInfo.Source,
-            ExceptInfo.HelpFile,ExceptInfo.dwHelpContext)
-        else
-          raise EOleSysError.Create('',Status,0);
-      end;
-
-    var
-      _ComClassManager : TComClassManager;
-
-    function ComClassManager: TComClassManager;
-      begin
-        if not(assigned(_ComClassManager)) then
-          _ComClassManager:=TComClassManager.Create;
-        Result:=_ComClassManager;
-      end;
-
-
-    constructor TComClassManager.Create;
-      begin
-        RunError(217);
-      end;
-
-
-    destructor TComClassManager.Destroy;
-      begin
-        RunError(217);
-      end;
-
-
-    procedure TComClassManager.ForEachFactory(ComServer: TComServerObject;
-      FactoryProc: TFactoryProc);
-      begin
-        RunError(217);
-      end;
-
-
-    function TComClassManager.GetFactoryFromClass(ComClass: TClass
-      ): TComObjectFactory;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComClassManager.GetFactoryFromClassID(const ClassID: TGUID
-      ): TComObjectFactory;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComObject.GetController: IUnknown;
-      begin
-        Result:=IUnknown(Controller);
-      end;
-
-
-    function TComObject.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
-      begin
-        if assigned(FController) then
-          Result:=IUnknown(FController).QueryInterface(IID,Obj)
-        else
-          Result:=ObjQueryInterface(IID,Obj);
-      end;
-
-
-    function TComObject._AddRef: Integer; stdcall;
-      begin
-        if assigned(FController) then
-          Result:=IUnknown(FController)._AddRef
-        else
-          Result:=ObjAddRef;
-      end;
-
-
-    function TComObject._Release: Integer; stdcall;
-      begin
-        if assigned(FController) then
-          Result:=IUnknown(FController)._Release
-        else
-          Result:=ObjRelease;
-      end;
-
-
-    function TComObject.InterfaceSupportsErrorInfo(const iid: TIID): HResult; stdcall;
-      begin
-        if assigned(GetInterfaceEntry(iid)) then
-          Result:=S_OK
-        else
-          Result:=S_FALSE;
-      end;
-
-
-    constructor TComObject.Create;
-      begin
-         CreateFromFactory(ComClassManager.GetFactoryFromClass(ClassType),nil);
-      end;
-
-
-    constructor TComObject.CreateAggregated(const Controller: IUnknown);
-      begin
-        CreateFromFactory(ComClassManager.GetFactoryFromClass(ClassType),Controller);
-      end;
-
-
-    constructor TComObject.CreateFromFactory(Factory: TComObjectFactory;
-      const Controller: IUnknown);
-      begin
-        FFactory:=Factory;
-        FRefCount:=1;
-        FController:=Pointer(Controller);
-        FFactory.Comserver.CountObject(True);
-        FCounted:=true;
-        Initialize;
-        Dec(FRefCount);
-      end;
-
-
-    destructor TComObject.Destroy;
-      begin
-        if not(Uninitializing) then
-          begin
-            if assigned(FFactory) and FCounted then
-              FFactory.Comserver.CountObject(false);
-            if FRefCount>0 then
-              CoDisconnectObject(Self,0);
-          end;
-      end;
-
-
-    procedure TComObject.Initialize;
-      begin
-      end;
-
-
-    function TComObject.ObjAddRef: Integer; stdcall;
-      begin
-        Result:=InterlockedIncrement(FRefCount);
-      end;
-
-
-    function TComObject.ObjQueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
-      begin
-        if GetInterface(IID,Obj) then
-          Result:=S_OK
-        else
-          Result:=E_NOINTERFACE;
-      end;
-
-
-    function TComObject.ObjRelease: Integer; stdcall;
-      begin
-        Result:=InterlockedDecrement(FRefCount);
-        if Result=0 then
-          Self.Destroy;
-      end;
-
-
-    function TComObject.SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult;
-      var
-        Message: string;
-        Handled: Integer;
-      begin
-        Handled:=0;
-        Result:=0;
-        if assigned(ServerExceptionHandler) then
-          begin
-            if ExceptObject is Exception then
-              Message:=Exception(ExceptObject).Message;
-
-            ServerExceptionHandler.OnException(ClassName,ExceptObject.ClassName,
-              Message,PtrInt(ExceptAddr),WideString(GUIDToString(FFactory.ErrorIID)),
-              FFactory.ProgID,Handled,Result);
-          end;
-        if Handled=0 then
-          Result:=HandleSafeCallException(ExceptObject,ExceptAddr,FFactory.ErrorIID,
-            FFactory.ProgID,FFactory.ComServer.HelpFileName);
-      end;
-
-
-    function TComObjectFactory.GetProgID: string;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComObjectFactory.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComObjectFactory._AddRef: Integer; stdcall;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComObjectFactory._Release: Integer; stdcall;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComObjectFactory.CreateInstance(const UnkOuter: IUnknown;
-      const IID: TGUID; out Obj): HResult; stdcall;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComObjectFactory.LockServer(fLock: BOOL): HResult; stdcall;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComObjectFactory.GetLicInfo(var licInfo: TLicInfo): HResult; stdcall;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComObjectFactory.RequestLicKey(dwResrved: DWORD; out bstrKey: WideString): HResult; stdcall;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComObjectFactory.CreateInstanceLic(const unkOuter: IUnknown;
-      const unkReserved: IUnknown; const iid: TIID; const bstrKey: WideString; out
-      vObject): HResult; stdcall;
-      begin
-        RunError(217);
-      end;
-
-
-    constructor TComObjectFactory.Create(ComServer: TComServerObject;
-      ComClass: TComClass; const ClassID: TGUID; const Name,
-      Description: string; Instancing: TClassInstancing;
-      ThreadingModel: TThreadingModel);
-      begin
-        RunError(217);
-      end;
-
-
-    destructor TComObjectFactory.Destroy;
-      begin
-        RunError(217);
-      end;
-
-
-    function TComObjectFactory.CreateComObject(const Controller: IUnknown
-      ): TComObject;
-      begin
-        RunError(217);
-      end;
-
-
-    procedure TComObjectFactory.RegisterClassObject;
-      begin
-        RunError(217);
-      end;
-
-
-    procedure TComObjectFactory.UpdateRegistry(Register: Boolean);
-      begin
-        RunError(217);
-      end;
-
-
-{ $define DEBUG_COMDISPATCH}
-    procedure DispatchInvoke(const Dispatch: IDispatch; CallDesc: PCallDesc;
-      DispIDs: PDispIDList; Params: Pointer; Result: PVariant);
-
-      var
-        { we can't pass pascal ansistrings to COM routines so we've to convert them
-          to/from widestring. This array contains the mapping to do so
-        }
-        StringMap : array[0..255] of record passtr : pansistring; comstr : pwidechar; end;
-        invokekind,
-        i : longint;
-        invokeresult : HResult;
-        exceptioninfo : TExcepInfo;
-        dispparams : TDispParams;
-        NextString : SizeInt;
-        Arguments : array[0..255] of TVarData;
-        CurrType : byte;
-        MethodID : TDispID;
-      begin
-        NextString:=0;
-        fillchar(dispparams,sizeof(dispparams),0);
-        try
-{$ifdef DEBUG_COMDISPATCH}
-          writeln('DispatchInvoke: Got ',CallDesc^.ArgCount,' arguments   NamedArgs = ',CallDesc^.NamedArgCount);
-{$endif DEBUG_COMDISPATCH}
-          { copy and prepare arguments }
-          for i:=0 to CallDesc^.ArgCount-1 do
-            begin
-{$ifdef DEBUG_COMDISPATCH}
-              writeln('DispatchInvoke: Params = ',hexstr(PtrInt(Params),SizeOf(Pointer)*2));
-{$endif DEBUG_COMDISPATCH}
-              { get plain type }
-              CurrType:=CallDesc^.ArgTypes[i] and $3f;
-              { by reference? }
-              if (CallDesc^.ArgTypes[i] and $80)<>0 then
-                begin
-                  case CurrType of
-                    varStrArg:
-                      begin
-{$ifdef DEBUG_COMDISPATCH}
-                        writeln('Translating var ansistring argument ',PString(Params^)^);
-{$endif DEBUG_COMDISPATCH}
-                        StringMap[NextString].ComStr:=StringToOleStr(PString(Params^)^);
-                        StringMap[NextString].PasStr:=PString(Params^);
-                        Arguments[i].VType:=varOleStr or varByRef;
-                        Arguments[i].VPointer:=StringMap[NextString].ComStr;
-                        inc(NextString);
-                        inc(PPointer(Params));
-                      end;
-                    varVariant:
-                      begin
-{$ifdef DEBUG_COMDISPATCH}
-                        writeln('Got ref. variant containing type: ',PVarData(PPointer(Params)^)^.VType);
-{$endif DEBUG_COMDISPATCH}
-                        if PVarData(PPointer(Params)^)^.VType=varString then
-                          begin
-{$ifdef DEBUG_COMDISPATCH}
-                            writeln('  Casting nested varString: ',Ansistring(PVarData(Params^)^.vString));
-{$endif DEBUG_COMDISPATCH}
-                            VarCast(PVariant(Params^)^,PVariant(Params^)^,varOleStr);
-                          end;
-
-                        Arguments[i].VType:=varVariant or varByRef;
-                        Arguments[i].VPointer:=PPointer(Params)^;
-                        inc(PPointer(Params));
-                      end
-                    else
-                      begin
-{$ifdef DEBUG_COMDISPATCH}
-                        write('DispatchInvoke: Got ref argument with type = ',CurrType);
-                        case CurrType of
-                          varOleStr:
-                            write(' Value = ',pwidestring(PPointer(Params)^)^);
-                        end;
-                        writeln;
-{$endif DEBUG_COMDISPATCH}
-                        Arguments[i].VType:=CurrType or VarByRef;
-                        Arguments[i].VPointer:=PPointer(Params)^;
-                        inc(PPointer(Params));
-                      end;
-                  end
-                end
-              else
-                case CurrType of
-                  varStrArg:
-                    begin
-{$ifdef DEBUG_COMDISPATCH}
-                      writeln('Translating ansistring argument ',PString(Params)^);
-{$endif DEBUG_COMDISPATCH}
-                      StringMap[NextString].ComStr:=StringToOleStr(PString(Params)^);
-                      StringMap[NextString].PasStr:=nil;
-                      Arguments[i].VType:=varOleStr;
-                      Arguments[i].VPointer:=StringMap[NextString].ComStr;
-                      inc(NextString);
-                      inc(PPointer(Params));
-                    end;
-
-                  varVariant:
-                    begin
-{$ifdef DEBUG_COMDISPATCH}
-                      writeln('Unimplemented variant dispatch');
-{$endif DEBUG_COMDISPATCH}
-                    end;
-                  varCurrency,
-                  varDouble,
-                  VarDate:
-                    begin
-{$ifdef DEBUG_COMDISPATCH}
-                      writeln('Got 8 byte float argument');
-{$endif DEBUG_COMDISPATCH}
-                      Arguments[i].VType:=CurrType;
-                      move(PPointer(Params)^,Arguments[i].VDouble,sizeof(Double));
-                      inc(PDouble(Params));
-                    end;
-                  else
-                    begin
-{$ifdef DEBUG_COMDISPATCH}
-                      write('DispatchInvoke: Got argument with type ',CurrType);
-                      case CurrType of
-                        varOleStr:
-                          write(' Value = ',pwidestring(Params)^);
-                        else
-                          write(' Value = ',hexstr(PtrInt(PPointer(Params)^),SizeOf(Pointer)*2));
-                      end;
-                      writeln;
-{$endif DEBUG_COMDISPATCH}
-                      Arguments[i].VType:=CurrType;
-                      Arguments[i].VPointer:=PPointer(Params)^;
-                      inc(PPointer(Params));
-                    end;
-                end;
-            end;
-
-          { finally prepare the call }
-          with DispParams do
-            begin
-              rgvarg:=@Arguments;
-              cNamedArgs:=CallDesc^.NamedArgCount;
-              if cNamedArgs=0 then
-                rgdispidNamedArgs:=nil
-              else
-                rgdispidNamedArgs:=@DispIDs^[1];
-              cArgs:=CallDesc^.ArgCount;
-            end;
-          InvokeKind:=CallDesc^.CallType;
-          MethodID:=DispIDs^[0];
-          case InvokeKind of
-            DISPATCH_PROPERTYPUT:
-              begin
-                if (Arguments[0].VType and varDispatch)<>0 then
-                  InvokeKind:=DISPATCH_PROPERTYPUTREF;
-                { first name is actually the name of the property to set }
-                DispIDs^[0]:=DISPATCH_PROPERTYPUT;
-                DispParams.rgdispidNamedArgs:=@DispIDs^[0];
-                inc(DispParams.cNamedArgs);
-              end;
-            DISPATCH_METHOD:
-              if assigned(Result) and (CallDesc^.ArgCount=0) then
-                InvokeKind:=DISPATCH_METHOD or DISPATCH_PROPERTYGET;
-          end;
-{$ifdef DEBUG_COMDISPATCH}
-          writeln('DispatchInvoke: MethodID: ',MethodID,' InvokeKind: ',InvokeKind);
-{$endif DEBUG_COMDISPATCH}
-          { do the call and check the result }
-          invokeresult:=Dispatch.Invoke(MethodID,GUID_NULL,0,InvokeKind,DispParams,result,@exceptioninfo,nil);
-          if invokeresult<>0 then
-            DispatchInvokeError(invokeresult,exceptioninfo);
-
-          { translate strings back }
-          for i:=0 to NextString-1 do
-            if assigned(StringMap[i].passtr) then
-              OleStrToStrVar(StringMap[i].comstr,StringMap[i].passtr^);
-        finally
-          for i:=0 to NextString-1 do
-            SysFreeString(StringMap[i].ComStr);
-        end;
-      end;
-
-
-    procedure SearchIDs(const DispatchInterface : IDispatch; Names: PChar;
-      Count: Integer; IDs: PDispIDList);
-      var
-      	res : HRESULT;
-      	NamesArray : ^PWideChar;
-      	NamesData : PWideChar;
-      	OrigNames : PChar;
-        NameCount,
-      	NameLen,
-      	NewNameLen,
-        CurrentNameDataUsed,
-      	CurrentNameDataSize : SizeInt;
-      	i : longint;
-      begin
-      	getmem(NamesArray,Count*sizeof(PWideChar));
-      	CurrentNameDataSize:=256;
-      	CurrentNameDataUsed:=0;
-      	getmem(NamesData,CurrentNameDataSize);
-        NameCount:=0;
-   	    OrigNames:=Names;
-{$ifdef DEBUG_COMDISPATCH}
-        writeln('SearchIDs: Searching ',Count,' IDs');
-{$endif DEBUG_COMDISPATCH}
-      	for i:=1 to Count do
-      	  begin
-       	    NameLen:=strlen(Names);
-{$ifdef DEBUG_COMDISPATCH}
-            writeln('SearchIDs: Original name: ',Names,' Len: ',NameLen);
-{$endif DEBUG_COMDISPATCH}
-      	    NewNameLen:=MultiByteToWideChar(0,0,Names,NameLen,nil,0)+1;
-      	    if (CurrentNameDataUsed+NewNameLen)*2>CurrentNameDataSize then
-      	      begin
-      	      	inc(CurrentNameDataSize,256);
-      	        reallocmem(NamesData,CurrentNameDataSize);
-      	      end;
-      	    NamesArray[i-1]:=@NamesData[CurrentNameDataUsed];
-      	    MultiByteToWideChar(0,0,Names,NameLen,@NamesData[CurrentNameDataUsed],NewNameLen);
-      	    NamesData[CurrentNameDataUsed+NewNameLen-1]:=#0;
-{$ifdef DEBUG_COMDISPATCH}
-            writeln('SearchIDs: Translated name: ',WideString(PWideChar(@NamesData[CurrentNameDataUsed])));
-{$endif DEBUG_COMDISPATCH}
-      	    inc(CurrentNameDataUsed,NewNameLen);
-      	    inc(Names,NameLen+1);
-            inc(NameCount);
-      	  end;
-      	res:=DispatchInterface.GetIDsOfNames(GUID_NULL,NamesArray,NameCount,
-{$ifdef wince}
-		     LOCALE_SYSTEM_DEFAULT
-{$else wince}
-         GetThreadLocale
-{$endif wince}
-         ,IDs);
-{$ifdef DEBUG_COMDISPATCH}
-        writeln('SearchIDs: GetIDsOfNames result = ',hexstr(res,SizeOf(HRESULT)*2));
-        for i:=0 to Count-1 do
-          writeln('SearchIDs: ID[',i,'] = ',ids^[i]);
-{$endif DEBUG_COMDISPATCH}
-      	if res=DISP_E_UNKNOWNNAME then
-      	  raise EOleError.createresfmt(@snomethod,[OrigNames])
-      	else
-      	  OleCheck(res);
-      	freemem(NamesArray);
-      	freemem(NamesData);
-      end;
-
-
-    procedure ComObjDispatchInvoke(dest : PVariant;const source : Variant;
-        calldesc : pcalldesc;params : pointer);cdecl;
-      var
-      	dispatchinterface : pointer;
-      	ids : array[0..255] of TDispID;
-      begin
-        fillchar(ids,sizeof(ids),0);
-{$ifdef DEBUG_COMDISPATCH}
-        writeln('ComObjDispatchInvoke called');
-        writeln('ComObjDispatchInvoke: @CallDesc = $',hexstr(PtrInt(CallDesc),SizeOf(Pointer)*2),' CallDesc^.ArgCount = ',CallDesc^.ArgCount);
-{$endif DEBUG_COMDISPATCH}
-      	if tvardata(source).vtype=VarDispatch then
-      	  dispatchinterface:=tvardata(source).vdispatch
-      	else if tvardata(source).vtype=(VarDispatch or VarByRef) then
-      	  dispatchinterface:=pvardata(tvardata(source).vpointer)^.vdispatch
-      	else
-      	  raise eoleerror.createres(@SVarNotObject);
-      	SearchIDs(IDispatch(dispatchinterface),@CallDesc^.ArgTypes[CallDesc^.ArgCount],
-          CallDesc^.NamedArgCount+1,@ids);
-      	if assigned(dest) then
-      	  VarClear(dest^);
-      	DispatchInvoke(IDispatch(dispatchinterface),calldesc,@ids,params,dest);
-      end;
-
-
-{ $define DEBUG_DISPATCH}
-    procedure DoDispCallByID(res : Pointer; const disp : IDispatch;desc : PDispDesc; params : Pointer);
-      var
-        exceptioninfo : TExcepInfo;
-        dispparams : TDispParams;
-        flags : WORD;
-        invokeresult : HRESULT;
-        preallocateddata : array[0..15] of TVarData;
-        Arguments : ^TVarData;
-        NamedArguments : PPointer;
-        CurrType : byte;
-        namedcount,i : byte;
-      begin
-        { use preallocated space, i.e. can we avoid a getmem call? }
-        if desc^.calldesc.argcount<=Length(preallocateddata) then
-          Arguments:=@preallocateddata
-        else
-          GetMem(Arguments,desc^.calldesc.argcount*sizeof(TVarData));
-
-        { prepare parameters }
-        for i:=0 to desc^.CallDesc.ArgCount-1 do
-          begin
-{$ifdef DEBUG_DISPATCH}
-            writeln('DoDispCallByID: Params = ',hexstr(PtrInt(Params),SizeOf(Pointer)*2));
-{$endif DEBUG_DISPATCH}
-            { get plain type }
-            CurrType:=desc^.CallDesc.ArgTypes[i] and $3f;
-            { by reference? }
-            if (desc^.CallDesc.ArgTypes[i] and $80)<>0 then
-              begin
-{$ifdef DEBUG_DISPATCH}
-                write('DispatchInvoke: Got ref argument with type = ',CurrType);
-                writeln;
-{$endif DEBUG_DISPATCH}
-                Arguments[i].VType:=CurrType or VarByRef;
-                Arguments[i].VPointer:=PPointer(Params)^;
-                inc(PPointer(Params));
-              end
-            else
-              begin
-{$ifdef DEBUG_DISPATCH}
-                writeln('DispatchInvoke: Got ref argument with type = ',CurrType);
-{$endif DEBUG_DISPATCH}
-                case CurrType of
-                  varVariant:
-                    begin
-                      Arguments[i].VType:=CurrType;
-                      move(PVarData(Params)^,Arguments[i],sizeof(TVarData));
-                      inc(PVarData(Params));
-                    end;
-                  varCurrency,
-                  varDouble,
-                  VarDate:
-                    begin
-{$ifdef DEBUG_DISPATCH}
-                      writeln('DispatchInvoke: Got 8 byte float argument');
-{$endif DEBUG_DISPATCH}
-                      Arguments[i].VType:=CurrType;
-                      move(PPointer(Params)^,Arguments[i].VDouble,sizeof(Double));
-                      inc(PDouble(Params));
-                    end;
-                else
-                  begin
-{$ifdef DEBUG_DISPATCH}
-                    writeln('DispatchInvoke: Got argument with type ',CurrType);
-{$endif DEBUG_DISPATCH}
-                    Arguments[i].VType:=CurrType;
-                    Arguments[i].VPointer:=PPointer(Params)^;
-                    inc(PPointer(Params));
-                  end;
-              end;
-            end;
-          end;
-        dispparams.cArgs:=desc^.calldesc.argcount;
-        dispparams.rgvarg:=pointer(Arguments);
-
-        { handle properties properly here ! }
-        namedcount:=desc^.calldesc.namedargcount;
-        if desc^.calldesc.calltype=DISPATCH_PROPERTYPUT then
-          inc(namedcount)
-        else
-          NamedArguments:=@desc^.CallDesc.ArgTypes[desc^.CallDesc.ArgCount];
-        dispparams.cNamedArgs:=namedcount;
-        dispparams.rgdispidNamedArgs:=pointer(NamedArguments);
-        flags:=0;
-        invokeresult:=disp.Invoke(
-                desc^.DispId, { DispID: LongInt; }
-                GUID_NULL, { const iid : TGUID; }
-                0, { LocaleID : longint; }
-                flags, { Flags: Word; }
-                dispparams, { var params; }
-                res,@exceptioninfo,nil { VarResult,ExcepInfo,ArgErr : pointer) }
-          );
-        if invokeresult<>0 then
-          DispatchInvokeError(invokeresult,exceptioninfo);
-        if desc^.calldesc.argcount>Length(preallocateddata) then
-          FreeMem(Arguments);
-      end;
-
-
-const
-  Initialized : boolean = false;
-var
-  Ole32Dll : HModule;
-
-initialization
-  Uninitializing:=false;
-  _ComClassManager:=nil;
-  Ole32Dll:=GetModuleHandle('ole32.dll');
-  if Ole32Dll<>0 then
-    begin
-      Pointer(CoCreateInstanceEx):=GetProcAddress(Ole32Dll,'CoCreateInstanceExProc');
-      Pointer(CoInitializeEx):=GetProcAddress(Ole32Dll,'CoInitializeExProc');
-      Pointer(CoAddRefServerProcess):=GetProcAddress(Ole32Dll,'CoAddRefServerProcessProc');
-      Pointer(CoReleaseServerProcess):=GetProcAddress(Ole32Dll,'CoReleaseServerProcessProc');
-      Pointer(CoResumeClassObjects):=GetProcAddress(Ole32Dll,'CoResumeClassObjectsProc');
-      Pointer(CoSuspendClassObjects):=GetProcAddress(Ole32Dll,'CoSuspendClassObjectsProc');
-    end;
-
-  if not(IsLibrary) then
-    Initialized:=Succeeded(CoInitialize(nil));
-  SafeCallErrorProc:=@SafeCallErrorHandler;
-  VarDispProc:=@ComObjDispatchInvoke;
-  DispCallByIDProc:=@DoDispCallByID;
-finalization
-  Uninitializing:=true;
-  _ComClassManager.Free;
-  VarDispProc:=nil;
-  SafeCallErrorProc:=nil;
-  if Initialized then
-    CoUninitialize;
-end.
-
-

+ 0 - 115
packages/base/winunits/flatsb.pp

@@ -1,115 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2007 by the Free Pascal development team
-    member of the Free Pascal development team.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-{$mode objfpc}
-{$H+}
-{$inline on}
-unit FlatSB;
-
-  interface
-
-    uses
-      ctypes,Windows;
-
-    function InitializeFlatSB(hWnd: HWND): Bool; stdcall;
-    procedure UninitializeFlatSB(hWnd: HWND); stdcall;
-    function FlatSB_GetScrollProp(hwnd:HWND;propIndex : cint;p3 : LPINT):BOOL; stdcall;
-    function FlatSB_SetScrollProp(p1: HWND; index : UINT; newValue: INT_PTR; p4: BOOL):BOOL; stdcall;
-
-    var
-      FlatSB_EnableScrollBar: function(hwnd:HWND;code : cint;p3 : UINT):BOOL; stdcall;
-      FlatSB_ShowScrollBar: function(hwnd:HWND;code : cint;p3 : BOOL):BOOL; stdcall;
-      FlatSB_GetScrollRange: function(hwnd:HWND;code : cint;var p3,p4 : cint):BOOL; stdcall;
-      FlatSB_GetScrollInfo: function(hwnd:HWND;code : cint;var ScrollInfo : TSCROLLINFO):BOOL; stdcall;
-      FlatSB_GetScrollPos: function(hwnd:HWND;code : cint):cint; stdcall;
-      FlatSB_SetScrollPos: function(hWnd:HWND;nBar,nPos:cint;bRedraw:BOOL):cint; stdcall;
-      FlatSB_SetScrollInfo: function(hWnd:HWND;BarFlag:cint;const ScrollInfo:TScrollInfo;Redraw:BOOL):cint; stdcall;
-      FlatSB_SetScrollRange: function(hWnd: HWND; nBar,nMinPos,nMaxPos: cint; bRedraw: BOOL):cint; stdcall;
-
-  implementation
-
-    var
-      Internal_FlatSB_GetScrollProp: function(hwnd:HWND;propIndex : cint;p3 : LPINT):BOOL; stdcall;
-      Internal_FlatSB_SetScrollProp: function(p1: HWND; index : UINT; newValue: INT_PTR; p4: BOOL):BOOL; stdcall;
-      Internal_InitializeFlatSB: function(hWnd: HWND): Bool; stdcall;
-      Internal_UninitializeFlatSB: procedure(hWnd: HWND); stdcall;
-
-
-    function FlatSB_GetScrollProp(hwnd:HWND;propIndex : cint;p3 : LPINT):BOOL; stdcall;
-      begin
-        Result:=Assigned(Internal_FlatSB_GetScrollProp) and Internal_FlatSB_GetScrollProp(hwnd,propIndex, p3);
-      end;
-
-
-    function FlatSB_SetScrollProp(p1: HWND; index : UINT; newValue: INT_PTR; p4: BOOL):BOOL; stdcall;
-      begin
-        Result:=Assigned(Internal_FlatSB_SetScrollProp) and Internal_FlatSB_SetScrollProp(p1,index,newValue,p4);
-      end;
-
-
-    function InitializeFlatSB(hWnd: HWND): Bool; stdcall;
-      begin
-        Result:=Assigned(Internal_InitializeFlatSB) and Internal_InitializeFlatSB(hWnd);
-      end;
-
-
-    procedure UninitializeFlatSB(hWnd: HWND); stdcall;
-      begin
-        if Assigned(Internal_UninitializeFlatSB) then
-          Internal_UninitializeFlatSB(hWnd);
-      end;
-
-    var
-      handle : THandle;
-    begin
-      handle:=GetModuleHandle('comctrl32.dll');
-      if handle<>0 then
-        begin
-          pointer(Internal_InitializeFlatSB):=GetProcAddress(handle,'InitializeFlatSB');
-          pointer(Internal_UninitializeFlatSB):=GetProcAddress(handle,'UninitializeFlatSB');
-          pointer(Internal_FlatSB_GetScrollProp):=GetProcAddress(handle,'FlatSB_GetScrollProp');
-          pointer(Internal_FlatSB_SetScrollProp):=GetProcAddress(handle,'FlatSB_SetScrollProp');
-
-          pointer(FlatSB_EnableScrollBar):=GetProcAddress(handle,'FlatSB_EnableScrollBar');
-          if not(assigned(FlatSB_EnableScrollBar)) then
-            pointer(FlatSB_EnableScrollBar):=pointer(@EnableScrollBar);
-
-          pointer(FlatSB_ShowScrollBar):=GetProcAddress(handle,'FlatSB_ShowScrollBar');
-          if not(assigned(FlatSB_ShowScrollBar)) then
-            pointer(FlatSB_ShowScrollBar):=pointer(@ShowScrollBar);
-
-          pointer(FlatSB_GetScrollRange):=GetProcAddress(handle,'FlatSB_GetScrollRange');
-          if not(assigned(FlatSB_GetScrollRange)) then
-            pointer(FlatSB_GetScrollRange):=pointer(@GetScrollRange);
-
-          pointer(FlatSB_GetScrollInfo):=GetProcAddress(handle,'FlatSB_GetScrollInfo');
-          if not(assigned(FlatSB_GetScrollInfo)) then
-            pointer(FlatSB_GetScrollInfo):=pointer(@GetScrollInfo);
-
-          pointer(FlatSB_GetScrollPos):=GetProcAddress(handle,'FlatSB_GetScrollPos');
-          if not(assigned(FlatSB_GetScrollPos)) then
-            pointer(FlatSB_GetScrollPos):=pointer(@GetScrollPos);
-
-          pointer(FlatSB_SetScrollPos):=GetProcAddress(handle,'FlatSB_SetScrollPos');
-          if not(assigned(FlatSB_SetScrollPos)) then
-            pointer(FlatSB_SetScrollPos):=pointer(@SetScrollPos);
-
-          pointer(FlatSB_SetScrollInfo):=GetProcAddress(handle,'FlatSB_SetScrollInfo');
-          if not(assigned(FlatSB_SetScrollInfo)) then
-            pointer(FlatSB_SetScrollInfo):=pointer(@SetScrollInfo);
-
-          pointer(FlatSB_SetScrollRange):=GetProcAddress(handle,'FlatSB_SetScrollRange');
-          if not(assigned(FlatSB_SetScrollRange)) then
-            pointer(FlatSB_SetScrollRange):=pointer(@SetScrollRange);
-        end;
-    end.

+ 0 - 2702
packages/base/winunits/mmsystem.pp

@@ -1,2702 +0,0 @@
-{*********************************} (*********************************)
-{ Generated by c2pas32  v0.9b     } (*     Fixed by P.V.Ozerski      *)
-{ (c) 2001 Oleg Bulychov          } (*     Original C header file    *)
-{ Gladiators Software             } (*     (created at Dec-03-1998)  *)
-{ http://www.astonshell.com/      } (*   from LCC-win32 is used      *)
-{*********************************} (*   LCC-win32 (c) Jacob Navia   *)
-                                    (*********************************)
-
-Unit mmsystem;
-{$ifndef NO_SMART_LINK}
-  {$smartlink on}
-{$endif}
-{$MODE DELPHI}
-interface
-uses
- windows;
-
-Type
-    MMRESULT   = UINT;
-    MMVERSION  = UINT;
-    HWAVEOUT   = THandle;
-    LPHWAVEOUT = ^HWAVEOUT;
-    HWAVEIN    = THandle;
-    LPHWAVEIN  = ^HWAVEOUT;
-    HWAVE      = THandle;
-    LPHWAVE    = ^THandle;
-    LPUINT     = ^UINT;
-
-Const
-    MAXPNAMELEN = 32;
-    MAXERRORLENGTH = 256;
-    MAX_JOYSTICKOEMVXDNAME = 260;
-    MM_MIDI_MAPPER = 1;
-    MM_WAVE_MAPPER = 2;
-    MM_SNDBLST_MIDIOUT = 3;
-    MM_SNDBLST_MIDIIN = 4;
-    MM_SNDBLST_SYNTH = 5;
-    MM_SNDBLST_WAVEOUT = 6;
-    MM_SNDBLST_WAVEIN = 7;
-    MM_ADLIB = 9;
-    MM_MPU401_MIDIOUT = 10;
-    MM_MPU401_MIDIIN = 11;
-    MM_PC_JOYSTICK = 12;
-    TIME_MS = 1;
-    TIME_SAMPLES = 2;
-    TIME_BYTES = 4;
-    TIME_SMPTE = 8;
-    TIME_MIDI = 16;
-    TIME_TICKS = 32;
-
-    MM_MCINOTIFY = $3B9;
-    MM_WOM_OPEN = $3BB;
-    MM_WOM_CLOSE = $3BC;
-    MM_WOM_DONE = $3BD;
-    MM_WIM_OPEN = $3BE;
-    MM_WIM_CLOSE = $3BF;
-    MM_WIM_DATA = $3C0;
-    MM_MIM_OPEN = $3C1;
-    MM_MIM_CLOSE = $3C2;
-    MM_MIM_DATA = $3C3;
-    MM_MIM_LONGDATA = $3C4;
-    MM_MIM_ERROR = $3C5;
-    MM_MIM_LONGERROR = $3C6;
-    MM_MOM_OPEN = $3C7;
-    MM_MOM_CLOSE = $3C8;
-    MM_MOM_DONE = $3C9;
-    MM_DRVM_OPEN = $3D0;
-    MM_DRVM_CLOSE = $3D1;
-    MM_DRVM_DATA = $3D2;
-    MM_DRVM_ERROR = $3D3;
-    MM_STREAM_OPEN = $3D4;
-    MM_STREAM_CLOSE = $3D5;
-    MM_STREAM_DONE = $3D6;
-    MM_STREAM_ERROR = $3D7;
-    MM_MOM_POSITIONCB = $3CA;
-    MM_MCISIGNAL = $3CB;
-    WAVE_INVALIDFORMAT = 0;
-    WAVE_FORMAT_1M08 = 1;
-    WAVE_FORMAT_1S08 = 2;
-    WAVE_FORMAT_1M16 = 4;
-    WAVE_FORMAT_1S16 = 8;
-    WAVE_FORMAT_2M08 = 16;
-    WAVE_FORMAT_2S08 = 32;
-    WAVE_FORMAT_2M16 = 64;
-    WAVE_FORMAT_2S16 = 128;
-    WAVE_FORMAT_4M08 = 256;
-    WAVE_FORMAT_4S08 = 512;
-    WAVE_FORMAT_4M16 = $400;
-    WAVE_FORMAT_4S16 = $800;
-    MM_MIM_MOREDATA = $3CC;
-    MM_MIXM_LINE_CHANGE = $3D0;
-    MM_MIXM_CONTROL_CHANGE = $3D1;
-    MMSYSERR_BASE = 0;
-    WAVERR_BASE = 32;
-    MIDIERR_BASE = 64;
-    TIMERR_BASE = 96;
-    JOYERR_BASE = 160;
-    MCIERR_BASE = 256;
-    MIXERR_BASE = 1024;
-    MCI_STRING_OFFSET = 512;
-    MCI_VD_OFFSET = 1024;
-    MCI_CD_OFFSET = 1088;
-    MCI_WAVE_OFFSET = 1152;
-    MCI_SEQ_OFFSET = 1216;
-    MMSYSERR_NOERROR = 0;
-    MMSYSERR_ERROR = (MMSYSERR_BASE+1);
-    MMSYSERR_BADDEVICEID = (MMSYSERR_BASE+2);
-    MMSYSERR_NOTENABLED = (MMSYSERR_BASE+3);
-    MMSYSERR_ALLOCATED = (MMSYSERR_BASE+4);
-    MMSYSERR_INVALHANDLE = (MMSYSERR_BASE+5);
-    MMSYSERR_NODRIVER = (MMSYSERR_BASE+6);
-    MMSYSERR_NOMEM = (MMSYSERR_BASE+7);
-    MMSYSERR_NOTSUPPORTED = (MMSYSERR_BASE+8);
-    MMSYSERR_BADERRNUM = (MMSYSERR_BASE+9);
-    MMSYSERR_INVALFLAG = (MMSYSERR_BASE+10);
-    MMSYSERR_INVALPARAM = (MMSYSERR_BASE+11);
-    MMSYSERR_HANDLEBUSY = (MMSYSERR_BASE+12);
-    MMSYSERR_INVALIDALIAS = (MMSYSERR_BASE+13);
-    MMSYSERR_BADDB = (MMSYSERR_BASE+14);
-    MMSYSERR_KEYNOTFOUND = (MMSYSERR_BASE+15);
-    MMSYSERR_READERROR = (MMSYSERR_BASE+16);
-    MMSYSERR_WRITEERROR = (MMSYSERR_BASE+17);
-    MMSYSERR_DELETEERROR = (MMSYSERR_BASE+18);
-    MMSYSERR_VALNOTFOUND = (MMSYSERR_BASE+19);
-    MMSYSERR_NODRIVERCB = (MMSYSERR_BASE+20);
-    MMSYSERR_LASTERROR = (MMSYSERR_BASE+20);
-    MM_JOY1MOVE = $3A0;
-    MM_JOY2MOVE = $3A1;
-    MM_JOY1ZMOVE = $3A2;
-    MM_JOY2ZMOVE = $3A3;
-    MM_JOY1BUTTONDOWN = $3B5;
-    MM_JOY2BUTTONDOWN = $3B6;
-    MM_JOY1BUTTONUP = $3B7;
-    MM_JOY2BUTTONUP = $3B8;
-    CALLBACK_TYPEMASK = $70000;
-    CALLBACK_NULL = 0;
-    CALLBACK_EVENT = $50000;
-    CALLBACK_WINDOW = $10000;
-    CALLBACK_TASK = $20000;
-    CALLBACK_THREAD = CALLBACK_TASK;
-    CALLBACK_FUNCTION = $30000;
-
-Type
-  HDRVR = THandle;
-
-Const
-    DRV_LOAD = 1;
-    DRV_ENABLE = 2;
-    DRV_OPEN = $3;
-    DRV_CLOSE = 4;
-    DRV_DISABLE = $5;
-    DRV_FREE = $6;
-    DRV_CONFIGURE = $7;
-    DRV_QUERYCONFIGURE = 8;
-    DRV_INSTALL = $9;
-    DRV_REMOVE = $A;
-    DRV_EXITSESSION = $B;
-    DRV_POWER = $F;
-    DRV_RESERVED = $800;
-    DRV_USER = $4000;
-    DRVCNF_CANCEL = 0;
-    DRVCNF_OK = 1;
-    DRVCNF_RESTART = 2;
-    DRV_CANCEL = DRVCNF_CANCEL;
-    DRV_OK = DRVCNF_OK;
-    DRV_RESTART = DRVCNF_RESTART;
-    DRV_MCI_FIRST = DRV_RESERVED;
-    DRV_MCI_LAST = (DRV_RESERVED+$FFF);
-
-Type
-  PDRVCALLBACK = Procedure (hdrvr: tHandle; uMsg: UINT; dwUser, dw1, dw2: DWORD);  stdcall;
-
-Function sndPlaySoundA(Name: LPCSTR; flags: UINT): BOOL; stdcall; external 'winmm.dll' name 'sndPlaySoundA';
-
-Function sndPlaySoundW(Name: LPCWSTR; flags: UINT): BOOL;stdcall; external 'winmm.dll' name 'sndPlaySoundW';
-
-Function sndPlaySound(Name: PChar; flags: UINT): BOOL;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'sndPlaySoundW' {$else}'sndPlaySoundA'{$endif};
-
-Const
-    SND_NODEFAULT = 2;
-    SND_MEMORY = 4;
-    SND_LOOP = 8;
-    SND_NOSTOP = 16;
-    SND_SYNC = 0;
-    SND_ASYNC = 1;
-    SND_PURGE = 64;
-    SND_APPLICATION = 128;
-    SND_ALIAS_START = 0;
-    SND_ALIAS_SYSTEMHAND = 18515;
-    SND_ALIAS_SYSTEMEXCLAMATION = 8531;
-    SND_ALIAS_SYSTEMASTERISK = 10835;
-    SND_ALIAS_SYSTEMQUESTION = 16211;
-    SND_ALIAS_SYSTEMDEFAULT = 17491;
-    SND_ALIAS_SYSTEMEXIT = 17747;
-    SND_ALIAS_SYSTEMSTART = 21331;
-    SND_ALIAS_SYSTEMWELCOME = 22355;
-    SND_NOWAIT = $2000;
-    SND_ALIAS = $10000;
-    SND_ALIAS_ID = $110000;
-    SND_FILENAME = $20000;
-    SND_RESOURCE = $40004;
-    WAVERR_BADFORMAT = (WAVERR_BASE+0);
-    WAVERR_STILLPLAYING = (WAVERR_BASE+1);
-    WAVERR_UNPREPARED = (WAVERR_BASE+2);
-    WAVERR_SYNC = (WAVERR_BASE+3);
-    WAVERR_LASTERROR = (WAVERR_BASE+3);
-    WOM_OPEN = MM_WOM_OPEN;
-    WOM_CLOSE = MM_WOM_CLOSE;
-    WOM_DONE = MM_WOM_DONE;
-    WIM_OPEN = MM_WIM_OPEN;
-    WIM_CLOSE = MM_WIM_CLOSE;
-    WIM_DATA = MM_WIM_DATA;
-    WAVE_MAPPER = UINT(-1);
-    WAVE_FORMAT_QUERY = 1;
-    WAVE_ALLOWSYNC = 2;
-    WAVE_MAPPED = 4;
-    WAVE_FORMAT_DIRECT = 8;
-    WAVE_FORMAT_DIRECT_QUERY = (WAVE_FORMAT_QUERY Or WAVE_FORMAT_DIRECT);
-    MIM_OPEN = MM_MIM_OPEN;
-    MIM_CLOSE = MM_MIM_CLOSE;
-    MIM_DATA = MM_MIM_DATA;
-    MIM_LONGDATA = MM_MIM_LONGDATA;
-    MIM_ERROR = MM_MIM_ERROR;
-    MIM_LONGERROR = MM_MIM_LONGERROR;
-    MOM_OPEN = MM_MOM_OPEN;
-    MOM_CLOSE = MM_MOM_CLOSE;
-    MOM_DONE = MM_MOM_DONE;
-    MIM_MOREDATA = MM_MIM_MOREDATA;
-    MOM_POSITIONCB = MM_MOM_POSITIONCB;
-    MIDIMAPPER = UINT(-1);
-    MIDI_MAPPER = UINT(-1);
-    MIDI_IO_STATUS = 32;
-    MIDI_CACHE_ALL = 1;
-    MIDI_CACHE_BESTFIT = 2;
-    MIDI_CACHE_QUERY = 3;
-    MIDI_UNCACHE = 4;
-    WHDR_DONE = 1;
-    WHDR_PREPARED = 2;
-    WHDR_BEGINLOOP = $4;
-    WHDR_ENDLOOP = $8;
-    WHDR_INQUEUE = $10;
-    MOD_MIDIPORT = 1;
-    MOD_SYNTH = 2;
-    MOD_SQSYNTH = 3;
-    MOD_FMSYNTH = 4;
-    MOD_MAPPER = 5;
-    MIDICAPS_VOLUME = 1;
-    MIDICAPS_LRVOLUME = 2;
-    MIDICAPS_CACHE = 4;
-    MIDICAPS_STREAM = 8;
-    MHDR_DONE = 1;
-    MHDR_PREPARED = 2;
-    MHDR_INQUEUE = $4;
-    MHDR_ISSTRM = $8;
-    MEVT_F_SHORT = 0;
-    MEVT_F_LONG = $80000000;
-    MEVT_F_CALLBACK = $40000000;
-
-Function MEVT_EVENTTYPE(x: byte): byte;inline;
-Function MEVT_EVENTPARM(x: DWORD): DWORD;inline;
-
-Const
-    MEVT_SHORTMSG = 0;
-    MEVT_TEMPO = $1;
-    MEVT_NOP = $2;
-    MEVT_LONGMSG = $80;
-    MEVT_COMMENT = $82;
-    MEVT_VERSION = $84;
-    MIDISTRM_ERROR = -2;
-    MIDIPROP_SET = $80000000;
-    MIDIPROP_GET = $40000000;
-    MIDIPROP_TIMEDIV = 1;
-    MIDIPROP_TEMPO = 2;
-    MIXERLINE_LINEF_ACTIVE = 1;
-    MIXERLINE_LINEF_DISCONNECTED = $8000;
-    MIXERLINE_LINEF_SOURCE = $80000000;
-    MIXERLINE_COMPONENTTYPE_DST_FIRST = 0;
-    MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = (MIXERLINE_COMPONENTTYPE_DST_FIRST);
-    MIXERLINE_COMPONENTTYPE_DST_DIGITAL = (MIXERLINE_COMPONENTTYPE_DST_FIRST+1);
-    MIXERLINE_COMPONENTTYPE_DST_LINE = (MIXERLINE_COMPONENTTYPE_DST_FIRST+2);
-    MIXERLINE_COMPONENTTYPE_DST_MONITOR = (MIXERLINE_COMPONENTTYPE_DST_FIRST+3);
-    MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST+4);
-    MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = (MIXERLINE_COMPONENTTYPE_DST_FIRST+5);
-    MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = (MIXERLINE_COMPONENTTYPE_DST_FIRST+6);
-    MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST+7);
-    MIXERLINE_COMPONENTTYPE_DST_VOICEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST+8);
-    MIXERLINE_COMPONENTTYPE_DST_LAST = (MIXERLINE_COMPONENTTYPE_DST_FIRST+8);
-    MIXERLINE_COMPONENTTYPE_SRC_FIRST = $1000;
-    MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+0);
-    MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+1);
-    MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+2);
-    MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+3);
-    MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+4);
-    MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+5);
-    MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+6);
-    MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+7);
-    MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+8);
-    MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+9);
-    MIXERLINE_COMPONENTTYPE_SRC_ANALOG = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+10);
-    MIXERLINE_COMPONENTTYPE_SRC_LAST = (MIXERLINE_COMPONENTTYPE_SRC_FIRST+10);
-    MIXERLINE_TARGETTYPE_UNDEFINED = 0;
-    MIXERLINE_TARGETTYPE_WAVEOUT = 1;
-    MIXERLINE_TARGETTYPE_WAVEIN = 2;
-    MIXERLINE_TARGETTYPE_MIDIOUT = 3;
-    MIXERLINE_TARGETTYPE_MIDIIN = 4;
-    MIXERLINE_TARGETTYPE_AUX = 5;
-    MIDIERR_UNPREPARED = (MIDIERR_BASE+0);
-    MIDIERR_STILLPLAYING = (MIDIERR_BASE+1);
-    MIDIERR_NOMAP = (MIDIERR_BASE+2);
-    MIDIERR_NOTREADY = (MIDIERR_BASE+3);
-    MIDIERR_NODEVICE = (MIDIERR_BASE+4);
-    MIDIERR_INVALIDSETUP = (MIDIERR_BASE+5);
-    MIDIERR_BADOPENMODE = (MIDIERR_BASE+6);
-    MIDIERR_DONT_CONTINUE = (MIDIERR_BASE+7);
-    MIDIERR_LASTERROR = (MIDIERR_BASE+7);
-    MIXERCONTROL_CONTROLF_UNIFORM = 1;
-    MIXERCONTROL_CONTROLF_MULTIPLE = 2;
-    MIXERCONTROL_CONTROLF_DISABLED = $80000000;
-    MIXERCONTROL_CT_CLASS_MASK = $F0000000;
-    MIXERCONTROL_CT_CLASS_CUSTOM = 0;
-    MIXERCONTROL_CT_CLASS_METER = $10000000;
-    MIXERCONTROL_CT_CLASS_SWITCH = $20000000;
-    MIXERCONTROL_CT_CLASS_NUMBER = $30000000;
-    MIXERCONTROL_CT_CLASS_SLIDER = $40000000;
-    MIXERCONTROL_CT_CLASS_FADER = $50000000;
-    MIXERCONTROL_CT_CLASS_TIME = $60000000;
-    MIXERCONTROL_CT_CLASS_LIST = $70000000;
-    MIXERCONTROL_CT_SUBCLASS_MASK = $0F000000;
-    MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = 0;
-    MIXERCONTROL_CT_SC_SWITCH_BUTTON = $1000000;
-    MIXERCONTROL_CT_SC_METER_POLLED = 0;
-    MIXERCONTROL_CT_SC_TIME_MICROSECS = 0;
-    MIXERCONTROL_CT_SC_TIME_MILLISECS = $1000000;
-    MIXERCONTROL_CT_SC_LIST_SINGLE = 0;
-    MIXERCONTROL_CT_SC_LIST_MULTIPLE = $1000000;
-    MIXERCONTROL_CT_UNITS_MASK = $0FF0000;
-    MIXERCONTROL_CT_UNITS_CUSTOM = 0;
-    MIXERCONTROL_CT_UNITS_BOOLEAN = $10000;
-    MIXERCONTROL_CT_UNITS_SIGNED = $20000;
-    MIXERCONTROL_CT_UNITS_UNSIGNED = $30000;
-    MIXERCONTROL_CT_UNITS_DECIBELS = $40000;
-    MIXERCONTROL_CT_UNITS_PERCENT = $50000;
-    MIXERCONTROL_CONTROLTYPE_CUSTOM = (MIXERCONTROL_CT_CLASS_CUSTOM Or
-                                       MIXERCONTROL_CT_UNITS_CUSTOM);
-    MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = (MIXERCONTROL_CT_CLASS_METER Or
-                                             MIXERCONTROL_CT_SC_METER_POLLED Or
-                                             MIXERCONTROL_CT_UNITS_BOOLEAN);
-    MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or
-                                            MIXERCONTROL_CT_SC_METER_POLLED Or
-                                            MIXERCONTROL_CT_UNITS_SIGNED);
-    MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER+1);
-    MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or
-                                              MIXERCONTROL_CT_SC_METER_POLLED Or
-                                              MIXERCONTROL_CT_UNITS_UNSIGNED);
-    MIXERCONTROL_CONTROLTYPE_BOOLEAN = (MIXERCONTROL_CT_CLASS_SWITCH Or
-                                        MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or
-                                        MIXERCONTROL_CT_UNITS_BOOLEAN);
-    MIXERCONTROL_CONTROLTYPE_ONOFF = (MIXERCONTROL_CONTROLTYPE_BOOLEAN+1);
-    MIXERCONTROL_CONTROLTYPE_MUTE = (MIXERCONTROL_CONTROLTYPE_BOOLEAN+2);
-    MIXERCONTROL_CONTROLTYPE_MONO = (MIXERCONTROL_CONTROLTYPE_BOOLEAN+3);
-    MIXERCONTROL_CONTROLTYPE_LOUDNESS = (MIXERCONTROL_CONTROLTYPE_BOOLEAN+4);
-    MIXERCONTROL_CONTROLTYPE_STEREOENH = (MIXERCONTROL_CONTROLTYPE_BOOLEAN+5);
-    MIXERCONTROL_CONTROLTYPE_BUTTON = (MIXERCONTROL_CT_CLASS_SWITCH Or
-                                       MIXERCONTROL_CT_SC_SWITCH_BUTTON Or
-                                       MIXERCONTROL_CT_UNITS_BOOLEAN);
-    MIXERCONTROL_CONTROLTYPE_DECIBELS = (MIXERCONTROL_CT_CLASS_NUMBER Or
-                                         MIXERCONTROL_CT_UNITS_DECIBELS);
-    MIXERCONTROL_CONTROLTYPE_SIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or
-                                       MIXERCONTROL_CT_UNITS_SIGNED);
-    MIXERCONTROL_CONTROLTYPE_UNSIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or
-                                         MIXERCONTROL_CT_UNITS_UNSIGNED);
-    MIXERCONTROL_CONTROLTYPE_PERCENT = (MIXERCONTROL_CT_CLASS_NUMBER Or
-                                        MIXERCONTROL_CT_UNITS_PERCENT);
-    MIXERCONTROL_CONTROLTYPE_SLIDER = (MIXERCONTROL_CT_CLASS_SLIDER Or
-                                       MIXERCONTROL_CT_UNITS_SIGNED);
-    MIXERCONTROL_CONTROLTYPE_PAN = (MIXERCONTROL_CONTROLTYPE_SLIDER+1);
-    MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = (MIXERCONTROL_CONTROLTYPE_SLIDER+2);
-    MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER Or
-                                      MIXERCONTROL_CT_UNITS_UNSIGNED);
-    MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER+1);
-    MIXERCONTROL_CONTROLTYPE_BASS = (MIXERCONTROL_CONTROLTYPE_FADER+2);
-    MIXERCONTROL_CONTROLTYPE_TREBLE = (MIXERCONTROL_CONTROLTYPE_FADER+3);
-    MIXERCONTROL_CONTROLTYPE_EQUALIZER = (MIXERCONTROL_CONTROLTYPE_FADER+4);
-    MIXERCONTROL_CONTROLTYPE_SINGLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or
-                                             MIXERCONTROL_CT_SC_LIST_SINGLE Or
-                                             MIXERCONTROL_CT_UNITS_BOOLEAN);
-    MIXERCONTROL_CONTROLTYPE_MUX = (MIXERCONTROL_CONTROLTYPE_SINGLESELECT+1);
-    MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or
-                                               MIXERCONTROL_CT_SC_LIST_MULTIPLE Or
-                                               MIXERCONTROL_CT_UNITS_BOOLEAN);
-    MIXERCONTROL_CONTROLTYPE_MIXER = (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT+1);
-    MIXERCONTROL_CONTROLTYPE_MICROTIME = (MIXERCONTROL_CT_CLASS_TIME Or
-                                          MIXERCONTROL_CT_SC_TIME_MICROSECS Or
-                                          MIXERCONTROL_CT_UNITS_UNSIGNED);
-    MIXERCONTROL_CONTROLTYPE_MILLITIME = (MIXERCONTROL_CT_CLASS_TIME Or
-                                          MIXERCONTROL_CT_SC_TIME_MILLISECS Or
-                                          MIXERCONTROL_CT_UNITS_UNSIGNED);
-    MIXER_SHORT_NAME_CHARS = 16;
-    MIXER_LONG_NAME_CHARS = 64;
-    MIXERR_INVALLINE = (MIXERR_BASE+0);
-    MIXERR_INVALCONTROL = (MIXERR_BASE+1);
-    MIXERR_INVALVALUE = (MIXERR_BASE+2);
-    MIXERR_LASTERROR = (MIXERR_BASE+2);
-    MIXER_OBJECTF_HANDLE = $80000000;
-    MIXER_OBJECTF_MIXER = 0;
-    MIXER_OBJECTF_HMIXER = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIXER);
-    MIXER_OBJECTF_WAVEOUT = $10000000;
-    MIXER_OBJECTF_HWAVEOUT = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_WAVEOUT);
-    MIXER_OBJECTF_WAVEIN = $20000000;
-    MIXER_OBJECTF_HWAVEIN = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_WAVEIN);
-    MIXER_OBJECTF_MIDIOUT = $30000000;
-    MIXER_OBJECTF_HMIDIOUT = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIDIOUT);
-    MIXER_OBJECTF_MIDIIN = $40000000;
-    MIXER_OBJECTF_HMIDIIN = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIDIIN);
-    MIXER_OBJECTF_AUX = $50000000;
-    MIXER_GETCONTROLDETAILSF_VALUE = 0;
-    MIXER_GETCONTROLDETAILSF_LISTTEXT = 1;
-    MIXER_GETCONTROLDETAILSF_QUERYMASK = $F;
-    MIXER_SETCONTROLDETAILSF_VALUE = 0;
-    MIXER_SETCONTROLDETAILSF_CUSTOM = 1;
-    MIXER_SETCONTROLDETAILSF_QUERYMASK = $F;
-    JOYERR_NOERROR = (0);
-    JOYERR_PARMS = (JOYERR_BASE+5);
-    JOYERR_NOCANDO = (JOYERR_BASE+6);
-    JOYERR_UNPLUGGED = (JOYERR_BASE+7);
-    JOY_BUTTON1 = 1;
-    JOY_BUTTON2 = 2;
-    JOY_BUTTON3 = 4;
-    JOY_BUTTON4 = 8;
-    JOY_BUTTON1CHG = 256;
-    JOY_BUTTON2CHG = 512;
-    JOY_BUTTON3CHG = $400;
-    JOY_BUTTON4CHG = $800;
-    JOY_BUTTON5 = 16;
-    JOY_BUTTON6 = 32;
-    JOY_BUTTON7 = 64;
-    JOY_BUTTON8 = 128;
-    JOY_BUTTON9 = 256;
-    JOY_BUTTON10 = 512;
-    JOY_BUTTON11 = $400;
-    JOY_BUTTON12 = $800;
-    JOY_BUTTON13 = $1000;
-    JOY_BUTTON14 = $2000;
-    JOY_BUTTON15 = $4000;
-    JOY_BUTTON16 = $8000;
-    JOY_BUTTON17 = $10000;
-    JOY_BUTTON18 = $20000;
-    JOY_BUTTON19 = $40000;
-    JOY_BUTTON20 = $80000;
-    JOY_BUTTON21 = $100000;
-    JOY_BUTTON22 = $200000;
-    JOY_BUTTON23 = $400000;
-    JOY_BUTTON24 = $800000;
-    JOY_BUTTON25 = $1000000;
-    JOY_BUTTON26 = $2000000;
-    JOY_BUTTON27 = $4000000;
-    JOY_BUTTON28 = $8000000;
-    JOY_BUTTON29 = $10000000;
-    JOY_BUTTON30 = $20000000;
-    JOY_BUTTON31 = $40000000;
-    JOY_BUTTON32 = $80000000;
-    JOY_POVCENTERED = -1;
-    JOY_POVFORWARD = 0;
-    JOY_POVRIGHT = 9000;
-    JOY_POVBACKWARD = 18000;
-    JOY_POVLEFT = 27000;
-    JOY_RETURNX = 1;
-    JOY_RETURNY = 2;
-    JOY_RETURNZ = 4;
-    JOY_RETURNR = 8;
-    JOY_RETURNU = 16;
-    JOY_RETURNV = 32;
-    JOY_RETURNPOV = 64;
-    JOY_RETURNBUTTONS = 128;
-    JOY_RETURNRAWDATA = 256;
-    JOY_RETURNPOVCTS = 512;
-    JOY_RETURNCENTERED = $400;
-    JOY_USEDEADZONE = $800;
-    JOY_RETURNALL = (JOY_RETURNX Or JOY_RETURNY Or JOY_RETURNZ Or JOY_RETURNR Or
-                     JOY_RETURNU Or JOY_RETURNV Or JOY_RETURNPOV Or JOY_RETURNBUTTONS);
-    JOY_CAL_READALWAYS = $10000;
-    JOY_CAL_READXYONLY = $20000;
-    JOY_CAL_READ3 = $40000;
-    JOY_CAL_READ4 = $80000;
-    JOY_CAL_READXONLY = $100000;
-    JOY_CAL_READYONLY = $200000;
-    JOY_CAL_READ5 = $400000;
-    JOY_CAL_READ6 = $800000;
-    JOY_CAL_READZONLY = $1000000;
-    JOY_CAL_READRONLY = $2000000;
-    JOY_CAL_READUONLY = $4000000;
-    JOY_CAL_READVONLY = $8000000;
-    JOYSTICKID1 = 0;
-    JOYSTICKID2 = 1;
-    JOYCAPS_HASZ = 1;
-    JOYCAPS_HASR = 2;
-    JOYCAPS_HASU = 4;
-    JOYCAPS_HASV = 8;
-    JOYCAPS_HASPOV = 16;
-    JOYCAPS_POV4DIR = 32;
-    JOYCAPS_POVCTS = 64;
-    MMIOERR_BASE = 256;
-    MMIOERR_FILENOTFOUND = (MMIOERR_BASE+1);
-    MMIOERR_OUTOFMEMORY = (MMIOERR_BASE+2);
-    MMIOERR_CANNOTOPEN = (MMIOERR_BASE+3);
-    MMIOERR_CANNOTCLOSE = (MMIOERR_BASE+4);
-    MMIOERR_CANNOTREAD = (MMIOERR_BASE+5);
-    MMIOERR_CANNOTWRITE = (MMIOERR_BASE+6);
-    MMIOERR_CANNOTSEEK = (MMIOERR_BASE+7);
-    MMIOERR_CANNOTEXPAND = (MMIOERR_BASE+8);
-    MMIOERR_CHUNKNOTFOUND = (MMIOERR_BASE+9);
-    MMIOERR_UNBUFFERED = (MMIOERR_BASE+10);
-    MMIOERR_PATHNOTFOUND = (MMIOERR_BASE+11);
-    MMIOERR_ACCESSDENIED = (MMIOERR_BASE+12);
-    MMIOERR_SHARINGVIOLATION = (MMIOERR_BASE+13);
-    MMIOERR_NETWORKERROR = (MMIOERR_BASE+14);
-    MMIOERR_TOOMANYOPENFILES = (MMIOERR_BASE+15);
-    MMIOERR_INVALIDFILE = (MMIOERR_BASE+16);
-    CFSEPCHAR = '+';
-    WAVECAPS_PITCH = 1;
-    WAVECAPS_PLAYBACKRATE = 2;
-    WAVECAPS_VOLUME = 4;
-    WAVECAPS_LRVOLUME = 8;
-    WAVECAPS_SYNC = 16;
-    WAVECAPS_SAMPLEACCURATE = 32;
-    WAVECAPS_DIRECTSOUND = 64;
-    MIXER_GETLINEINFOF_DESTINATION = 0;
-    MIXER_GETLINEINFOF_SOURCE = 1;
-    MIXER_GETLINEINFOF_LINEID = 2;
-    MIXER_GETLINEINFOF_COMPONENTTYPE = 3;
-    MIXER_GETLINEINFOF_TARGETTYPE = 4;
-    MIXER_GETLINEINFOF_QUERYMASK = $F;
-    MMIO_RWMODE = 3;
-    MMIO_SHAREMODE = $70;
-    MMIO_CREATE = $1000;
-    MMIO_PARSE = 256;
-    MMIO_DELETE = 512;
-    MMIO_EXIST = $4000;
-    MMIO_ALLOCBUF = $10000;
-    MMIO_GETTEMP = $20000;
-    MMIO_DIRTY = $10000000;
-    MMIO_READ = 0;
-    MMIO_WRITE = 1;
-    MMIO_READWRITE = 2;
-    MMIO_COMPAT = 0;
-    MMIO_EXCLUSIVE = 16;
-    MMIO_DENYWRITE = 32;
-    MMIO_DENYREAD = $30;
-    MMIO_DENYNONE = 64;
-    MMIO_FHOPEN = 16;
-    MMIO_EMPTYBUF = 16;
-    MMIO_TOUPPER = 16;
-    MMIO_INSTALLPROC = $10000;
-    MMIO_GLOBALPROC = $10000000;
-    MMIO_REMOVEPROC = $20000;
-    MMIO_UNICODEPROC = $1000000;
-    MMIO_FINDPROC = $40000;
-    MMIO_FINDCHUNK = 16;
-    MMIO_FINDRIFF = 32;
-    MMIO_FINDLIST = 64;
-    MMIO_CREATERIFF = 32;
-    MMIO_CREATELIST = 64;
-    MMIOM_READ = MMIO_READ;
-    MMIOM_WRITE = MMIO_WRITE;
-    MMIOM_SEEK = 2;
-    MMIOM_OPEN = 3;
-    MMIOM_CLOSE = 4;
-    MMIOM_WRITEFLUSH = 5;
-    MMIOM_RENAME = 6;
-    MMIOM_USER = $8000;
-    FOURCC_RIFF = $46464952; {'R','I','F','F'}
-    FOURCC_LIST = $5453494C; {'L','I','S','T'}
-    FOURCC_DOS  = $20532F44; {'D','O','S',' '}
-    FOURCC_MEM  = $204D454D; {'M','E','M',' '}
-    SEEK_SET = 0;
-    SEEK_CUR = 1;
-    SEEK_END = 2;
-    MMIO_DEFAULTBUFFER = 8192;
-    MCIERR_INVALID_DEVICE_ID = (MCIERR_BASE+1);
-    MCIERR_UNRECOGNIZED_KEYWORD = (MCIERR_BASE+3);
-    MCIERR_UNRECOGNIZED_COMMAND = (MCIERR_BASE+5);
-    MCIERR_HARDWARE = (MCIERR_BASE+6);
-    MCIERR_INVALID_DEVICE_NAME = (MCIERR_BASE+7);
-    MCIERR_OUT_OF_MEMORY = (MCIERR_BASE+8);
-    MCIERR_DEVICE_OPEN = (MCIERR_BASE+9);
-    MCIERR_CANNOT_LOAD_DRIVER = (MCIERR_BASE+10);
-    MCIERR_MISSING_COMMAND_STRING = (MCIERR_BASE+11);
-    MCIERR_PARAM_OVERFLOW = (MCIERR_BASE+12);
-    MCIERR_MISSING_STRING_ARGUMENT = (MCIERR_BASE+13);
-    MCIERR_BAD_INTEGER = (MCIERR_BASE+14);
-    MCIERR_PARSER_INTERNAL = (MCIERR_BASE+15);
-    MCIERR_DRIVER_INTERNAL = (MCIERR_BASE+16);
-    MCIERR_MISSING_PARAMETER = (MCIERR_BASE+17);
-    MCIERR_UNSUPPORTED_FUNCTION = (MCIERR_BASE+18);
-    MCIERR_FILE_NOT_FOUND = (MCIERR_BASE+19);
-    MCIERR_DEVICE_NOT_READY = (MCIERR_BASE+20);
-    MCIERR_INTERNAL = (MCIERR_BASE+21);
-    MCIERR_DRIVER = (MCIERR_BASE+22);
-    MCIERR_CANNOT_USE_ALL = (MCIERR_BASE+23);
-    MCIERR_MULTIPLE = (MCIERR_BASE+24);
-    MCIERR_EXTENSION_NOT_FOUND = (MCIERR_BASE+25);
-    MCIERR_OUTOFRANGE = (MCIERR_BASE+26);
-    MCIERR_FLAGS_NOT_COMPATIBLE = (MCIERR_BASE+28);
-    MCIERR_FILE_NOT_SAVED = (MCIERR_BASE+30);
-    MCIERR_DEVICE_TYPE_REQUIRED = (MCIERR_BASE+31);
-    MCIERR_DEVICE_LOCKED = (MCIERR_BASE+32);
-    MCIERR_DUPLICATE_ALIAS = (MCIERR_BASE+33);
-    MCIERR_BAD_CONSTANT = (MCIERR_BASE+34);
-    MCIERR_MUST_USE_SHAREABLE = (MCIERR_BASE+35);
-    MCIERR_MISSING_DEVICE_NAME = (MCIERR_BASE+36);
-    MCIERR_BAD_TIME_FORMAT = (MCIERR_BASE+37);
-    MCIERR_NO_CLOSING_QUOTE = (MCIERR_BASE+38);
-    MCIERR_DUPLICATE_FLAGS = (MCIERR_BASE+39);
-    MCIERR_INVALID_FILE = (MCIERR_BASE+40);
-    MCIERR_NULL_PARAMETER_BLOCK = (MCIERR_BASE+41);
-    MCIERR_UNNAMED_RESOURCE = (MCIERR_BASE+42);
-    MCIERR_NEW_REQUIRES_ALIAS = (MCIERR_BASE+43);
-    MCIERR_NOTIFY_ON_AUTO_OPEN = (MCIERR_BASE+44);
-    MCIERR_NO_ELEMENT_ALLOWED = (MCIERR_BASE+45);
-    MCIERR_NONAPPLICABLE_FUNCTION = (MCIERR_BASE+46);
-    MCIERR_ILLEGAL_FOR_AUTO_OPEN = (MCIERR_BASE+47);
-    MCIERR_FILENAME_REQUIRED = (MCIERR_BASE+48);
-    MCIERR_EXTRA_CHARACTERS = (MCIERR_BASE+49);
-    MCIERR_DEVICE_NOT_INSTALLED = (MCIERR_BASE+50);
-    MCIERR_GET_CD = (MCIERR_BASE+51);
-    MCIERR_SET_CD = (MCIERR_BASE+52);
-    MCIERR_SET_DRIVE = (MCIERR_BASE+53);
-    MCIERR_DEVICE_LENGTH = (MCIERR_BASE+54);
-    MCIERR_DEVICE_ORD_LENGTH = (MCIERR_BASE+55);
-    MCIERR_NO_INTEGER = (MCIERR_BASE+56);
-    MCIERR_WAVE_OUTPUTSINUSE = (MCIERR_BASE+64);
-    MCIERR_WAVE_SETOUTPUTINUSE = (MCIERR_BASE+65);
-    MCIERR_WAVE_INPUTSINUSE = (MCIERR_BASE+66);
-    MCIERR_WAVE_SETINPUTINUSE = (MCIERR_BASE+67);
-    MCIERR_WAVE_OUTPUTUNSPECIFIED = (MCIERR_BASE+68);
-    MCIERR_WAVE_INPUTUNSPECIFIED = (MCIERR_BASE+69);
-    MCIERR_WAVE_OUTPUTSUNSUITABLE = (MCIERR_BASE+70);
-    MCIERR_WAVE_SETOUTPUTUNSUITABLE = (MCIERR_BASE+71);
-    MCIERR_WAVE_INPUTSUNSUITABLE = (MCIERR_BASE+72);
-    MCIERR_WAVE_SETINPUTUNSUITABLE = (MCIERR_BASE+73);
-    MCIERR_SEQ_DIV_INCOMPATIBLE = (MCIERR_BASE+80);
-    MCIERR_SEQ_PORT_INUSE = (MCIERR_BASE+81);
-    MCIERR_SEQ_PORT_NONEXISTENT = (MCIERR_BASE+82);
-    MCIERR_SEQ_PORT_MAPNODEVICE = (MCIERR_BASE+83);
-    MCIERR_SEQ_PORT_MISCERROR = (MCIERR_BASE+84);
-    MCIERR_SEQ_TIMER = (MCIERR_BASE+85);
-    MCIERR_SEQ_PORTUNSPECIFIED = (MCIERR_BASE+86);
-    MCIERR_SEQ_NOMIDIPRESENT = (MCIERR_BASE+87);
-    MCIERR_NO_WINDOW = (MCIERR_BASE+90);
-    MCIERR_CREATEWINDOW = (MCIERR_BASE+91);
-    MCIERR_FILE_READ = (MCIERR_BASE+92);
-    MCIERR_FILE_WRITE = (MCIERR_BASE+93);
-    MCIERR_NO_IDENTITY = (MCIERR_BASE+94);
-    MCIERR_CUSTOM_DRIVER_BASE = (MCIERR_BASE+256);
-    MCI_FIRST = DRV_MCI_FIRST;
-    MCI_ESCAPE = $805;
-    MCI_PLAY = $806;
-    MCI_SEEK = $807;
-    MCI_STOP = $808;
-    MCI_PAUSE = $809;
-    MCI_INFO = $80A;
-    MCI_GETDEVCAPS = $80B;
-    MCI_BREAK = $811;
-    MCI_WHERE = $843;
-    MCI_FREEZE = $844;
-    MCI_UNFREEZE = $845;
-    MCI_LOAD = $850;
-    MCI_CUT = $851;
-    MCI_COPY = $852;
-    MCI_PASTE = $853;
-    MCI_UPDATE = $854;
-    MCI_RESUME = $855;
-    MCI_DELETE = $856;
-    MCI_SET = $80D;
-    MCI_STEP = $80E;
-    MCI_SAVE = $813;
-    MCI_SPIN = $80C;
-    MCI_STATUS = $814;
-    MCI_CUE = $830;
-    MCI_REALIZE = $840;
-    MCI_WINDOW = $841;
-    MCI_PUT = $842;
-    MCI_RECORD = $80F;
-    MCI_SYSINFO = $810;
-    MCI_OPEN = $803;
-    MCI_CLOSE = $804;
-    MCI_USER_MESSAGES = (DRV_MCI_FIRST+$400);
-    MCI_LAST = $0FFF;
-    MCI_ALL_DEVICE_ID = -1;
-    MCI_DEVTYPE_VCR = 513;
-    MCI_DEVTYPE_VIDEODISC = 514;
-    MCI_DEVTYPE_OVERLAY = 515;
-    MCI_DEVTYPE_CD_AUDIO = 516;
-    MCI_DEVTYPE_DAT = 517;
-    MCI_DEVTYPE_SCANNER = 518;
-    MCI_DEVTYPE_ANIMATION = 519;
-    MCI_DEVTYPE_DIGITAL_VIDEO = 520;
-    MCI_DEVTYPE_OTHER = 521;
-    MCI_DEVTYPE_WAVEFORM_AUDIO = 522;
-    MCI_DEVTYPE_SEQUENCER = 523;
-    MCI_DEVTYPE_FIRST = MCI_DEVTYPE_VCR;
-    MCI_DEVTYPE_LAST = MCI_DEVTYPE_SEQUENCER;
-    MCI_DEVTYPE_FIRST_USER = $1000;
-    MCI_MODE_NOT_READY = (MCI_STRING_OFFSET+12);
-    MCI_MODE_STOP = (MCI_STRING_OFFSET+13);
-    MCI_MODE_PLAY = (MCI_STRING_OFFSET+14);
-    MCI_MODE_RECORD = (MCI_STRING_OFFSET+15);
-    MCI_MODE_SEEK = (MCI_STRING_OFFSET+16);
-    MCI_MODE_PAUSE = (MCI_STRING_OFFSET+17);
-    MCI_MODE_OPEN = (MCI_STRING_OFFSET+18);
-    MCI_FORMAT_MILLISECONDS = 0;
-    MCI_FORMAT_HMS = 1;
-    MCI_FORMAT_MSF = 2;
-    MCI_FORMAT_FRAMES = 3;
-    MCI_FORMAT_SMPTE_24 = 4;
-    MCI_FORMAT_SMPTE_25 = 5;
-    MCI_FORMAT_SMPTE_30 = 6;
-    MCI_FORMAT_SMPTE_30DROP = 7;
-    MCI_FORMAT_BYTES = 8;
-    MCI_FORMAT_SAMPLES = 9;
-    MCI_FORMAT_TMSF = 10;
-
-Function MCI_MSF_MINUTE(msf: longint): byte;inline;
-Function MCI_MSF_SECOND(msf: longint): byte;inline;
-Function MCI_MSF_FRAME(msf: longint): byte;inline;
-Function MCI_MAKE_MSF(m, s, f: byte): longint;inline;
-
-Const
-    MCI_SET_DOOR_OPEN = 256;
-    MCI_SET_DOOR_CLOSED = 512;
-    MCI_SET_TIME_FORMAT = $400;
-    MCI_SET_AUDIO = $800;
-    MCI_SET_VIDEO = $1000;
-    MCI_SET_ON = $2000;
-    MCI_SET_OFF = $4000;
-    MCI_SET_AUDIO_ALL = 0;
-    MCI_SET_AUDIO_LEFT = 1;
-    MCI_SET_AUDIO_RIGHT = 2;
-
-Function MCI_TMSF_TRACK(tmsf: longint): byte;inline;
-Function MCI_TMSF_MINUTE(tmsf: longint): byte;inline;
-Function MCI_TMSF_SECOND(tmsf: longint): byte;inline;
-Function MCI_TMSF_FRAME(tmsf: longint): byte;inline;
-Function MCI_HMS_HOUR(h: longint): byte;inline;
-Function MCI_HMS_MINUTE(h: longint): byte;inline;
-Function MCI_HMS_SECOND(h: longint): byte;inline;
-Function MCI_MAKE_HMS(h, m, s: byte): longint;inline;
-
-Const
-    MCI_INFO_PRODUCT = 256;
-    MCI_INFO_FILE = 512;
-    MCI_INFO_MEDIA_UPC = $400;
-    MCI_INFO_MEDIA_IDENTITY = $800;
-    MCI_INFO_NAME = $1000;
-    MCI_INFO_COPYRIGHT = $2000;
-
-Function MCI_MAKE_TMSF(t, m, s, f: byte): longint;inline;
-
-Const
-    MCI_WAIT = 2;
-    MCI_FROM = 4;
-    MCI_TO = 8;
-    MCI_TRACK = 16;
-    MCI_SEEK_TO_START = 256;
-    MCI_SEEK_TO_END = 512;
-    MCI_STATUS_ITEM = 256;
-    MCI_STATUS_START = 512;
-    MCI_STATUS_LENGTH = 1;
-    MCI_STATUS_POSITION = 2;
-    MCI_STATUS_NUMBER_OF_TRACKS = 3;
-    MCI_STATUS_MODE = 4;
-    MCI_STATUS_MEDIA_PRESENT = 5;
-    MCI_STATUS_TIME_FORMAT = 6;
-    MCI_STATUS_READY = 7;
-    MCI_STATUS_CURRENT_TRACK = 8;
-    MCI_OPEN_SHAREABLE = 256;
-    MCI_OPEN_ELEMENT = 512;
-    MCI_OPEN_ALIAS = $400;
-    MCI_OPEN_ELEMENT_ID = $800;
-    MCI_OPEN_TYPE_ID = $1000;
-    MCI_OPEN_TYPE = $2000;
-    MCI_GETDEVCAPS_ITEM = 256;
-    MCI_GETDEVCAPS_CAN_RECORD = 1;
-    MCI_GETDEVCAPS_HAS_AUDIO = 2;
-    MCI_GETDEVCAPS_HAS_VIDEO = 3;
-    MCI_GETDEVCAPS_DEVICE_TYPE = 4;
-    MCI_GETDEVCAPS_USES_FILES = 5;
-    MCI_GETDEVCAPS_COMPOUND_DEVICE = 6;
-    MCI_GETDEVCAPS_CAN_EJECT = 7;
-    MCI_GETDEVCAPS_CAN_PLAY = 8;
-    MCI_GETDEVCAPS_CAN_SAVE = 9;
-    MCI_SYSINFO_QUANTITY = 256;
-    MCI_SYSINFO_OPEN = 512;
-    MCI_SYSINFO_NAME = $400;
-    MCI_SYSINFO_INSTALLNAME = $800;
-    MCI_NOTIFY_SUCCESSFUL = 1;
-    MCI_NOTIFY_SUPERSEDED = 2;
-    MCI_NOTIFY_ABORTED = 4;
-    MCI_NOTIFY_FAILURE = 8;
-    MCI_NOTIFY = 1;
-    MCI_BREAK_KEY = 256;
-    MCI_BREAK_HWND = 512;
-    MCI_BREAK_OFF = $400;
-    MCI_RECORD_INSERT = 256;
-    MCI_RECORD_OVERWRITE = 512;
-    MCI_SAVE_FILE = 256;
-    MCI_LOAD_FILE = 256;
-    MCI_VD_GETDEVCAPS_FAST_RATE = $4003;
-    MCI_VD_GETDEVCAPS_SLOW_RATE = $4004;
-    MCI_VD_GETDEVCAPS_NORMAL_RATE = $4005;
-    MCI_VD_STEP_FRAMES = $10000;
-    MCI_VD_STEP_REVERSE = $20000;
-    MCI_VD_ESCAPE_STRING = 256;
-    MCI_VD_FORMAT_TRACK = $4001;
-    MCI_VD_PLAY_REVERSE = $10000;
-    MCI_VD_PLAY_FAST = $20000;
-    MCI_VD_MODE_PARK = (MCI_VD_OFFSET+1);
-    MCI_VD_GETDEVCAPS_CAV = $20000;
-    MCI_VD_SPIN_UP = $10000;
-    MCI_VD_SPIN_DOWN = $20000;
-    MCI_VD_SEEK_REVERSE = $10000;
-    MCI_VD_STATUS_SPEED = $4002;
-    MCI_VD_STATUS_FORWARD = $4003;
-    MCI_VD_STATUS_MEDIA_TYPE = $4004;
-    MCI_VD_STATUS_SIDE = $4005;
-    MCI_VD_GETDEVCAPS_CAN_REVERSE = $4002;
-    MCI_VD_MEDIA_CLV = (MCI_VD_OFFSET+2);
-    MCI_VD_MEDIA_CAV = (MCI_VD_OFFSET+3);
-    MCI_VD_MEDIA_OTHER = (MCI_VD_OFFSET+4);
-    MCI_VD_STATUS_DISC_SIZE = $4006;
-    MCI_VD_GETDEVCAPS_CLV = $10000;
-    MCI_VD_PLAY_SPEED = $40000;
-    MCI_VD_PLAY_SCAN = $80000;
-    MCI_VD_PLAY_SLOW = $100000;
-    MCI_WAVE_STATUS_CHANNELS = $4002;
-    MCI_WAVE_STATUS_SAMPLESPERSEC = $4003;
-    MCI_WAVE_PCM = MCI_WAVE_OFFSET;
-    MCI_WAVE_MAPPER = (MCI_WAVE_OFFSET+1);
-    MCI_WAVE_OPEN_BUFFER = $10000;
-    MCI_WAVE_STATUS_BITSPERSAMPLE = $4006;
-    MCI_WAVE_STATUS_LEVEL = $4007;
-    MCI_WAVE_SET_FORMATTAG = $10000;
-    MCI_WAVE_SET_CHANNELS = $20000;
-    MCI_WAVE_SET_SAMPLESPERSEC = $40000;
-    MCI_WAVE_SET_AVGBYTESPERSEC = $80000;
-    MCI_WAVE_SET_BLOCKALIGN = $100000;
-    MCI_WAVE_SET_BITSPERSAMPLE = $200000;
-    MCI_WAVE_INPUT = $400000;
-    MCI_WAVE_OUTPUT = $800000;
-    MCI_WAVE_STATUS_FORMATTAG = $4001;
-    MCI_WAVE_SET_ANYINPUT = $4000000;
-    MCI_WAVE_SET_ANYOUTPUT = $8000000;
-    MCI_WAVE_GETDEVCAPS_INPUTS = $4001;
-    MCI_WAVE_GETDEVCAPS_OUTPUTS = $4002;
-    MCI_WAVE_STATUS_AVGBYTESPERSEC = $4004;
-    MCI_WAVE_STATUS_BLOCKALIGN = $4005;
-    MCI_CDA_STATUS_TYPE_TRACK = $4001;
-    MCI_CDA_TRACK_AUDIO = (MCI_CD_OFFSET);
-    MCI_CDA_TRACK_OTHER = (MCI_CD_OFFSET+1);
-    MCI_SEQ_DIV_PPQN = (MCI_SEQ_OFFSET);
-    MCI_SEQ_DIV_SMPTE_24 = (MCI_SEQ_OFFSET+1);
-    MCI_SEQ_DIV_SMPTE_25 = (MCI_SEQ_OFFSET+2);
-    MCI_SEQ_DIV_SMPTE_30DROP = (MCI_SEQ_OFFSET+3);
-    MCI_SEQ_DIV_SMPTE_30 = (MCI_SEQ_OFFSET+4);
-    MCI_SEQ_FORMAT_SONGPTR = $4001;
-    MCI_SEQ_FILE = $4002;
-    MCI_SEQ_MIDI = $4003;
-    MCI_SEQ_SMPTE = $4004;
-    MCI_SEQ_NONE = 65533;
-    MCI_SEQ_MAPPER = 65535;
-    MCI_SEQ_STATUS_TEMPO = $4002;
-    MCI_SEQ_STATUS_PORT = $4003;
-    MCI_SEQ_STATUS_SLAVE = $4007;
-    MCI_SEQ_STATUS_MASTER = $4008;
-    MCI_SEQ_STATUS_OFFSET = $4009;
-    MCI_SEQ_STATUS_DIVTYPE = $400A;
-    MCI_SEQ_STATUS_NAME = $400B;
-    MCI_SEQ_STATUS_COPYRIGHT = $400C;
-    MCI_SEQ_SET_TEMPO = $10000;
-    MCI_SEQ_SET_PORT = $20000;
-    MCI_SEQ_SET_SLAVE = $40000;
-    MCI_SEQ_SET_MASTER = $80000;
-    MCI_SEQ_SET_OFFSET = $1000000;
-    MCI_ANIM_PLAY_SLOW = $80000;
-    MCI_ANIM_PLAY_SCAN = $100000;
-    MCI_ANIM_GETDEVCAPS_SLOW_RATE = $4003;
-    MCI_ANIM_GETDEVCAPS_NORMAL_RATE = $4004;
-    MCI_ANIM_STEP_REVERSE = $10000;
-    MCI_ANIM_STEP_FRAMES = $20000;
-    MCI_ANIM_STATUS_SPEED = $4001;
-    MCI_ANIM_GETDEVCAPS_PALETTES = $4006;
-    MCI_ANIM_OPEN_WS = $10000;
-    MCI_ANIM_OPEN_PARENT = $20000;
-    MCI_ANIM_OPEN_NOSTATIC = $40000;
-    MCI_ANIM_GETDEVCAPS_FAST_RATE = $4002;
-    MCI_ANIM_PLAY_SPEED = $10000;
-    MCI_ANIM_PLAY_REVERSE = $20000;
-    MCI_ANIM_PLAY_FAST = $40000;
-    MCI_ANIM_STATUS_FORWARD = $4002;
-    MCI_ANIM_STATUS_HWND = $4003;
-    MCI_ANIM_STATUS_HPAL = $4004;
-    MCI_ANIM_STATUS_STRETCH = $4005;
-    MCI_ANIM_INFO_TEXT = $10000;
-    MCI_ANIM_GETDEVCAPS_CAN_REVERSE = $4001;
-    MCI_ANIM_WINDOW_TEXT = $80000;
-    MCI_ANIM_WINDOW_ENABLE_STRETCH = $100000;
-    MCI_ANIM_WINDOW_DISABLE_STRETCH = $200000;
-    MCI_ANIM_WINDOW_DEFAULT = 0;
-    MCI_ANIM_RECT = $10000;
-    MCI_ANIM_PUT_SOURCE = $20000;
-    MCI_ANIM_PUT_DESTINATION = $40000;
-    MCI_ANIM_WHERE_SOURCE = $20000;
-    MCI_ANIM_WHERE_DESTINATION = $40000;
-    MCI_ANIM_UPDATE_HDC = $20000;
-    MCI_ANIM_GETDEVCAPS_CAN_STRETCH = $4007;
-    MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = $4008;
-    MCI_ANIM_REALIZE_NORM = $10000;
-    MCI_ANIM_REALIZE_BKGD = $20000;
-    MCI_ANIM_WINDOW_HWND = $10000;
-    MCI_ANIM_WINDOW_STATE = $40000;
-    TIMERR_NOERROR = 0;
-    TIMERR_NOCANDO = (TIMERR_BASE+1);
-    TIMERR_STRUCT = (TIMERR_BASE+33);
-    TIME_ONESHOT = 0;
-    TIME_PERIODIC = 1;
-    TIME_CALLBACK_FUNCTION = 0;
-    TIME_CALLBACK_EVENT_SET = 16;
-    TIME_CALLBACK_EVENT_PULSE = 32;
-    MCI_OVLY_OPEN_WS = $10000;
-    MCI_OVLY_OPEN_PARENT = $20000;
-    MCI_OVLY_STATUS_HWND = $4001;
-    MCI_OVLY_STATUS_STRETCH = $4002;
-    MCI_OVLY_INFO_TEXT = $10000;
-    MCI_OVLY_GETDEVCAPS_CAN_STRETCH = $4001;
-    MCI_OVLY_GETDEVCAPS_CAN_FREEZE = $4002;
-    MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = $4003;
-    MCI_OVLY_WINDOW_HWND = $10000;
-    MCI_OVLY_WINDOW_STATE = $40000;
-    MCI_OVLY_WINDOW_TEXT = $80000;
-    MCI_OVLY_WINDOW_ENABLE_STRETCH = $100000;
-    MCI_OVLY_WINDOW_DISABLE_STRETCH = $200000;
-    MCI_OVLY_WINDOW_DEFAULT = 0;
-    MCI_OVLY_RECT = $10000;
-    MCI_OVLY_PUT_SOURCE = $20000;
-    MCI_OVLY_PUT_DESTINATION = $40000;
-    MCI_OVLY_PUT_FRAME = $80000;
-    MCI_OVLY_PUT_VIDEO = $100000;
-    MCI_OVLY_WHERE_SOURCE = $20000;
-    MCI_OVLY_WHERE_DESTINATION = $40000;
-    MCI_OVLY_WHERE_FRAME = $80000;
-    MCI_OVLY_WHERE_VIDEO = $100000;
-    AUX_MAPPER = -1;
-    MIXER_GETLINECONTROLSF_ONEBYID = 1;
-    MIXER_GETLINECONTROLSF_ONEBYTYPE = 2;
-    MIXER_GETLINECONTROLSF_ALL = 0;
-    MIXER_GETLINECONTROLSF_QUERYMASK = $F;
-    NEWTRANSPARENT = 3;
-    QUERYROPSUPPORT = 40;
-    SELECTDIB = 41;
-Function DIBINDEX(n: longint): longint;inline;
-
-Const
-    SC_SCREENSAVE = $F140;
-    AUXCAPS_CDAUDIO = 1;
-    AUXCAPS_AUXIN = 2;
-    AUXCAPS_VOLUME = 1;
-    AUXCAPS_LRVOLUME = 2;
-
-(*/////////////////////////////////////////////////////////*)
-(* Structures and typedefs*)
-(*/////////////////////////////////////////////////////////*)
-
-Type
-  _mmtime = packed Record
-                     wType: UINT;
-                     Case integer Of
-                       0: (ms: DWORD);
-                       1: (sample: DWORD);
-                       2: (cb: DWORD);
-                       3: (ticks: DWORD);
-                       4: (smpte: packed Record
-                           hour, min, sec, frame, fps, dummy: byte;
-                           pad: Array[0..1] Of byte
-                           End);
-                       5: (songptrpos: DWORD);
-                     End;
- MMTIME = _mmtime;
- PMMTIME = ^_mmtime;
- NPMMTIME = ^_mmtime;
- LPMMTIME = ^_mmtime;
- PWAVEHDR = ^_wavehdr;
- TMMTime  = _mmtime;
-
- _wavehdr = packed Record
-                            lpData: PChar;
-                            dwBufferLength: DWORD;
-                            dwBytesRecorded: DWORD;
-                            dwUser: DWORD;
-                            dwFlags: DWORD;
-                            dwLoops: DWORD;
-                            lpNext: PWAVEHDR;
-                            reserved: DWORD;
-          End;
- WAVEHDR = _wavehdr;
- TWAVEHDR=  WAVEHDR;
- NPWAVEHDR = ^_wavehdr;
- LPWAVEHDR = ^_wavehdr;
-
- _WAVEOUTCAPSA = packed Record
-                          wMid: WORD;
-                          wPid: WORD;
-                          vDriverVersion: MMVERSION;
-                          szPname: array [0..Pred(MAXPNAMELEN)] Of CHAR;
-                          dwFormats: DWORD;
-                          wChannels: WORD;
-                          wReserved1: WORD;
-                          dwSupport: DWORD;
-   End;
- WAVEOUTCAPSA   = _WAVEOUTCAPSA;
- TWAVEOUTCAPSA  = WAVEOUTCAPSA;
- PWAVEOUTCAPSA  = ^_WAVEOUTCAPSA;
- NPWAVEOUTCAPSA = ^_WAVEOUTCAPSA;
- LPWAVEOUTCAPSA = ^_WAVEOUTCAPSA;
-
- _WAVEOUTCAPSW = packed Record
-                          wMid: WORD;
-                          wPid: WORD;
-                          vDriverVersion: MMVERSION;
-                          szPname: array [0..Pred(MAXPNAMELEN)] Of WCHAR;
-                          dwFormats: DWORD;
-                          wChannels: WORD;
-                          wReserved1: WORD;
-                          dwSupport: DWORD;
-                        End;
-
- WAVEOUTCAPSW   = _WAVEOUTCAPSW;
- PWAVEOUTCAPSW  = ^_WAVEOUTCAPSW;
- NPWAVEOUTCAPSW = ^_WAVEOUTCAPSW;
- LPWAVEOUTCAPSW = ^_WAVEOUTCAPSW;
- TWAVEOUTCAPSW  = _WAVEOUTCAPSW;
- {$ifdef UNICODE}
-   WAVEOUTCAPS = WAVEOUTCAPSW;
-   PWAVEOUTCAPS = PWAVEOUTCAPSW;
-   NPWAVEOUTCAPS = NPWAVEOUTCAPSW;
-   LPWAVEOUTCAPS = LPWAVEOUTCAPSW;
- {$else}
-   WAVEOUTCAPS = WAVEOUTCAPSA;
-   PWAVEOUTCAPS = PWAVEOUTCAPSA;
-   NPWAVEOUTCAPS = NPWAVEOUTCAPSA;
-   LPWAVEOUTCAPS = LPWAVEOUTCAPSA;
- {$endif}
- TWAVEOUTCAPS = WAVEOUTCAPS;
-
- _WAVEINCAPSA = packed Record
-                         wMid: WORD;
-                         wPid: WORD;
-                         vDriverVersion: MMVERSION;
-                         szPname: array [0..Pred(MAXPNAMELEN)] Of CHAR;
-                         dwFormats: DWORD;
-                         wChannels: WORD;
-                         wReserved1: WORD;
-			End;
- WAVEINCAPSA   = _WAVEINCAPSA;
- PWAVEINCAPSA  = ^_WAVEINCAPSA;
- NPWAVEINCAPSA = ^_WAVEINCAPSA;
- LPWAVEINCAPSA = ^_WAVEINCAPSA;
- TWAVEINCAPSA  = WAVEINCAPSA;
-
- _WAVEINCAPSW  = packed Record
-                        wMid: WORD;
-                        wPid: WORD;
-                        vDriverVersion: MMVERSION;
-                        szPname: array [0..Pred(MAXPNAMELEN)] Of WCHAR;
-                        dwFormats: DWORD;
-                        wChannels: WORD;
-                        wReserved1: WORD;
-			End;
- WAVEINCAPSW   = _WAVEINCAPSW;
- PWAVEINCAPSW  = ^_WAVEINCAPSW;
- NPWAVEINCAPSW = ^_WAVEINCAPSW;
- LPWAVEINCAPSW = ^_WAVEINCAPSW;
- TWAVEINCAPSW  = WAVEINCAPSW;
- {$ifdef UNICODE}
-  WAVEINCAPS   = WAVEINCAPSW;
-  PWAVEINCAPS  = PWAVEINCAPSW;
-  NPWAVEINCAPS = NPWAVEINCAPSW;
-  LPWAVEINCAPS = LPWAVEINCAPSW;
- {$else}
-  WAVEINCAPS   = WAVEINCAPSA;
-  PWAVEINCAPS  = PWAVEINCAPSA;
-  NPWAVEINCAPS = NPWAVEINCAPSA;
-  LPWAVEINCAPS = LPWAVEINCAPSA;
- {$endif}
- TWAVEINCAPS   = WAVEINCAPS;
-
- _waveformat = packed Record
-                       wFormatTag: WORD;
-                       nChannels: WORD;
-                       nSamplesPerSec: DWORD;
-                       nAvgBytesPerSec: DWORD;
-                       nBlockAlign: WORD;
-		      End;
- WAVEFORMAT   = _waveformat;
- PWAVEFORMAT  = ^_waveformat;
- NPWAVEFORMAT = ^_waveformat;
- LPWAVEFORMAT = ^_waveformat;
- TWAVEFORMAT  = _waveformat;
-
-Const
-  WAVE_FORMAT_PCM = 1;
-
-Type
-  _pcmwaveformat = packed Record
-                            wf: WAVEFORMAT;
-                            wBitsPerSample: WORD;
-		   	  End;
-  PCMWAVEFORMAT   = _pcmwaveformat;
-  PPCMWAVEFORMAT  = ^_pcmwaveformat;
-  NPPCMWAVEFORMAT = ^_pcmwaveformat;
-  LPPCMWAVEFORMAT = ^_pcmwaveformat;
-  TPCMWAVEFORMAT  = _PCMWAVEFORMAT;
-  _WAVEFORMATEX   = packed Record
-                         wFormatTag: WORD;
-                         nChannels: WORD;
-                         nSamplesPerSec: DWORD;
-                         nAvgBytesPerSec: DWORD;
-                         nBlockAlign: WORD;
-                         wBitsPerSample: WORD;
-                         cbSize: WORD;
-		 End;
- WAVEFORMATEX    = _WAVEFORMATEX;
- PWAVEFORMATEX   = ^_WAVEFORMATEX;
- NPWAVEFORMATEX  = ^_WAVEFORMATEX;
- LPWAVEFORMATEX  = ^_WAVEFORMATEX;
- LPCWAVEFORMATEX = ^WAVEFORMATEX;
- TWAVEFORMATEX   = WAVEFORMATEX;
- HMIDI = THandle;
- HMIDIIN = THandle;
- HMIDIOUT = THandle;
- HMIDISTRM = THandle;
- LPHMIDI = ^HMIDI;
- LPHMIDIIN = ^HMIDIIN;
- LPHMIDIOUT = ^HMIDIOUT;
- LPHMIDISTRM = ^HMIDISTRM;
- LPMIDICALLBACK = PDRVCALLBACK;
-
-Const
-  MIDIPATCHSIZE = 128;
-
-Type
-  PATCHARRAY = array [0..Pred(MIDIPATCHSIZE)] Of WORD;
-  LPPATCHARRAY = ^WORD;
-  KEYARRAY = array [0..Pred(MIDIPATCHSIZE)] Of WORD;
-  LPKEYARRAY = ^WORD;
-  _MIDIOUTCAPSA = packed Record
-                           wMid: WORD;
-                           wPid: WORD;
-                           vDriverVersion: MMVERSION;
-                           szPname: array [0..Pred(MAXPNAMELEN)] Of CHAR;
-                           wTechnology: WORD;
-                           wVoices: WORD;
-                           wNotes: WORD;
-                           wChannelMask: WORD;
-                           dwSupport: DWORD;
-			End;
- MIDIOUTCAPSA   = _MIDIOUTCAPSA;
- PMIDIOUTCAPSA  = ^_MIDIOUTCAPSA;
- NPMIDIOUTCAPSA = ^_MIDIOUTCAPSA;
- LPMIDIOUTCAPSA = ^_MIDIOUTCAPSA;
- TMIDIOUTCAPSA  = _MIDIOUTCAPSA;
- _MIDIOUTCAPSW  = packed Record
-                         wMid: WORD;
-                         wPid: WORD;
-                         vDriverVersion: MMVERSION;
-                         szPname: array [0..Pred(MAXPNAMELEN)] Of WCHAR;
-                         wTechnology: WORD;
-                         wVoices: WORD;
-                         wNotes: WORD;
-                         wChannelMask: WORD;
-                         dwSupport: DWORD;
- 		End;
- MIDIOUTCAPSW   = _MIDIOUTCAPSW;
- PMIDIOUTCAPSW  = ^_MIDIOUTCAPSW;
- NPMIDIOUTCAPSW = ^_MIDIOUTCAPSW;
- LPMIDIOUTCAPSW = ^_MIDIOUTCAPSW;
- TMIDIOUTCAPSW  = MIDIOUTCAPSW;
- _MIDIINCAPSA = packed Record
-                        wMid: WORD;
-                        wPid: WORD;
-                        vDriverVersion: MMVERSION;
-                        szPname: array [0..Pred(MAXPNAMELEN)] Of CHAR;
-                        dwSupport: DWORD;
- 		End;
- MIDIINCAPSA = _MIDIINCAPSA;
- PMIDIINCAPSA = ^_MIDIINCAPSA;
- NPMIDIINCAPSA = ^_MIDIINCAPSA;
- LPMIDIINCAPSA = ^_MIDIINCAPSA;
- TMIDIINCAPSA  = MIDIINCAPSA;
-
- _MIDIINCAPSW = packed Record
-                        wMid: WORD;
-                        wPid: WORD;
-                        vDriverVersion: MMVERSION;
-                        szPname: array [0..Pred(MAXPNAMELEN)] Of WCHAR;
-                        dwSupport: DWORD;
- 		End;
- MIDIINCAPSW = _MIDIINCAPSW;
- PMIDIINCAPSW = ^_MIDIINCAPSW;
- NPMIDIINCAPSW = ^_MIDIINCAPSW;
- LPMIDIINCAPSW = ^_MIDIINCAPSW;
- TMIDIINCAPSW  = MIDIINCAPSW;
-
- {$ifdef UNICODE}
-  MIDIINCAPS    = MIDIINCAPSW;
-  PMIDIINCAPS   = PMIDIINCAPSW;
-  NPMIDIINCAPS  = NPMIDIINCAPSW;
-  LPMIDIINCAPS  = LPMIDIINCAPSW;
-  MIDIOUTCAPS   = MIDIOUTCAPSW;
-  PMIDIOUTCAPS  = PMIDIOUTCAPSW;
-  NPMIDIOUTCAPS = NPMIDIOUTCAPSW;
-  LPMIDIOUTCAPS = LPMIDIOUTCAPSW;
- {$else}
-  MIDIOUTCAPS   = MIDIOUTCAPSA;
-  PMIDIOUTCAPS  = PMIDIOUTCAPSA;
-  NPMIDIOUTCAPS = NPMIDIOUTCAPSA;
-  LPMIDIOUTCAPS = LPMIDIOUTCAPSA;
-  MIDIINCAPS    = MIDIINCAPSA;
-  PMIDIINCAPS   = PMIDIINCAPSA;
-  NPMIDIINCAPS  = NPMIDIINCAPSA;
-  LPMIDIINCAPS  = LPMIDIINCAPSA;
- {$endif}
- TMIDIINCAPS  = MIDIINCAPS;
-
- PMIDIHDR = ^_midihdr;
- _midihdr = packed Record
-                    lpData: PChar;
-                    dwBufferLength: DWORD;
-                    dwBytesRecorded: DWORD;
-                    dwUser: DWORD;
-                    dwFlags: DWORD;
-                    lpNext: PMIDIHDR;
-                    reserved: DWORD;
-                    dwOffset: DWORD;
-                    dwReserved: array [0..Pred(8)] Of DWORD;
-	    End;
- MIDIHDR   = _midihdr;
- NPMIDIHDR = ^_midihdr;
- LPMIDIHDR = ^_midihdr;
- TMIDIHDR  = MIDIHDR;
-
- _midievent = packed Record
-                      dwDeltaTime: DWORD;
-                      dwStreamID: DWORD;
-                      dwEvent: DWORD;
-                      dwParms: array [0..Pred(1)] Of DWORD;
-		End;
- MIDIEVENT = _midievent;
- TMIDIEVENT= MIDIEVENT;
-
- _midistrmbuffver = packed Record
-                            dwVersion: DWORD;
-                            dwMid: DWORD;
-                            dwOEMVersion: DWORD;
- 		    End;
- MIDISTRMBUFFVER = _midistrmbuffver;
- TMIDISTRMBUFFVER = MIDISTRMBUFFVER;
-
- _midiproptimediv = packed Record
-                            cbStruct: DWORD;
-                            dwTimeDiv: DWORD;
-		    End;
- MIDIPROPTIMEDIV = _midiproptimediv;
- LPMIDIPROPTIMEDIV = ^_midiproptimediv;
- TMIDIPROPTIMEDIV =  MIDIPROPTIMEDIV;
-
- _midiproptempo = packed Record
-                          cbStruct: DWORD;
-                          dwTempo: DWORD;
-		  End;
- MIDIPROPTEMPO = _midiproptempo;
- LPMIDIPROPTEMPO = ^_midiproptempo;
- TMIDIPROPTEMPO = MIDIPROPTEMPO;
-
- _AUXCAPSA = packed Record
-                     wMid: WORD;
-                     wPid: WORD;
-                     vDriverVersion: MMVERSION;
-                     szPname: array [0..Pred(MAXPNAMELEN)] Of CHAR;
-                     wTechnology: WORD;
-                     wReserved1: WORD;
-                     dwSupport: DWORD;
-		End;
- AUXCAPSA   = _AUXCAPSA;
- PAUXCAPSA  = ^_AUXCAPSA;
- NPAUXCAPSA = ^_AUXCAPSA;
- LPAUXCAPSA = ^_AUXCAPSA;
- TAUXCAPSA  = AUXCAPSA;
- _AUXCAPSW  = packed Record
-                     wMid: WORD;
-                     wPid: WORD;
-                     vDriverVersion: MMVERSION;
-                     szPname: array [0..Pred(MAXPNAMELEN)] Of WCHAR;
-                     wTechnology: WORD;
-                     wReserved1: WORD;
-                     dwSupport: DWORD;
-		End;
- AUXCAPSW  = _AUXCAPSW;
- PAUXCAPSW  = ^_AUXCAPSW;
- NPAUXCAPSW = ^_AUXCAPSW;
- LPAUXCAPSW = ^_AUXCAPSW;
- TAUXCAPSW  = AUXCAPSW;
- {$ifdef UNICODE}
-  AUXCAPS = AUXCAPSW;
-  PAUXCAPS = PAUXCAPSW;
-  NPAUXCAPS = NPAUXCAPSW;
-  LPAUXCAPS = LPAUXCAPSW;
- {$else}
-  AUXCAPS = AUXCAPSA;
-  PAUXCAPS = PAUXCAPSA;
-  NPAUXCAPS = NPAUXCAPSA;
-  LPAUXCAPS = LPAUXCAPSA;
-  {$endif}
-  TAUXCAPS  = AUXCAPS;
-
- HMIXEROBJ = THandle;
- LPHMIXEROBJ = ^HMIXEROBJ;
- HMIXER = THandle;
- LPHMIXER = ^HMIXER;
-
-Function mixerGetNumDevs: UINT;stdcall; external 'winmm.dll' name 'mixerGetNumDevs';
-
-Type
-  _MIXERCAPSA = packed Record
-                         wMid: WORD;
-                         wPid: WORD;
-                         vDriverVersion: MMVERSION;
-                         szPname: array [0..Pred(MAXPNAMELEN)] Of CHAR;
-                         fdwSupport: DWORD;
-                         cDestinations: DWORD;
-		   End;
- MIXERCAPSA   = _MIXERCAPSA;
- PMIXERCAPSA  = ^_MIXERCAPSA;
- LPMIXERCAPSA = ^_MIXERCAPSA;
- TMIXERCAPSA  = MIXERCAPSA;
-
- _MIXERCAPSW  = packed Record
-                       wMid: WORD;
-                       wPid: WORD;
-                       vDriverVersion: MMVERSION;
-                       szPname: array [0..Pred(MAXPNAMELEN)] Of WCHAR;
-                       fdwSupport: DWORD;
-                       cDestinations: DWORD;
-		End;
- MIXERCAPSW   = _MIXERCAPSW;
- PMIXERCAPSW  = ^_MIXERCAPSW;
- LPMIXERCAPSW = ^_MIXERCAPSW;
- TMIXERCAPSW  = MIXERCAPSW;
-
- {$ifdef UNICODE}
-  MIXERCAPS   = MIXERCAPSW;
-  PMIXERCAPS  = PMIXERCAPSW;
-  LPMIXERCAPS = LPMIXERCAPSW;
- {$else}
-  MIXERCAPS   = MIXERCAPSA;
-  PMIXERCAPS  = PMIXERCAPSA;
-  LPMIXERCAPS = LPMIXERCAPSA;
- {$endif}
-  TMIXERCAPS = MIXERCAPS;
-
-  _MIXERLINEA = packed Record
-                       cbStruct: DWORD;
-                       dwDestination: DWORD;
-                       dwSource: DWORD;
-                       dwLineID: DWORD;
-                       fdwLine: DWORD;
-                       dwUser: DWORD;
-                       dwComponentType: DWORD;
-                       cChannels: DWORD;
-                       cConnections: DWORD;
-                       cControls: DWORD;
-                       szShortName: array [0..Pred(MIXER_SHORT_NAME_CHARS)] Of CHAR;
-                       szName: array [0..Pred(MIXER_LONG_NAME_CHARS)] Of CHAR;
-                       Target: packed Record
-                                dwType,dwDeviceID: DWORD;
-                                wMid,wPid: WORD;
-                                vDriverVersion: MMVERSION;
-                                szPname: array[0..pred(MAXPNAMELEN)] Of Char;
-				End;
-		       End;
- MIXERLINEA   = _MIXERLINEA;
- PMIXERLINEA  = ^_MIXERLINEA;
- LPMIXERLINEA = ^_MIXERLINEA;
- TMIXERLINEA  = MIXERLINEA;
-
- _MIXERLINEW  = packed Record
-                       cbStruct: DWORD;
-                       dwDestination: DWORD;
-                       dwSource: DWORD;
-                       dwLineID: DWORD;
-                       fdwLine: DWORD;
-                       dwUser: DWORD;
-                       dwComponentType: DWORD;
-                       cChannels: DWORD;
-                       cConnections: DWORD;
-                       cControls: DWORD;
-                       szShortName: array [0..Pred(MIXER_SHORT_NAME_CHARS)] Of WCHAR;
-                       szName: array [0..Pred(MIXER_LONG_NAME_CHARS)] Of WCHAR;
-                       Target: packed Record
-                                        dwType,dwDeviceID: DWORD;
-                                        wMid,wPid: WORD;
-                                        vDriverVersion: MMVERSION;
-                                        szPname: array[0..pred(MAXPNAMELEN)] Of WChar;
-				End;
-			End;
- MIXERLINEW   = _MIXERLINEW;
- TMIXERLINEW  = MIXERLINEW;
- PMIXERLINEW  = ^_MIXERLINEW;
- LPMIXERLINEW = ^_MIXERLINEW;
- {$ifdef UNICODE}
-  MIXERLINE   = MIXERLINEW;
-  PMIXERLINE  = PMIXERLINEW;
-  LPMIXERLINE = LPMIXERLINEW;
- {$else}
-  MIXERLINE   = MIXERLINEA;
-  PMIXERLINE  = PMIXERLINEA;
-  LPMIXERLINE = LPMIXERLINEA;
- {$endif}
- TMIXERLINE = MIXERLINE;
-
- _MIXERCONTROLA = packed Record
-                          cbStruct: DWORD;
-                          dwControlID: DWORD;
-                          dwControlType: DWORD;
-                          fdwControl: DWORD;
-                          cMultipleItems: DWORD;
-                          szShortName: array [0..Pred(MIXER_SHORT_NAME_CHARS)] Of CHAR;
-                          szName: array [0..Pred(MIXER_LONG_NAME_CHARS)] Of CHAR;
-                          Bounds: packed Record
-                                           Case integer Of
-                                             0: (lMinimum, lMaximum: longint);
-                                             1: (dwMinimum, dwMaximum: DWORD);
-                                             2: (dwReserved: Array[0..5] Of DWORD);
-					   End;
-			  Metrics: packed Record
-                                            Case Integer Of
-                                              0: (cSteps: DWORD);
-                                              1: (cbCustomData: DWORD);
-                                              2: (dwReserved: Array[0..5] Of DWORD);
-                                            End;
-			  End;
- MIXERCONTROLA   = _MIXERCONTROLA;
- PMIXERCONTROLA  = ^_MIXERCONTROLA;
- LPMIXERCONTROLA = ^_MIXERCONTROLA;
- TMIXERCONTROLA  = MIXERCONTROLA;
-
- _MIXERCONTROLW = packed Record
-                          cbStruct: DWORD;
-                          dwControlID: DWORD;
-                          dwControlType: DWORD;
-                          fdwControl: DWORD;
-                          cMultipleItems: DWORD;
-                          szShortName: array [0..Pred(MIXER_SHORT_NAME_CHARS)] Of WCHAR;
-                          szName: array [0..Pred(MIXER_LONG_NAME_CHARS)] Of WCHAR;
-                          Bounds: packed Record
-                                           Case integer Of
-                                             0: (lMinimum, lMaximum: longint);
-                                             1: (dwMinimum, dwMaximum: DWORD);
-                                             2: (dwReserved: Array[0..5] Of DWORD);
-					   End;
-			  Metrics: packed Record
-                                           Case Integer Of
-                                             0: (cSteps: DWORD);
-                                             1: (cbCustomData: DWORD);
-                                             2: (dwReserved: Array[0..5] Of DWORD);
-		                           End;
-			  End;
- MIXERCONTROLW   = _MIXERCONTROLW;
- PMIXERCONTROLW  = ^_MIXERCONTROLW;
- LPMIXERCONTROLW = ^_MIXERCONTROLW;
- TMIXERCONTROLW  = MIXERCONTROLW;
- {$ifdef UNICODE}
-  MIXERCONTROL   = MIXERCONTROLW;
-  PMIXERCONTROL  = PMIXERCONTROLW;
-  LPMIXERCONTROL = LPMIXERCONTROLW;
- {$else}
-  MIXERCONTROL   = MIXERCONTROLA;
-  PMIXERCONTROL  = PMIXERCONTROLA;
-  LPMIXERCONTROL = LPMIXERCONTROLA;
- {$endif}
- TMIXERCONTROL   = MIXERCONTROL;
-
-
- _MIXERLINECONTROLSA  = packed Record
-                               cbStruct: DWORD;
-                               dwLineID: DWORD;
-                               Case Integer Of
-                                 0: (dwControlID: DWORD);
-                                 1: (dwControlType, cControls, cbmxctrl: DWORD; pamxctrl:PMIXERCONTROLA);
-				End;
- MIXERLINECONTROLSA   = _MIXERLINECONTROLSA;
- PMIXERLINECONTROLSA  = ^_MIXERLINECONTROLSA;
- LPMIXERLINECONTROLSA = ^_MIXERLINECONTROLSA;
- TMIXERLINECONTROLSA  = MIXERLINECONTROLSA;
-
- _MIXERLINECONTROLSW  = packed Record
-                               cbStruct: DWORD;
-                               dwLineID: DWORD;
-                               Case Integer Of
-                                 0: (dwControlID: DWORD);
-                                 1: (dwControlType, cControls, cbmxctrl: DWORD; pamxctrl:PMIXERCONTROLW);
-				End;
- MIXERLINECONTROLSW   = _MIXERLINECONTROLSW;
- PMIXERLINECONTROLSW  = ^_MIXERLINECONTROLSW;
- LPMIXERLINECONTROLSW = ^_MIXERLINECONTROLSW;
- TMIXERLINECONTROLSW  = MIXERLINECONTROLSW;
-
-{$ifdef UNICODE}
- MIXERLINECONTROLS = MIXERLINECONTROLSW;
- PMIXERLINECONTROLS = PMIXERLINECONTROLSW;
- LPMIXERLINECONTROLS = LPMIXERLINECONTROLSW;
-{$else}
- MIXERLINECONTROLS = MIXERLINECONTROLSA;
- PMIXERLINECONTROLS = PMIXERLINECONTROLSA;
- LPMIXERLINECONTROLS = LPMIXERLINECONTROLSA;
-{$endif}
- TMIXERLINECONTROLS  = MIXERLINECONTROLS;
-
- TMIXERCONTROLDETAILS = packed Record
-                                cbStruct: DWORD;
-                                dwControlID: DWORD;
-                                cChannels: DWORD;
-                                Case Integer Of
-                                  0: (hwndOwner: tHandle);
-                                  1: (cMultipleItems, cbDetails: DWORD;
-                                      paDetails: Pointer);
-				 End;
- MIXERCONTROLDETAILS   = tMIXERCONTROLDETAILS;
- PMIXERCONTROLDETAILS  = ^tMIXERCONTROLDETAILS;
- LPMIXERCONTROLDETAILS = ^tMIXERCONTROLDETAILS;
-
- _MIXERCONTROLDETAILS_LISTTEXTA = packed Record
-                                          dwParam1: DWORD;
-                                          dwParam2: DWORD;
-                                          szName: array [0..Pred(MIXER_LONG_NAME_CHARS)] Of CHAR;
-					  End;
- MIXERCONTROLDETAILS_LISTTEXTA   = _MIXERCONTROLDETAILS_LISTTEXTA;
- PMIXERCONTROLDETAILS_LISTTEXTA  = ^_MIXERCONTROLDETAILS_LISTTEXTA;
- LPMIXERCONTROLDETAILS_LISTTEXTA = ^_MIXERCONTROLDETAILS_LISTTEXTA;
- TMIXERCONTROLDETAILS_LISTTEXTA  = MIXERCONTROLDETAILS_LISTTEXTA;
-
- _MIXERCONTROLDETAILS_LISTTEXTW  = packed Record
-                                          dwParam1: DWORD;
-                                          dwParam2: DWORD;
-                                          szName: array [0..Pred(MIXER_LONG_NAME_CHARS)] Of WCHAR;
-				   End;
- MIXERCONTROLDETAILS_LISTTEXTW   = _MIXERCONTROLDETAILS_LISTTEXTW;
- PMIXERCONTROLDETAILS_LISTTEXTW  = ^_MIXERCONTROLDETAILS_LISTTEXTW;
- LPMIXERCONTROLDETAILS_LISTTEXTW = ^_MIXERCONTROLDETAILS_LISTTEXTW;
- TMIXERCONTROLDETAILS_LISTTEXTW  = MIXERCONTROLDETAILS_LISTTEXTW;
-
- {$ifdef UNICODE}
-  MIXERCONTROLDETAILS_LISTTEXT   = MIXERCONTROLDETAILS_LISTTEXTW;
-  PMIXERCONTROLDETAILS_LISTTEXT  = PMIXERCONTROLDETAILS_LISTTEXTW;
-  LPMIXERCONTROLDETAILS_LISTTEXT = LPMIXERCONTROLDETAILS_LISTTEXTW;
- {$else}
-  MIXERCONTROLDETAILS_LISTTEXT   = MIXERCONTROLDETAILS_LISTTEXTA;
-  PMIXERCONTROLDETAILS_LISTTEXT  = PMIXERCONTROLDETAILS_LISTTEXTA;
-  LPMIXERCONTROLDETAILS_LISTTEXT = LPMIXERCONTROLDETAILS_LISTTEXTA;
- {$endif}
- TMIXERCONTROLDETAILS_LISTTEXT  = MIXERCONTROLDETAILS_LISTTEXT;
-
-_MIXERCONTROLDETAILS_BOOLEAN = packed Record
-                                        fValue: longint;
-					End;
- MIXERCONTROLDETAILS_BOOLEAN   = _MIXERCONTROLDETAILS_BOOLEAN;
- PMIXERCONTROLDETAILS_BOOLEAN  = ^_MIXERCONTROLDETAILS_BOOLEAN;
- LPMIXERCONTROLDETAILS_BOOLEAN = ^_MIXERCONTROLDETAILS_BOOLEAN;
- TMIXERCONTROLDETAILS_BOOLEAN  = MIXERCONTROLDETAILS_BOOLEAN;
-
- _MIXERCONTROLDETAILS_SIGNED = packed Record
-                                       lValue: longint;
-				       End;
- MIXERCONTROLDETAILS_SIGNED   = _MIXERCONTROLDETAILS_SIGNED;
- PMIXERCONTROLDETAILS_SIGNED  = ^_MIXERCONTROLDETAILS_SIGNED;
- LPMIXERCONTROLDETAILS_SIGNED = ^_MIXERCONTROLDETAILS_SIGNED;
- TMIXERCONTROLDETAILS_SIGNED  = _MIXERCONTROLDETAILS_SIGNED;
-
- _MIXERCONTROLDETAILS_UNSIGNED = packed Record
-                                         dwValue: DWORD;
-					 End;
- MIXERCONTROLDETAILS_UNSIGNED   = _MIXERCONTROLDETAILS_UNSIGNED;
- PMIXERCONTROLDETAILS_UNSIGNED  = ^_MIXERCONTROLDETAILS_UNSIGNED;
- LPMIXERCONTROLDETAILS_UNSIGNED = ^_MIXERCONTROLDETAILS_UNSIGNED;
- TMIXERCONTROLDETAILS_UNSIGNED  = _MIXERCONTROLDETAILS_UNSIGNED;
-
- LPTIMECALLBACK =
-    Procedure (uTimerID, uMsg: UINT; dwUser, dw1, dw2: DWORD);stdcall;
- TTIMECALLBACK=LPTIMECALLBACK;
-
- TFNTimeCallBack = TTimeCallback; // delphi compat
-
- _timecaps = packed Record
-                     wPeriodMin: UINT;
-                     wPeriodMax: UINT;
-		    End;
- TIMECAPS   = _timecaps;
- PTIMECAPS  = ^_timecaps;
- NPTIMECAPS = ^_timecaps;
- LPTIMECAPS = ^_timecaps;
- TTIMECAPS  = TIMECAPS;
-
- _JOYCAPSA = packed Record
-                     wMid: WORD;
-                     wPid: WORD;
-                     szPname: array [0..Pred(MAXPNAMELEN)] Of CHAR;
-                     wXmin: UINT;
-                     wXmax: UINT;
-                     wYmin: UINT;
-                     wYmax: UINT;
-                     wZmin: UINT;
-                     wZmax: UINT;
-                     wNumButtons: UINT;
-                     wPeriodMin: UINT;
-                     wPeriodMax: UINT;
-                     wRmin: UINT;
-                     wRmax: UINT;
-                     wUmin: UINT;
-                     wUmax: UINT;
-                     wVmin: UINT;
-                     wVmax: UINT;
-                     wCaps: UINT;
-                     wMaxAxes: UINT;
-                     wNumAxes: UINT;
-                     wMaxButtons: UINT;
-                     szRegKey: array [0..Pred(MAXPNAMELEN)] Of CHAR;
-                     szOEMVxD: array [0..Pred(MAX_JOYSTICKOEMVXDNAME)] Of CHAR;
-		   End;
- JOYCAPSA   = _JOYCAPSA;
- PJOYCAPSA  = ^_JOYCAPSA;
- NPJOYCAPSA = ^_JOYCAPSA;
- LPJOYCAPSA = ^_JOYCAPSA;
- TJOYCAPSA  = _JOYCAPSA;
-
- _JOYCAPSW = packed Record
-                     wMid: WORD;
-                     wPid: WORD;
-                     szPname: array [0..Pred(MAXPNAMELEN)] Of WCHAR;
-                     wXmin: UINT;
-                     wXmax: UINT;
-                     wYmin: UINT;
-                     wYmax: UINT;
-                     wZmin: UINT;
-                     wZmax: UINT;
-                     wNumButtons: UINT;
-                     wPeriodMin: UINT;
-                     wPeriodMax: UINT;
-                     wRmin: UINT;
-                     wRmax: UINT;
-                     wUmin: UINT;
-                     wUmax: UINT;
-                     wVmin: UINT;
-                     wVmax: UINT;
-                     wCaps: UINT;
-                     wMaxAxes: UINT;
-                     wNumAxes: UINT;
-                     wMaxButtons: UINT;
-                     szRegKey: array [0..Pred(MAXPNAMELEN)] Of WCHAR;
-                     szOEMVxD: array [0..Pred(MAX_JOYSTICKOEMVXDNAME)] Of WCHAR;
-		   End;
- JOYCAPSW   = _JOYCAPSW;
- PJOYCAPSW  = ^_JOYCAPSW;
- NPJOYCAPSW = ^_JOYCAPSW;
- LPJOYCAPSW = ^_JOYCAPSW;
- TJOYCAPSW  = _JOYCAPSW;
-
- {$ifdef UNICODE}
-  JOYCAPS   = JOYCAPSW;
-  PJOYCAPS  = PJOYCAPSW;
-  NPJOYCAPS = NPJOYCAPSW;
-  LPJOYCAPS = LPJOYCAPSW;
- {$else}
-  JOYCAPS  = JOYCAPSA;
-  PJOYCAPS  = PJOYCAPSA;
-  NPJOYCAPS = NPJOYCAPSA;
-  LPJOYCAPS = LPJOYCAPSA;
- {$endif}
- TJOYCAPS   = JOYCAPS;
-
- _joyinfo = packed Record
-                    wXpos: UINT;
-                    wYpos: UINT;
-                    wZpos: UINT;
-                    wButtons: UINT;
-		   End;
- JOYINFO   = _joyinfo;
- PJOYINFO  = ^_joyinfo;
- NPJOYINFO = ^_joyinfo;
- LPJOYINFO = ^_joyinfo;
- TJOYINFO  = JOYINFO;
-
- _joyinfoex = packed Record
-                      dwSize: DWORD;
-                      dwFlags: DWORD;
-                      wXpos: UINT;
-                      wYpos: UINT;
-                      wZpos: UINT;
-                      dwRpos: DWORD;
-                      dwUpos: DWORD;
-                      dwVpos: DWORD;
-                      wButtons: UINT;
-                      dwButtonNumber: DWORD;
-                      dwPOV: DWORD;
-                      dwReserved1: DWORD;
-                      dwReserved2: DWORD;
-		     End;
- JOYINFOEX   = _joyinfoex;
- PJOYINFOEX  = ^_joyinfoex;
- NPJOYINFOEX = ^_joyinfoex;
- LPJOYINFOEX = ^_joyinfoex;
- TJOYINFOEX  = JOYINFOEX;
-
- FOURCC = DWORD;
- HPSTR = ^char;
- HMMIO = THandle;
- LPMMIOPROC =
-     Function (x1: LPSTR; x2: UINT; x3, x4: LPARAM): LRESULT;stdcall;
- TMMIOPROC = LPMMIOPROC;
-
- _MMIOINFO = packed Record
-                     dwFlags: DWORD;
-                     fccIOProc: FOURCC;
-                     pIOProc: LPMMIOPROC;
-                     wErrorRet: UINT;
-                     htask: HTASK;
-                     cchBuffer: longint;
-                     pchBuffer: HPSTR;
-                     pchNext: HPSTR;
-                     pchEndRead: HPSTR;
-                     pchEndWrite: HPSTR;
-                     lBufOffset: longint;
-                     lDiskOffset: longint;
-                     adwInfo: array [0..Pred(3)] Of DWORD;
-                     dwReserved1: DWORD;
-                     dwReserved2: DWORD;
-                     hmmio: HMMIO;
-		    End;
- MMIOINFO    = _MMIOINFO;
- PMMIOINFO   = ^_MMIOINFO;
- NPMMIOINFO  = ^_MMIOINFO;
- LPMMIOINFO  = ^_MMIOINFO;
- LPCMMIOINFO = ^MMIOINFO;
- TMMIOINFO   = MMIOINFO;
-
- _MMCKINFO = packed Record
-                     ckid: FOURCC;
-                     cksize: DWORD;
-                     fccType: FOURCC;
-                     dwDataOffset: DWORD;
-                     dwFlags: DWORD;
-		   End;
- MMCKINFO    = _MMCKINFO;
- PMMCKINFO   = ^_MMCKINFO;
- NPMMCKINFO  = ^_MMCKINFO;
- LPMMCKINFO  = ^_MMCKINFO;
- LPCMMCKINFO = ^MMCKINFO;
- TMMCKINFO   = MMCKINFO;
-
- MCIERROR = DWORD;
- MCIDEVICEID = UINT;
- YIELDPROC =
-     Function (mciId: MCIDEVICEID;  dwYieldData: DWORD): UINT;stdcall;
-  TYIELDPROC = YIELDPROC;
-
- _MCI_GENERIC_PARMS = packed Record
-                              dwCallback: DWORD;
-			     End;
- MCI_GENERIC_PARMS   = _MCI_GENERIC_PARMS;
- PMCI_GENERIC_PARMS  = ^_MCI_GENERIC_PARMS;
- LPMCI_GENERIC_PARMS = ^_MCI_GENERIC_PARMS;
- TMCI_GENERIC_PARMS  = MCI_GENERIC_PARMS;
-
- _MCI_OPEN_PARMSA = packed Record
-                            dwCallback: DWORD;
-                            wDeviceID: MCIDEVICEID;
-                            lpstrDeviceType: LPCSTR;
-                            lpstrElementName: LPCSTR;
-                            lpstrAlias: LPCSTR;
-		            End;
- MCI_OPEN_PARMSA   = _MCI_OPEN_PARMSA;
- PMCI_OPEN_PARMSA  = ^_MCI_OPEN_PARMSA;
- LPMCI_OPEN_PARMSA = ^_MCI_OPEN_PARMSA;
- TMCI_OPEN_PARMSA  = MCI_OPEN_PARMSA;
-
- _MCI_OPEN_PARMSW = packed Record
-                            dwCallback: DWORD;
-                            wDeviceID: MCIDEVICEID;
-                            lpstrDeviceType: LPCWSTR;
-                            lpstrElementName: LPCWSTR;
-                            lpstrAlias: LPCWSTR;
-			  End;
- MCI_OPEN_PARMSW   = _MCI_OPEN_PARMSW;
- PMCI_OPEN_PARMSW  = ^_MCI_OPEN_PARMSW;
- LPMCI_OPEN_PARMSW = ^_MCI_OPEN_PARMSW;
- TMCI_OPEN_PARMSW  = _MCI_OPEN_PARMSW;
- {$ifdef UNICODE}
-  MCI_OPEN_PARMS   = MCI_OPEN_PARMSW;
-  PMCI_OPEN_PARMS  = PMCI_OPEN_PARMSW;
-  LPMCI_OPEN_PARMS = LPMCI_OPEN_PARMSW;
- {$else}
-  MCI_OPEN_PARMS   = MCI_OPEN_PARMSA;
-  PMCI_OPEN_PARMS  = PMCI_OPEN_PARMSA;
-  LPMCI_OPEN_PARMS = LPMCI_OPEN_PARMSA;
- {$endif}
-  TMCI_OPEN_PARMS = MCI_OPEN_PARMS;
-
- _MCI_PLAY_PARMS = packed Record
-                           dwCallback: DWORD;
-                           dwFrom: DWORD;
-                           dwTo: DWORD;
-			 End;
- MCI_PLAY_PARMS   = _MCI_PLAY_PARMS;
- PMCI_PLAY_PARMS  = ^_MCI_PLAY_PARMS;
- LPMCI_PLAY_PARMS = ^_MCI_PLAY_PARMS;
- TMCI_PLAY_PARMS  = _MCI_PLAY_PARMS;
-
- _MCI_SEEK_PARMS = packed Record
-                           dwCallback: DWORD;
-                           dwTo: DWORD;
-			  End;
- MCI_SEEK_PARMS   = _MCI_SEEK_PARMS;
- PMCI_SEEK_PARMS  = ^_MCI_SEEK_PARMS;
- LPMCI_SEEK_PARMS = ^_MCI_SEEK_PARMS;
- TMCI_SEEK_PARMS  = _MCI_SEEK_PARMS;
-
- _MCI_STATUS_PARMS = packed Record
-                             dwCallback: DWORD;
-                             dwReturn: DWORD;
-                             dwItem: DWORD;
-                             dwTrack: DWORD;
-			    End;
- MCI_STATUS_PARMS   = _MCI_STATUS_PARMS;
- PMCI_STATUS_PARMS  = ^_MCI_STATUS_PARMS;
- LPMCI_STATUS_PARMS = ^_MCI_STATUS_PARMS;
- TMCI_STATUS_PARMS  = _MCI_STATUS_PARMS;
-
- _MCI_INFO_PARMSA = packed Record
-                            dwCallback: DWORD;
-                            lpstrReturn: PChar;
-                            dwRetSize: DWORD;
-			  End;
- MCI_INFO_PARMSA   = _MCI_INFO_PARMSA;
- LPMCI_INFO_PARMSA = ^_MCI_INFO_PARMSA;
- TMCI_INFO_PARMSA  = _MCI_INFO_PARMSA;
-
- _MCI_INFO_PARMSW  = packed Record
-                            dwCallback: DWORD;
-                            lpstrReturn: LPWSTR;
-                            dwRetSize: DWORD;
-			End;
- MCI_INFO_PARMSW   = _MCI_INFO_PARMSW;
- LPMCI_INFO_PARMSW = ^_MCI_INFO_PARMSW;
- TMCI_INFO_PARMSW  = _MCI_INFO_PARMSW;
-
- {$ifdef UNICODE}
-  MCI_INFO_PARMS   = MCI_INFO_PARMSW;
-  LPMCI_INFO_PARMS = LPMCI_INFO_PARMSW;
- {$else}
-  MCI_INFO_PARMS   = MCI_INFO_PARMSA;
-  LPMCI_INFO_PARMS = LPMCI_INFO_PARMSA;
- {$endif}
-  TMCI_INFO_PARMS = MCI_INFO_PARMS;
-
- _MCI_GETDEVCAPS_PARMS = packed Record
-                                 dwCallback: DWORD;
-                                 dwReturn: DWORD;
-                                 dwItem: DWORD;
-				End;
- MCI_GETDEVCAPS_PARMS   = _MCI_GETDEVCAPS_PARMS;
- PMCI_GETDEVCAPS_PARMS  = ^_MCI_GETDEVCAPS_PARMS;
- LPMCI_GETDEVCAPS_PARMS = ^_MCI_GETDEVCAPS_PARMS;
- TMCI_GETDEVCAPS_PARMS  = _MCI_GETDEVCAPS_PARMS;
-
-
-
- _MCI_SYSINFO_PARMSA = packed Record
-                               dwCallback: DWORD;
-                               lpstrReturn: PChar;
-                               dwRetSize: DWORD;
-                               dwNumber: DWORD;
-                               wDeviceType: UINT;
- 			       End;
- MCI_SYSINFO_PARMSA   = _MCI_SYSINFO_PARMSA;
- PMCI_SYSINFO_PARMSA  = ^_MCI_SYSINFO_PARMSA;
- LPMCI_SYSINFO_PARMSA = ^_MCI_SYSINFO_PARMSA;
- TMCI_SYSINFO_PARMSA  = _MCI_SYSINFO_PARMSA;
-
- _MCI_SYSINFO_PARMSW = packed Record
-                               dwCallback: DWORD;
-                               lpstrReturn: LPWSTR;
-                               dwRetSize: DWORD;
-                               dwNumber: DWORD;
-                               wDeviceType: UINT;
-			       End;
- MCI_SYSINFO_PARMSW   = _MCI_SYSINFO_PARMSW;
- PMCI_SYSINFO_PARMSW  = ^_MCI_SYSINFO_PARMSW;
- LPMCI_SYSINFO_PARMSW = ^_MCI_SYSINFO_PARMSW;
- TMCI_SYSINFO_PARMSW  = _MCI_SYSINFO_PARMSW;
- {$ifdef UNICODE}
-  MCI_SYSINFO_PARMS = MCI_SYSINFO_PARMSW;
-  PMCI_SYSINFO_PARMS = PMCI_SYSINFO_PARMSW;
-  LPMCI_SYSINFO_PARMS = LPMCI_SYSINFO_PARMSW;
- {$else}
-  MCI_SYSINFO_PARMS = MCI_SYSINFO_PARMSA;
-  PMCI_SYSINFO_PARMS = PMCI_SYSINFO_PARMSA;
-  LPMCI_SYSINFO_PARMS = LPMCI_SYSINFO_PARMSA;
- {$endif}
- TMCI_SYSINFO_PARMS = MCI_SYSINFO_PARMS;
-
- _MCI_SET_PARMS = packed Record
-                          dwCallback: DWORD;
-                          dwTimeFormat: DWORD;
-                          dwAudio: DWORD;
-			 End;
- MCI_SET_PARMS   = _MCI_SET_PARMS;
- PMCI_SET_PARMS  = ^_MCI_SET_PARMS;
- LPMCI_SET_PARMS = ^_MCI_SET_PARMS;
- TMCI_SET_PARMS  = _MCI_SET_PARMS;
-
- _MCI_BREAK_PARMS = packed Record
-                            dwCallback: DWORD;
-                            nVirtKey: longint;
-                            hwndBreak: HWND;
-			  End;
- MCI_BREAK_PARMS   = _MCI_BREAK_PARMS;
- PMCI_BREAK_PARMS  = ^_MCI_BREAK_PARMS;
- LPMCI_BREAK_PARMS = ^_MCI_BREAK_PARMS;
- TMCI_BREAK_PARMS  = _MCI_BREAK_PARMS;
-
- _MCI_SAVE_PARMSA = packed Record
-                            dwCallback: DWORD;
-                            lpfilename: LPCSTR;
-			   End;
- MCI_SAVE_PARMSA   = _MCI_SAVE_PARMSA;
- PMCI_SAVE_PARMSA  = ^_MCI_SAVE_PARMSA;
- LPMCI_SAVE_PARMSA = ^_MCI_SAVE_PARMSA;
- TMCI_SAVE_PARMSA  = _MCI_SAVE_PARMSA;
- TMCI_SaveParmsA   = TMCI_SAVE_PARMSA;
-
- _MCI_SAVE_PARMSW = packed Record
-                            dwCallback: DWORD;
-                            lpfilename: LPCWSTR;
-			   End;
- MCI_SAVE_PARMSW   = _MCI_SAVE_PARMSW;
- PMCI_SAVE_PARMSW  = ^_MCI_SAVE_PARMSW;
- LPMCI_SAVE_PARMSW = ^_MCI_SAVE_PARMSW;
- TMCI_SAVE_PARMSW  = _MCI_SAVE_PARMSW;
- TMCI_SaveParmsW   = TMCI_SAVE_PARMSW;
-
- {$ifdef UNICODE}
-  MCI_SAVE_PARMS   = MCI_SAVE_PARMSW;
-  PMCI_SAVE_PARMS  = PMCI_SAVE_PARMSW;
-  LPMCI_SAVE_PARMS = LPMCI_SAVE_PARMSW;
- {$else}
-  MCI_SAVE_PARMS   = MCI_SAVE_PARMSA;
-  PMCI_SAVE_PARMS  = PMCI_SAVE_PARMSA;
-  LPMCI_SAVE_PARMS = LPMCI_SAVE_PARMSA;
- {$endif}
-  TMCI_SAVE_PARMS = MCI_SAVE_PARMS;
-  TMCI_SaveParms   = TMCI_SAVE_PARMS;
-
- _MCI_LOAD_PARMSA = packed Record
-                            dwCallback: DWORD;
-                            lpfilename: LPCSTR;
-			 End;
- MCI_LOAD_PARMSA   = _MCI_LOAD_PARMSA;
- PMCI_LOAD_PARMSA  = ^_MCI_LOAD_PARMSA;
- LPMCI_LOAD_PARMSA = ^_MCI_LOAD_PARMSA;
- TMCI_LOAD_PARMSA  = _MCI_LOAD_PARMSA;
-
- _MCI_LOAD_PARMSW  = packed Record
-                            dwCallback: DWORD;
-                            lpfilename: LPCWSTR;
-			   End;
-
- MCI_LOAD_PARMSW   = _MCI_LOAD_PARMSW;
- PMCI_LOAD_PARMSW  = ^_MCI_LOAD_PARMSW;
- LPMCI_LOAD_PARMSW = ^_MCI_LOAD_PARMSW;
- TMCI_LOAD_PARMSW  = _MCI_LOAD_PARMSW;
-
- {$ifdef UNICODE}
-  MCI_LOAD_PARMS   = MCI_LOAD_PARMSW;
-  PMCI_LOAD_PARMS  = PMCI_LOAD_PARMSW;
-  LPMCI_LOAD_PARMS = LPMCI_LOAD_PARMSW;
- {$else}
-  MCI_LOAD_PARMS   = MCI_LOAD_PARMSA;
-  PMCI_LOAD_PARMS  = PMCI_LOAD_PARMSA;
-  LPMCI_LOAD_PARMS = LPMCI_LOAD_PARMSA;
- {$endif}
- TMCI_LOAD_PARMS = MCI_LOAD_PARMS;
-
- _MCI_RECORD_PARMS = packed Record
-                             dwCallback: DWORD;
-                             dwFrom: DWORD;
-                             dwTo: DWORD;
-			    End;
- MCI_RECORD_PARMS   = _MCI_RECORD_PARMS;
- LPMCI_RECORD_PARMS = ^_MCI_RECORD_PARMS;
- TMCI_RECORD_PARMS  = _MCI_RECORD_PARMS;
-
- _MCI_VD_PLAY_PARMS = packed Record
-                              dwCallback: DWORD;
-                              dwFrom: DWORD;
-                              dwTo: DWORD;
-                              dwSpeed: DWORD;
-			     End;
- MCI_VD_PLAY_PARMS   = _MCI_VD_PLAY_PARMS;
- PMCI_VD_PLAY_PARMS  = ^_MCI_VD_PLAY_PARMS;
- LPMCI_VD_PLAY_PARMS = ^_MCI_VD_PLAY_PARMS;
- TMCI_VD_PLAY_PARMS  = _MCI_VD_PLAY_PARMS;
-
- _MCI_VD_STEP_PARMS  = packed Record
-                              dwCallback: DWORD;
-                              dwFrames: DWORD;
-			    End;
- MCI_VD_STEP_PARMS     = _MCI_VD_STEP_PARMS;
- PMCI_VD_STEP_PARMS    = ^_MCI_VD_STEP_PARMS;
- LPMCI_VD_STEP_PARMS   = ^_MCI_VD_STEP_PARMS;
-
- _MCI_VD_ESCAPE_PARMSA = packed Record
-                                 dwCallback: DWORD;
-                                 lpstrCommand: LPCSTR;
-				End;
- MCI_VD_ESCAPE_PARMSA   = _MCI_VD_ESCAPE_PARMSA;
- PMCI_VD_ESCAPE_PARMSA  = ^_MCI_VD_ESCAPE_PARMSA;
- LPMCI_VD_ESCAPE_PARMSA = ^_MCI_VD_ESCAPE_PARMSA;
- TMCI_VD_ESCAPE_PARMSA  = _MCI_VD_ESCAPE_PARMSA;
-
-_MCI_VD_ESCAPE_PARMSW   = packed Record
-                                 dwCallback: DWORD;
-                                 lpstrCommand: LPCWSTR;
-				 End;
- MCI_VD_ESCAPE_PARMSW   = _MCI_VD_ESCAPE_PARMSW;
- PMCI_VD_ESCAPE_PARMSW  = ^_MCI_VD_ESCAPE_PARMSW;
- LPMCI_VD_ESCAPE_PARMSW = ^_MCI_VD_ESCAPE_PARMSW;
- TMCI_VD_ESCAPE_PARMSW  = _MCI_VD_ESCAPE_PARMSW;
- {$ifdef UNICODE}
-  MCI_VD_ESCAPE_PARMS   = MCI_VD_ESCAPE_PARMSW;
-  PMCI_VD_ESCAPE_PARMS  = PMCI_VD_ESCAPE_PARMSW;
-  LPMCI_VD_ESCAPE_PARMS = LPMCI_VD_ESCAPE_PARMSW;
- {$else}
-  MCI_VD_ESCAPE_PARMS   = MCI_VD_ESCAPE_PARMSA;
-  PMCI_VD_ESCAPE_PARMS  = PMCI_VD_ESCAPE_PARMSA;
-  LPMCI_VD_ESCAPE_PARMS = LPMCI_VD_ESCAPE_PARMSA;
- {$endif}
- TMCI_VD_ESCAPE_PARMS   = MCI_VD_ESCAPE_PARMS;
-
- _MCI_WAVE_OPEN_PARMSA  = packed Record
-                                 dwCallback: DWORD;
-                                 wDeviceID: MCIDEVICEID;
-                                 lpstrDeviceType: LPCSTR;
-                                 lpstrElementName: LPCSTR;
-                                 lpstrAlias: LPCSTR;
-                                 dwBufferSeconds: DWORD;
-				End;
- MCI_WAVE_OPEN_PARMSA   = _MCI_WAVE_OPEN_PARMSA;
- PMCI_WAVE_OPEN_PARMSA  = ^_MCI_WAVE_OPEN_PARMSA;
- LPMCI_WAVE_OPEN_PARMSA = ^_MCI_WAVE_OPEN_PARMSA;
- TMCI_WAVE_OPEN_PARMSA  = _MCI_WAVE_OPEN_PARMSA;
-
- _MCI_WAVE_OPEN_PARMSW  = packed Record
-                                 dwCallback: DWORD;
-                                 wDeviceID: MCIDEVICEID;
-                                 lpstrDeviceType: LPCWSTR;
-                                 lpstrElementName: LPCWSTR;
-                                 lpstrAlias: LPCWSTR;
-                                 dwBufferSeconds: DWORD;
-				End;
- MCI_WAVE_OPEN_PARMSW   = _MCI_WAVE_OPEN_PARMSW;
- PMCI_WAVE_OPEN_PARMSW  = ^_MCI_WAVE_OPEN_PARMSW;
- LPMCI_WAVE_OPEN_PARMSW = ^_MCI_WAVE_OPEN_PARMSW;
- TMCI_WAVE_OPEN_PARMSW  = _MCI_WAVE_OPEN_PARMSW;
- {$ifdef UNICODE}
-  MCI_WAVE_OPEN_PARMS   = MCI_WAVE_OPEN_PARMSW;
-  PMCI_WAVE_OPEN_PARMS  = PMCI_WAVE_OPEN_PARMSW;
-  LPMCI_WAVE_OPEN_PARMS = LPMCI_WAVE_OPEN_PARMSW;
- {$else}
-  MCI_WAVE_OPEN_PARMS = MCI_WAVE_OPEN_PARMSA;
-  PMCI_WAVE_OPEN_PARMS = PMCI_WAVE_OPEN_PARMSA;
-  LPMCI_WAVE_OPEN_PARMS = LPMCI_WAVE_OPEN_PARMSA;
- {$endif}
- TMCI_WAVE_OPEN_PARMS   = MCI_WAVE_OPEN_PARMS;
-
- _MCI_WAVE_DELETE_PARMS = packed Record
-                                  dwCallback: DWORD;
-                                  dwFrom: DWORD;
-                                  dwTo: DWORD;
-				End;
- MCI_WAVE_DELETE_PARMS = _MCI_WAVE_DELETE_PARMS;
- PMCI_WAVE_DELETE_PARMS = ^_MCI_WAVE_DELETE_PARMS;
- LPMCI_WAVE_DELETE_PARMS = ^_MCI_WAVE_DELETE_PARMS;
- TMCI_WAVE_DELETE_PARMS = _MCI_WAVE_DELETE_PARMS;
-
- _MCI_WAVE_SET_PARMS = packed Record
-                               dwCallback: DWORD;
-                               dwTimeFormat: DWORD;
-                               dwAudio: DWORD;
-                               wInput: UINT;
-                               wOutput: UINT;
-                               wFormatTag: WORD;
-                               wReserved2: WORD;
-                               nChannels: WORD;
-                               wReserved3: WORD;
-                               nSamplesPerSec: DWORD;
-                               nAvgBytesPerSec: DWORD;
-                               nBlockAlign: WORD;
-                               wReserved4: WORD;
-                               wBitsPerSample: WORD;
-                               wReserved5: WORD;
-				End;
- MCI_WAVE_SET_PARMS   = _MCI_WAVE_SET_PARMS;
- PMCI_WAVE_SET_PARMS  = ^_MCI_WAVE_SET_PARMS;
- LPMCI_WAVE_SET_PARMS = ^_MCI_WAVE_SET_PARMS;
- TMCI_WAVE_SET_PARMS  = _MCI_WAVE_SET_PARMS;
-
- _MCI_SEQ_SET_PARMS  = packed Record
-                              dwCallback: DWORD;
-                              dwTimeFormat: DWORD;
-                              dwAudio: DWORD;
-                              dwTempo: DWORD;
-                              dwPort: DWORD;
-                              dwSlave: DWORD;
-                              dwMaster: DWORD;
-                              dwOffset: DWORD;
-			     End;
- MCI_SEQ_SET_PARMS   = _MCI_SEQ_SET_PARMS;
- PMCI_SEQ_SET_PARMS  = ^_MCI_SEQ_SET_PARMS;
- LPMCI_SEQ_SET_PARMS = ^_MCI_SEQ_SET_PARMS;
- TMCI_SEQ_SET_PARMS  = _MCI_SEQ_SET_PARMS;
-
- _MCI_ANIM_OPEN_PARMSA = packed Record
-                                 dwCallback: DWORD;
-                                 wDeviceID: MCIDEVICEID;
-                                 lpstrDeviceType: LPCSTR;
-                                 lpstrElementName: LPCSTR;
-                                 lpstrAlias: LPCSTR;
-                                 dwStyle: DWORD;
-                                 hWndParent: HWND;
-				End;
- MCI_ANIM_OPEN_PARMSA   = _MCI_ANIM_OPEN_PARMSA;
- PMCI_ANIM_OPEN_PARMSA  = ^_MCI_ANIM_OPEN_PARMSA;
- LPMCI_ANIM_OPEN_PARMSA = ^_MCI_ANIM_OPEN_PARMSA;
- TMCI_ANIM_OPEN_PARMSA  = _MCI_ANIM_OPEN_PARMSA;
-
- _MCI_ANIM_OPEN_PARMSW = packed Record
-                                 dwCallback: DWORD;
-                                 wDeviceID: MCIDEVICEID;
-                                 lpstrDeviceType: LPCWSTR;
-                                 lpstrElementName: LPCWSTR;
-                                 lpstrAlias: LPCWSTR;
-                                 dwStyle: DWORD;
-                                 hWndParent: HWND;
-				End;
- MCI_ANIM_OPEN_PARMSW = _MCI_ANIM_OPEN_PARMSW;
- PMCI_ANIM_OPEN_PARMSW = ^_MCI_ANIM_OPEN_PARMSW;
- LPMCI_ANIM_OPEN_PARMSW = ^_MCI_ANIM_OPEN_PARMSW;
- {$ifdef UNICODE}
-  MCI_ANIM_OPEN_PARMS = MCI_ANIM_OPEN_PARMSW;
-  PMCI_ANIM_OPEN_PARMS = PMCI_ANIM_OPEN_PARMSW;
-  LPMCI_ANIM_OPEN_PARMS = LPMCI_ANIM_OPEN_PARMSW;
- {$else}
-  MCI_ANIM_OPEN_PARMS = MCI_ANIM_OPEN_PARMSA;
-  PMCI_ANIM_OPEN_PARMS = PMCI_ANIM_OPEN_PARMSA;
-  LPMCI_ANIM_OPEN_PARMS = LPMCI_ANIM_OPEN_PARMSA;
- {$endif}
- TMCI_ANIM_OPEN_PARMS = MCI_ANIM_OPEN_PARMS;
-
- _MCI_ANIM_WINDOW_PARMSW = packed Record
-                                   dwCallback: DWORD;
-                                   Wnd: HWND;
-                                   nCmdShow: UINT;
-                                   lpstrText: LPCWSTR;
-				End;
- MCI_ANIM_WINDOW_PARMSW   = _MCI_ANIM_WINDOW_PARMSW;
- PMCI_ANIM_WINDOW_PARMSW  = ^_MCI_ANIM_WINDOW_PARMSW;
- LPMCI_ANIM_WINDOW_PARMSW = ^_MCI_ANIM_WINDOW_PARMSW;
- TMCI_ANIM_WINDOW_PARMSW  = _MCI_ANIM_WINDOW_PARMSW;
-
- _MCI_ANIM_STEP_PARMS = packed Record
-                                dwCallback: DWORD;
-                                dwFrames: DWORD;
-				End;
- MCI_ANIM_STEP_PARMS   = _MCI_ANIM_STEP_PARMS;
- PMCI_ANIM_STEP_PARMS  = ^_MCI_ANIM_STEP_PARMS;
- LPMCI_ANIM_STEP_PARMS = ^_MCI_ANIM_STEP_PARMS;
- TMCI_ANIM_STEP_PARMS  = _MCI_ANIM_STEP_PARMS;
-
- _MCI_ANIM_WINDOW_PARMSA = packed Record
-                                   dwCallback: DWORD;
-                                   Wnd: HWND;
-                                   nCmdShow: UINT;
-                                   lpstrText: LPCSTR;
-				  End;
- MCI_ANIM_WINDOW_PARMSA   = _MCI_ANIM_WINDOW_PARMSA;
- PMCI_ANIM_WINDOW_PARMSA  = ^_MCI_ANIM_WINDOW_PARMSA;
- LPMCI_ANIM_WINDOW_PARMSA = ^_MCI_ANIM_WINDOW_PARMSA;
- TMCI_ANIM_WINDOW_PARMSA  = _MCI_ANIM_WINDOW_PARMSA;
-_MCI_ANIM_PLAY_PARMS = packed Record
-                                dwCallback: DWORD;
-                                dwFrom: DWORD;
-                                dwTo: DWORD;
-                                dwSpeed: DWORD;
-				End;
- MCI_ANIM_PLAY_PARMS   = _MCI_ANIM_PLAY_PARMS;
- PMCI_ANIM_PLAY_PARMS  = ^_MCI_ANIM_PLAY_PARMS;
- LPMCI_ANIM_PLAY_PARMS = ^_MCI_ANIM_PLAY_PARMS;
- {$ifdef UNICODE}
-  MCI_ANIM_WINDOW_PARMS   = MCI_ANIM_WINDOW_PARMSW;
-  PMCI_ANIM_WINDOW_PARMS  = PMCI_ANIM_WINDOW_PARMSW;
-  LPMCI_ANIM_WINDOW_PARMS = LPMCI_ANIM_WINDOW_PARMSW;
- {$else}
-  MCI_ANIM_WINDOW_PARMS   = MCI_ANIM_WINDOW_PARMSA;
-  PMCI_ANIM_WINDOW_PARMS  = PMCI_ANIM_WINDOW_PARMSA;
-  LPMCI_ANIM_WINDOW_PARMS = LPMCI_ANIM_WINDOW_PARMSA;
- {$endif}
-  TMCI_ANIM_WINDOW_PARMS  = MCI_Anim_Window_Parms;
- _MCI_ANIM_RECT_PARMS  = packed Record
-                                dwCallback: DWORD;
-                                rc: TRECT;
-			       End;
- MCI_ANIM_RECT_PARMS   = _MCI_ANIM_RECT_PARMS;
- PMCI_ANIM_RECT_PARMS  = ^MCI_ANIM_RECT_PARMS;
- LPMCI_ANIM_RECT_PARMS = ^MCI_ANIM_RECT_PARMS;
- TMCI_ANIM_RECT_PARMS  = _MCI_ANIM_RECT_PARMS;
-
- _MCI_ANIM_UPDATE_PARMS = packed Record
-                                  dwCallback: DWORD;
-                                  rc: TRECT;
-                                  hDC: HDC;
-				End;
- MCI_ANIM_UPDATE_PARMS   = _MCI_ANIM_UPDATE_PARMS;
- PMCI_ANIM_UPDATE_PARMS  = ^_MCI_ANIM_UPDATE_PARMS;
- LPMCI_ANIM_UPDATE_PARMS = ^_MCI_ANIM_UPDATE_PARMS;
- TMCI_ANIM_UPDATE_PARMS  = _MCI_ANIM_UPDATE_PARMS;
-
- _MCI_OVLY_OPEN_PARMSA = packed Record
-                                 dwCallback: DWORD;
-                                 wDeviceID: MCIDEVICEID;
-                                 lpstrDeviceType: LPCSTR;
-                                 lpstrElementName: LPCSTR;
-                                 lpstrAlias: LPCSTR;
-                                 dwStyle: DWORD;
-                                 hWndParent: HWND;
-				End;
- MCI_OVLY_OPEN_PARMSA   = _MCI_OVLY_OPEN_PARMSA;
- PMCI_OVLY_OPEN_PARMSA  = ^_MCI_OVLY_OPEN_PARMSA;
- LPMCI_OVLY_OPEN_PARMSA = ^_MCI_OVLY_OPEN_PARMSA;
- TMCI_OVLY_OPEN_PARMSA  = _MCI_OVLY_OPEN_PARMSA;
-
- _MCI_OVLY_OPEN_PARMSW = packed Record
-                                 dwCallback: DWORD;
-                                 wDeviceID: MCIDEVICEID;
-                                 lpstrDeviceType: LPCWSTR;
-                                 lpstrElementName: LPCWSTR;
-                                 lpstrAlias: LPCWSTR;
-                                 dwStyle: DWORD;
-                                 hWndParent: HWND;
-				End;
- MCI_OVLY_OPEN_PARMSW   = _MCI_OVLY_OPEN_PARMSW;
- PMCI_OVLY_OPEN_PARMSW  = ^_MCI_OVLY_OPEN_PARMSW;
- LPMCI_OVLY_OPEN_PARMSW = ^_MCI_OVLY_OPEN_PARMSW;
- TMCI_OVLY_OPEN_PARMSW  = _MCI_OVLY_OPEN_PARMSW;
-
- {$ifdef UNICODE}
-  MCI_OVLY_OPEN_PARMS   = MCI_OVLY_OPEN_PARMSW;
-  PMCI_OVLY_OPEN_PARMS  = PMCI_OVLY_OPEN_PARMSW;
-  LPMCI_OVLY_OPEN_PARMS = LPMCI_OVLY_OPEN_PARMSW;
- {$else}
-  MCI_OVLY_OPEN_PARMS   = MCI_OVLY_OPEN_PARMSA;
-  PMCI_OVLY_OPEN_PARMS  = PMCI_OVLY_OPEN_PARMSA;
-  LPMCI_OVLY_OPEN_PARMS = LPMCI_OVLY_OPEN_PARMSA;
- {$endif}
- TMCI_OVLY_OPEN_PARMS   = MCI_OVLY_OPEN_PARMS;
-
-_MCI_OVLY_WINDOW_PARMSA = packed Record
-                                   dwCallback: DWORD;
-                                   hWnd: HWND;
-                                   nCmdShow: UINT;
-                                   lpstrText: LPCSTR;
- 				End;
- MCI_OVLY_WINDOW_PARMSA   = _MCI_OVLY_WINDOW_PARMSA;
- PMCI_OVLY_WINDOW_PARMSA  = ^_MCI_OVLY_WINDOW_PARMSA;
- LPMCI_OVLY_WINDOW_PARMSA = ^_MCI_OVLY_WINDOW_PARMSA;
- TMCI_OVLY_WINDOW_PARMSA   = _MCI_OVLY_WINDOW_PARMSA;
-
- _MCI_OVLY_WINDOW_PARMSW = packed Record
-                                   dwCallback: DWORD;
-                                   hWnd: HWND;
-                                   nCmdShow: UINT;
-                                   lpstrText: LPCWSTR;
-				End;
- MCI_OVLY_WINDOW_PARMSW   = _MCI_OVLY_WINDOW_PARMSW;
- PMCI_OVLY_WINDOW_PARMSW  = ^_MCI_OVLY_WINDOW_PARMSW;
- LPMCI_OVLY_WINDOW_PARMSW = ^_MCI_OVLY_WINDOW_PARMSW;
- TMCI_OVLY_WINDOW_PARMSW  = _MCI_OVLY_WINDOW_PARMSW;
-
- {$ifdef UNICODE}
-  MCI_OVLY_WINDOW_PARMS   = MCI_OVLY_WINDOW_PARMSW;
-  PMCI_OVLY_WINDOW_PARMS  = PMCI_OVLY_WINDOW_PARMSW;
-  LPMCI_OVLY_WINDOW_PARMS = LPMCI_OVLY_WINDOW_PARMSW;
- {$else}
-  MCI_OVLY_WINDOW_PARMS   = MCI_OVLY_WINDOW_PARMSA;
-  PMCI_OVLY_WINDOW_PARMS  = PMCI_OVLY_WINDOW_PARMSA;
-  LPMCI_OVLY_WINDOW_PARMS = LPMCI_OVLY_WINDOW_PARMSA;
- {$endif}
- TMCI_OVLY_WINDOW_PARMS   = MCI_OVLY_WINDOW_PARMSW;
-
- _MCI_OVLY_RECT_PARMS = packed Record
-                                dwCallback: DWORD;
-                                rc: TRECT;
-				End;
- MCI_OVLY_RECT_PARMS   = _MCI_OVLY_RECT_PARMS;
- PMCI_OVLY_RECT_PARMS  = ^_MCI_OVLY_RECT_PARMS;
- LPMCI_OVLY_RECT_PARMS = ^_MCI_OVLY_RECT_PARMS;
- TMCI_OVLY_RECT_PARMS  = _MCI_OVLY_RECT_PARMS;
-
- _MCI_OVLY_SAVE_PARMSA = packed Record
-                                 dwCallback: DWORD;
-                                 lpfilename: LPCSTR;
-                                 rc: TRECT;
-				End;
- MCI_OVLY_SAVE_PARMSA   = _MCI_OVLY_SAVE_PARMSA;
- PMCI_OVLY_SAVE_PARMSA  = ^_MCI_OVLY_SAVE_PARMSA;
- LPMCI_OVLY_SAVE_PARMSA = ^_MCI_OVLY_SAVE_PARMSA;
- TMCI_OVLY_SAVE_PARMSA  = _MCI_OVLY_SAVE_PARMSA;
-
- _MCI_OVLY_SAVE_PARMSW = packed Record
-                                 dwCallback: DWORD;
-                                 lpfilename: LPCWSTR;
-                                 rc: TRECT;
-				End;
- MCI_OVLY_SAVE_PARMSW   = _MCI_OVLY_SAVE_PARMSW;
- PMCI_OVLY_SAVE_PARMSW  = ^_MCI_OVLY_SAVE_PARMSW;
- LPMCI_OVLY_SAVE_PARMSW = ^_MCI_OVLY_SAVE_PARMSW;
- TMCI_OVLY_SAVE_PARMSW  = _MCI_OVLY_SAVE_PARMSW;
-
- {$ifdef UNICODE}
-  MCI_OVLY_SAVE_PARMS   = MCI_OVLY_SAVE_PARMSW;
-  PMCI_OVLY_SAVE_PARMS  = PMCI_OVLY_SAVE_PARMSW;
-  LPMCI_OVLY_SAVE_PARMS = LPMCI_OVLY_SAVE_PARMSW;
- {$else}
-  MCI_OVLY_SAVE_PARMS   = MCI_OVLY_SAVE_PARMSA;
-  PMCI_OVLY_SAVE_PARMS  = PMCI_OVLY_SAVE_PARMSA;
-  LPMCI_OVLY_SAVE_PARMS = LPMCI_OVLY_SAVE_PARMSA;
- {$endif}
- TMCI_OVLY_SAVE_PARMS = MCI_OVLY_SAVE_PARMS;
-
- _MCI_OVLY_LOAD_PARMSA = packed Record
-                                 dwCallback: DWORD;
-                                 lpfilename: LPCSTR;
-                                 rc: TRECT;
-				End;
- MCI_OVLY_LOAD_PARMSA   = _MCI_OVLY_LOAD_PARMSA;
- PMCI_OVLY_LOAD_PARMSA  = ^_MCI_OVLY_LOAD_PARMSA;
- LPMCI_OVLY_LOAD_PARMSA = ^_MCI_OVLY_LOAD_PARMSA;
- TMCI_OVLY_LOAD_PARMSA  = _MCI_OVLY_LOAD_PARMSA;
- _MCI_OVLY_LOAD_PARMSW = packed Record
-                                 dwCallback: DWORD;
-                                 lpfilename: LPCWSTR;
-                                 rc: TRECT;
-				End;
- MCI_OVLY_LOAD_PARMSW   = _MCI_OVLY_LOAD_PARMSW;
- PMCI_OVLY_LOAD_PARMSW  = ^_MCI_OVLY_LOAD_PARMSW;
- LPMCI_OVLY_LOAD_PARMSW = ^_MCI_OVLY_LOAD_PARMSW;
- TMCI_OVLY_LOAD_PARMSW  = _MCI_OVLY_LOAD_PARMSW;
-
- {$ifdef UNICODE}
-  MCI_OVLY_LOAD_PARMS   = MCI_OVLY_LOAD_PARMSW;
-  PMCI_OVLY_LOAD_PARMS  = PMCI_OVLY_LOAD_PARMSW;
-  LPMCI_OVLY_LOAD_PARMS = LPMCI_OVLY_LOAD_PARMSW;
- {$else}
-  MCI_OVLY_LOAD_PARMS   = MCI_OVLY_LOAD_PARMSA;
-  PMCI_OVLY_LOAD_PARMS  = PMCI_OVLY_LOAD_PARMSA;
-  LPMCI_OVLY_LOAD_PARMS = LPMCI_OVLY_LOAD_PARMSA;
- {$endif}
- TMCI_OVLY_LOAD_PARMS = MCI_OVLY_LOAD_PARMS;
-
-Type // Delphi compatibility
-//  TMMIOInfo = _MMIOINFO;
-//  TMMCKInfo = _MMCKINFO;
-  pcmwaveformat_tag = PCMWAVEFORMAT;
-//  TPCMWaveFormat = pcmwaveformat_tag;
-
-
-(*////////////////////////////////////////////////////////*)
-(* Function prototypes*)
-(*////////////////////////////////////////////////////////*)
-Function mmioStringToFOURCCA(x1: LPCSTR; x2: UINT): FOURCC;stdcall; external 'winmm.dll' name 'mmioStringToFOURCCA';
-Function mmioStringToFOURCCW(x1: LPCWSTR; x2: UINT): FOURCC;stdcall; external 'winmm.dll' name 'mmioStringToFOURCCW';
-Function mmioStringToFOURCC(x1: PChar; x2: UINT): FOURCC;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mmioStringToFOURCCW'
- {$else}'mmioStringToFOURCCA'
- {$endif};
-Function mmioInstallIOProcA(x1: FOURCC; x2: LPMMIOPROC; x3: DWORD): LPMMIOPROC;stdcall; external 'winmm.dll' name 'mmioInstallIOProcA';
-Function mmioInstallIOProcW(x1: FOURCC; x2: LPMMIOPROC; x3: DWORD): LPMMIOPROC;stdcall; external 'winmm.dll' name 'mmioInstallIOProcW';
-Function mmioInstallIOProc(x1: FOURCC; x2: LPMMIOPROC; x3: DWORD): LPMMIOPROC;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mmioInstallIOProcW'
- {$else}'mmioInstallIOProcA'
- {$endif};
-Function mmioOpenA(x1: LPSTR; x2: LPMMIOINFO; x3: DWORD): HMMIO;stdcall; external 'winmm.dll' name 'mmioOpenA';
-Function mmioOpenW(x1: LPWSTR; x2: LPMMIOINFO; x3: DWORD): HMMIO;stdcall; external 'winmm.dll' name 'mmioOpenW';
-Function mmioOpen(x1: PChar; x2: LPMMIOINFO; x3: DWORD): HMMIO;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mmioOpenW'
- {$else}'mmioOpenA'
- {$endif};
-Function mmioRenameA(x1: LPCSTR; x2: LPCSTR; x3: LPCMMIOINFO; x4: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'mmioRenameA';
-Function mmioRenameW(x1: LPCWSTR; x2: LPCWSTR; x3: LPCMMIOINFO; x4: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'mmioRenameW';
-Function mmioRename(x1: PChar; x2: PChar; x3: LPCMMIOINFO; x4: DWORD): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mmioRenameW'
- {$else}'mmioRenameA'
- {$endif};
-Function mmioClose(x1: HMMIO; x2: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mmioClose';
-Function mmioRead(x1: HMMIO; x2: HPSTR; x3: LONG): LONG;stdcall; external 'winmm.dll' name 'mmioRead';
-Function mmioWrite(x1: HMMIO; x2: pchar; x3: LONG): LONG;stdcall; external 'winmm.dll' name 'mmioWrite';
-Function mmioSeek(x1: HMMIO; x2: LONG; x3: WINT): LONG;stdcall; external 'winmm.dll' name 'mmioSeek';
-Function mmioGetInfo(x1: HMMIO; x2: LPMMIOINFO; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mmioGetInfo';
-Function mmioSetInfo(x1: HMMIO; x2: LPCMMIOINFO; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mmioSetInfo';
-Function mmioSetBuffer(x1: HMMIO; x2: LPSTR; x3: LONG; x4: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mmioSetBuffer';
-Function mmioFlush(x1: HMMIO; x2: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mmioFlush';
-Function mmioAdvance(x1: HMMIO; x2: LPMMIOINFO; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mmioAdvance';
-Function mmioSendMessage(x1: HMMIO; x2: UINT; x3: LPARAM; x4: LPARAM): LRESULT;stdcall; external 'winmm.dll' name 'mmioSendMessage';
-Function mmioDescend(x1: HMMIO; x2: LPMMCKINFO; x3: PMMCKINFO; x4: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mmioDescend';
-Function mmioAscend(x1: HMMIO; x2: LPMMCKINFO; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mmioAscend';
-Function mmioCreateChunk(x1: HMMIO; x2: LPMMCKINFO; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mmioCreateChunk';
-Function mciSendCommandA(x1: MCIDEVICEID; x2: UINT; x3: DWORD; x4: DWORD): MCIERROR;stdcall; external 'winmm.dll' name 'mciSendCommandA';
-Function mciSendCommandW(x1: MCIDEVICEID; x2: UINT; x3: DWORD; x4: DWORD): MCIERROR;stdcall; external 'winmm.dll' name 'mciSendCommandW';
-Function mciSendCommand(x1: MCIDEVICEID; x2: UINT; x3: DWORD; x4: DWORD): MCIERROR;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mciSendCommandW' {$else}'mciSendCommandA' {$endif};
-Function mciSendStringA(x1: LPCSTR; x2: LPSTR; x3: UINT; x4: HWND): MCIERROR;stdcall; external 'winmm.dll' name 'mciSendStringA';
-Function mciSendStringW(x1: LPCWSTR; x2: LPWSTR; x3: UINT; x4: HWND): MCIERROR;stdcall; external 'winmm.dll' name 'mciSendStringW';
-Function mciSendString(x1: PChar; x2: PChar; x3: UINT; x4: HWND): MCIERROR;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mciSendStringW' {$else}'mciSendStringA' {$endif};
-Function mciGetDeviceIDA(x1: LPCSTR): MCIDEVICEID;stdcall; external 'winmm.dll' name 'mciGetDeviceIDA';
-Function mciGetDeviceIDW(x1: LPCWSTR): MCIDEVICEID;stdcall; external 'winmm.dll' name 'mciGetDeviceIDW';
-Function mciGetDeviceID(x1: PChar): MCIDEVICEID;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mciGetDeviceIDW' {$else}'mciGetDeviceIDA' {$endif};
-Function mciGetDeviceIDFromElementIDA(x1: DWORD; x2: LPCSTR): MCIDEVICEID;stdcall; external 'winmm.dll' name 'mciGetDeviceIDFromElementIDA';
-Function mciGetDeviceIDFromElementIDW(x1: DWORD; x2: LPCWSTR): MCIDEVICEID;stdcall; external 'winmm.dll' name 'mciGetDeviceIDFromElementIDW';
-Function mciGetDeviceIDFromElementID(x1: DWORD; x2: PChar): MCIDEVICEID;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mciGetDeviceIDFromElementIDW' {$else}'mciGetDeviceIDFromElementIDA' {$endif};
-Function mciGetErrorStringA(x1: MCIERROR; x2: LPSTR; x3: UINT): BOOL;stdcall; external 'winmm.dll' name 'mciGetErrorStringA';
-Function mciGetErrorStringW(x1: MCIERROR; x2: LPWSTR; x3: UINT): BOOL;stdcall; external 'winmm.dll' name 'mciGetErrorStringW';
-Function mciGetErrorString(x1: MCIERROR; x2: PChar; x3: UINT): BOOL;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mciGetErrorStringW' {$else}'mciGetErrorStringA' {$endif};
-Function mciSetYieldProc(x1: MCIDEVICEID; x2: YIELDPROC; x3: DWORD): BOOL;stdcall; external 'winmm.dll' name 'mciSetYieldProc';
-Function mciGetCreatorTask(x1: MCIDEVICEID): HTASK;stdcall; external 'winmm.dll' name 'mciGetCreatorTask';
-Function mciGetYieldProc(x1: MCIDEVICEID; x2: LPDWORD): YIELDPROC;stdcall; external 'winmm.dll' name 'mciGetYieldProc';
-Function mciExecute(x1: LPCSTR): BOOL;stdcall; external 'winmm.dll' name 'mciExecute';
-Function joyGetPos(x1: UINT; x2: LPJOYINFO): MMRESULT;stdcall; external 'winmm.dll' name 'joyGetPos';
-Function joyGetPosEx(x1: UINT; x2: LPJOYINFOEX): MMRESULT;stdcall; external 'winmm.dll' name 'joyGetPosEx';
-Function joyGetThreshold(x1: UINT; x2: LPUINT): MMRESULT;stdcall; external 'winmm.dll' name 'joyGetThreshold';
-Function joyReleaseCapture(x1: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'joyReleaseCapture';
-Function joySetCapture(x1: HWND; x2: UINT; x3: UINT; x4: BOOL): MMRESULT;stdcall; external 'winmm.dll' name 'joySetCapture';
-Function joySetThreshold(x1: UINT; x2: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'joySetThreshold';
-Function waveOutGetNumDevs: UINT;stdcall; external 'winmm.dll' name 'waveOutGetNumDevs';
-Function waveOutGetDevCapsA(x1: UINT; x2: LPWAVEOUTCAPSA; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutGetDevCapsA';
-Function waveOutGetDevCapsW(x1: UINT; x2: LPWAVEOUTCAPSW; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutGetDevCapsW';
-Function waveOutGetDevCaps(x1: UINT; x2: LPWAVEOUTCAPS; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'waveOutGetDevCapsW' {$else}'waveOutGetDevCapsA' {$endif};
-Function waveOutGetVolume(x1: HWAVEOUT; x2: LPDWORD): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutGetVolume';
-Function waveOutSetVolume(x1: HWAVEOUT; x2: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutSetVolume';
-Function waveOutGetErrorTextA(x1: MMRESULT; x2: LPSTR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutGetErrorTextA';
-Function waveOutGetErrorTextW(x1: MMRESULT; x2: LPWSTR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutGetErrorTextW';
-Function waveOutGetErrorText(x1: MMRESULT; x2: PChar; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'waveOutGetErrorTextW' {$else}'waveOutGetErrorTextA' {$endif};
-Function waveOutOpen(x1: LPHWAVEOUT; x2: UINT; x3: LPCWAVEFORMATEX; x4: DWORD; x5: DWORD;
-                     x6: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutOpen';
-Function waveOutClose(x1: HWAVEOUT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutClose';
-Function waveOutPrepareHeader(x1: HWAVEOUT; x2: LPWAVEHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutPrepareHeader';
-Function waveOutUnprepareHeader(x1: HWAVEOUT; x2: LPWAVEHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutUnprepareHeader';
-Function waveOutWrite(x1: HWAVEOUT; x2: LPWAVEHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutWrite';
-Function waveOutPause(x1: HWAVEOUT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutPause';
-Function waveOutRestart(x1: HWAVEOUT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutRestart';
-Function waveOutReset(x1: HWAVEOUT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutReset';
-Function waveOutBreakLoop(x1: HWAVEOUT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutBreakLoop';
-Function waveOutGetPosition(x1: HWAVEOUT; x2: LPMMTIME; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutGetPosition';
-Function waveOutGetPitch(x1: HWAVEOUT; x2: LPDWORD): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutGetPitch';
-Function waveOutSetPitch(x1: HWAVEOUT; x2: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutSetPitch';
-Function waveOutGetPlaybackRate(x1: HWAVEOUT; x2: LPDWORD): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutGetPlaybackRate';
-Function waveOutSetPlaybackRate(x1: HWAVEOUT; x2: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutSetPlaybackRate';
-Function waveOutGetID(x1: HWAVEOUT; x2: LPUINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutGetID';
-Function waveOutMessage(x1: HWAVEOUT; x2: UINT; x3: DWORD; x4: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'waveOutMessage';
-Function waveInGetNumDevs: UINT;stdcall; external 'winmm.dll' name 'waveInGetNumDevs';
-Function waveInGetDevCapsA(x1: UINT; x2: LPWAVEINCAPSA; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveInGetDevCapsA';
-Function waveInGetDevCapsW(x1: UINT; x2: LPWAVEINCAPSW; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveInGetDevCapsW';
-Function waveInGetDevCaps(x1: UINT; x2: LPWAVEINCAPS; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'waveInGetDevCapsW' {$else}'waveInGetDevCapsA' {$endif};
-Function waveInGetErrorTextA(x1: MMRESULT; x2: LPSTR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveInGetErrorTextA';
-Function waveInGetErrorTextW(x1: MMRESULT; x2: LPWSTR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveInGetErrorTextW';
-Function waveInGetErrorText(x1: MMRESULT; x2: PChar; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'waveInGetErrorTextW' {$else}'waveInGetErrorTextA' {$endif};
-Function waveInOpen(x1: LPHWAVEIN; x2: UINT; x3: LPCWAVEFORMATEX; x4: DWORD; x5: DWORD; x6                    : DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'waveInOpen';
-Function waveInClose(x1: HWAVEIN): MMRESULT;stdcall; external 'winmm.dll' name 'waveInClose';
-Function waveInPrepareHeader(x1: HWAVEIN; x2: LPWAVEHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveInPrepareHeader';
-Function waveInUnprepareHeader(x1: HWAVEIN; x2: LPWAVEHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveInUnprepareHeader';
-Function waveInAddBuffer(x1: HWAVEIN; x2: LPWAVEHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveInAddBuffer';
-Function waveInStart(x1: HWAVEIN): MMRESULT;stdcall; external 'winmm.dll' name 'waveInStart';
-Function waveInStop(x1: HWAVEIN): MMRESULT;stdcall; external 'winmm.dll' name 'waveInStop';
-Function waveInReset(x1: HWAVEIN): MMRESULT;stdcall; external 'winmm.dll' name 'waveInReset';
-Function waveInGetPosition(x1: HWAVEIN; x2: LPMMTIME; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveInGetPosition';
-Function waveInGetID(x1: HWAVEIN; x2: LPUINT): MMRESULT;stdcall; external 'winmm.dll' name 'waveInGetID';
-Function waveInMessage(x1: HWAVEIN; x2: UINT; x3: DWORD; x4: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'waveInMessage';
-Function mixerGetLineControlsA(x1: HMIXEROBJ; x2: LPMIXERLINECONTROLSA; x3: DWORD):MMRESULT;stdcall; external 'winmm.dll' name 'mixerGetLineControlsA';
-Function mixerGetLineControlsW(x1: HMIXEROBJ; x2: LPMIXERLINECONTROLSW; x3: DWORD):MMRESULT;stdcall; external 'winmm.dll' name 'mixerGetLineControlsW';
-Function mixerGetLineControls(x1: HMIXEROBJ; x2: LPMIXERLINECONTROLS; x3: DWORD): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mixerGetLineControlsW' {$else}'mixerGetLineControlsA' {$endif};
-Function joyGetNumDevs: UINT;stdcall; external 'winmm.dll' name 'joyGetNumDevs';
-Function joyGetDevCapsA(x1: UINT; x2: LPJOYCAPSA; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'joyGetDevCapsA';
-Function joyGetDevCapsW(x1: UINT; x2: LPJOYCAPSW; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'joyGetDevCapsW';
-Function joyGetDevCaps(x1: UINT; x2: LPJOYCAPS; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'joyGetDevCapsW' {$else}'joyGetDevCapsA' {$endif};
-Function mixerGetControlDetailsA(x1: HMIXEROBJ; x2: LPMIXERCONTROLDETAILS; x3: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'mixerGetControlDetailsA';
-Function mixerGetControlDetailsW(x1: HMIXEROBJ; x2: LPMIXERCONTROLDETAILS; x3: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'mixerGetControlDetailsW';
-Function mixerGetControlDetails(x1: HMIXEROBJ; x2: LPMIXERCONTROLDETAILS; x3: DWORD): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mixerGetControlDetailsW' {$else}'mixerGetControlDetailsA' {$endif};
-Function timeGetSystemTime(x1: LPMMTIME; x2: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'timeGetSystemTime';
-Function timeGetTime: DWORD;stdcall; external 'winmm.dll' name 'timeGetTime';
-Function timeSetEvent(x1: UINT; x2: UINT; x3: LPTIMECALLBACK; x4: DWORD; x5: UINT):MMRESULT;stdcall; external 'winmm.dll' name 'timeSetEvent';
-Function timeKillEvent(x1: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'timeKillEvent';
-Function timeGetDevCaps(x1: LPTIMECAPS; x2: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'timeGetDevCaps';
-Function timeBeginPeriod(x1: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'timeBeginPeriod';
-Function timeEndPeriod(x1: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'timeEndPeriod';
-Function mixerGetDevCapsA(x1: UINT; x2: LPMIXERCAPSA; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mixerGetDevCapsA';
-Function mixerGetDevCapsW(x1: UINT; x2: LPMIXERCAPSW; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'mixerGetDevCapsW';
-Function mixerGetDevCaps(x1: UINT; x2: LPMIXERCAPS; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mixerGetDevCapsW' {$else}'mixerGetDevCapsA' {$endif};
-Function mixerOpen(x1: LPHMIXER; x2: UINT; x3: DWORD; x4: DWORD; x5: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'mixerOpen';
-Function mixerClose(x1: HMIXER): MMRESULT;stdcall; external 'winmm.dll' name 'mixerClose';
-Function mixerMessage(x1: HMIXER; x2: UINT; x3: DWORD; x4: DWORD): DWORD;stdcall; external 'winmm.dll' name 'mixerMessage';
-Function auxGetNumDevs: UINT;stdcall; external 'winmm.dll' name 'auxGetNumDevs';
-Function auxGetDevCapsA(x1: UINT; x2: LPAUXCAPSA ; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'auxGetDevCapsA';
-Function auxGetDevCapsW(x1: UINT; x2: LPAUXCAPSW ; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'auxGetDevCapsW';
-Function auxGetDevCaps(x1: UINT; x2: LPAUXCAPS ; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'auxGetDevCapsW' {$else}'auxGetDevCapsA' {$endif};
-Function auxSetVolume(x1: UINT; x2: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'auxSetVolume';
-Function auxGetVolume(x1: UINT; x2: LPDWORD): MMRESULT;stdcall; external 'winmm.dll' name 'auxGetVolume';
-Function auxOutMessage(x1: UINT; x2: UINT; x3: DWORD; x4: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'auxOutMessage';
-Function midiOutGetNumDevs: UINT;stdcall; external 'winmm.dll' name 'midiOutGetNumDevs';
-Function midiStreamOpen(x1: LPHMIDISTRM; x2: LPUINT; x3: DWORD; x4: DWORD; x5: DWORD; x6:
-                        DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'midiStreamOpen';
-Function midiStreamClose(x1: HMIDISTRM): MMRESULT;stdcall; external 'winmm.dll' name 'midiStreamClose';
-Function midiStreamProperty(x1: HMIDISTRM; x2: LPBYTE; x3: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'midiStreamProperty';
-Function midiStreamPosition(x1: HMIDISTRM; x2: LPMMTIME; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiStreamPosition';
-Function midiStreamOut(x1: HMIDISTRM; x2: LPMIDIHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiStreamOut';
-Function midiStreamPause(x1: HMIDISTRM): MMRESULT;stdcall; external 'winmm.dll' name 'midiStreamPause';
-Function midiStreamRestart(x1: HMIDISTRM): MMRESULT;stdcall; external 'winmm.dll' name 'midiStreamRestart';
-Function midiStreamStop(x1: HMIDISTRM): MMRESULT;stdcall; external 'winmm.dll' name 'midiStreamStop';
-Function midiConnect(x1: HMIDI; x2: HMIDIOUT; x3: pointer): MMRESULT;stdcall; external 'winmm.dll' name 'midiConnect';
-Function midiDisconnect(x1: HMIDI; x2: HMIDIOUT; x3: pointer): MMRESULT;stdcall; external 'winmm.dll' name 'midiDisconnect';
-Function midiOutGetDevCapsA(x1: UINT; x2: LPMIDIOUTCAPSA; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutGetDevCapsA';
-Function midiOutGetDevCapsW(x1: UINT; x2: LPMIDIOUTCAPSW; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutGetDevCapsW';
-Function midiOutGetDevCaps(x1: UINT; x2: LPMIDIOUTCAPS; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'midiOutGetDevCapsW' {$else}'midiOutGetDevCapsA' {$endif};
-Function midiOutGetVolume(x1: HMIDIOUT; x2: LPDWORD): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutGetVolume';
-Function midiOutSetVolume(x1: HMIDIOUT; x2: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutSetVolume';
-Function midiOutGetErrorTextA(x1: MMRESULT; x2: LPSTR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutGetErrorTextA';
-Function midiOutGetErrorTextW(x1: MMRESULT; x2: LPWSTR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutGetErrorTextW';
-Function midiOutGetErrorText(x1: MMRESULT; x2: PChar; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'midiOutGetErrorTextW' {$else}'midiOutGetErrorTextA' {$endif};
-Function midiOutOpen(x1: LPHMIDIOUT; x2: UINT; x3: DWORD; x4: DWORD; x5: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutOpen';
-Function midiOutClose(x1: HMIDIOUT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutClose';
-Function midiOutPrepareHeader(x1: HMIDIOUT; x2: LPMIDIHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutPrepareHeader';
-Function midiOutUnprepareHeader(x1: HMIDIOUT; x2: LPMIDIHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutUnprepareHeader';
-Function midiOutShortMsg(x1: HMIDIOUT; x2: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutShortMsg';
-Function midiOutLongMsg(x1: HMIDIOUT; x2: LPMIDIHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutLongMsg';
-Function midiOutReset(x1: HMIDIOUT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutReset';
-Function midiOutCachePatches(x1: HMIDIOUT; x2: UINT; x3: LPWORD; x4: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutCachePatches';
-Function midiOutCacheDrumPatches(x1: HMIDIOUT; x2: UINT; x3: LPWORD; x4: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutCacheDrumPatches';
-Function midiOutGetID(x1: HMIDIOUT; x2: LPUINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutGetID';
-Function midiOutMessage(x1: HMIDIOUT; x2: UINT; x3: DWORD; x4: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'midiOutMessage';
-Function midiInGetNumDevs: UINT;stdcall; external 'winmm.dll' name 'midiInGetNumDevs';
-Function midiInGetDevCapsA(x1: UINT; x2: LPMIDIINCAPSA; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiInGetDevCapsA';
-Function midiInGetDevCapsW(x1: UINT; x2: LPMIDIINCAPSW; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiInGetDevCapsW';
-Function midiInGetDevCaps(x1: UINT; x2: LPMIDIINCAPS; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'midiInGetDevCapsW' {$else}'midiInGetDevCapsA' {$endif};
-Function midiInGetErrorTextA(x1: MMRESULT; x2: LPSTR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiInGetErrorTextA';
-Function midiInGetErrorTextW(x1: MMRESULT; x2: LPWSTR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiInGetErrorTextW';
-Function midiInGetErrorText(x1: MMRESULT; x2: PChar; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'midiInGetErrorTextW' {$else}'midiInGetErrorTextA' {$endif};
-Function midiInOpen(x1: LPHMIDIIN; x2: UINT; x3: DWORD; x4: DWORD; x5: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'midiInOpen';
-Function midiInClose(x1: HMIDIIN): MMRESULT;stdcall; external 'winmm.dll' name 'midiInClose';
-Function midiInPrepareHeader(x1: HMIDIIN; x2: LPMIDIHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiInPrepareHeader';
-Function midiInUnprepareHeader(x1: HMIDIIN; x2: LPMIDIHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiInUnprepareHeader';
-Function midiInAddBuffer(x1: HMIDIIN; x2: LPMIDIHDR; x3: UINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiInAddBuffer';
-Function midiInStart(x1: HMIDIIN): MMRESULT;stdcall; external 'winmm.dll' name 'midiInStart';
-Function midiInStop(x1: HMIDIIN): MMRESULT;stdcall; external 'winmm.dll' name 'midiInStop';
-Function midiInReset(x1: HMIDIIN): MMRESULT;stdcall; external 'winmm.dll' name 'midiInReset';
-Function midiInGetID(x1: HMIDIIN; x2: LPUINT): MMRESULT;stdcall; external 'winmm.dll' name 'midiInGetID';
-Function midiInMessage(x1: HMIDIIN; x2: UINT; x3: DWORD; x4: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'midiInMessage';
-Function mixerGetLineInfoA(x1: HMIXEROBJ; x2: LPMIXERLINEA; x3: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'mixerGetLineInfoA';
-Function mixerGetLineInfoW(x1: HMIXEROBJ; x2: LPMIXERLINEW; x3: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'mixerGetLineInfoW';
-Function mixerGetLineInfo(x1: HMIXEROBJ; x2: LPMIXERLINE; x3: DWORD): MMRESULT;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'mixerGetLineInfoW' {$else}'mixerGetLineInfoA' {$endif};
-Function mixerGetID(x1: HMIXEROBJ; Var x2: UINT; x3: DWORD): MMRESULT;stdcall; external 'winmm.dll' name 'mixerGetID';
-Function PlaySoundA(x1: LPCSTR; x2: HMODULE; x3: DWORD): BOOL;stdcall; external 'winmm.dll' name 'PlaySoundA';
-Function PlaySoundW(x1: LPCWSTR; x2: HMODULE; x3: DWORD): BOOL;stdcall; external 'winmm.dll' name 'PlaySoundW';
-Function PlaySound(x1: PChar; x2: HMODULE; x3: DWORD): BOOL;stdcall; external 'winmm.dll' name
- {$ifdef UNICODE}'PlaySoundW' {$else}'PlaySoundA' {$endif};
-
-implementation
-
-Function MEVT_EVENTTYPE(x: byte): byte;
- Begin
-   MEVT_EVENTTYPE := (x shr 24) And $FF;
- End;
-
-Function MEVT_EVENTPARM(x: DWORD): DWORD;
- Begin
-   MEVT_EVENTPARM := x And $00FFFFFF;
- End;
-
-Type
-  TFourBytes = packed array [0..3] Of byte;
-
-Function MCI_MSF_MINUTE(msf: longint): byte;
- Begin
-   MCI_MSF_MINUTE := TFourBytes (msf) [0];
- End;
-
-Function MCI_TMSF_TRACK(tmsf: longint): byte;
- Begin
-   MCI_TMSF_TRACK := TFourBytes (tmsf) [0];
- End;
-
-Function MCI_HMS_HOUR(h: longint): byte;
- Begin
-   MCI_HMS_HOUR := TFourBytes (h) [0];
- End;
-
-Function MCI_MSF_SECOND(msf: longint): byte;
- Begin
-   MCI_MSF_SECOND := TFourBytes (msf) [1];
- End;
-
-Function MCI_TMSF_MINUTE(tmsf: longint): byte;
- Begin
-   MCI_TMSF_MINUTE := TFourBytes (tmsf) [1];
- End;
-
-Function MCI_HMS_MINUTE(h: longint): byte;
- Begin
-   MCI_HMS_MINUTE := TFourBytes (h) [1];
- End;
-
-Function MCI_MSF_FRAME(msf: longint): byte;
- Begin
-   MCI_MSF_FRAME := TFourBytes (msf) [2];
- End;
-
-Function MCI_TMSF_SECOND(tmsf: longint): byte;
- Begin
-   MCI_TMSF_SECOND := TFourBytes (tmsf) [2];
- End;
-
-Function MCI_HMS_SECOND(h: longint): byte;
- Begin
-   MCI_HMS_SECOND := TFourBytes (h) [2];
- End;
-
-Function MCI_MAKE_MSF(m, s, f: byte): longint;
- Begin
-   TFourBytes (Result) [0] := m;
-   TFourBytes (Result) [1] := s;
-   TFourBytes (Result) [2] := f;
- End;
-
-Function MCI_MAKE_HMS(h, m, s: byte): longint;
- Begin
-   TFourBytes (Result) [0] := h;
-   TFourBytes (Result) [1] := m;
-   TFourBytes (Result) [2] := s;
- End;
-
-Function MCI_TMSF_FRAME(tmsf: longint): byte;
- Begin
-   MCI_TMSF_FRAME := TFourBytes (tmsf) [3];
- End;
-
-Function mci_Make_TMSF(t, m, s, f: Byte): Longint;
- Begin
-   TFourBytes (Result) [0] := t;
-   TFourBytes (Result) [1] := m;
-   TFourBytes (Result) [2] := s;
-   TFourBytes (Result) [3] := f;
- End;
-
-Function DIBINDEX(n: longint): longint;
- Begin
-   DIBINDEX := n Or $10FF shl 16;
- End;
-
-End.

+ 0 - 92
packages/base/winunits/ole2.pp

@@ -1,92 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1999-2000 by the Free Pascal development team.
-
-    Implemtents some stuff of OLE2, tries to be Delphi compatible
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-{$MODE OBJFPC}
-unit ole2;
-
-  interface
-
-    uses
-      windows;
-
-    const
-      GUID_NULL: TGUID = (D1:$00000000;D2:$0000;D3:$0000;D4:($00,$00,$00,$00,$00,$00,$00,$00));
-      IID_IUnknown: TGUID = (D1:$00000000;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IClassFactory: TGUID = (D1:$00000001;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IMarshal: TGUID = (D1:$00000003;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IMalloc: TGUID = (D1:$00000002;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IStdMarshalInfo: TGUID = (D1:$00000018;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IExternalConnection: TGUID = (D1:$00000019;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IEnumUnknown: TGUID = (D1:$00000100;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IBindCtx: TGUID = (D1:$0000000E;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IEnumMoniker: TGUID = (D1:$00000102;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IRunnableObject: TGUID = (D1:$00000126;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IRunningObjectTable: TGUID = (D1:$00000010;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IPersist: TGUID = (D1:$0000010C;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IPersistStream: TGUID = (D1:$00000109;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IMoniker: TGUID = (D1:$0000000F;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IEnumString: TGUID = (D1:$00000101;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IStream: TGUID = (D1:$0000000C;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IEnumStatStg: TGUID = (D1:$0000000D;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IStorage: TGUID = (D1:$0000000B;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IPersistFile: TGUID = (D1:$0000010B;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IPersistStorage: TGUID = (D1:$0000010A;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_ILockBytes: TGUID = (D1:$0000000A;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IEnumFormatEtc: TGUID = (D1:$00000103;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IEnumStatData: TGUID = (D1:$00000105;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IRootStorage: TGUID = (D1:$00000012;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IAdviseSink: TGUID = (D1:$0000010F;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IAdviseSink2: TGUID = (D1:$00000125;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IDataObject: TGUID = (D1:$0000010E;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IDataAdviseHolder: TGUID = (D1:$00000110;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IMessageFilter: TGUID = (D1:$00000016;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IRpcChannelBuffer: TGUID = (D1:$D5F56B60;D2:$593B;D3:$101A;D4:($B5,$69,$08,$00,$2B,$2D,$BF,$7A));
-      IID_IRpcProxyBuffer: TGUID = (D1:$D5F56A34;D2:$593B;D3:$101A;D4:($B5,$69,$08,$00,$2B,$2D,$BF,$7A));
-      IID_IRpcStubBuffer: TGUID = (D1:$D5F56AFC;D2:$593B;D3:$101A;D4:($B5,$69,$08,$00,$2B,$2D,$BF,$7A));
-      IID_IPSFactoryBuffer: TGUID = (D1:$D5F569D0;D2:$593B;D3:$101A;D4:($B5,$69,$08,$00,$2B,$2D,$BF,$7A));
-      IID_ICreateTypeInfo: TGUID = (D1:$00020405;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_ICreateTypeLib: TGUID = (D1:$00020406;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IDispatch: TGUID = (D1:$00020400;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IEnumVariant: TGUID = (D1:$00020404;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_ITypeComp: TGUID = (D1:$00020403;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_ITypeInfo: TGUID = (D1:$00020401;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_ITypeLib: TGUID = (D1:$00020402;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IErrorInfo: TGUID = (D1:$1CF2B120;D2:$547D;D3:$101B;D4:($8E,$65,$08,$00,$2B,$2B,$D1,$19));
-      IID_ICreateErrorInfo: TGUID = (D1:$22F03340;D2:$547D;D3:$101B;D4:($8E,$65,$08,$00,$2B,$2B,$D1,$19));
-      IID_ISupportErrorInfo: TGUID = (D1:$DF0B3D60;D2:$548F;D3:$101B;D4:($8E,$65,$08,$00,$2B,$2B,$D1,$19));
-      IID_IOleAdviseHolder: TGUID = (D1:$00000111;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleCache: TGUID = (D1:$0000011E;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleCache2: TGUID = (D1:$00000128;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleCacheControl: TGUID = (D1:$00000129;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IParseDisplayName: TGUID = (D1:$0000011A;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleContainer: TGUID = (D1:$0000011B;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleClientSite: TGUID = (D1:$00000118;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleObject: TGUID = (D1:$00000112;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleWindow: TGUID = (D1:$00000114;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleLink: TGUID = (D1:$0000011D;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleItemContainer: TGUID = (D1:$0000011C;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleInPlaceUIWindow: TGUID = (D1:$00000115;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleInPlaceActiveObject: TGUID = (D1:$00000117;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleInPlaceFrame: TGUID = (D1:$00000116;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleInPlaceObject: TGUID = (D1:$00000113;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IOleInPlaceSite: TGUID = (D1:$00000119;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IViewObject: TGUID = (D1:$0000010D;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IViewObject2: TGUID = (D1:$00000127;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IDropSource: TGUID = (D1:$00000121;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IDropTarget: TGUID = (D1:$00000122;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-      IID_IEnumOleVerb: TGUID = (D1:$00000104;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
-
-  implementation
-
-end.

+ 0 - 205
packages/base/winunits/oleserver.pp

@@ -1,205 +0,0 @@
-{$mode objfpc}
-unit OleServer;
-
-interface
-
-uses Windows, Messages, ActiveX, SysUtils, Classes, ComObj;
-
-type
-  TVariantArray = Array of OleVariant;
-  TOleServer    = class;
-  TConnectKind  = (ckRunningOrNew,
-                   ckNewInstance,
-                   ckRunningInstance,
-                   ckRemote,
-                   ckAttachToInterface);
-
-  TServerEventDispatch = class(TObject, IUnknown, IDispatch)
-  private
-    FServer : TOleServer;
-  protected
-    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
-    function _AddRef: Integer; stdcall;
-    function _Release: Integer; stdcall;
-    function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
-    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
-    function GetIDsOfNames(const IID: TGUID; Names: Pointer;
-      NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
-    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
-      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
-    property Server: TOleServer read FServer;
-    function ServerDisconnect :Boolean;
-  public
-    constructor Create(aServer: TOleServer);
-  end;
-
-  PServerData = ^TServerData;
-  TServerData = record
-    ClassID: TGUID;
-    IntfIID: TGUID;
-    EventIID: TGUID;
-    LicenseKey: Pointer;
-    Version: Integer;
-    InstanceCount: Integer;
-  end;
-
-  TOleServer = class(TComponent, IUnknown)
-  private
-    FRemoteMachineName: string;
-    FEventDispatch: TServerEventDispatch;
-    FServerData: PServerData;
-  protected
-    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; override;
-    function _AddRef: Integer; stdcall;
-    function _Release: Integer; stdcall;
-
-    procedure Loaded; override;
-    procedure InitServerData; virtual; abstract;
-
-    function  GetServer: IUnknown; virtual;
-
-    procedure ConnectEvents(const Obj: IUnknown);
-    procedure DisconnectEvents(const Obj: Iunknown);
-    procedure InvokeEvent(DispID: TDispID; var Params: TVariantArray); virtual;
-
-    function  GetConnectKind: TConnectKind;
-    procedure SetConnectKind(ck: TConnectKind);
-
-    function  GetAutoConnect: Boolean;
-    procedure SetAutoConnect(flag: Boolean);
-
-    property  ServerData: PServerData read FServerData write FServerData;
-    property  EventDispatch: TServerEventDispatch read FEventDispatch write FEventDispatch;
-
-  public
-    constructor Create(AOwner: TComponent); override;
-    destructor Destroy; override;
-    procedure Connect; virtual; abstract;
-    procedure Disconnect; virtual; abstract;
-
-  published
-    property AutoConnect: Boolean read GetAutoConnect write SetAutoConnect;
-    property ConnectKind: TConnectKind read GetConnectKind write SetConnectKind;
-    property RemoteMachineName: string read FRemoteMachineName write FRemoteMachineName;
-  end;
-
-implementation
-
-    function TServerEventDispatch.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
-      begin
-      end;
-
-
-    function TServerEventDispatch._AddRef: Integer; stdcall;
-      begin
-      end;
-
-
-    function TServerEventDispatch._Release: Integer; stdcall;
-      begin
-      end;
-
-
-    function TServerEventDispatch.GetTypeInfoCount(out Count: Integer): HResult; stdcall;
-      begin
-      end;
-
-
-    function TServerEventDispatch.GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
-      begin
-      end;
-
-
-    function TServerEventDispatch.GetIDsOfNames(const IID: TGUID; Names: Pointer;
-      NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
-      begin
-      end;
-
-
-    function TServerEventDispatch.Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
-      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
-      begin
-      end;
-
-
-    function TServerEventDispatch.ServerDisconnect :Boolean;
-      begin
-      end;
-
-
-    constructor TServerEventDispatch.Create(aServer: TOleServer);
-      begin
-      end;
-
-
-    function TOleServer.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
-      begin
-      end;
-
-
-    function TOleServer._AddRef: Integer; stdcall;
-      begin
-      end;
-
-
-    function TOleServer._Release: Integer; stdcall;
-      begin
-      end;
-
-
-    procedure TOleServer.Loaded;
-      begin
-      end;
-
-
-    function TOleServer.GetServer: IUnknown;
-      begin
-      end;
-
-
-    procedure TOleServer.ConnectEvents(const Obj: IUnknown);
-      begin
-      end;
-
-
-    procedure TOleServer.DisconnectEvents(const Obj: Iunknown);
-      begin
-      end;
-
-
-    procedure TOleServer.InvokeEvent(DispID: TDispID; var Params: TVariantArray);
-      begin
-      end;
-
-
-    function  TOleServer.GetConnectKind: TConnectKind;
-      begin
-      end;
-
-
-    procedure TOleServer.SetConnectKind(ck: TConnectKind);
-      begin
-      end;
-
-
-    function  TOleServer.GetAutoConnect: Boolean;
-      begin
-      end;
-
-
-    procedure TOleServer.SetAutoConnect(flag: Boolean);
-      begin
-      end;
-
-
-    constructor TOleServer.Create(AOwner: TComponent);
-      begin
-      end;
-
-
-    destructor TOleServer.Destroy;
-      begin
-      end;
-
-
-end.

+ 0 - 632
packages/base/winunits/richedit.pp

@@ -1,632 +0,0 @@
-{ Converted by H2Pas from richedit.h }
-unit richedit;
-
-{$mode objfpc}
-{$calling stdcall}
-
-interface
-
-uses Messages, Windows;
-
-{$IFDEF FPC}
-{$PACKRECORDS C}
-{$ENDIF}
-
-{$ifdef UNICODE }
-  const
-     RICHEDIT_CLASS = 'RichEdit20W';
-{$else}
-  const
-     RICHEDIT_CLASS = 'RichEdit20A';
-{$endif}
-
-  const
-     RICHEDIT_CLASS10A = 'RICHEDIT';
-     CF_RTF = 'Rich Text Format';
-     CF_RTFNOOBJS = 'Rich Text Format Without Objects';
-     CF_RETEXTOBJ = 'RichEdit Text and Objects';
-     CFM_BOLD = 1;
-     CFM_ITALIC = 2;
-     CFM_UNDERLINE = 4;
-     CFM_STRIKEOUT = 8;
-     CFM_PROTECTED = 16;
-     CFM_LINK = 32;
-     CFM_SIZE = $80000000;
-     CFM_COLOR = $40000000;
-     CFM_FACE = $20000000;
-     CFM_OFFSET = $10000000;
-     CFM_CHARSET = $08000000;
-     CFM_SUBSCRIPT = $00030000;
-     CFM_SUPERSCRIPT = $00030000;
-     CFM_EFFECTS = (((((CFM_BOLD or CFM_ITALIC) or CFM_UNDERLINE) or CFM_COLOR) or CFM_STRIKEOUT) or CFE_PROTECTED) or CFM_LINK;
-     CFE_BOLD = 1;
-     CFE_ITALIC = 2;
-     CFE_UNDERLINE = 4;
-     CFE_STRIKEOUT = 8;
-     CFE_PROTECTED = 16;
-     CFE_AUTOCOLOR = $40000000;
-     CFE_SUBSCRIPT = $00010000;
-     CFE_SUPERSCRIPT = $00020000;
-     IMF_FORCENONE = 1;
-     IMF_FORCEENABLE = 2;
-     IMF_FORCEDISABLE = 4;
-     IMF_CLOSESTATUSWINDOW = 8;
-     IMF_VERTICAL = 32;
-     IMF_FORCEACTIVE = 64;
-     IMF_FORCEINACTIVE = 128;
-     IMF_FORCEREMEMBER = 256;
-     SEL_EMPTY = 0;
-     SEL_TEXT = 1;
-     SEL_OBJECT = 2;
-     SEL_MULTICHAR = 4;
-     SEL_MULTIOBJECT = 8;
-     MAX_TAB_STOPS = 32;
-     PFM_ALIGNMENT = 8;
-     PFM_NUMBERING = 32;
-     PFM_OFFSET = 4;
-     PFM_OFFSETINDENT = $80000000;
-     PFM_RIGHTINDENT = 2;
-     PFM_STARTINDENT = 1;
-     PFM_TABSTOPS = 16;
-     PFM_BORDER = 2048;
-     PFM_LINESPACING = 256;
-     PFM_NUMBERINGSTART = 32768;
-     PFM_NUMBERINGSTYLE = 8192;
-     PFM_NUMBERINGTAB = 16384;
-     PFM_SHADING = 4096;
-     PFM_SPACEAFTER = 128;
-     PFM_SPACEBEFORE = 64;
-     PFM_STYLE = 1024;
-     PFM_DONOTHYPHEN = 4194304;
-     PFM_KEEP = 131072;
-     PFM_KEEPNEXT = 262144;
-     PFM_NOLINENUMBER = 1048576;
-     PFM_NOWIDOWCONTROL = 2097152;
-     PFM_PAGEBREAKBEFORE = 524288;
-     PFM_RTLPARA = 65536;
-     PFM_SIDEBYSIDE = 8388608;
-     PFM_TABLE = 1073741824;
-     PFN_BULLET = 1;
-     PFE_DONOTHYPHEN = 64;
-     PFE_KEEP = 2;
-     PFE_KEEPNEXT = 4;
-     PFE_NOLINENUMBER = 16;
-     PFE_NOWIDOWCONTROL = 32;
-     PFE_PAGEBREAKBEFORE = 8;
-     PFE_RTLPARA = 1;
-     PFE_SIDEBYSIDE = 128;
-     PFE_TABLE = 16384;
-     PFA_LEFT = 1;
-     PFA_RIGHT = 2;
-     PFA_CENTER = 3;
-     PFA_JUSTIFY = 4;
-     PFA_FULL_INTERWORD = 4;
-     SF_TEXT = 1;
-     SF_RTF = 2;
-     SF_RTFNOOBJS = 3;
-     SF_TEXTIZED = 4;
-     SF_UNICODE = 16;
-     SF_USECODEPAGE = 32;
-     SF_NCRFORNONASCII = 64;
-     SF_RTFVAL = $0700;
-     SFF_PWD = $0800;
-     SFF_KEEPDOCINFO = $1000;
-     SFF_PERSISTVIEWSCALE = $2000;
-     SFF_PLAINRTF = $4000;
-     SFF_SELECTION = $8000;
-     WB_CLASSIFY = 3;
-     WB_MOVEWORDLEFT = 4;
-     WB_MOVEWORDRIGHT = 5;
-     WB_LEFTBREAK = 6;
-     WB_RIGHTBREAK = 7;
-     WB_MOVEWORDPREV = 4;
-     WB_MOVEWORDNEXT = 5;
-     WB_PREVBREAK = 6;
-     WB_NEXTBREAK = 7;
-     WBF_WORDWRAP = 16;
-     WBF_WORDBREAK = 32;
-     WBF_OVERFLOW = 64;
-     WBF_LEVEL1 = 128;
-     WBF_LEVEL2 = 256;
-     WBF_CUSTOM = 512;
-     ES_DISABLENOSCROLL = 8192;
-     ES_EX_NOCALLOLEINIT = 16777216;
-     ES_NOIME = 524288;
-     ES_NOOLEDRAGDROP = 8;
-     ES_SAVESEL = 32768;
-     ES_SELECTIONBAR = 16777216;
-     ES_SELFIME = 262144;
-     ES_SUNKEN = 16384;
-     ES_VERTICAL = 4194304;
-     EM_CANPASTE = WM_USER+50;
-     EM_DISPLAYBAND = WM_USER+51;
-     EM_EXGETSEL = WM_USER+52;
-     EM_EXLIMITTEXT = WM_USER+53;
-     EM_EXLINEFROMCHAR = WM_USER+54;
-     EM_EXSETSEL = WM_USER+55;
-     EM_FINDTEXT = WM_USER+56;
-     EM_FORMATRANGE = WM_USER+57;
-     EM_GETCHARFORMAT = WM_USER+58;
-     EM_GETEVENTMASK = WM_USER+59;
-     EM_GETOLEINTERFACE = WM_USER+60;
-     EM_GETPARAFORMAT = WM_USER+61;
-     EM_GETSELTEXT = WM_USER+62;
-     EM_HIDESELECTION = WM_USER+63;
-     EM_PASTESPECIAL = WM_USER+64;
-     EM_REQUESTRESIZE = WM_USER+65;
-     EM_SELECTIONTYPE = WM_USER+66;
-     EM_SETBKGNDCOLOR = WM_USER+67;
-     EM_SETCHARFORMAT = WM_USER+68;
-     EM_SETEVENTMASK = WM_USER+69;
-     EM_SETOLECALLBACK = WM_USER+70;
-     EM_SETPARAFORMAT = WM_USER+71;
-     EM_SETTARGETDEVICE = WM_USER+72;
-     EM_STREAMIN = WM_USER+73;
-     EM_STREAMOUT = WM_USER+74;
-     EM_GETTEXTRANGE = WM_USER+75;
-     EM_FINDWORDBREAK = WM_USER+76;
-     EM_SETOPTIONS = WM_USER+77;
-     EM_GETOPTIONS = WM_USER+78;
-     EM_FINDTEXTEX = WM_USER+79;
-     EM_GETWORDBREAKPROCEX = WM_USER+80;
-     EM_SETWORDBREAKPROCEX = WM_USER+81;
-  { RichEdit 2.0 messages  }
-     EM_SETUNDOLIMIT = WM_USER+82;
-     EM_REDO = WM_USER+84;
-     EM_CANREDO = WM_USER+85;
-     EM_GETUNDONAME = WM_USER+86;
-     EM_GETREDONAME = WM_USER+87;
-     EM_STOPGROUPTYPING = WM_USER+88;
-     EM_SETTEXTMODE = WM_USER+89;
-     EM_GETTEXTMODE = WM_USER+90;
-     EM_AUTOURLDETECT = WM_USER+91;
-     EM_GETAUTOURLDETECT = WM_USER+92;
-     EM_SETPALETTE = WM_USER+93;
-     EM_GETTEXTEX = WM_USER+94;
-     EM_GETTEXTLENGTHEX = WM_USER+95;
-     EM_SHOWSCROLLBAR = WM_USER+96;
-     EM_SETTEXTEX = WM_USER+97;
-     EM_SETPUNCTUATION = WM_USER+100;
-     EM_GETPUNCTUATION = WM_USER+101;
-     EM_SETWORDWRAPMODE = WM_USER+102;
-     EM_GETWORDWRAPMODE = WM_USER+103;
-     EM_SETIMECOLOR = WM_USER+104;
-     EM_GETIMECOLOR = WM_USER+105;
-     EM_SETIMEOPTIONS = WM_USER+106;
-     EM_GETIMEOPTIONS = WM_USER+107;
-     EM_SETLANGOPTIONS = WM_USER+120;
-     EM_GETLANGOPTIONS = WM_USER+121;
-     EM_GETIMECOMPMODE = WM_USER+122;
-     EM_FINDTEXTW = WM_USER+123;
-     EM_FINDTEXTEXW = WM_USER+124;
-     EM_RECONVERSION = WM_USER+125;
-     EM_SETBIDIOPTIONS = WM_USER+200;
-     EM_GETBIDIOPTIONS = WM_USER+201;
-     EM_SETTYPOGRAPHYOPTIONS = WM_USER+202;
-     EM_GETTYPOGRAPHYOPTIONS = WM_USER+203;
-     EM_SETEDITSTYLE = WM_USER+204;
-     EM_GETEDITSTYLE = WM_USER+205;
-     EM_GETSCROLLPOS = WM_USER+221;
-     EM_SETSCROLLPOS = WM_USER+222;
-     EM_SETFONTSIZE = WM_USER+223;
-     EM_GETZOOM = WM_USER+224;
-     EM_SETZOOM = WM_USER+225;
-     EN_CORRECTTEXT = 1797;
-     EN_DROPFILES = 1795;
-     EN_IMECHANGE = 1799;
-     EN_LINK = 1803;
-     EN_MSGFILTER = 1792;
-     EN_OLEOPFAILED = 1801;
-     EN_PROTECTED = 1796;
-     EN_REQUESTRESIZE = 1793;
-     EN_SAVECLIPBOARD = 1800;
-     EN_SELCHANGE = 1794;
-     EN_STOPNOUNDO = 1798;
-     ENM_NONE = 0;
-     ENM_CHANGE = 1;
-     ENM_CORRECTTEXT = 4194304;
-     ENM_DRAGDROPDONE = 16;
-     ENM_DROPFILES = 1048576;
-     ENM_IMECHANGE = 8388608;
-     ENM_KEYEVENTS = 65536;
-     ENM_LANGCHANGE = 16777216;
-     ENM_LINK = 67108864;
-     ENM_MOUSEEVENTS = 131072;
-     ENM_OBJECTPOSITIONS = 33554432;
-     ENM_PROTECTED = 2097152;
-     ENM_REQUESTRESIZE = 262144;
-     ENM_SCROLL = 4;
-     ENM_SCROLLEVENTS = 8;
-     ENM_SELCHANGE = 524288;
-     ENM_UPDATE = 2;
-     ECO_AUTOWORDSELECTION = 1;
-     ECO_AUTOVSCROLL = 64;
-     ECO_AUTOHSCROLL = 128;
-     ECO_NOHIDESEL = 256;
-     ECO_READONLY = 2048;
-     ECO_WANTRETURN = 4096;
-     ECO_SAVESEL = $8000;
-     ECO_SELECTIONBAR = $1000000;
-     ECO_VERTICAL = $400000;
-     ECOOP_SET = 1;
-     ECOOP_OR = 2;
-     ECOOP_AND = 3;
-     ECOOP_XOR = 4;
-     SCF_DEFAULT = 0;
-     SCF_SELECTION = 1;
-     SCF_WORD = 2;
-     SCF_ALL = 4;
-     SCF_USEUIRULES = 8;
-     TM_PLAINTEXT = 1;
-     TM_RICHTEXT = 2;
-     TM_SINGLELEVELUNDO = 4;
-     TM_MULTILEVELUNDO = 8;
-     TM_SINGLECODEPAGE = 16;
-     TM_MULTICODEPAGE = 32;
-     GT_DEFAULT = 0;
-     GT_USECRLF = 1;
-     yHeightCharPtsMost = 1638;
-     lDefaultTab = 720;
-     FT_MATCHCASE = 4;
-     FT_WHOLEWORD = 2;
-
-  type
-
-     _charformat = record
-          cbSize : UINT;
-          dwMask : DWORD;
-          dwEffects : DWORD;
-          yHeight : LONG;
-          yOffset : LONG;
-          crTextColor : COLORREF;
-          bCharSet : BYTE;
-          bPitchAndFamily : BYTE;
-          szFaceName : array[0..(LF_FACESIZE)-1] of char;
-       end;
-     CHARFORMATA = _charformat;
-     TCHARFORMATA = _charformat;
-
-     _charformatw = record
-          cbSize : UINT;
-          dwMask : DWORD;
-          dwEffects : DWORD;
-          yHeight : LONG;
-          yOffset : LONG;
-          crTextColor : COLORREF;
-          bCharSet : BYTE;
-          bPitchAndFamily : BYTE;
-          szFaceName : array[0..(LF_FACESIZE)-1] of WCHAR;
-       end;
-     CHARFORMATW = _charformatw;
-     TCHARFORMATW = _charformatw;
-
-     _charformat2a = record
-          cbSize : UINT;
-          dwMask : DWORD;
-          dwEffects : DWORD;
-          yHeight : LONG;
-          yOffset : LONG;
-          crTextColor : COLORREF;
-          bCharSet : BYTE;
-          bPitchAndFamily : BYTE;
-          szFaceName : array[0..(LF_FACESIZE)-1] of char;
-          wWeight : WORD;
-          sSpacing : SHORT;
-          crBackColor : COLORREF;
-          lcid : LCID;
-          dwReserved : DWORD;
-          sStyle : SHORT;
-          wKerning : WORD;
-          bUnderlineType : BYTE;
-          bAnimation : BYTE;
-          bRevAuthor : BYTE;
-       end;
-     CHARFORMAT2A = _charformat2a;
-     TCHARFORMAT2A = _charformat2a;
-
-     _charformat2w = record
-          cbSize : UINT;
-          dwMask : DWORD;
-          dwEffects : DWORD;
-          yHeight : LONG;
-          yOffset : LONG;
-          crTextColor : COLORREF;
-          bCharSet : BYTE;
-          bPitchAndFamily : BYTE;
-          szFaceName : array[0..(LF_FACESIZE)-1] of WCHAR;
-          wWeight : WORD;
-          sSpacing : SHORT;
-          crBackColor : COLORREF;
-          lcid : LCID;
-          dwReserved : DWORD;
-          sStyle : SHORT;
-          wKerning : WORD;
-          bUnderlineType : BYTE;
-          bAnimation : BYTE;
-          bRevAuthor : BYTE;
-       end;
-     CHARFORMAT2W = _charformat2w;
-     TCHARFORMAT2W = _charformat2w;
-
-     _charrange = record
-          cpMin : LONG;
-          cpMax : LONG;
-       end;
-     CHARRANGE = _charrange;
-     TCHARRANGE = _charrange;
-
-     _compcolor = record
-          crText : COLORREF;
-          crBackground : COLORREF;
-          dwEffects : DWORD;
-       end;
-     COMPCOLOR = _compcolor;
-     TCOMPCOLOR = _compcolor;
-
-     EDITSTREAMCALLBACK = function (dwCookie:PDWORD; pbBuff:LPBYTE; cb:LONG; var pcb:LONG):DWORD;
-
-     _editstream = record
-          dwCookie : DWORD;
-          dwError : DWORD;
-          pfnCallback : EDITSTREAMCALLBACK;
-       end;
-     EDITSTREAM = _editstream;
-     TEDITSTREAM = _editstream;
-
-     _encorrecttext = record
-          nmhdr : NMHDR;
-          chrg : CHARRANGE;
-          seltyp : WORD;
-       end;
-     ENCORRECTTEXT = _encorrecttext;
-     TENCORRECTTEXT = _encorrecttext;
-
-     _endropfiles = record
-          nmhdr : NMHDR;
-          hDrop : HANDLE;
-          cp : LONG;
-          fProtected : BOOL;
-       end;
-     ENDROPFILES = _endropfiles;
-     TENDROPFILES = _endropfiles;
-
-     _enlink = record
-          nmhdr : NMHDR;
-          msg : UINT;
-          wParam : WPARAM;
-          lParam : LPARAM;
-          chrg : CHARRANGE;
-       end;
-     ENLINK = _enlink;
-     TENLINK = _enlink;
-
-     ENOLEOPFAILED = record
-          nmhdr : NMHDR;
-          iob : LONG;
-          lOper : LONG;
-          hr : HRESULT;
-       end;
-
-     _enprotected = record
-          nmhdr : NMHDR;
-          msg : UINT;
-          wParam : WPARAM;
-          lParam : LPARAM;
-          chrg : CHARRANGE;
-       end;
-     ENPROTECTED = _enprotected;
-     TENPROTECTED = _enprotected;
-     LPENPROTECTED = ^_enprotected;
-
-     _ensaveclipboard = record
-          nmhdr : NMHDR;
-          cObjectCount : LONG;
-          cch : LONG;
-       end;
-     ENSAVECLIPBOARD = _ensaveclipboard;
-     TENSAVECLIPBOARD = _ensaveclipboard;
-
-     _findtextA = record
-          chrg : CHARRANGE;
-          lpstrText : LPSTR;
-       end;
-     FINDTEXTA = _findtextA;
-     TFINDTEXTA = _findtextA;
-
-     _findtextW = record
-          chrg : CHARRANGE;
-          lpstrText : LPWSTR;
-       end;
-     FINDTEXTW = _findtextW;
-     TFINDTEXTW = _findtextW;
-
-     _findtextexA = record
-          chrg : CHARRANGE;
-          lpstrText : LPSTR;
-          chrgText : CHARRANGE;
-       end;
-     FINDTEXTEXA = _findtextexA;
-     TFINDTEXTEXA = _findtextexA;
-
-     _findtextexW = record
-          chrg : CHARRANGE;
-          lpstrText : LPWSTR;
-          chrgText : CHARRANGE;
-       end;
-     FINDTEXTEXW = _findtextexW;
-     TFINDTEXTEXW = _findtextexW;
-
-     _formatrange = record
-          hdc : HDC;
-          hdcTarget : HDC;
-          rc : RECT;
-          rcPage : RECT;
-          chrg : CHARRANGE;
-       end;
-     FORMATRANGE = _formatrange;
-     TFORMATRANGE = _formatrange;
-
-     _msgfilter = record
-          nmhdr : NMHDR;
-          msg : UINT;
-          wParam : WPARAM;
-          lParam : LPARAM;
-       end;
-     MSGFILTER = _msgfilter;
-     TMSGFILTER = _msgfilter;
-
-     TReqSize = record
-       nmhdr: TNMHdr;
-       rc: TRect;
-     end;
-     PReqSize = ^TReqSize;
-
-     _paraformat = record
-          cbSize : UINT;
-          dwMask : DWORD;
-          wNumbering : WORD;
-          wReserved : WORD;
-          dxStartIndent : LONG;
-          dxRightIndent : LONG;
-          dxOffset : LONG;
-          wAlignment : WORD;
-          cTabCount : SHORT;
-          rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG;
-       end;
-     PARAFORMAT = _paraformat;
-     TParaFormat = _paraformat;
-
-     _paraformat2 = record
-          cbSize : UINT;
-          dwMask : DWORD;
-          wNumbering : WORD;
-          wEffects : WORD;
-          dxStartIndent : LONG;
-          dxRightIndent : LONG;
-          dxOffset : LONG;
-          wAlignment : WORD;
-          cTabCount : SHORT;
-          rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG;
-          dySpaceBefore : LONG;
-          dySpaceAfter : LONG;
-          dyLineSpacing : LONG;
-          sStype : SHORT;
-          bLineSpacingRule : BYTE;
-          bOutlineLevel : BYTE;
-          wShadingWeight : WORD;
-          wShadingStyle : WORD;
-          wNumberingStart : WORD;
-          wNumberingStyle : WORD;
-          wNumberingTab : WORD;
-          wBorderSpace : WORD;
-          wBorderWidth : WORD;
-          wBorders : WORD;
-       end;
-     PARAFORMAT2 = _paraformat2;
-     TPARAFORMAT2 = _paraformat2;
-
-     _selchange = record
-          nmhdr : NMHDR;
-          chrg : CHARRANGE;
-          seltyp : WORD;
-       end;
-     SELCHANGE = _selchange;
-     TSELCHANGE = _selchange;
-
-     _textrange = record
-          chrg : CHARRANGE;
-          lpstrText : LPSTR;
-       end;
-     TEXTRANGEA = _textrange;
-     TTEXTRANGEA = _textrange;
-
-     _textrangew = record
-          chrg : CHARRANGE;
-          lpstrText : LPWSTR;
-       end;
-     TEXTRANGEW = _textrangew;
-     TTEXTRANGEW = _textrangew;
-
-     _reqresize = record
-          nmhdr : NMHDR;
-          rc : RECT;
-       end;
-     REQRESIZE = _reqresize;
-     TREQRESIZE = _reqresize;
-
-     _repastespecial = record
-          dwAspect : DWORD;
-          dwParam : DWORD;
-       end;
-     REPASTESPECIAL = _repastespecial;
-     TREPASTESPECIAL = _repastespecial;
-
-     _punctuation = record
-          iSize : UINT;
-          szPunctuation : LPSTR;
-       end;
-     PUNCTUATION = _punctuation;
-     TPUNCTUATION = _punctuation;
-
-     _gettextex = record
-          cb : DWORD;
-          flags : DWORD;
-          codepage : UINT;
-          lpDefaultChar : LPCSTR;
-          lpUsedDefaultChar : LPBOOL;
-       end;
-     GETTEXTEX = _gettextex;
-     TGETTEXTEX = _gettextex;
-
-     EDITWORDBREAKPROCEX = function (pchText:pchar; cchText:LONG; bCharSet:BYTE; action:LONG):LONG;
-  { Defines for EM_SETTYPOGRAPHYOPTIONS  }
-
-  const
-     TO_ADVANCEDTYPOGRAPHY = 1;
-     TO_SIMPLELINEBREAK = 2;
-  { Defines for GETTEXTLENGTHEX  }
-     GTL_DEFAULT = 0;
-     GTL_USECRLF = 1;
-     GTL_PRECISE = 2;
-     GTL_CLOSE = 4;
-     GTL_NUMCHARS = 8;
-     GTL_NUMBYTES = 16;
-
-  type
-
-     _gettextlengthex = record
-          flags : DWORD;
-          codepage : UINT;
-       end;
-     GETTEXTLENGTHEX = _gettextlengthex;
-{$ifdef UNICODE}
-
-     CHARFORMAT = CHARFORMATW;
-     TCHARFORMAT = CHARFORMATW;
-     CHARFORMAT2 = CHARFORMAT2W;
-     TCHARFORMAT2 = CHARFORMAT2W;
-     FINDTEXT = FINDTEXTW;
-     TFINDTEXT = FINDTEXTW;
-     FINDTEXTEX = FINDTEXTEXW;
-     TFINDTEXTEX = FINDTEXTEXW;
-     TEXTRANGE = TEXTRANGEW;
-     TTEXTRANGE = TEXTRANGEW;
-{$else}
-
-  type
-
-     CHARFORMAT = CHARFORMATA;
-     TCHARFORMAT = CHARFORMATA;
-     CHARFORMAT2 = CHARFORMAT2A;
-     TCHARFORMAT2 = CHARFORMAT2A;
-     FINDTEXT = FINDTEXTA;
-     TFINDTEXT = FINDTEXTA;
-     FINDTEXTEX = FINDTEXTEXA;
-     TFINDTEXTEX = FINDTEXTEXA;
-     TEXTRANGE = TEXTRANGEA;
-     TTEXTRANGE = TEXTRANGEA;
-{$endif}
-
-implementation
-
-end.

+ 0 - 938
packages/base/winunits/shellapi.pp

@@ -1,938 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    This unit contains the record definition for the Win32 API
-    Copyright (c) 1999-2002 by Marco van de Voort,
-    member of the Free Pascal development team.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- ************************************************************************}
-
-{ leave out unused functions so the unit can be used on win2000 as well }
-{$ifndef NO_SMART_LINK}
-{$smartlink on}
-{$endif}
-
-{$PACKRECORDS C}
-{$calling stdcall}
-{$mode objfpc}
-
-Unit ShellApi;
-
-//+-------------------------------------------------------------------------
-//
-//  Microsoft Windows
-//  Copyright (c) Microsoft Corporation. All rights reserved.
-//
-//  File: shellapi.h
-//
-//  Header translation by Marco van de Voort for Free Pascal Platform
-//  SDK dl'ed January 2002
-//
-//--------------------------------------------------------------------------
-
-
-Interface
-
-Uses Windows;
-  {
-    shellapi.h -  SHELL.DLL functions, types, and definitions
-    Copyright (c) Microsoft Corporation. All rights reserved.             }
-
-  Type   
-     HDROP    = THandle;
-     PHIcon   = ^HIcon;
-
-     STARTUPINFOW = record  // a guess. Omission should get fixed in Windows.
-          cb : DWORD;
-          lpReserved : LPTSTR;
-          lpDesktop : LPTSTR;
-          lpTitle : LPTSTR;
-          dwX : DWORD;
-          dwY : DWORD;
-          dwXSize : DWORD;
-          dwYSize : DWORD;
-          dwXCountChars : DWORD;
-          dwYCountChars : DWORD;
-          dwFillAttribute : DWORD;
-          dwFlags : DWORD;
-          wShowWindow : WORD;
-          cbReserved2 : WORD;
-          lpReserved2 : LPBYTE;
-          hStdInput : HANDLE;
-          hStdOutput : HANDLE;
-          hStdError : HANDLE;
-       end;
-     LPSTARTUPINFOW = ^STARTUPINFOW;
-     _STARTUPINFOW = STARTUPINFOW;
-     TSTARTUPINFOW = STARTUPINFOW;
-     PSTARTUPINFOW = ^STARTUPINFOW;
-
-
-{unicode}
-Function DragQueryFileA(arg1 : HDROP; arg2 : UINT;arg3 : LPSTR ; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileA';
-Function DragQueryFileW(arg1 : HDROP; arg2 : UINT;arg3 : LPWSTR; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileW';
-Function DragQueryFile(arg1 : HDROP; arg2 : UINT;arg3 : LPSTR ; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileA';
-Function DragQueryFile(arg1 : HDROP; arg2 : UINT;arg3 : LPWSTR; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileW';
-
-Function DragQueryPoint(arg1 : HDROP; arg2 :LPPOINT):BOOL; external 'shell32.dll' name 'DragQueryPoint';
-Procedure DragFinish(arg1 : HDROP);                     external 'shell32.dll' name 'DragFinish';
-Procedure DragAcceptFiles(hwnd : HWND;arg2: BOOL);      external 'shell32.dll' name 'DragAcceptFiles';
-
-Function ShellExecuteA(HWND: hwnd;lpOperation : LPCSTR ; lpFile : LPCSTR ; lpParameters : LPCSTR; lpDirectory:  LPCSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteA';
-Function ShellExecuteW(hwnd: HWND;lpOperation : LPCWSTR ; lpFile : LPCWSTR ; lpParameters : LPCWSTR; lpDirectory:  LPCWSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteW';
-Function ShellExecute(HWND: hwnd;lpOperation : LPCSTR ; lpFile : LPCSTR ; lpParameters : LPCSTR; lpDirectory:  LPCSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteA';
-Function ShellExecute(hwnd: HWND;lpOperation : LPCWSTR ; lpFile : LPCWSTR ; lpParameters : LPCWSTR; lpDirectory:  LPCWSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteW';
-
-Function FindExecutableA(lpFile : LPCSTR ;lpDirectory : LPCSTR ; lpResult : LPSTR):HInst;external 'shell32.dll' name 'FindExecutableA';
-Function FindExecutableW(lpFile : LPCWSTR;lpDirectory : LPCWSTR; lpResult : LPWSTR):HInst;external 'shell32.dll' name 'FindExecutableW';
-Function FindExecutable(lpFile : LPCSTR ;lpDirectory : LPCSTR ; lpResult : LPSTR):HInst;external 'shell32.dll' name 'FindExecutableA';
-Function FindExecutable(lpFile : LPCWSTR;lpDirectory : LPCWSTR; lpResult : LPWSTR):HInst;external 'shell32.dll' name 'FindExecutableW';
-
-Function CommandLineToArgvW(lpCmdLine : LPCWSTR;pNumArgs : plongint):pLPWSTR;external 'shell32.dll' name 'CommandLineToArgvW';
-
-Function ShellAboutA(HWND: hWnd; szApp : LPCSTR; szOtherStuff : LPCSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutA';
-Function ShellAboutW(HWND: hWnd; szApp : LPCWSTR; szOtherStuff : LPCWSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutW';
-Function ShellAbout(HWND: hWnd; szApp : LPCSTR; szOtherStuff : LPCSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutA';
-Function ShellAbout(HWND: hWnd; szApp : LPCWSTR; szOtherStuff : LPCWSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutW';
-
-Function DuplicateIcon(hinst : HINST; HICON: hIcon):HIcon; external 'shell32.dll' name 'DuplicateIcon';
-
-Function  ExtractAssociatedIconA(hInst : HINST; lpIconPath : LPSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconA';
-Function  ExtractAssociatedIconW(hInst : HINST; lpIconPath : LPWSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconW';
-Function  ExtractAssociatedIcon(hInst : HINST; lpIconPath : LPSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconA';
-Function  ExtractAssociatedIcon(hInst : HINST; lpIconPath : LPWSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconW';
-
-Function ExtractIconA(hInst: HINST; lpszExeFileName :LPCSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconA';
-Function ExtractIconW(hInst: HINST; lpszExeFileName :LPCWSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconW';
-
-Function ExtractIcon(hInst: HINST; lpszExeFileName :LPCSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconA';
-Function ExtractIcon(hInst: HINST; lpszExeFileName :LPCWSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconW';
-
-// if(WINVER >= 0x0400)
-
-Type
-    { init with sizeof(DRAGINFO)  }
-
-       _DRAGINFOA = Record
-                     uSize       : UINT;
-                     pt          : POINT;
-                     fNC         : BOOL;
-                     lpFileList  : LPSTR;
-                     grfKeyState : DWORD;
-                   end;
-       DRAGINFOA   = _DRAGINFOA;
-       TDRAGINFOA  = _DRAGINFOA;
-       LPDRAGINFOA = ^_DRAGINFOA;
-
-    { init with sizeof(DRAGINFO)  }
-
-       _DRAGINFOW = Record
-                     uSize       : UINT;
-                     pt          : POINT;
-                     fNC         : BOOL;
-                     lpFileList  : LPWSTR;
-                     grfKeyState : DWORD;
-                    end;
-       DRAGINFOW   = _DRAGINFOW;
-       TDRAGINFOW  = _DRAGINFOW;
-       LPDRAGINFOW = ^_DRAGINFOW;
-
-{$ifdef UNICODE}
-       DRAGINFO         = DRAGINFOW;
-       TDRAGINFO        = DRAGINFOW;
-       LPDRAGINFO       = LPDRAGINFOW;
-{$else}
-       DRAGINFO         = DRAGINFOA;
-       TDRAGINFO        = DRAGINFOW;
-       LPDRAGINFO       = LPDRAGINFOA;
-{$endif}
-
-Const
-       ABM_NEW                  = $00000000;
-       ABM_REMOVE               = $00000001;
-       ABM_QUERYPOS             = $00000002;
-       ABM_SETPOS               = $00000003;
-       ABM_GETSTATE             = $00000004;
-       ABM_GETTASKBARPOS        = $00000005;
-       ABM_ACTIVATE             = $00000006;     { lParam == TRUE/FALSE means activate/deactivate }
-       ABM_GETAUTOHIDEBAR       = $00000007;
-       ABM_SETAUTOHIDEBAR       = $00000008;     { this can fail at any time.  MUST check the result }
-                                                 { lParam = TRUE/FALSE  Set/Unset }
-                                                 { uEdge = what edge }
-       ABM_WINDOWPOSCHANGED     = $0000009;
-       ABM_SETSTATE             = $0000000a;
-       ABN_STATECHANGE          = $0000000;      { these are put in the wparam of callback messages }
-       ABN_POSCHANGED           = $0000001;
-       ABN_FULLSCREENAPP        = $0000002;
-       ABN_WINDOWARRANGE        = $0000003;      { lParam == TRUE means hide }
-
-       { flags for get state }
-       ABS_AUTOHIDE             = $0000001;
-       ABS_ALWAYSONTOP          = $0000002;
-       ABE_LEFT                 = 0;
-       ABE_TOP                  = 1;
-       ABE_RIGHT                = 2;
-       ABE_BOTTOM               = 3;
-
-
-Type
-
-       _AppBarData        = Record
-                             cbSize             : DWORD;
-                             hWnd               : HWND;
-                             uCallbackMessage   : UINT;
-                             uEdge              : UINT;
-                             rc                 : RECT;
-                             lParam             : LPARAM; { message specific }
-                            end;
-       APPBARDATA         = _AppBarData;
-       TAPPBARDATA        = _AppBarData;
-       PAPPBARDATA        = ^_AppBarData;
-
-
-Function SHAppBarMessage(dwMessage : DWORD; pData : APPBARDATA):UINT_PTR;external 'shell32.dll' name 'SHAppBarMessage';
-
-    //
-    //  EndAppBar
-    //
-
-Function   DoEnvironmentSubstA(szString: LPSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstA';
-Function   DoEnvironmentSubstW(szString: LPWSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstW';
-Function   DoEnvironmentSubst(szString: LPSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstA';
-Function   DoEnvironmentSubst(szString: LPWSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstW';
-
-{Macro}
-function EIRESID(x : longint) : longint;
-
-Function ExtractIconExA(lpszFile : LPCSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT;   external 'shell32.dll' name 'ExtractIconExA';
-Function ExtractIconExW(lpszFile : LPCWSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT;  external 'shell32.dll' name 'ExtractIconExW';
-Function ExtractIconExA(lpszFile : LPCSTR; nIconIndex:Longint; var phiconLarge:HICON;var phiconSmall:HIcon; nIcons:UINT):UINT;   external 'shell32.dll' name 'ExtractIconExA';
-Function ExtractIconExW(lpszFile : LPCWSTR; nIconIndex:Longint; var phiconLarge:HICON;var phiconSmall:HIcon; nIcons:UINT):UINT;  external 'shell32.dll' name 'ExtractIconExW';
-
-Function ExtractIconEx (lpszFile : LPCSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExA';
-Function ExtractIconEx (lpszFile : LPCWSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExW';
-Function ExtractIconEx (lpszFile : LPCSTR; nIconIndex:Longint; var phiconLarge:HICON;var phiconSmall:HIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExA';
-Function ExtractIconEx (lpszFile : LPCWSTR; nIconIndex:Longint; var phiconLarge:HICON;var phiconSmall:HIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExW';
-
-//
-// Shell File Operations
-//
-
-//ifndef FO_MOVE  //these need to be kept in sync with the ones in shlobj.h}
-Const
-       FO_MOVE                  = $0001;
-       FO_COPY                  = $0002;
-       FO_DELETE                = $0003;
-       FO_RENAME                = $0004;
-       FOF_MULTIDESTFILES       = $0001;
-       FOF_CONFIRMMOUSE         = $0002;
-       FOF_SILENT               = $0004;    { don't create progress/report }
-       FOF_RENAMEONCOLLISION    = $0008;
-       FOF_NOCONFIRMATION       = $0010;    { Don't prompt the user. }
-       FOF_WANTMAPPINGHANDLE    = $0020;    { Fill in SHFILEOPSTRUCT.hNameMappings }
-       FOF_ALLOWUNDO            = $0040;    { Must be freed using SHFreeNameMappings }
-       FOF_FILESONLY            = $0080;    { on *.*, do only files }
-       FOF_SIMPLEPROGRESS       = $0100;    { means don't show names of files }
-       FOF_NOCONFIRMMKDIR       = $0200;    { don't confirm making any needed dirs }
-       FOF_NOERRORUI            = $0400;    { don't put up error UI }
-       FOF_NOCOPYSECURITYATTRIBS= $0800;    { dont copy NT file Security Attributes }
-       FOF_NORECURSION          = $1000;    { don't recurse into directories. }
-
-//if (_WIN32_IE >= 0x0500)
-       FOF_NO_CONNECTED_ELEMENTS= $2000;    { don't operate on connected elements. }
-       FOF_WANTNUKEWARNING      = $4000;    { during delete operation, warn if nuking instead of recycling (partially overrides FOF_NOCONFIRMATION) }
-//endif
-
-//if (_WIN32_WINNT >= 0x0501)
-       FOF_NORECURSEREPARSE     = $8000;    { treat reparse points as objects, not containers }
-//endif
-
-Type
-       FILEOP_FLAGS             = WORD;
-
-Const
-       PO_DELETE                = $0013;    { printer is being deleted }
-       PO_RENAME                = $0014;    { printer is being renamed }
-
-       PO_PORTCHANGE            = $0020;    { port this printer connected to is being changed }
-                                            { if this id is set, the strings received by }
-                                            { the copyhook are a doubly-null terminated }
-                                            { list of strings.  The first is the printer }
-                                            { name and the second is the printer port. }
-
-       PO_REN_PORT              = $0034;    { PO_RENAME and PO_PORTCHANGE at same time. }
-
-{ no POF_ flags currently defined }
-
-Type
-
-       PRINTEROP_FLAGS = WORD;
-//endif}
-
-    { FO_MOVE }
-    { implicit parameters are: }
-    {      if pFrom or pTo are unqualified names the current directories are }
-    {      taken from the global current drive/directory settings managed }
-    {      by Get/SetCurrentDrive/Directory }
-    { }
-    {      the global confirmation settings }
-    { only used if FOF_SIMPLEPROGRESS }
-
-Type
-
-       _SHFILEOPSTRUCTA         = Record
-                                   hwnd              : HWND;
-                                   wFunc             : UINT;
-                                   pFrom             : LPCSTR;
-                                   pTo               : LPCSTR;
-                                   fFlags            : FILEOP_FLAGS;
-                                   fAnyOperationsAborted : BOOL;
-                                   hNameMappings     : LPVOID;
-                                   lpszProgressTitle : LPCSTR;     { only used if FOF_SIMPLEPROGRESS }
-                                  end;
-       SHFILEOPSTRUCTA          = _SHFILEOPSTRUCTA;
-       TSHFILEOPSTRUCTA         = _SHFILEOPSTRUCTA;
-       LPSHFILEOPSTRUCTA        = ^_SHFILEOPSTRUCTA;
-
-
-       _SHFILEOPSTRUCTW         = record
-                                   hwnd              : HWND;
-                                   wFunc             : UINT;
-                                   pFrom             : LPCWSTR;
-                                   pTo               : LPCWSTR;
-                                   fFlags            : FILEOP_FLAGS;
-                                   fAnyOperationsAborted : BOOL;
-                                   hNameMappings     : LPVOID;
-                                   lpszProgressTitle : LPCWSTR;
-                                  end;
-       SHFILEOPSTRUCTW          = _SHFILEOPSTRUCTW;
-       TSHFILEOPSTRUCTW         = _SHFILEOPSTRUCTW;
-       LPSHFILEOPSTRUCTW        = ^_SHFILEOPSTRUCTW;
-{$ifdef UNICODE}
-       SHFILEOPSTRUCT           = SHFILEOPSTRUCTW;
-       TSHFILEOPSTRUCT          = SHFILEOPSTRUCTW;
-       LPSHFILEOPSTRUCT         = LPSHFILEOPSTRUCTW;
-{$else}
-       SHFILEOPSTRUCT           = SHFILEOPSTRUCTA;
-       TSHFILEOPSTRUCT          = SHFILEOPSTRUCTA;
-       LPSHFILEOPSTRUCT         = LPSHFILEOPSTRUCTA;
-{$endif}
-
-Function SHFileOperationA(lpFileOp:LPSHFILEOPSTRUCTA ):Longint;external 'shell32.dll' name 'SHFileOperationA';
-Function SHFileOperationW(lpFileOp:LPSHFILEOPSTRUCTW ):Longint;external 'shell32.dll' name 'SHFileOperationW';
-
-Function SHFileOperation(lpFileOp:LPSHFILEOPSTRUCTA ):Longint;external 'shell32.dll' name 'SHFileOperationA';
-Function SHFileOperation(lpFileOp:LPSHFILEOPSTRUCTW ):Longint;external 'shell32.dll' name 'SHFileOperationW';
-
-Procedure SHFreeNameMappings(hNameMappings : THandle);external 'shell32.dll' name 'SHFreeNameMappings';
-
-Type
-
-       _SHNAMEMAPPINGA          = Record
-                                   pszOldPath : LPSTR;
-                                   pszNewPath : LPSTR;
-                                   cchOldPath : longint;
-                                   cchNewPath : longint;
-                                  end;
-       SHNAMEMAPPINGA           = _SHNAMEMAPPINGA;
-       TSHNAMEMAPPINGA          = _SHNAMEMAPPINGA;
-       LPSHNAMEMAPPINGA         = ^_SHNAMEMAPPINGA;
-
-       _SHNAMEMAPPINGW          = Record
-                                   pszOldPath : LPWSTR;
-                                   pszNewPath : LPWSTR;
-                                   cchOldPath : longint;
-                                   cchNewPath : longint;
-                                  end;
-       SHNAMEMAPPINGW           = _SHNAMEMAPPINGW;
-       TSHNAMEMAPPINGW          = _SHNAMEMAPPINGW;
-       LPSHNAMEMAPPINGW         = ^_SHNAMEMAPPINGW;
-{$ifndef UNICODE}
-       SHNAMEMAPPING            = SHNAMEMAPPINGW;
-       TSHNAMEMAPPING           = SHNAMEMAPPINGW;
-       LPSHNAMEMAPPING          = LPSHNAMEMAPPINGW;
-{$else}
-       SHNAMEMAPPING            = SHNAMEMAPPINGA;
-       TSHNAMEMAPPING           = SHNAMEMAPPINGA;
-       LPSHNAMEMAPPING          = LPSHNAMEMAPPINGA;
-{$endif}
-
-    //
-    // End Shell File Operations
-    //
-    //
-    //  Begin ShellExecuteEx and family
-    //
-
-
-    { ShellExecute() and ShellExecuteEx() error codes  }
-    { regular WinExec() codes  }
-
-
-    const
-       SE_ERR_FNF               = 2;    { file not found }
-       SE_ERR_PNF               = 3;    { path not found }
-       SE_ERR_ACCESSDENIED      = 5;    { access denied }
-       SE_ERR_OOM               = 8;    { out of memory }
-       SE_ERR_DLLNOTFOUND       = 32;
-// endif   WINVER >= 0x0400
-
-    { error values for ShellExecute() beyond the regular WinExec() codes  }
-       SE_ERR_SHARE             = 26;
-       SE_ERR_ASSOCINCOMPLETE   = 27;
-       SE_ERR_DDETIMEOUT        = 28;
-       SE_ERR_DDEFAIL           = 29;
-       SE_ERR_DDEBUSY           = 30;
-       SE_ERR_NOASSOC           = 31;
-
-//if(WINVER >= 0x0400)}
-
-    { Note CLASSKEY overrides CLASSNAME }
-
-       SEE_MASK_CLASSNAME       = $00000001;
-       SEE_MASK_CLASSKEY        = $00000003;
-    { Note INVOKEIDLIST overrides IDLIST }
-       SEE_MASK_IDLIST          = $00000004;
-       SEE_MASK_INVOKEIDLIST    = $0000000c;
-       SEE_MASK_ICON            = $00000010;
-       SEE_MASK_HOTKEY          = $00000020;
-       SEE_MASK_NOCLOSEPROCESS  = $00000040;
-       SEE_MASK_CONNECTNETDRV   = $00000080;
-       SEE_MASK_FLAG_DDEWAIT    = $00000100;
-       SEE_MASK_DOENVSUBST      = $00000200;
-       SEE_MASK_FLAG_NO_UI      = $00000400;
-       SEE_MASK_UNICODE         = $00004000;
-       SEE_MASK_NO_CONSOLE      = $00008000;
-       SEE_MASK_ASYNCOK         = $00100000;
-       SEE_MASK_HMONITOR        = $00200000;
-//if (_WIN32_IE >= 0x0500)
-       SEE_MASK_NOQUERYCLASSSTORE= $01000000;
-       SEE_MASK_WAITFORINPUTIDLE= $02000000;
-//endif  (_WIN32_IE >= 0x500)
-//if (_WIN32_IE >= 0x0560)
-       SEE_MASK_FLAG_LOG_USAGE  = $04000000;
-//endif
-    { (_WIN32_IE >= 0x560) }
-
-    type
-
-       _SHELLEXECUTEINFOA       = record
-                                   cbSize : DWORD;
-                                   fMask : ULONG;
-                                   hwnd : HWND;
-                                   lpVerb : LPCSTR;
-                                   lpFile : LPCSTR;
-                                   lpParameters : LPCSTR;
-                                   lpDirectory : LPCSTR;
-                                   nShow : longint;
-                                   hInstApp : HINST;
-                                   lpIDList : LPVOID;
-                                   lpClass : LPCSTR;
-                                   hkeyClass : HKEY;
-                                   dwHotKey : DWORD;
-                                   DUMMYUNIONNAME : record
-                                                      case longint of
-                                                       0 : ( hIcon : HANDLE );
-                                                       1 : ( hMonitor : HANDLE );
-                                                      end;
-                                   hProcess : HANDLE;
-                                  end;
-
-       SHELLEXECUTEINFOA        = _SHELLEXECUTEINFOA;
-       TSHELLEXECUTEINFOA       = _SHELLEXECUTEINFOA;
-       LPSHELLEXECUTEINFOA      = ^_SHELLEXECUTEINFOA;
-
-
-       _SHELLEXECUTEINFOW       = record
-                                   cbSize : DWORD;
-                                   fMask : ULONG;
-                                   hwnd : HWND;
-                                   lpVerb : lpcwstr;
-                                   lpFile : lpcwstr;
-                                   lpParameters : lpcwstr;
-                                   lpDirectory : lpcwstr;
-                                   nShow : longint;
-                                   hInstApp : HINST;
-                                   lpIDList : LPVOID;
-                                   lpClass : LPCWSTR;
-                                   hkeyClass : HKEY;
-                                   dwHotKey : DWORD;
-                                   DUMMYUNIONNAME : record
-                                                      case longint of
-                                                       0 : ( hIcon : HANDLE );
-                                                       1 : ( hMonitor : HANDLE );
-                                                      end;
-                                   hProcess : HANDLE;
-                                  end;
-
-       SHELLEXECUTEINFOW        = _SHELLEXECUTEINFOW;
-       TSHELLEXECUTEINFOW       = _SHELLEXECUTEINFOW;
-       LPSHELLEXECUTEINFOW      = ^_SHELLEXECUTEINFOW;
-
-{$ifdef UNICODE}
-       SHELLEXECUTEINFO         = SHELLEXECUTEINFOW;
-       TSHELLEXECUTEINFO        = SHELLEXECUTEINFOW;
-       LPSHELLEXECUTEINFO       = LPSHELLEXECUTEINFOW;
-{$else}
-       SHELLEXECUTEINFO         = SHELLEXECUTEINFOA;
-       TSHELLEXECUTEINFO        = SHELLEXECUTEINFOA;
-       LPSHELLEXECUTEINFO       = LPSHELLEXECUTEINFOA;
-{$endif}
-
-Function ShellExecuteExA(lpExecInfo: LPSHELLEXECUTEINFOA):Bool;external 'shell32.dll' name 'ShellExecuteExA';
-Function ShellExecuteExW(lpExecInfo: LPSHELLEXECUTEINFOW):Bool;external 'shell32.dll' name 'ShellExecuteExW';
-Function ShellExecuteEx(lpExecInfo: LPSHELLEXECUTEINFOA):Bool;external 'shell32.dll' name 'ShellExecuteExA';
-Function ShellExecuteEx(lpExecInfo: LPSHELLEXECUTEINFOW):Bool;external 'shell32.dll' name 'ShellExecuteExW';
-
-Procedure WinExecErrorA(HWND : hwnd; error : Longint;lpstrFileName:LPCSTR; lpstrTitle:LPCSTR);   external 'shell32.dll' name 'WinExecErrorA';
-Procedure WinExecErrorW(HWND : hwnd; error : Longint;lpstrFileName:LPCWSTR; lpstrTitle:LPCWSTR); external 'shell32.dll' name 'WinExecErrorW';
-Procedure WinExecError(HWND : hwnd; error : Longint;lpstrFileName:LPCSTR; lpstrTitle:LPCSTR); external 'shell32.dll' name 'WinExecErrorA';
-Procedure WinExecError(HWND : hwnd; error : Longint;lpstrFileName:LPCWSTR; lpstrTitle:LPCWSTR); external 'shell32.dll' name 'WinExecErrorW';
-
-type
-
-     _SHCREATEPROCESSINFOW      = record
-                                   cbSize               : DWORD;
-                                   fMask                : ULONG;
-                                   hwnd                 : HWND;
-                                   pszFile              : LPCWSTR;
-                                   pszParameters        : LPCWSTR;
-                                   pszCurrentDirectory  : LPCWSTR;
-                             {in}  hUserToken           : HANDLE;
-                             {in}  lpProcessAttributes  : LPSECURITY_ATTRIBUTES;
-                             {in}  lpThreadAttributes   : LPSECURITY_ATTRIBUTES;
-                             {in}  bInheritHandles      : BOOL;
-                             {in}  dwCreationFlags      : DWORD;
-                             {in}  lpStartupInfo        : LPSTARTUPINFOW;
-                             {out} lpProcessInformation : LPPROCESS_INFORMATION;
-                                  end;
-     SHCREATEPROCESSINFOW       = _SHCREATEPROCESSINFOW;
-     TSHCREATEPROCESSINFOW      = _SHCREATEPROCESSINFOW;
-     PSHCREATEPROCESSINFOW      = ^_SHCREATEPROCESSINFOW;
-
-Function SHCreateProcessAsUserW(pscpi : PSHCREATEPROCESSINFOW):Bool;external 'shell32.dll' name 'SHCreateProcessAsUserW';
-
-    //
-    //  End ShellExecuteEx and family }
-    //
-
-    //
-    // RecycleBin
-    //
-
-    { struct for query recycle bin info }
-
-Type
-       _SHQUERYRBINFO           = record
-                                   cbSize       : DWORD;
-                                   i64Size      : int64;
-                                   i64NumItems  : int64;
-                                  end;
-       SHQUERYRBINFO            = _SHQUERYRBINFO;
-       TSHQUERYRBINFO           = _SHQUERYRBINFO;
-       LPSHQUERYRBINFO          = ^_SHQUERYRBINFO;
-
-       { flags for SHEmptyRecycleBin }
-
-const
-       SHERB_NOCONFIRMATION     = $00000001;
-       SHERB_NOPROGRESSUI       = $00000002;
-       SHERB_NOSOUND            = $00000004;
-
-function SHQueryRecycleBinA(pszRootPath:LPCSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinA';
-function SHQueryRecycleBinW(pszRootPath:LPCWSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinW';
-function SHQueryRecycleBin(pszRootPath:LPCSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinA';
-function SHQueryRecycleBin(pszRootPath:LPCWSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinW';
-
-function SHEmptyRecycleBinA(hwnd:HWND; pszRootPath:LPCSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinA';
-function SHEmptyRecycleBinW(hwnd:HWND; pszRootPath:LPCWSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinW';
-function SHEmptyRecycleBin(hwnd:HWND; pszRootPath:LPCSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinA';
-function SHEmptyRecycleBin(hwnd:HWND; pszRootPath:LPCWSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinW';
-
-//
-// end of RecycleBin
-//
-
-//
-// Tray notification definitions
-//
-
-Type
-
-       _NOTIFYICONDATAA         = record
-                                   cbSize               : DWORD;
-                                   hWnd                 : HWND;
-                                   uID                  : UINT;
-                                   uFlags               : UINT;
-                                   uCallbackMessage     : UINT;
-                                   hIcon                : HICON;
-                                   {$ifdef IELower5}
-                                    szTip               : array[0..63] of CHAR;
-                                   {$else}
-                                    szTip               : array[0..127] of CHAR;
-                                   {$endif}
-                                   {$ifdef IEhigherEqual5}
-                                    dwState             : DWORD;
-                                    dwStateMask         : DWORD;
-                                    szInfo              : array[0..255] of CHAR;
-                                    DUMMYUNIONNAME      : record
-                                                           case longint of
-                                                               0 : ( uTimeout : UINT );
-                                                               1 : ( uVersion : UINT );
-                                                              end;
-                                    szInfoTitle : array[0..63] of CHAR;
-                                    dwInfoFlags : DWORD;
-                                   {$endif}
-                                   {$ifdef IEHighEq6}
-                                    guidItem : GUID;
-                                   {$endif}
-                                   end;
-       NOTIFYICONDATAA          = _NOTIFYICONDATAA;
-       TNOTIFYICONDATAA         = _NOTIFYICONDATAA;
-       PNOTIFYICONDATAA         = ^_NOTIFYICONDATAA;
-
-
-       _NOTIFYICONDATAW         = record
-                                   cbSize               : DWORD;
-                                   hWnd                 : HWND;
-                                   uID                  : UINT;
-                                   uFlags               : UINT;
-                                   uCallbackMessage     : UINT;
-                                   hIcon                : HICON;
-                                   {$ifdef IELower5}
-                                    szTip               : array[0..63] of WCHAR;
-                                   {$else}
-                                    szTip               : array[0..127] of WCHAR;
-                                   {$endif}
-                                   {$ifdef IEhigherEqual5}
-                                    dwState             : DWORD;
-                                    dwStateMask         : DWORD;
-                                    szInfo              : array[0..255] of WCHAR;
-                                    DUMMYUNIONNAME      : record
-                                                           case longint of
-                                                               0 : ( uTimeout : UINT );
-                                                               1 : ( uVersion : UINT );
-                                                              end;
-                                    szInfoTitle : array[0..63] of CHAR;
-                                    dwInfoFlags : DWORD;
-                                   {$endif}
-                                   {$ifdef IEHighEq6}
-                                    guidItem : GUID;
-                                   {$endif}
-                                   end;
-       NOTIFYICONDATAW          = _NOTIFYICONDATAW;
-       TNOTIFYICONDATAW         = _NOTIFYICONDATAW;
-       PNOTIFYICONDATAW         = ^_NOTIFYICONDATAW;
-{$ifdef UNICODE}
-       NOTIFYICONDATA           = NOTIFYICONDATAW;
-       TNOTIFYICONDATA          = NOTIFYICONDATAW;
-       PNOTIFYICONDATA          = PNOTIFYICONDATAW;
-{$else}
-       NOTIFYICONDATA           = NOTIFYICONDATAA;
-       TNOTIFYICONDATA          = NOTIFYICONDATAA;
-       PNOTIFYICONDATA          = PNOTIFYICONDATAA;
-{$endif}
-    { UNICODE }
-
-    {
-
-#define NOTIFYICONDATAA_V1_SIZE     FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
-#define NOTIFYICONDATAW_V1_SIZE     FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
-#ifdef UNICODE
-#define NOTIFYICONDATA_V1_SIZE      NOTIFYICONDATAW_V1_SIZE
-#else
-#define NOTIFYICONDATA_V1_SIZE      NOTIFYICONDATAA_V1_SIZE
-#endif
-
-#define NOTIFYICONDATAA_V2_SIZE     FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
-#define NOTIFYICONDATAW_V2_SIZE     FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
-#ifdef UNICODE
-#define NOTIFYICONDATA_V2_SIZE      NOTIFYICONDATAW_V2_SIZE
-#else
-#define NOTIFYICONDATA_V2_SIZE      NOTIFYICONDATAA_V2_SIZE
-#endif
-}
-
-
-    const
-       NIN_SELECT               = WM_USER + 0;
-       NINF_KEY                 = $1;
-       NIN_KEYSELECT            = NIN_SELECT or NINF_KEY;
-// if (_WIN32_IE >= 0x0501)}
-
-       NIN_BALLOONSHOW          = WM_USER + 2;
-       NIN_BALLOONHIDE          = WM_USER + 3;
-       NIN_BALLOONTIMEOUT       = WM_USER + 4;
-       NIN_BALLOONUSERCLICK     = WM_USER + 5;
-       NIM_ADD                  = $00000000;
-       NIM_MODIFY               = $00000001;
-       NIM_DELETE               = $00000002;
-//if (_WIN32_IE >= 0x0500)}
-
-       NIM_SETFOCUS             = $00000003;
-       NIM_SETVERSION           = $00000004;
-       NOTIFYICON_VERSION       = 3;
-
-       NIF_MESSAGE              = $00000001;
-       NIF_ICON                 = $00000002;
-       NIF_TIP                  = $00000004;
-// if (_WIN32_IE >= 0x0500)}
-       NIF_STATE                = $00000008;
-       NIF_INFO                 = $00000010;
-//if (_WIN32_IE >= 0x600)}
-
-       NIF_GUID                 = $00000020;
-//if (_WIN32_IE >= 0x0500)}
-
-       NIS_HIDDEN               = $00000001;
-       NIS_SHAREDICON           = $00000002;
-    { says this is the source of a shared icon }
-    { Notify Icon Infotip flags }
-       NIIF_NONE                = $00000000;
-    { icon flags are mutually exclusive }
-    { and take only the lowest 2 bits }
-       NIIF_INFO                = $00000001;
-       NIIF_WARNING             = $00000002;
-       NIIF_ERROR               = $00000003;
-       NIIF_ICON_MASK           = $0000000F;
-//if (_WIN32_IE >= 0x0501)}
-
-       NIIF_NOSOUND             = $00000010;
-
-Function Shell_NotifyIconA( dwMessage: Dword;lpData: PNOTIFYICONDATAA):Bool;external 'shell32.dll' name 'Shell_NotifyIconA';
-Function Shell_NotifyIconW( dwMessage: Dword;lpData: PNOTIFYICONDATAW):Bool;external 'shell32.dll' name 'Shell_NotifyIconW';
-
-Function Shell_NotifyIcon( dwMessage: Dword;lpData: PNOTIFYICONDATAA):Bool;external 'shell32.dll' name 'Shell_NotifyIconA';
-Function Shell_NotifyIcon( dwMessage: Dword;lpData: PNOTIFYICONDATAW):Bool;external 'shell32.dll' name 'Shell_NotifyIconW';
-//
-// End Tray Notification Icons
-//
-
-//
-// Begin SHGetFileInfo
-//
-    {
-       The SHGetFileInfo API provides an easy way to get attributes
-       for a file given a pathname.
-
-         PARAMETERS
-
-           pszPath              file name to get info about
-           dwFileAttributes     file attribs, only used with SHGFI_USEFILEATTRIBUTES
-           psfi                 place to return file info
-           cbFileInfo           size of structure
-           uFlags               flags
-
-         RETURN
-           TRUE if things worked
-      }
-    { out: icon }
-    { out: icon index }
-    { out: SFGAO_ flags }
-    { out: display name (or path) }
-    { out: type name }
-
-    type
-
-       _SHFILEINFOA                     = record
-                                            hIcon         : HICON;                          { out: icon }
-                                            iIcon         : longint;                        { out: icon index }
-                                            dwAttributes  : DWORD;                          { out: SFGAO_ flags }
-                                            szDisplayName : array[0..(MAX_PATH)-1] of CHAR; { out: display name (or path) }
-                                            szTypeName    : array[0..79] of CHAR;           { out: type name }
-                                           end;
-       SHFILEINFOA                      = _SHFILEINFOA;
-       TSHFILEINFOA                     = _SHFILEINFOA;
-       pSHFILEINFOA                     = ^_SHFILEINFOA;
-
-       _SHFILEINFOW                     = record
-                                            hIcon         : HICON;                          { out: icon }
-                                            iIcon         : longint;                        { out: icon index }
-                                            dwAttributes  : DWORD;                          { out: SFGAO_ flags }
-                                            szDisplayName : array[0..(MAX_PATH)-1] of WCHAR;{ out: display name (or path) }
-                                            szTypeName    : array[0..79] of WCHAR;          { out: type name }
-                                           end;
-       SHFILEINFOW                      = _SHFILEINFOW;
-       TSHFILEINFOW                     = _SHFILEINFOW;
-       pSHFILEINFOW                     = ^_SHFILEINFOW;
-
-{$ifdef UNICODE}
-       SHFILEINFO                       = SHFILEINFOW;
-       TSHFILEINFO                      = SHFILEINFOW;
-       pFILEINFO                        = SHFILEINFOW;
-{$else}
-       SHFILEINFO                       = SHFILEINFOA;
-       TSHFILEINFO                      = SHFILEINFOA;
-       pFILEINFO                        = SHFILEINFOA;
-{$endif}
-    { NOTE: This is also in shlwapi.h.  Please keep in synch. }
-
-    const
-       SHGFI_ICON               = $000000100;    { get Icon}
-       SHGFI_DISPLAYNAME        = $000000200;    { get display name }
-       SHGFI_TYPENAME           = $000000400;    { get type name }
-       SHGFI_ATTRIBUTES         = $000000800;    { get attributes }
-       SHGFI_ICONLOCATION       = $000001000;    { get icon location}
-       SHGFI_EXETYPE            = $000002000;    { return exe type }
-       SHGFI_SYSICONINDEX       = $000004000;    { get system icon index }
-       SHGFI_LINKOVERLAY        = $000008000;    { put a link overlay on icon }
-       SHGFI_SELECTED           = $000010000;    { show icon in selected state }
-       SHGFI_ATTR_SPECIFIED     = $000020000;    { get only specified attributes }
-       SHGFI_LARGEICON          = $000000000;    { get large icon }
-       SHGFI_SMALLICON          = $000000001;    { get small icon }
-       SHGFI_OPENICON           = $000000002;    { get open icon }
-       SHGFI_SHELLICONSIZE      = $000000004;    { get shell size icon }
-       SHGFI_PIDL               = $000000008;    { pszPath is a pidl }
-       SHGFI_USEFILEATTRIBUTES  = $000000010;    { use passed dwFileAttribute }
-//if (_WIN32_IE >= 0x0500)}
-       SHGFI_ADDOVERLAYS        = $000000020;    { apply the appropriate overlays }
-       SHGFI_OVERLAYINDEX       = $000000040;    { Get the index of the overlay }
-                                                 { in the upper 8 bits of the iIcon  }
-Function SHGetFileInfoA(pszPath: LPCSTR; dwFileAttributes : DWORD; psfi: pSHFILEINFOA; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoA';
-Function SHGetFileInfoW(pszPath: LPCWSTR; dwFileAttributes : DWORD; psfi: pSHFILEINFOW; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoW';
-Function SHGetFileInfo(pszPath: LPCSTR; dwFileAttributes : DWORD; psfi: pSHFILEINFOA; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoA';
-
-Function SHGetFileInfoA(pszPath: LPCSTR; dwFileAttributes : DWORD; var psfi: TSHFILEINFOA; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoA';
-Function SHGetFileInfoW(pszPath: LPCWSTR; dwFileAttributes : DWORD; var psfi: TSHFILEINFOW; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoW';
-Function SHGetFileInfo(pszPath: LPCSTR; dwFileAttributes : DWORD; var psfi: TSHFILEINFOA; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoA';
-Function SHGetFileInfo(pszPath: LPCWSTR; dwFileAttributes : DWORD; var psfi: TSHFILEINFOW; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoW';
-
-Function SHGetDiskFreeSpaceExA( pszDirectoryName : LPCSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExA';
-Function SHGetDiskFreeSpaceExW( pszDirectoryName : LPCWSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExW';
-Function SHGetDiskFreeSpaceEx( pszDirectoryName : LPCSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExA';
-Function SHGetDiskFreeSpace( pszDirectoryName : LPCSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExA';
-Function SHGetDiskFreeSpaceEx( pszDirectoryName : LPCWSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExW';
-Function SHGetDiskFreeSpace( pszDirectoryName : LPCWSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExW';
-
-Function SHGetNewLinkInfoA(pszLinkTo:LPCSTR;pszDir:LPCSTR; pszName:LPSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoA';
-Function SHGetNewLinkInfoW(pszLinkTo:LPCWSTR;pszDir:LPCWSTR; pszName:LPWSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoW';
-
-Function SHGetNewLinkInfo (pszLinkTo:LPCSTR;pszDir:LPCSTR; pszName:LPSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoA';
-Function SHGetNewLinkInfo (pszLinkTo:LPCWSTR;pszDir:LPCWSTR; pszName:LPWSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoW';
-
-    const
-       SHGNLI_PIDL              = $000000001;    { pszLinkTo is a pidl }
-       SHGNLI_PREFIXNAME        = $000000002;    { Make name "Shortcut to xxx" }
-       SHGNLI_NOUNIQUE          = $000000004;    { don't do the unique name generation }
-// {if (_WIN32_IE >= 0x0501)}
-       SHGNLI_NOLNK             = $000000008;    { don't add ".lnk" extension }
-// {$endif}
-    { _WIN2_IE >= 0x0501 }
-//
-// End SHGetFileInfo
-//
-
-    { Printer stuff }
-       PRINTACTION_OPEN             = 0;
-       PRINTACTION_PROPERTIES       = 1;
-       PRINTACTION_NETINSTALL       = 2;
-       PRINTACTION_NETINSTALLLINK   = 3;
-       PRINTACTION_TESTPAGE         = 4;
-       PRINTACTION_OPENNETPRN       = 5;
-{$ifdef WINNT}
-       PRINTACTION_DOCUMENTDEFAULTS = 6;
-       PRINTACTION_SERVERPROPERTIES = 7;
-{$endif}
-
-Function SHInvokePrinterCommandA(HWND: hwnd; uAction:UINT; lpBuf1: LPCSTR; lpBuf2: LPCSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandA';
-Function SHInvokePrinterCommandW(HWND: hwnd; uAction:UINT; lpBuf1: LPCWSTR; lpBuf2: LPCWSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandW';
-Function SHInvokePrinterCommand(HWND: hwnd; uAction:UINT; lpBuf1: LPCSTR; lpBuf2: LPCSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandA';
-Function SHInvokePrinterCommand(HWND: hwnd; uAction:UINT; lpBuf1: LPCWSTR; lpBuf2: LPCWSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandW';
-
-// WINVER >= 0x0400
-//if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0500)
-    //
-    // The SHLoadNonloadedIconOverlayIdentifiers API causes the shell's
-    // icon overlay manager to load any registered icon overlay
-    // identifers that are not currently loaded.  This is useful if an
-    // overlay identifier did not load at shell startup but is needed
-    // and can be loaded at a later time.  Identifiers already loaded
-    // are not affected.  Overlay identifiers implement the
-    // IShellIconOverlayIdentifier interface.
-    //
-    // Returns:
-    //      S_OK
-    //
-
-function SHLoadNonloadedIconOverlayIdentifiers:HResult; external 'shell32.dll' name 'SHInvokePrinterCommandW';
-
-    //
-    // The SHIsFileAvailableOffline API determines whether a file
-    // or folder is available for offline use.
-    //
-    // Parameters:
-    //     pwszPath             file name to get info about
-    //     pdwStatus            (optional) OFFLINE_STATUS_* flags returned here
-    //
-    // Returns:
-    //     S_OK                 File/directory is available offline, unless
-    //                            OFFLINE_STATUS_INCOMPLETE is returned.
-    //     E_INVALIDARG         Path is invalid, or not a net path
-    //     E_FAIL               File/directory is not available offline
-    //
-    // Notes:
-    //     OFFLINE_STATUS_INCOMPLETE is never returned for directories.
-    //     Both OFFLINE_STATUS_LOCAL and OFFLINE_STATUS_REMOTE may be returned,
-    //     indicating "open in both places." This is common when the server is online.
-    //
-function SHIsFileAvailableOffline(pwszPath:LPCWSTR; pdwStatus:LPDWORD):HRESULT; external 'shell32.dll' name 'SHIsFileAvailableOffline';
-
-const
-       OFFLINE_STATUS_LOCAL         = $0001;    { If open, it's open locally }
-       OFFLINE_STATUS_REMOTE        = $0002;    { If open, it's open remotely }
-       OFFLINE_STATUS_INCOMPLETE    = $0004;    { The local copy is currently incomplete. }
-                                                { The file will not be available offline }
-                                                { until it has been synchronized. }
-    {  sets the specified path to use the string resource }
-    {  as the UI instead of the file system name }
-
-function SHSetLocalizedName(pszPath:LPWSTR; pszResModule:LPCWSTR; idsRes:longint):HRESULT;external 'shell32.dll' name 'SHSetLocalizedName';
-
-//if         _WIN32_IE >= 0x0600}
-
-function SHEnumerateUnreadMailAccountsA(hKeyUser:HKEY; dwIndex:DWORD; pszMailAddress:LPSTR; cchMailAddress:longint):HRESULT;external 'shell32.dll' name 'SHEnumerateUnreadMailAccountsA';
-function SHEnumerateUnreadMailAccountsW(hKeyUser:HKEY; dwIndex:DWORD; pszMailAddress:LPWSTR; cchMailAddress:longint):HRESULT;external 'shell32.dll' name 'SHEnumerateUnreadMailAccountsW';
-
-function SHEnumerateUnreadMailAccounts(hKeyUser:HKEY; dwIndex:DWORD; pszMailAddress:LPWSTR; cchMailAddress:longint):HRESULT;external 'shell32.dll' name 'SHEnumerateUnreadMailAccountsW';
-
-function SHGetUnreadMailCountA(hKeyUser:HKEY; pszMailAddress:LPCSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountA';
-function SHGetUnreadMailCountW(hKeyUser:HKEY; pszMailAddress:LPCWSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPWSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountW';
-function SHGetUnreadMailCount(hKeyUser:HKEY; pszMailAddress:LPCSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountA';
-function SHGetUnreadMailCount(hKeyUser:HKEY; pszMailAddress:LPCWSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPWSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountW';
-
-function SHSetUnreadMailCountA(pszMailAddress:LPCSTR; dwCount:DWORD; pszShellExecuteCommand:LPCSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountA';
-function SHSetUnreadMailCountW(pszMailAddress:LPCWSTR; dwCount:DWORD; pszShellExecuteCommand:LPCWSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountW';
-function SHSetUnreadMailCount(pszMailAddress:LPCSTR; dwCount:DWORD; pszShellExecuteCommand:LPCSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountA';
-function SHSetUnreadMailCount(pszMailAddress:LPCWSTR; dwCount:DWORD; pszShellExecuteCommand:LPCWSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountW';
-
-//  _WIN32_IE >= 0x0600      }
-//  if         _WIN32_IE >= 0x0600}
-
-function SHGetImageList(iImageList:longint;CONST riid:TIID; ppvObj:Ppointer):HRESULT;external 'shell32.dll' name 'SHGetImageList';
-
-Const
-       SHIL_LARGE                   = 0;    { normally 32x32 }
-       SHIL_SMALL                   = 1;    { normally 16x16 }
-       SHIL_EXTRALARGE              = 2;
-       SHIL_SYSSMALL                = 3;    { like SHIL_SMALL, but tracks system small icon metric correctly }
-       SHIL_LAST                    = SHIL_SYSSMALL;
-
-    { Function call types for ntshrui folder sharing helpers }
-
-//typedef HRESULT (STDMETHODCALLTYPE *PFNSHOWSHAREFOLDERUIW)(IN HWND hwndParent, IN LPCSTR pszPath);
-//typedef HRESULT (STDMETHODCALLTYPE *PFNSHOWSHAREFOLDERUIW)(IN HWND hwndParent, IN LPCWSTR pszPath);
-
-implementation
-
-function EIRESID(x : longint) : longint;
-Begin
-  EIRESID:=-x;
-End;
-
-end.

+ 0 - 108
packages/base/winunits/shfolder.pp

@@ -1,108 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1999-2000 by the Free Pascal development team
-
-    Interface to shfolder.dll
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{ ---------------------------------------------------------------------
-  shfolder.dll is distributed standard with IE5.5, so it should ship
-  with 2000/XP or higher but is likely to be installed on NT/95/98 or
-  ME as well.  It works on all these systems.
-
-  The info found here is also in the registry:
-  HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\
-  HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\
-
-  Note that not all CSIDL_* constants are supported by shlfolder.dll,
-  they should be supported by the shell32.dll, though again not on all
-  systems.
-  ---------------------------------------------------------------------}
-
-Unit shfolder;
-
-Interface
-
-Uses
-  windows;
-
-Const
-  LibName = 'SHFolder.dll';
-
-Const
-
-  CSIDL_PROGRAMS                = $0002; { %SYSTEMDRIVE%\Program Files                                      }
-  CSIDL_PERSONAL                = $0005; { %USERPROFILE%\My Documents                                       }
-  CSIDL_FAVORITES               = $0006; { %USERPROFILE%\Favorites                                          }
-  CSIDL_STARTUP                 = $0007; { %USERPROFILE%\Start menu\Programs\Startup                        }
-  CSIDL_RECENT                  = $0008; { %USERPROFILE%\Recent                                             }
-  CSIDL_SENDTO                  = $0009; { %USERPROFILE%\Sendto                                             }
-  CSIDL_STARTMENU               = $000B; { %USERPROFILE%\Start menu                                         }
-  CSIDL_MYMUSIC                 = $000D; { %USERPROFILE%\Documents\My Music                                 }
-  CSIDL_MYVIDEO                 = $000E; { %USERPROFILE%\Documents\My Videos                                }
-  CSIDL_DESKTOPDIRECTORY        = $0010; { %USERPROFILE%\Desktop                                            }
-  CSIDL_NETHOOD                 = $0013; { %USERPROFILE%\NetHood                                            }
-  CSIDL_TEMPLATES               = $0015; { %USERPROFILE%\Templates                                          }
-  CSIDL_COMMON_STARTMENU        = $0016; { %PROFILEPATH%\All users\Start menu                               }
-  CSIDL_COMMON_PROGRAMS         = $0017; { %PROFILEPATH%\All users\Start menu\Programs                      }
-  CSIDL_COMMON_STARTUP          = $0018; { %PROFILEPATH%\All users\Start menu\Programs\Startup              }
-  CSIDL_COMMON_DESKTOPDIRECTORY = $0019; { %PROFILEPATH%\All users\Desktop                                  }
-  CSIDL_APPDATA                 = $001A; { %USERPROFILE%\Application Data (roaming)                         }
-  CSIDL_PRINTHOOD               = $001B; { %USERPROFILE%\Printhood                                          }
-  CSIDL_LOCAL_APPDATA           = $001C; { %USERPROFILE%\Local Settings\Application Data (non roaming)      }
-  CSIDL_COMMON_FAVORITES        = $001F; { %PROFILEPATH%\All users\Favorites                                }
-  CSIDL_INTERNET_CACHE          = $0020; { %USERPROFILE%\Local Settings\Temporary Internet Files            }
-  CSIDL_COOKIES                 = $0021; { %USERPROFILE%\Cookies                                            }
-  CSIDL_HISTORY                 = $0022; { %USERPROFILE%\Local settings\History                             }
-  CSIDL_COMMON_APPDATA          = $0023; { %PROFILESPATH%\All Users\Application Data                        }
-  CSIDL_WINDOWS                 = $0024; { %SYSTEMROOT%                                                     }
-  CSIDL_SYSTEM                  = $0025; { %SYSTEMROOT%\SYSTEM32 (may be system on 95/98/ME)                }
-  CSIDL_PROGRAM_FILES           = $0026; { %SYSTEMDRIVE%\Program Files                                      }
-  CSIDL_MYPICTURES              = $0027; { %USERPROFILE%\My Documents\My Pictures                           }
-  CSIDL_PROFILE                 = $0028; { %USERPROFILE%                                                    }
-  CSIDL_PROGRAM_FILES_COMMON    = $002B; { %SYSTEMDRIVE%\Program Files\Common                               }
-  CSIDL_COMMON_TEMPLATES        = $002D; { %PROFILEPATH%\All Users\Templates                                }
-  CSIDL_COMMON_DOCUMENTS        = $002E; { %PROFILEPATH%\All Users\Documents                                }
-  CSIDL_COMMON_ADMINTOOLS       = $002F; { %PROFILEPATH%\All Users\Start Menu\Programs\Administrative Tools }
-  CSIDL_ADMINTOOLS              = $0030; { %USERPROFILE%\Start Menu\Programs\Administrative Tools           }
-  CSIDL_COMMON_MUSIC            = $0035; { %PROFILEPATH%\All Users\Documents\my music                       }
-  CSIDL_COMMON_PICTURES         = $0036; { %PROFILEPATH%\All Users\Documents\my pictures                    }
-  CSIDL_COMMON_VIDEO            = $0037; { %PROFILEPATH%\All Users\Documents\my videos                      }
-  CSIDL_CDBURN_AREA             = $003B; { %USERPROFILE%\Local Settings\Application Data\Microsoft\CD Burning }
-  CSIDL_PROFILES                = $003E; { %PROFILEPATH%                                                    }
-
-  CSIDL_FLAG_CREATE             = $8000; { (force creation of requested folder if it doesn't exist yet)     }
-
-{ Original entry points }
-
-Function SHGetFolderPathA(Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall; external LibName name 'SHGetFolderPathA';
-Function SHGetFolderPathW(Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall; external LibName name 'SHGetFolderPathW';
-
-Function SHGetFolderPath (Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall; external LibName name 'SHGetFolderPathA';
-
-
-{ For Delphi compatibility }
-
-type
-  PFNSHGetFolderPathA = Function(Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall;
-  PFNSHGetFolderPathW = Function(Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall;
-  PFNSHGetFolderPath = PFNSHGetFolderPathA;
-
-  TSHGetFolderPathA = PFNSHGetFolderPathA;
-  TSHGetFolderPathW = PFNSHGetFolderPathW;
-  TSHGetFolderPath = TSHGetFolderPathA;
-
-implementation
-
-const
-  SHFolderDll = 'SHFolder.dll';
-
-end.

+ 0 - 75
packages/base/winunits/shlobj.pp

@@ -1,75 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2007 by Florian Klaempfl
-    member of the Free Pascal development team.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-    Original copyright statement follows.
-
-}
-{$mode objfpc}
-unit shlobj;
-
-  interface
-
-    uses
-      windows,activex;
-
-    type
-      IEnumIDList = interface(IUnknown)
-        ['{000214F2-0000-0000-C000-000000000046}']
-        function Next(celt: ULONG; out rgelt: PItemIDList; var pceltFetched: ULONG): HRESULT; stdcall;
-        function Skip(celt: ULONG): HRESULT; stdcall; function Reset: HRESULT; stdcall;
-        function Clone(out ppenum: IEnumIDList): HRESULT; stdcall;
-      end;
-
-      IShellFolder = interface(IUnknown)
-        ['{000214E6-0000-0000-C000-000000000046}']
-        function ParseDisplayName(hwndOwner: HWND; pbcReserved: Pointer; lpszDisplayName: POLESTR; out pchEaten: ULONG; out ppidl: PItemIDList; var dwAttributes: ULONG): HRESULT; stdcall;
-        function EnumObjects(hwndOwner: HWND; grfFlags: DWORD; out EnumIDList: IEnumIDList): HRESULT; stdcall;
-        function BindToObject(pidl: PItemIDList; pbcReserved: Pointer; const riid: TIID; out ppvOut): HRESULT; stdcall;
-        function BindToStorage(pidl: PItemIDList; pbcReserved: Pointer; const riid: TIID; out ppvObj): HRESULT; stdcall;
-        function CompareIDs(lParam: LPARAM; pidl1, pidl2: PItemIDList): HRESULT; stdcall;
-        function CreateViewObject(hwndOwner: HWND; const riid: TIID; out ppvOut): HRESULT; stdcall;
-        function GetAttributesOf(cidl: UINT; var apidl: PItemIDList; var rgfInOut: UINT): HRESULT; stdcall;
-        function GetUIObjectOf(hwndOwner: HWND; cidl: UINT; var apidl: PItemIDList; const riid: TIID; prgfInOut: Pointer; out ppvOut): HRESULT; stdcall;
-        function GetDisplayNameOf(pidl: PItemIDList; uFlags: DWORD; var lpName: TStrRet): HRESULT; stdcall;
-        function SetNameOf(hwndOwner: HWND; pidl: PItemIDList; lpszName: POLEStr; uFlags: DWORD; var ppidlOut: PItemIDList): HRESULT; stdcall;
-      end;
-
-      IAutoComplete = interface(IUnknown)
-        ['{00bb2762-6a77-11d0-a535-00c04fd7d062}']
-        function Init(hwndEdit: HWND; punkACL: IUnknown; pwszRegKeyPath: LPCWSTR; pwszQuickComplete: LPCWSTR): HRESULT; stdcall;
-        function Enable(fEnable: BOOL): HRESULT; stdcall;
-      end;
-
-    const
-      CLSID_AutoComplete: TGUID = '{00BB2763-6A77-11D0-A535-00C04FD7D062}';
-
-    const
-      { IAutoComplete2 options }
-      ACO_NONE           = 0;
-      ACO_AUTOSUGGEST    = $1;
-      ACO_AUTOAPPEND     = $2;
-      ACO_SEARCH         = $4;
-      ACO_FILTERPREFIXES = $8;
-      ACO_USETAB         = $10;
-      ACO_UPDOWNKEYDROPSLIST = $20;
-      ACO_RTLREADING     = $40;
-
-    type
-      IAutoComplete2 = interface(IAutoComplete)
-        ['{EAC04BC0-3791-11d2-BB95-0060977B464C}']
-        function SetOptions(dwFlag: DWORD): HRESULT; stdcall;
-        function GetOptions(var dwFlag: DWORD): HRESULT; stdcall;
-      end;
-
-  implementation
-
-end.

+ 0 - 75
packages/base/winunits/winver.pp

@@ -1,75 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2003 by the Free Pascal development team
-
-    Windows Version detection functionality.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{$mode objfpc}
-unit winver;
-
-Interface
-
-Uses Windows;
-
-const
-  Win32Platform     : Integer = 0;
-  Win32MajorVersion : Integer = 0;
-  Win32MinorVersion : Integer = 0;
-  Win32BuildNumber  : Integer = 0;
-
-  Win32CSDVersion   : string = '';
-
-function CheckWin32Version(Major,Minor : Integer ): Boolean;
-function CheckWin32Version(Major : Integer): Boolean;
-
-Implementation
-
-
-uses sysutils;
-
-procedure InitVersion;
-
-var
-  Info: TOSVersionInfo;
-
-begin
-  Info.dwOSVersionInfoSize := SizeOf(Info);
-  if GetVersionEx(Info) then
-    with Info do
-      begin
-      Win32Platform:=dwPlatformId;
-      Win32MajorVersion:=dwMajorVersion;
-      Win32MinorVersion:=dwMinorVersion;
-      if (Win32Platform=VER_PLATFORM_WIN32_WINDOWS) then
-        Win32BuildNumber:=dwBuildNumber and $FFFF
-      else
-        Win32BuildNumber := dwBuildNumber;
-      Win32CSDVersion := StrPas(szCSDVersion);
-      end;
-end;
-
-function CheckWin32Version(Major : Integer): Boolean;
-
-begin
-  Result:=CheckWin32Version(Major,0)
-end;
-
-function CheckWin32Version(Major,Minor: Integer): Boolean;
-
-begin
-  Result := (Win32MajorVersion>Major) or
-            ((Win32MajorVersion=Major) and (Win32MinorVersion>=Minor));
-end;
-
-initialization
-  InitVersion;
-end.

File diff suppressed because it is too large
+ 404 - 0
packages/winunits-jedi/Makefile


+ 72 - 0
packages/winunits-jedi/Makefile.fpc

@@ -0,0 +1,72 @@
+#
+#   Makefile.fpc for WinUnits
+#
+
+[package]
+name=winunits-jedi
+version=2.2.0
+
+[require]
+packages_win32=winunits-base
+packages_win64=winunits-base
+
+[target]
+units=buildjwa
+implicitunits= jwawintype jwawinbase jwawinnt \
+ jwalmerr jwalmmsg jwaaclui jwaadsdb jwalmerrlog jwalmjoin jwaauthz  \
+ jwabits jwalmremutl jwalmrepl jwalmserver jwalmshare jwalmsname \
+ jwalmstats jwaaccctrl jwaaclapi jwacderr jwacpl jwaactiveds jwadbt jwadde \
+ jwaadserr jwaadshlp jwaadsnms jwaadsprop jwaadssts jwaadtgen \
+ jwaaf_irda jwaatalkwsh jwaauthif jwadlgs jwadssec jwabatclass \
+ jwaexcpt jwaime jwabits1_5 jwabitscfg jwabitsmsg jwablberr \
+ jwabluetoothapis jwabthdef jwabthsdpdef jwabugcodes jwalmat jwalmsvc \
+ jwacmnquery jwacolordlg jwalmuse jwamsi jwacplext jwacryptuiapi \
+ jwanb30 jwanetsh jwapbt jwapdh jwadhcpcsdk jwadhcpsapi jwadhcpssdk \
+ jwaprsht jwapsapi jwadsadmin jwadsclient jwadsgetdc jwadskquota \
+ jwadsquery jwadsrole jwaqos jwaqossp jwaerrorrep jwarpc jwasddl \
+ jwafaxdev jwafaxext jwafaxmmc jwafaxroute jwagpedit jwahherror \
+ jwahtmlGuid jwahtmlhelp jwaiaccess jwaiadmext jwaicmpapi jwaiiscnfg \
+ jwaimagehlp jwalmdfs jwaimapierror jwasens jwasfc jwaioevent \
+ jwaipexport jwaiphlpapi jwaipifcons jwaipinfoid jwaiprtrmib \
+ jwaiptypes jwaisguids jwaissper16 jwalmaccess jwalmalert jwalmapibuf \
+ jwasnmp jwasspi jwalmaudit jwalmconfig jwalmcons jwawpapi \
+ jwawsipx jwawsrm jwalmuseflg jwalmwksta jwaloadperf jwalpmapi \
+ jwamciavi jwamprerror jwawsvns jwaimapi jwamsidefs jwamsiquery \
+ jwamstask jwamstcpip jwamswsock jwanspapi jwantddpar jwantdsapi \
+ jwantdsbcli jwantdsbmsg jwantldap jwantquery jwantsecapi jwantstatus \
+ jwaObjsel jwapatchapi jwapatchwiz jwapdhmsg jwapowrprof jwaprofinfo \
+ jwaprotocol jwaqosname jwaqospol jwareason jwaregstr jwarpcasync \
+ jwarpcdce jwarpcnsi jwarpcnterr jwarpcssl jwascesvc jwaschedule \
+ jwaschemadef jwasecext jwasecurity jwasensapi jwashlguid jwasisbkup \
+ jwasporder jwasrrestoreptapi jwasubauth jwasvcguid jwatlhelp32 \
+ jwatmschema jwatraffic jwauserenv jwauxtheme jwawbemcli jwawinable \
+ jwawinber jwawincon jwawincpl jwawincred jwawincrypt \
+ jwawindns jwawinefs jwawinerror jwawinfax jwawingdi jwawinioctl \
+ jwawinldap jwawinnetwk jwawinnls jwawinperf jwawinreg jwawinresrc \
+ jwawinsafer jwawinsock jwawinsock2 jwawinsvc jwawinuser \
+ jwawinver jwawinwlx jwawmistr jwawownt16 jwawownt32 jwawpapimsg \
+ jwawpcrsmsg jwawpftpmsg jwawppstmsg jwawpspihlp jwawptypes \
+ jwawpwizmsg jwaws2atm jwaws2bth jwaws2dnet jwaws2spi jwaws2tcpip \
+ jwawshisotp jwawsnetbs jwawsnwlink jwawtsapi32 jwazmouse jwasensevts \
+ jwaadstlb jwanative jwawindows jwacarderr jwaactivex \
+ jwawindllnames jwawinternl jwawinsta jwavista
+
+
+examples=examples
+
+rsts = jwawintype 
+
+[install]
+buildunit=buildjwa
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+options=-Ur
+sourcedir=src
+includedir=src
+
+[rules]
+.NOTPARALLEL:

+ 234 - 0
packages/winunits-jedi/fpmake.inc

@@ -0,0 +1,234 @@
+    StartPackage('winunits');
+    {$IF defined(ALLPACKAGES)}
+    Directory:='extra/winunits';
+    {$ELSEIF defined(EXTRAPACKAGES)}
+    Directory:='winunits';
+    {$ENDIF}
+    OS:=[win32];
+    T:=Targets.AddUnit('buildjwa');
+    T.Install:=False;
+    T:=Targets.AddUnit('winver');
+    T:=Targets.AddUnit('mmsystem');
+    T:=Targets.AddUnit('comobj');
+    T:=Targets.AddUnit('ole2');
+    T:=Targets.AddUnit('activex');
+    T:=Targets.AddUnit('shellapi');
+    T:=Targets.AddUnit('shlobj');
+    T:=Targets.AddUnit('jwawintype');
+    T.ResourceStrings:=True;
+    T:=Targets.AddUnit('jwawinbase');
+    T:=Targets.AddUnit('jwawinnt');
+    T:=Targets.AddUnit('jwalmerr');
+    T:=Targets.AddUnit('jwalmmsg');
+    T:=Targets.AddUnit('jwaaclui');
+    T:=Targets.AddUnit('jwaadsdb');
+    T:=Targets.AddUnit('jwalmerrlog');
+    T:=Targets.AddUnit('jwalmjoin');
+    T:=Targets.AddUnit('jwaauthz');
+    T:=Targets.AddUnit('jwabits');
+    T:=Targets.AddUnit('jwalmremutl');
+    T:=Targets.AddUnit('jwalmrepl');
+    T:=Targets.AddUnit('jwalmserver');
+    T:=Targets.AddUnit('jwalmshare');
+    T:=Targets.AddUnit('jwalmsname');
+    T:=Targets.AddUnit('jwalmstats');
+    T:=Targets.AddUnit('jwaaccctrl');
+    T:=Targets.AddUnit('jwaaclapi');
+    T:=Targets.AddUnit('jwacderr');
+    T:=Targets.AddUnit('jwacpl');
+    T:=Targets.AddUnit('jwaactiveds');
+    T:=Targets.AddUnit('jwadbt');
+    T:=Targets.AddUnit('jwadde');
+    T:=Targets.AddUnit('jwaadserr');
+    T:=Targets.AddUnit('jwaadshlp');
+    T:=Targets.AddUnit('jwaadsnms');
+    T:=Targets.AddUnit('jwaadsprop');
+    T:=Targets.AddUnit('jwaadssts');
+    T:=Targets.AddUnit('jwaadtgen');
+    T:=Targets.AddUnit('jwaaf_irda');
+    T:=Targets.AddUnit('jwaatalkwsh');
+    T:=Targets.AddUnit('jwaauthif');
+    T:=Targets.AddUnit('jwadlgs');
+    T:=Targets.AddUnit('jwadssec');
+    T:=Targets.AddUnit('jwabatclass');
+    T:=Targets.AddUnit('jwaexcpt');
+    T:=Targets.AddUnit('jwaime');
+    T:=Targets.AddUnit('jwabits1_5');
+    T:=Targets.AddUnit('jwabitscfg');
+    T:=Targets.AddUnit('jwabitsmsg');
+    T:=Targets.AddUnit('jwablberr');
+    T:=Targets.AddUnit('jwabluetoothapis');
+    T:=Targets.AddUnit('jwabthdef');
+    T:=Targets.AddUnit('jwabthsdpdef');
+    T:=Targets.AddUnit('jwabugcodes');
+    T:=Targets.AddUnit('jwalmat');
+    T:=Targets.AddUnit('jwalmsvc');
+    T:=Targets.AddUnit('jwacmnquery');
+    T:=Targets.AddUnit('jwacolordlg');
+    T:=Targets.AddUnit('jwalmuse');
+    T:=Targets.AddUnit('jwamsi');
+    T:=Targets.AddUnit('jwacplext');
+    T:=Targets.AddUnit('jwacryptuiapi');
+    T:=Targets.AddUnit('jwanb30');
+    T:=Targets.AddUnit('jwanetsh');
+    T:=Targets.AddUnit('jwapbt');
+    T:=Targets.AddUnit('jwapdh');
+    T:=Targets.AddUnit('jwadhcpcsdk');
+    T:=Targets.AddUnit('jwadhcpsapi');
+    T:=Targets.AddUnit('jwadhcpssdk');
+    T:=Targets.AddUnit('jwaprsht');
+    T:=Targets.AddUnit('jwapsapi');
+    T:=Targets.AddUnit('jwadsadmin');
+    T:=Targets.AddUnit('jwadsclient');
+    T:=Targets.AddUnit('jwadsgetdc');
+    T:=Targets.AddUnit('jwadskquota');
+    T:=Targets.AddUnit('jwadsquery');
+    T:=Targets.AddUnit('jwadsrole');
+    T:=Targets.AddUnit('jwaqos');
+    T:=Targets.AddUnit('jwaqossp');
+    T:=Targets.AddUnit('jwaerrorrep');
+    T:=Targets.AddUnit('jwarpc');
+    T:=Targets.AddUnit('jwasddl');
+    T:=Targets.AddUnit('jwafaxdev');
+    T:=Targets.AddUnit('jwafaxext');
+    T:=Targets.AddUnit('jwafaxmmc');
+    T:=Targets.AddUnit('jwafaxroute');
+    T:=Targets.AddUnit('jwagpedit');
+    T:=Targets.AddUnit('jwahherror');
+    T:=Targets.AddUnit('jwahtmlGuid');
+    T:=Targets.AddUnit('jwahtmlhelp');
+    T:=Targets.AddUnit('jwaiaccess');
+    T:=Targets.AddUnit('jwaiadmext');
+    T:=Targets.AddUnit('jwaicmpapi');
+    T:=Targets.AddUnit('jwaiiscnfg');
+    T:=Targets.AddUnit('jwaimagehlp');
+    T:=Targets.AddUnit('jwalmdfs');
+    T:=Targets.AddUnit('jwaimapierror');
+    T:=Targets.AddUnit('jwasens');
+    T:=Targets.AddUnit('jwasfc');
+    T:=Targets.AddUnit('jwaioevent');
+    T:=Targets.AddUnit('jwaipexport');
+    T:=Targets.AddUnit('jwaiphlpapi');
+    T:=Targets.AddUnit('jwaipifcons');
+    T:=Targets.AddUnit('jwaipinfoid');
+    T:=Targets.AddUnit('jwaiprtrmib');
+    T:=Targets.AddUnit('jwaiptypes');
+    T:=Targets.AddUnit('jwaisguids');
+    T:=Targets.AddUnit('jwaissper16');
+    T:=Targets.AddUnit('jwalmaccess');
+    T:=Targets.AddUnit('jwalmalert');
+    T:=Targets.AddUnit('jwalmapibuf');
+    T:=Targets.AddUnit('jwasnmp');
+    T:=Targets.AddUnit('jwasspi');
+    T:=Targets.AddUnit('jwalmaudit');
+    T:=Targets.AddUnit('jwalmconfig');
+    T:=Targets.AddUnit('jwalmcons');
+    T:=Targets.AddUnit('jwawpapi');
+    T:=Targets.AddUnit('jwawsipx');
+    T:=Targets.AddUnit('jwawsrm');
+    T:=Targets.AddUnit('jwalmuseflg');
+    T:=Targets.AddUnit('jwalmwksta');
+    T:=Targets.AddUnit('jwaloadperf');
+    T:=Targets.AddUnit('jwalpmapi');
+    T:=Targets.AddUnit('jwamciavi');
+    T:=Targets.AddUnit('jwamprerror');
+    T:=Targets.AddUnit('jwawsvns');
+    T:=Targets.AddUnit('jwaimapi');
+    T:=Targets.AddUnit('jwamsidefs');
+    T:=Targets.AddUnit('jwamsiquery');
+    T:=Targets.AddUnit('jwamstask');
+    T:=Targets.AddUnit('jwamstcpip');
+    T:=Targets.AddUnit('jwamswsock');
+    T:=Targets.AddUnit('jwanspapi');
+    T:=Targets.AddUnit('jwantddpar');
+    T:=Targets.AddUnit('jwantdsapi');
+    T:=Targets.AddUnit('jwantdsbcli');
+    T:=Targets.AddUnit('jwantdsbmsg');
+    T:=Targets.AddUnit('jwantldap');
+    T:=Targets.AddUnit('jwantquery');
+    T:=Targets.AddUnit('jwantsecapi');
+    T:=Targets.AddUnit('jwantstatus');
+    T:=Targets.AddUnit('jwaObjsel');
+    T:=Targets.AddUnit('jwapatchapi');
+    T:=Targets.AddUnit('jwapatchwiz');
+    T:=Targets.AddUnit('jwapdhmsg');
+    T:=Targets.AddUnit('jwapowrprof');
+    T:=Targets.AddUnit('jwaprofinfo');
+    T:=Targets.AddUnit('jwaprotocol');
+    T:=Targets.AddUnit('jwaqosname');
+    T:=Targets.AddUnit('jwaqospol');
+    T:=Targets.AddUnit('jwareason');
+    T:=Targets.AddUnit('jwaregstr');
+    T:=Targets.AddUnit('jwarpcasync');
+    T:=Targets.AddUnit('jwarpcdce');
+    T:=Targets.AddUnit('jwarpcnsi');
+    T:=Targets.AddUnit('jwarpcnterr');
+    T:=Targets.AddUnit('jwarpcssl');
+    T:=Targets.AddUnit('jwascesvc');
+    T:=Targets.AddUnit('jwaschedule');
+    T:=Targets.AddUnit('jwaschemadef');
+    T:=Targets.AddUnit('jwasecext');
+    T:=Targets.AddUnit('jwasecurity');
+    T:=Targets.AddUnit('jwasensapi');
+    T:=Targets.AddUnit('jwashlguid');
+    T:=Targets.AddUnit('jwasisbkup');
+    T:=Targets.AddUnit('jwasporder');
+    T:=Targets.AddUnit('jwasrrestoreptapi');
+    T:=Targets.AddUnit('jwasubauth');
+    T:=Targets.AddUnit('jwasvcguid');
+    T:=Targets.AddUnit('jwatlhelp32');
+    T:=Targets.AddUnit('jwatmschema');
+    T:=Targets.AddUnit('jwatraffic');
+    T:=Targets.AddUnit('jwauserenv');
+    T:=Targets.AddUnit('jwauxtheme');
+    T:=Targets.AddUnit('jwawbemcli');
+    T:=Targets.AddUnit('jwawinable');
+    T:=Targets.AddUnit('jwawinber');
+    T:=Targets.AddUnit('jwawincon');
+    T:=Targets.AddUnit('jwawincpl');
+    T:=Targets.AddUnit('jwawincred');
+    T:=Targets.AddUnit('jwawincrypt');
+    T:=Targets.AddUnit('jwawindns');
+    T:=Targets.AddUnit('jwawinefs');
+    T:=Targets.AddUnit('jwawinerror');
+    T:=Targets.AddUnit('jwawinfax');
+    T:=Targets.AddUnit('jwawingdi');
+    T:=Targets.AddUnit('jwawinioctl');
+    T:=Targets.AddUnit('jwawinldap');
+    T:=Targets.AddUnit('jwawinnetwk');
+    T:=Targets.AddUnit('jwawinnls');
+    T:=Targets.AddUnit('jwawinperf');
+    T:=Targets.AddUnit('jwawinreg');
+    T:=Targets.AddUnit('jwawinresrc');
+    T:=Targets.AddUnit('jwawinsafer');
+    T:=Targets.AddUnit('jwawinsock');
+    T:=Targets.AddUnit('jwawinsock2');
+    T:=Targets.AddUnit('jwawinsvc');
+    T:=Targets.AddUnit('jwawinuser');
+    T:=Targets.AddUnit('jwawinver');
+    T:=Targets.AddUnit('jwawinwlx');
+    T:=Targets.AddUnit('jwawmistr');
+    T:=Targets.AddUnit('jwawownt16');
+    T:=Targets.AddUnit('jwawownt32');
+    T:=Targets.AddUnit('jwawpapimsg');
+    T:=Targets.AddUnit('jwawpcrsmsg');
+    T:=Targets.AddUnit('jwawpftpmsg');
+    T:=Targets.AddUnit('jwawppstmsg');
+    T:=Targets.AddUnit('jwawpspihlp');
+    T:=Targets.AddUnit('jwawptypes');
+    T:=Targets.AddUnit('jwawpwizmsg');
+    T:=Targets.AddUnit('jwaws2atm');
+    T:=Targets.AddUnit('jwaws2bth');
+    T:=Targets.AddUnit('jwaws2dnet');
+    T:=Targets.AddUnit('jwaws2spi');
+    T:=Targets.AddUnit('jwaws2tcpip');
+    T:=Targets.AddUnit('jwawshisotp');
+    T:=Targets.AddUnit('jwawsnetbs');
+    T:=Targets.AddUnit('jwawsnwlink');
+    T:=Targets.AddUnit('jwawtsapi32');
+    T:=Targets.AddUnit('jwazmouse');
+    T:=Targets.AddUnit('jwasensevts');
+    T:=Targets.AddUnit('jwaadstlb');
+    T:=Targets.AddUnit('jwanative');
+    T:=Targets.AddExampleunit('examples');
+    EndPackage;

+ 17 - 0
packages/winunits-jedi/fpmake.pp

@@ -0,0 +1,17 @@
+{$mode objfpc}{$H+}
+program fpmake;
+
+uses fpmkunit;
+
+Var
+  T : TTarget;
+
+begin
+  With Installer do 
+    begin
+    { Base packages }
+    {$i fpmake.inc}
+    Run;
+    end;
+end.
+

+ 0 - 0
packages/base/winunits/JwaVista.pas → packages/winunits-jedi/src/JwaVista.pas


+ 0 - 0
packages/base/winunits/JwaWinSta.pas → packages/winunits-jedi/src/JwaWinSta.pas


+ 0 - 0
packages/base/winunits/ModuleLoader.pas → packages/winunits-jedi/src/ModuleLoader.pas


+ 64 - 0
packages/winunits-jedi/src/buildjwa.pp

@@ -0,0 +1,64 @@
+{
+   Dummy unit to compile everything in one go
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, write to the
+   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.
+}
+unit buildjwa;
+
+interface
+
+uses
+    jwawintype, jwawinbase, jwawinnt, 
+    jwalmerr, jwalmmsg, jwaaclui, jwaadsdb, jwalmerrlog, jwalmjoin, jwaauthz,
+    jwabits, jwalmremutl, jwalmrepl, jwalmserver, jwalmshare, jwalmsname,
+    jwalmstats, jwaaccctrl, jwaaclapi, jwacderr, jwacpl, jwaactiveds, jwadbt, jwadde,
+    jwaadserr, jwaadshlp, jwaadsnms, jwaadsprop, jwaadssts, jwaadtgen,
+    jwaaf_irda, jwaatalkwsh, jwaauthif, jwadlgs, jwadssec, jwabatclass,
+    jwaexcpt, jwaime, jwabits1_5, jwabitscfg, jwabitsmsg, jwablberr,
+    jwabluetoothapis, jwabthdef, jwabthsdpdef, jwabugcodes, jwalmat, jwalmsvc,
+    jwacmnquery, jwacolordlg, jwalmuse, jwamsi, jwacplext, jwacryptuiapi,
+    jwanb30, jwanetsh, jwapbt, jwapdh, jwadhcpcsdk, jwadhcpsapi, jwadhcpssdk,
+    jwaprsht, jwapsapi, jwadsadmin, jwadsclient, jwadsgetdc, jwadskquota,
+    jwadsquery, jwadsrole, jwaqos, jwaqossp, jwaerrorrep, jwarpc, jwasddl,
+    jwafaxdev, jwafaxext, jwafaxmmc, jwafaxroute, jwagpedit, jwahherror,
+    jwahtmlGuid, jwahtmlhelp, jwaiaccess, jwaiadmext, jwaicmpapi, jwaiiscnfg,
+    jwaimagehlp, jwalmdfs, jwaimapierror, jwasens, jwasfc, jwaioevent,
+    jwaipexport, jwaiphlpapi, jwaipifcons, jwaipinfoid, jwaiprtrmib,
+    jwaiptypes, jwaisguids, jwaissper16, jwalmaccess, jwalmalert, jwalmapibuf,
+    jwasnmp, jwasspi, jwalmaudit, jwalmconfig, jwalmcons, jwawpapi,
+    jwawsipx, jwawsrm, jwalmuseflg, jwalmwksta, jwaloadperf, jwalpmapi,
+    jwamciavi, jwamprerror, jwawsvns, jwaimapi, jwamsidefs, jwamsiquery,
+    jwamstask, jwamstcpip, jwamswsock, jwanspapi, jwantddpar, jwantdsapi,
+    jwantdsbcli, jwantdsbmsg, jwantldap, jwantquery, jwantsecapi, jwantstatus,
+    jwaObjsel, jwapatchapi, jwapatchwiz, jwapdhmsg, jwapowrprof, jwaprofinfo,
+    jwaprotocol, jwaqosname, jwaqospol, jwareason, jwaregstr, jwarpcasync,
+    jwarpcdce, jwarpcnsi, jwarpcnterr, jwarpcssl, jwascesvc, jwaschedule,
+    jwaschemadef, jwasecext, jwasecurity, jwasensapi, jwashlguid, jwasisbkup,
+    jwasporder, jwasrrestoreptapi, jwasubauth, jwasvcguid, jwatlhelp32,
+    jwatmschema, jwatraffic, jwauserenv, jwauxtheme, jwawbemcli, jwawinable,
+    jwawinber, jwawincon, jwawincpl, jwawincred, jwawincrypt,
+    jwawindns, jwawinefs, jwawinerror, jwawinfax, jwawingdi, jwawinioctl,
+    jwawinldap, jwawinnetwk, jwawinnls, jwawinperf, jwawinreg, jwawinresrc,
+    jwawinsafer, jwawinsock, jwawinsock2, jwawinsvc, jwawinuser,
+    jwawinver, jwawinwlx, jwawmistr, jwawownt16, jwawownt32, jwawpapimsg,
+    jwawpcrsmsg, jwawpftpmsg, jwawppstmsg, jwawpspihlp, jwawptypes,
+    jwawpwizmsg, jwaws2atm, jwaws2bth, jwaws2dnet, jwaws2spi, jwaws2tcpip,
+    jwawshisotp, jwawsnetbs, jwawsnwlink, jwawtsapi32, jwazmouse, jwasensevts,
+    jwaadstlb, jwanative, jwawindows, jwacarderr,jwawinsta, jwavista;
+
+implementation
+
+end.

+ 0 - 0
packages/base/winunits/jedi.inc → packages/winunits-jedi/src/jedi.inc


+ 0 - 0
packages/base/winunits/jediapilib.inc → packages/winunits-jedi/src/jediapilib.inc


+ 0 - 0
packages/base/winunits/jwaObjsel.pas → packages/winunits-jedi/src/jwaObjsel.pas


+ 0 - 0
packages/base/winunits/jwaaccctrl.pas → packages/winunits-jedi/src/jwaaccctrl.pas


+ 0 - 0
packages/base/winunits/jwaaclapi.pas → packages/winunits-jedi/src/jwaaclapi.pas


+ 0 - 0
packages/base/winunits/jwaaclui.pas → packages/winunits-jedi/src/jwaaclui.pas


+ 0 - 0
packages/base/winunits/jwaactiveds.pas → packages/winunits-jedi/src/jwaactiveds.pas


+ 0 - 0
packages/base/winunits/jwaactivex.pas → packages/winunits-jedi/src/jwaactivex.pas


+ 0 - 0
packages/base/winunits/jwaadsdb.pas → packages/winunits-jedi/src/jwaadsdb.pas


+ 0 - 0
packages/base/winunits/jwaadserr.pas → packages/winunits-jedi/src/jwaadserr.pas


+ 0 - 0
packages/base/winunits/jwaadshlp.pas → packages/winunits-jedi/src/jwaadshlp.pas


+ 0 - 0
packages/base/winunits/jwaadsnms.pas → packages/winunits-jedi/src/jwaadsnms.pas


+ 0 - 0
packages/base/winunits/jwaadsprop.pas → packages/winunits-jedi/src/jwaadsprop.pas


+ 0 - 0
packages/base/winunits/jwaadssts.pas → packages/winunits-jedi/src/jwaadssts.pas


+ 0 - 0
packages/base/winunits/jwaadstlb.pas → packages/winunits-jedi/src/jwaadstlb.pas


+ 0 - 0
packages/base/winunits/jwaadtgen.pas → packages/winunits-jedi/src/jwaadtgen.pas


+ 0 - 0
packages/base/winunits/jwaaf_irda.pas → packages/winunits-jedi/src/jwaaf_irda.pas


+ 0 - 0
packages/base/winunits/jwaatalkwsh.pas → packages/winunits-jedi/src/jwaatalkwsh.pas


+ 0 - 0
packages/base/winunits/jwaauthif.pas → packages/winunits-jedi/src/jwaauthif.pas


+ 0 - 0
packages/base/winunits/jwaauthz.pas → packages/winunits-jedi/src/jwaauthz.pas


+ 0 - 0
packages/base/winunits/jwabatclass.pas → packages/winunits-jedi/src/jwabatclass.pas


+ 0 - 0
packages/base/winunits/jwabits.pas → packages/winunits-jedi/src/jwabits.pas


+ 0 - 0
packages/base/winunits/jwabits1_5.pas → packages/winunits-jedi/src/jwabits1_5.pas


+ 0 - 0
packages/base/winunits/jwabitscfg.pas → packages/winunits-jedi/src/jwabitscfg.pas


+ 0 - 0
packages/base/winunits/jwabitsmsg.pas → packages/winunits-jedi/src/jwabitsmsg.pas


+ 0 - 0
packages/base/winunits/jwablberr.pas → packages/winunits-jedi/src/jwablberr.pas


+ 0 - 0
packages/base/winunits/jwabluetoothapis.pas → packages/winunits-jedi/src/jwabluetoothapis.pas


+ 0 - 0
packages/base/winunits/jwabthdef.pas → packages/winunits-jedi/src/jwabthdef.pas


+ 0 - 0
packages/base/winunits/jwabthsdpdef.pas → packages/winunits-jedi/src/jwabthsdpdef.pas


+ 0 - 0
packages/base/winunits/jwabugcodes.pas → packages/winunits-jedi/src/jwabugcodes.pas


+ 0 - 0
packages/base/winunits/jwacarderr.pas → packages/winunits-jedi/src/jwacarderr.pas


+ 0 - 0
packages/base/winunits/jwacderr.pas → packages/winunits-jedi/src/jwacderr.pas


+ 0 - 0
packages/base/winunits/jwacmnquery.pas → packages/winunits-jedi/src/jwacmnquery.pas


+ 0 - 0
packages/base/winunits/jwacolordlg.pas → packages/winunits-jedi/src/jwacolordlg.pas


+ 0 - 0
packages/base/winunits/jwacpl.pas → packages/winunits-jedi/src/jwacpl.pas


+ 0 - 0
packages/base/winunits/jwacplext.pas → packages/winunits-jedi/src/jwacplext.pas


+ 0 - 0
packages/base/winunits/jwacryptuiapi.pas → packages/winunits-jedi/src/jwacryptuiapi.pas


+ 0 - 0
packages/base/winunits/jwadbt.pas → packages/winunits-jedi/src/jwadbt.pas


+ 0 - 0
packages/base/winunits/jwadde.pas → packages/winunits-jedi/src/jwadde.pas


+ 0 - 0
packages/base/winunits/jwadhcpcsdk.pas → packages/winunits-jedi/src/jwadhcpcsdk.pas


+ 0 - 0
packages/base/winunits/jwadhcpsapi.pas → packages/winunits-jedi/src/jwadhcpsapi.pas


+ 0 - 0
packages/base/winunits/jwadhcpssdk.pas → packages/winunits-jedi/src/jwadhcpssdk.pas


+ 0 - 0
packages/base/winunits/jwadlgs.pas → packages/winunits-jedi/src/jwadlgs.pas


+ 0 - 0
packages/base/winunits/jwadsadmin.pas → packages/winunits-jedi/src/jwadsadmin.pas


+ 0 - 0
packages/base/winunits/jwadsclient.pas → packages/winunits-jedi/src/jwadsclient.pas


+ 0 - 0
packages/base/winunits/jwadsgetdc.pas → packages/winunits-jedi/src/jwadsgetdc.pas


+ 0 - 0
packages/base/winunits/jwadskquota.pas → packages/winunits-jedi/src/jwadskquota.pas


+ 0 - 0
packages/base/winunits/jwadsquery.pas → packages/winunits-jedi/src/jwadsquery.pas


+ 0 - 0
packages/base/winunits/jwadsrole.pas → packages/winunits-jedi/src/jwadsrole.pas


+ 0 - 0
packages/base/winunits/jwadssec.pas → packages/winunits-jedi/src/jwadssec.pas


+ 0 - 0
packages/base/winunits/jwaerrorrep.pas → packages/winunits-jedi/src/jwaerrorrep.pas


+ 0 - 0
packages/base/winunits/jwaexcpt.pas → packages/winunits-jedi/src/jwaexcpt.pas


+ 0 - 0
packages/base/winunits/jwafaxdev.pas → packages/winunits-jedi/src/jwafaxdev.pas


+ 0 - 0
packages/base/winunits/jwafaxext.pas → packages/winunits-jedi/src/jwafaxext.pas


+ 0 - 0
packages/base/winunits/jwafaxmmc.pas → packages/winunits-jedi/src/jwafaxmmc.pas


+ 0 - 0
packages/base/winunits/jwafaxroute.pas → packages/winunits-jedi/src/jwafaxroute.pas


+ 0 - 0
packages/base/winunits/jwagpedit.pas → packages/winunits-jedi/src/jwagpedit.pas


+ 0 - 0
packages/base/winunits/jwahherror.pas → packages/winunits-jedi/src/jwahherror.pas


+ 0 - 0
packages/base/winunits/jwahtmlGuid.pas → packages/winunits-jedi/src/jwahtmlGuid.pas


+ 0 - 0
packages/base/winunits/jwahtmlhelp.pas → packages/winunits-jedi/src/jwahtmlhelp.pas


+ 0 - 0
packages/base/winunits/jwaiaccess.pas → packages/winunits-jedi/src/jwaiaccess.pas


+ 0 - 0
packages/base/winunits/jwaiadmext.pas → packages/winunits-jedi/src/jwaiadmext.pas


+ 0 - 0
packages/base/winunits/jwaicmpapi.pas → packages/winunits-jedi/src/jwaicmpapi.pas


+ 0 - 0
packages/base/winunits/jwaiiscnfg.pas → packages/winunits-jedi/src/jwaiiscnfg.pas


+ 0 - 0
packages/base/winunits/jwaimagehlp.pas → packages/winunits-jedi/src/jwaimagehlp.pas


+ 0 - 0
packages/base/winunits/jwaimapi.pas → packages/winunits-jedi/src/jwaimapi.pas


+ 0 - 0
packages/base/winunits/jwaimapierror.pas → packages/winunits-jedi/src/jwaimapierror.pas


+ 0 - 0
packages/base/winunits/jwaime.pas → packages/winunits-jedi/src/jwaime.pas


+ 0 - 0
packages/base/winunits/jwaioevent.pas → packages/winunits-jedi/src/jwaioevent.pas


+ 0 - 0
packages/base/winunits/jwaipexport.pas → packages/winunits-jedi/src/jwaipexport.pas


+ 0 - 0
packages/base/winunits/jwaiphlpapi.pas → packages/winunits-jedi/src/jwaiphlpapi.pas


+ 0 - 0
packages/base/winunits/jwaipifcons.pas → packages/winunits-jedi/src/jwaipifcons.pas


+ 0 - 0
packages/base/winunits/jwaipinfoid.pas → packages/winunits-jedi/src/jwaipinfoid.pas


+ 0 - 0
packages/base/winunits/jwaiprtrmib.pas → packages/winunits-jedi/src/jwaiprtrmib.pas


+ 0 - 0
packages/base/winunits/jwaiptypes.pas → packages/winunits-jedi/src/jwaiptypes.pas


+ 0 - 0
packages/base/winunits/jwaisguids.pas → packages/winunits-jedi/src/jwaisguids.pas


Some files were not shown because too many files changed in this diff