Browse Source

win32 specific units moved to winunits

peter 20 years ago
parent
commit
b58a020329

+ 0 - 29
rtl/objpas/comobj.inc

@@ -1,29 +0,0 @@
-{
-    $Id$
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2002 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.
-
- **********************************************************************}
-
-{$ifndef FPC_COMOBJ_HAS_CREATE_CLASS_ID}
-{ any ideas for a generic implementation? }
-function CreateClassID : ansistring;
-  begin
-     result:='';
-  end;
-{$endif FPC_COMOBJ_HAS_CREATE_CLASS_ID}
-
-{
-  $Log$
-  Revision 1.2  2005-02-14 17:13:31  peter
-    * truncate log
-
-}

+ 0 - 23
rtl/objpas/comobjh.inc

@@ -1,23 +0,0 @@
-{
-    $Id$
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2002 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.
-
- **********************************************************************}
-
-function CreateClassID : ansistring;
-
-{
-  $Log$
-  Revision 1.2  2005-02-14 17:13:31  peter
-    * truncate log
-
-}

+ 34 - 38
rtl/win32/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 1.9.8 [2005/02/21]
+# Don't edit, this file is generated by FPCMake Version 1.9.8 [2005/03/28]
 #
 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-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
@@ -253,103 +253,103 @@ GRAPHDIR=$(INC)/graph
 include $(WININC)/makefile.inc
 WINDOWS_SOURCE_FILES=$(addprefix $(WININC)/,$(addsuffix .inc,$(WINDOWS_FILES)))
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard comobj winsysut ole2 activex shellapi shlobj
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas strings lineinfo heaptrc matrix windows winsock initc cmem dynlibs signals dos crt objects graph messages rtlconsts sysconst sysutils typinfo math types strutils convutils dateutils varutils variants classes cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer video mouse keyboard winsysut
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_LOADERS+=wprt0 wdllprt0 gprt0 wcygprt0
@@ -1975,8 +1975,6 @@ windows$(PPUEXT) : windows.pp $(WINDOWS_SOURCE_FILES) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) -I$(WININC) windows.pp
 messages$(PPUEXT): messages.pp $(WININC)/messages.inc $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) -I$(WININC) messages.pp
-ole2$(PPUEXT) : ole2.pp windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-activex$(PPUEXT) : activex.pp $(WININC)/objbase.inc windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) types$(PPUEXT)
 opengl32$(PPUEXT) : opengl32.pp windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 winsock$(PPUEXT) : winsock.pp windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 sockets$(PPUEXT) : sockets.pp windows$(PPUEXT) winsock$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
@@ -2010,8 +2008,6 @@ varutils$(PPUEXT) : varutils.pp $(OBJPASDIR)/cvarutil.inc \
 	$(COMPILER) -I$(OBJPASDIR) varutils.pp
 types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
-comobj$(PPUEXT) : comobj.pp activex$(PPUEXT) sysutils$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(OBJPASDIR)/comobjh.inc $(OBJPASDIR)/comobj.inc
-	$(COMPILER) -I$(OBJPASDIR) comobj.pp
 rtlconsts$(PPUEXT) : objpas$(PPUEXT) $(OBJPASDIR)/rtlconsts.pp
 	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
 sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)

+ 1 - 8
rtl/win32/Makefile.fpc

@@ -16,7 +16,7 @@ units=$(SYSTEMUNIT) ctypes objpas macpas strings \
       cpu mmx charset ucomplex getopts \
       wincrt winmouse winevent sockets printer \
       video mouse keyboard \
-      comobj winsysut ole2 activex shellapi shlobj
+      winsysut
 
 rsts=math varutils typinfo variants classes dateutils sysconst
 
@@ -124,10 +124,6 @@ windows$(PPUEXT) : windows.pp $(WINDOWS_SOURCE_FILES) $(SYSTEMUNIT)$(PPUEXT)
 messages$(PPUEXT): messages.pp $(WININC)/messages.inc $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) -I$(WININC) messages.pp
 
-ole2$(PPUEXT) : ole2.pp windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-
-activex$(PPUEXT) : activex.pp $(WININC)/objbase.inc windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) types$(PPUEXT)
-
 opengl32$(PPUEXT) : opengl32.pp windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 
 winsock$(PPUEXT) : winsock.pp windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
@@ -193,9 +189,6 @@ varutils$(PPUEXT) : varutils.pp $(OBJPASDIR)/cvarutil.inc \
 types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) $(OBJPASDIR)/types.pp
 
-comobj$(PPUEXT) : comobj.pp activex$(PPUEXT) sysutils$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(OBJPASDIR)/comobjh.inc $(OBJPASDIR)/comobj.inc
-        $(COMPILER) -I$(OBJPASDIR) comobj.pp
-
 rtlconsts$(PPUEXT) : objpas$(PPUEXT) $(OBJPASDIR)/rtlconsts.pp
         $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
 

+ 0 - 2732
rtl/win32/activex.pp

@@ -1,2732 +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
-
-{$define read_interface}
-{$undef read_implementation}
-
-Uses Windows,types;
-
-
-type
-{$ifndef ver1_0}
-{ extra types }
-   TOleChar = Types.TOleChar;
-   POleStr = Types.POleStr;
-   PPOleStr = Types.PPOleStr;
-   TBStr = POleStr;
-   PBStr = ^TBStr;
-   TOleEnum = type LongWord;
-{$else ver1_0}
-   POleStr = PWideChar;
-{$endif ver1_0}
-
-{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;
-
-     // 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;
-
-// 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;
-
-
-// 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: pointer {IUnknown};                // get these out (you must set to NULL before calling)
-                          hr : Hresult;
-                          END;
-   MULTI_QI            = TagMULTI_QI;
-   PMulti_QI           = PMultiQI;
-
-
-   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                   = record
-                                    pwcsName      : POleStr;
-                                    dwType        : DWord;
-                                    cbSize        : ULarge_integer;
-                                    mtime         : TFileTime;
-                                    ctime         : TFileTime;
-                                    atime         : TFileTime;
-                                    grfMode       : DWord;
-                                    grfLocksSupported : DWord;
-                                    clsid         : TCLSID;
-                                    grfStateBits  : DWord;
-                                    reserved      : DWord;
-                                    end;
-
-   TStatStg                     = tagSTATSTG;
-   PStatStg                     = ^TStatStg;
-   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;
-
-// 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;
-                                   rgdispipNamedArgs : lpDISPID;
-                                   cArgs,
-                                   cNamedArgs        : UINT;
-                                   End;
-  DISPPARAMS                    = tagDISPPARAMS;
-  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  : DWord;    // 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,
-                                    pfnDeferredFillIn : pULONG;
-                                    SCODE          : scode;
-                                    End;
-
-  EXCEPINFO                     =  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;
-
-{$IFDEF HASINTF}
-
-// Forward interfaces.
-
-   IStream             = Interface;
-   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;
-
-
-// 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 = interface(IUnknown)
-       ['{0c733a30-2a1c-11ce-ade5-00aa0044773d}']
-       function Read(pv : Pointer;cb : DWord;pcbRead : PDWord) : HRESULT;stdcall;
-       function Write(pv : Pointer;cb : DWord;pcbWritten : PDWord): HRESULT;stdcall;
-       end;
-
-    IStream = interface(ISequentialStream)
-       ['{0000000C-0000-0000-C000-000000000046}']
-       function Seek(dlibMove : Large_integer; dwOrigin: Longint;
-            out libNewPosition : Large_Integer): HResult; stdcall;
-       function SetSize(libNewSize : Large_Integer) : HRESULT;stdcall;
-       function CopyTo(stm: IStream;cb : Large_Integer;out cbRead : Large_Integer;
-            out cbWritten: Large_Integer) : HRESULT;stdcall;
-       function Commit(grfCommitFlags : Longint) : HRESULT; stdcall;
-       function Revert : HRESULT; stdcall;
-       function LockRegion(libOffset : Large_Integer;cb : Large_Integer;
-            dwLockType: Longint) : HRESULT;stdcall;
-       function UnlockRegion(libOffset: Large_Integer;cb: Large_Integer;
-            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 GetCanonicalFormatTEtc(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 EnumDAvise(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;
-
-{$ENDIF}
-
-  tagOleMenuGroupWidths = record
-    width : array[0..5] Of LONG;
-  end;
-  OLEMENUGROUPWIDTHS = tagOleMenuGroupWidths;
-  TOleMenuGroupWidths = tagOleMenuGroupWidths;
-  LPOLEMENUGROUPWIDTHS = ^OLEMENUGROUPWIDTHS;
-  POleMenuGroupWidths = LPOLEMENUGROUPWIDTHS;
-
-
-{ ******************************************************************************************************************
-                                                          stuff from objbase.h
-  ****************************************************************************************************************** }
-{$IFDEF HASINTF}
-
-{$i wininc/objbase.inc}
-
-{ 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';
-
-{$ENDIF HASINTF}
-
-
-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;
-
-implementation
-{$undef read_interface}
-{$define read_implementation}
-
-end.
-
-{
-  $Log$
-  Revision 1.15  2005-02-26 20:20:56  florian
-    + some new consts and types
-
-  Revision 1.14  2005/02/14 17:13:32  peter
-    * truncate log
-
-  Revision 1.13  2005/02/03 18:41:12  florian
-    * more clx compilation fixed
-
-}

+ 0 - 12330
rtl/win32/commctrl.pp

@@ -1,12330 +0,0 @@
-Unit CommCtrl;
-{
-    $Id$
-    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.
-}
-
-
-Interface
-
-{$Mode ObjFPC}
-Uses Windows,ActiveX;
-
-// --------------------
-
-TYPE CINT = Longint;
-     CUINT= CARDINAL;
-
-     DWORD_PTR   = ^DWORD;
-     PDWORD_PTR  = ^DWORD_PTR;
-     ULONG_PTR   = ^ULONG;
-     INT_PTR     = ^CINT;
-     UINT_PTR    = ^UINT;
-
-
-
-// --------------------
-CONST CommCtrlDLL = 'commctrl.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 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; 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; 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;
-
-
-         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; external commctrldll name 'ImageList_Create';
-function ImageList_Destroy(himl:HIMAGELIST):BOOL; external commctrldll name 'ImageList_Destroy';
-
-function ImageList_GetImageCount(himl:HIMAGELIST):cint; external commctrldll name 'ImageList_GetImageCount';
-{$ifdef ie3plus}
-function ImageList_SetImageCount(himl:HIMAGELIST;uNewCount:UINT):BOOL; external commctrldll name 'ImageList_SetImageCount';
-{$ENDIF}
-
-function ImageList_Add(himl:HIMAGELIST;hbmImage:HBITMAP;hbmMask:HBITMAP):cint; external commctrldll name 'ImageList_Add';
-
-function ImageList_ReplaceIcon(himl:HIMAGELIST;i:cint;hicon:HICON):cint; external commctrldll name 'ImageList_ReplaceIcon';
-function ImageList_SetBkColor(himl:HIMAGELIST;clrBk:COLORREF):COLORREF; external commctrldll name 'ImageList_SetBkColor';
-function ImageList_GetBkColor(himl:HIMAGELIST):COLORREF; external commctrldll name 'ImageList_GetBkColor';
-function ImageList_SetOverlayImage(himl:HIMAGELIST;iImage:cint;iOverlay:cint):BOOL; 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; external commctrldll name 'ImageList_Draw';
-
-
-{$IFDEF _WIN32}
-
-function ImageList_Replace(himl:HIMAGELIST;i:cint;hbmImage:HBITMAP;hbmMask:HBITMAP):BOOL; external commctrldll name 'ImageList_Replace';
-
-function ImageList_AddMasked(himl:HIMAGELIST;hbmImage:HBITMAP;crMask:COLORREF):cint; 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; external commctrldll name 'ImageList_DrawEx';
-{$ifdef ie3plus}
-function ImageList_DrawIndirect(pimldp:PIMAGELISTDRAWPARAMS):BOOL; external commctrldll name 'ImageList_DrawIndirect';
-{$ENDIF}
-function ImageList_Remove(himl:HIMAGELIST;i:cint):BOOL; external commctrldll name 'ImageList_Remove';
-function ImageList_GetIcon(himl:HIMAGELIST;i:cint;flags:UINT):HICON; external commctrldll name 'ImageList_GetIcon';
-function ImageList_LoadImageA(hi:HINSTANCE;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageA';
-function ImageList_LoadImageW(hi:HINSTANCE;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; 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; external commctrldll name 'ImageList_Copy';
-{$ENDIF}
-
-function ImageList_BeginDrag(himlTrack:HIMAGELIST;iTrack:cint;dxHotspot:cint;dyHotspot:cint):BOOL; external commctrldll name 'ImageList_BeginDrag';
-Procedure ImageList_EndDrag; external commctrldll name 'ImageList_EndDrag';
-function ImageList_DragEnter(hwndLock:HWND;x:cint;y:cint):BOOL; external commctrldll name 'ImageList_DragEnter';
-function ImageList_DragLeave(hwndLock:HWND):BOOL; external commctrldll name 'ImageList_DragLeave';
-function ImageList_DragMove(x:cint;y:cint):BOOL; external commctrldll name 'ImageList_DragMove';
-function ImageList_SetDragCursorImage(himlDrag:HIMAGELIST;iDrag:cint;dxHotspot:cint;dyHotspot:cint):BOOL; external commctrldll name 'ImageList_SetDragCursorImage';
-
-function ImageList_DragShowNolock(fShow:BOOL):BOOL; external commctrldll name 'ImageList_DragShowNolock';
-function ImageList_GetDragImage(ppt:PPOINT;pptHotspot:PPOINT):HIMAGELIST; 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:HInstance;lpbmp:LPCTSTR;cx:cint;cGrow:cint;crMask:COLORREF);
-
-{$IFDEF __IStream_INTERFACE_DEFINED__}
-
-function ImageList_Read(pstm:LPSTREAM):HIMAGELIST; external commctrldll name 'ImageList_Read';
-function ImageList_Write(himl:HIMAGELIST;pstm:LPSTREAM):BOOL; 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:LPSTREAM;riid:REFIID;ppv:PPVOID):HRESULT; external commctrldll name 'ImageList_ReadEx';
-function ImageList_WriteEx(himl:HIMAGELIST;dwFlags:DWORD;pstm:LPSTREAM):HRESULT; 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; external commctrldll name 'ImageList_GetIconSize';
-function ImageList_SetIconSize(himl:HIMAGELIST;cx:cint;cy:cint):BOOL; external commctrldll name 'ImageList_SetIconSize';
-function ImageList_GetImageInfo(himl:HIMAGELIST;i:cint;pImageInfo:PIMAGEINFO):BOOL; external commctrldll name 'ImageList_GetImageInfo';
-function ImageList_Merge(himl1:HIMAGELIST;i1:cint;himl2:HIMAGELIST;i2:cint;dx:cint;dy:cint):HIMAGELIST; external commctrldll name 'ImageList_Merge';
-{$ifdef ie4plus}
-function ImageList_Duplicate(himl:HIMAGELIST):HIMAGELIST; external commctrldll name 'ImageList_Duplicate';
-{$ENDIF}
-
-
-{$ENDIF}
-
-
-{$ENDIF}
-
-
-//====== HEADER CONTROL =======================================================
-
-{$IFNDEF NOHEADER}
-
-{$IFDEF _WIN32}
-
-CONST
-         WC_HEADERA                     = 'SysHeader32';
-         WC_HEADERW                     = {L}'SysHeader32';
-
-TYPE
-{$IFDEF UNICODE}
-         WC_HEADER           = WC_HEADERW;
-{$ELSE}
-         WC_HEADER           = WC_HEADERA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         WC_HEADER                      = 'SysHeader';
-{$ENDIF}
-
-// 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;
-
-
-// #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
-                                 pt           : POINT;
-                                 flags        : UINT;
-                                 iItem        : cint;
-                                 END;
-         HDHITTESTINFO        = _HD_HITTESTINFO;
-         HD_HITTESTINFO       = _HD_HITTESTINFO;
-         LPHDHITTESTINFO      = ^_HD_HITTESTINFO;
-         THD_HITTESTINFO      = _HD_HITTESTINFO;
-         PHD_HITTESTINFO      = ^_HD_HITTESTINFO;
-
-
-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 : LPARAM):BOOL;
-
-// 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;
-                                 iItem        : cint;
-                                 iButton      : cint;
-                                 pitem        : PHDITEMA;
-                                 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;
-
-
-         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';
-
-TYPE
-{$IFDEF  UNICODE}
-         TOOLBARCLASSNAME    = TOOLBARCLASSNAMEW;
-{$ELSE}
-         TOOLBARCLASSNAME    = TOOLBARCLASSNAMEA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         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; external commctrldll name 'CreateToolbarEx';
-
-function CreateMappedBitmap(hInstance:HINST;idBitmap:INT_PTR;wFlags:UINT;lpColorMap:LPCOLORMAP;iNumMaps:cint):HBITMAP; 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        : HINSTANCE;
-                                 nID          : UINT_PTR;
-                                 END;
-         TBADDBITMAP          = tagTBADDBITMAP;
-         LPTBADDBITMAP        = ^tagTBADDBITMAP;
-         TTBADDBITMAP         = tagTBADDBITMAP;
-         PTBADDBITMAP         = ^tagTBADDBITMAP;
-
-
-
-CONST
-         HINST_COMMCTRL                 = ((HINSTANCE)-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}
-
-
-// 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);
-
-TYPE
-{$IFDEF UNICODE}
-         TB_GETBUTTONINFO    = TB_GETBUTTONINFOW;
-         TB_SETBUTTONINFO    = TB_SETBUTTONINFOW;
-{$ELSE}
-         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).
-
-TYPE
-{$IFDEF UNICODE}
-         TB_INSERTBUTTON     = TB_INSERTBUTTONW;
-         TB_ADDBUTTONS       = TB_ADDBUTTONSW;
-{$ELSE}
-         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}
-         TBN_GETINFOTIP      = TBN_GETINFOTIPW;
-         NMTBGETINFOTIP      = NMTBGETINFOTIPW;
-         LPNMTBGETINFOTIP    = LPNMTBGETINFOTIPW;
-{$ELSE}
-         TBN_GETINFOTIP      = TBN_GETINFOTIPA;
-         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}
-         TBN_GETDISPINFO     = TBN_GETDISPINFOW;
-         NMTBDISPINFO        = NMTBDISPINFOW;
-         LPNMTBDISPINFO      = LPNMTBDISPINFOW;
-{$ELSE}
-         TBN_GETDISPINFO     = TBN_GETDISPINFOA;
-         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}
-
-TYPE
-         TBN_GETBUTTONINFO   = TBN_GETBUTTONINFOW;
-{$ELSE}
-         TBN_GETBUTTONINFO   = TBN_GETBUTTONINFOA;
-{$ENDIF}
-
-{$ifdef ie3plus}
-         TBNOTIFYA           = NMTOOLBARA;
-         TBNOTIFYW           = NMTOOLBARW;
-         LPTBNOTIFYA         = LPNMTOOLBARA;
-         LPTBNOTIFYW         = LPNMTOOLBARW;
-{$ELSE}
-         tagNMTOOLBARA       = tagTBNOTIFYA;
-         NMTOOLBARA          = TBNOTIFYA;
-         LPNMTOOLBARA        = LPTBNOTIFYA;
-         tagNMTOOLBARW       = tagTBNOTIFYW;
-         NMTOOLBARW          = TBNOTIFYW;
-         LPNMTOOLBARW        = LPTBNOTIFYW;
-{$ENDIF}
-
-
-CONST
-         TBNOTIFY                       = NMTOOLBAR;
-
-TYPE
-         LPTBNOTIFY          = LPNMTOOLBAR;
-
-{$ifdef ie3plus}
-         tagNMTOOLBARA        = Record
-                                 hdr          : NMHDR;
-                                 iItem        : cint;
-                                 tbButton     : TBBUTTON;
-                                 cchText      : cint;
-                                 pszText      : LPSTR;
-{$ifdef ie5plus}
-                                 rcButton     : RECT;
-{$ENDIF}
-                                 END;
-         NMTOOLBARA           = tagNMTOOLBARA;
-         LPNMTOOLBARA         = ^tagNMTOOLBARA;
-         TNMTOOLBARA          = tagNMTOOLBARA;
-         PNMTOOLBARA          = ^tagNMTOOLBARA;
-
-{$ENDIF}
-
-
-{$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 UNICODE}
-         NMTOOLBAR           = NMTOOLBARW;
-         LPNMTOOLBAR         = LPNMTOOLBARW;
-{$ELSE}
-         NMTOOLBAR           = NMTOOLBARA;
-         LPNMTOOLBAR         = LPNMTOOLBARA;
-{$ENDIF}
-
-{$ENDIF}
-
-{$ENDIF}      // NOTOOLBAR
-
-
-{$ifdef ie3plus}
-//====== REBAR CONTROL ========================================================
-
-{$IFNDEF NOREBAR}
-
-{$IFDEF _WIN32}
-
-CONST
-         REBARCLASSNAMEW                = {L}'ReBarWindow32';
-         REBARCLASSNAMEA                = 'ReBarWindow32';
-
-TYPE
-{$IFDEF  UNICODE}
-         REBARCLASSNAME      = REBARCLASSNAMEW;
-{$ELSE}
-         REBARCLASSNAME      = REBARCLASSNAMEA;
-{$ENDIF}
-
-{$ELSE}
-
-CONST
-         REBARCLASSNAME                 = 'ReBarWindow';
-{$ENDIF}
-
-         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;
-
-//         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);
-{$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;
-
-
-{$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;
-{$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); external commctrldll name 'DrawStatusTextA';
-Procedure DrawStatusTextW(hDC:HDC;lprc:LPRECT;pszText:LPCWSTR;uFlags:UINT); external commctrldll name 'DrawStatusTextW';
-
-function CreateStatusWindowA(style:LONG;lpszText:LPCSTR;hwndParent:HWND;wID:UINT):HWND; external commctrldll name 'CreateStatusWindowA';
-function CreateStatusWindowW(style:LONG;lpszText:LPCWSTR;hwndParent:HWND;wID:UINT):HWND; external commctrldll name 'CreateStatusWindowW';
-
-
-{$IFDEF UNICODE}
-function CreateStatusWindow(style:LONG;lpszText:LPCSTR;hwndParent:HWND;wID:UINT):HWND; external commctrldll name 'CreateStatusWindowA';
-procedure DrawStatusText(hDC:HDC;lprc:LPRECT;pszText:LPCSTR;uFlags:UINT); external commctrldll name 'DrawStatusTextA';
-{$ELSE}
-function CreateStatusWindow(style:LONG;lpszText:LPCWSTR;hwndParent:HWND;wID:UINT):HWND; external commctrldll name 'CreateStatusWindowW';
-Procedure DrawStatusText(hDC:HDC;lprc:LPRECT;pszText:LPCWSTR;uFlags:UINT); 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); external commctrldll name 'MenuHelp';
-function ShowHideMenuCtl(hWnd:HWND;uFlags:UINT_PTR;lpInfo:LPINT):BOOL; external commctrldll name 'ShowHideMenuCtl';
-Procedure GetEffectiveClientRect(hWnd:HWND;lprc:LPRECT;lpInfo:LPINT); 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; external commctrldll name 'MakeDragList';
-Procedure DrawInsert(handParent:HWND;hLB:HWND;nItem:cint); external commctrldll name 'DrawInsert';
-function LBItemFromPt(hLB:HWND;pt:POINT;bAutoScroll:BOOL):cint; 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; 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                  = {L}'msctls_hotkey32';
-{$IFDEF UNICODE}
-         HOTKEY_CLASS                   = HOTKEY_CLASSW;
-{$ELSE}
-         HOTKEY_CLASS                   = HOTKEY_CLASSA;
-{$ENDIF}
-{$ELSE}
-         HOTKEY_CLASS                   = 'msctls_hotkey';
-{$ENDIF}
-
-{$ENDIF}  // NOHOTKEY
-
-// 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;
-
-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}
-
-
-         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;prc {!};code {!}):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;
-
-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_SNAPTOGRID                 = $0005;
-         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;
-
-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;
-
-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;
-
-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;
-
-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}
-
-         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}
-
-
-
-
-
-{$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}
-                                 dumunion     : record
-                                                 case boolean of
-                                     false:   (itemex       : TVITEMEXA;);
-                                     True:    (item         : TV_ITEMA;);
-                                                 end;
-{$ELSE}
-                                 item         : TV_ITEMA;
-{$ENDIF}
-                                 END;
-         TVINSERTSTRUCTA      = tagTVINSERTSTRUCTA;
-         LPTVINSERTSTRUCTA    = ^tagTVINSERTSTRUCTA;
-         TTVINSERTSTRUCTA     = tagTVINSERTSTRUCTA;
-         PTVINSERTSTRUCTA     = ^tagTVINSERTSTRUCTA;
-
-
-         tagTVINSERTSTRUCTW   = Record
-                                 hParent      : HTREEITEM;
-                                 hInsertAfter : HTREEITEM;
-{$ifdef ie4plus}
-                                 dumunion     : record
-                                                 case boolean of
-                                     false:   (itemex       : TVITEMEXW);
-                                     True:    (item         : TV_ITEMW);
-                                                 end;
-{$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;
-
-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: TREEITEM; code : WPARAM; prc : pRECT):BOOL;
-
-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}
-
-// Macro 167
-
-// #define TreeView_GetChild(hwnd, hitem)          TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD)
-// Macro 168
-
-// #define TreeView_GetNextSibling(hwnd, hitem)    TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT)
-// Macro 169
-
-// #define TreeView_GetPrevSibling(hwnd, hitem)    TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS)
-// Macro 170
-
-// #define TreeView_GetParent(hwnd, hitem)         TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT)
-// Macro 171
-
-// #define TreeView_GetFirstVisible(hwnd)          TreeView_GetNextItem(hwnd, NULL,  TVGN_FIRSTVISIBLE)
-// Macro 172
-
-// #define TreeView_GetNextVisible(hwnd, hitem)    TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE)
-// Macro 173
-
-// #define TreeView_GetPrevVisible(hwnd, hitem)    TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE)
-// Macro 174
-
-// #define TreeView_GetSelection(hwnd)             TreeView_GetNextItem(hwnd, NULL,  TVGN_CARET)
-// Macro 175
-
-// #define TreeView_GetDropHilight(hwnd)           TreeView_GetNextItem(hwnd, NULL,  TVGN_DROPHILITE)
-// Macro 176
-
-// #define TreeView_GetRoot(hwnd)                  TreeView_GetNextItem(hwnd, NULL,  TVGN_ROOT)
-{$ifdef ie4plus}
-// Macro 177
-
-// #define TreeView_GetLastVisible(hwnd)          TreeView_GetNextItem(hwnd, NULL,  TVGN_LASTVISIBLE)
-{$ENDIF}      // _WIN32_IE >= 0x0400
-
-
-
-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;
-
-
-// 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;
-
-
-
-
-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;
-
-
-         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;
-
-
-
-         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;
-
-
-         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;
-
-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}
-
-
-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;
-
-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 :lparam ; 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 : lparam ; 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 : WParam );
-
-
-{$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
-
-
-Procedure Animate_Create(hwndP :HWND;id:HMENU;dwStyle:dword;hInstance:HINST);
-
-// 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;
-
-
-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;
-
-
-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;
-
-
-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):Bool;
-
-
-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))
-
-// 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))
-
-// 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)
-
-
-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)
-
-{$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}
-         DTN_USERSTRING      = DTN_USERSTRINGW;
-         NMDATETIMESTRING    = NMDATETIMESTRINGW;
-         LPNMDATETIMESTRING  = LPNMDATETIMESTRINGW;
-{$ELSE}
-         DTN_USERSTRING      = DTN_USERSTRINGA;
-         NMDATETIMESTRING    = NMDATETIMESTRINGA;
-         LPNMDATETIMESTRING  = LPNMDATETIMESTRINGA;
-{$ENDIF}
-
-
-
-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}
-         DTN_WMKEYDOWN       = DTN_WMKEYDOWNW;
-         NMDATETIMEWMKEYDOWN = NMDATETIMEWMKEYDOWNW;
-         LPNMDATETIMEWMKEYDOWN= LPNMDATETIMEWMKEYDOWNW;
-{$ELSE}
-         DTN_WMKEYDOWN       = DTN_WMKEYDOWNA;
-         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}
-         DTN_FORMAT          = DTN_FORMATW;
-         NMDATETIMEFORMAT    = NMDATETIMEFORMATW;
-         LPNMDATETIMEFORMAT  = LPNMDATETIMEFORMATW;
-{$ELSE}
-         DTN_FORMAT          = DTN_FORMATA;
-         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}
-         DTN_FORMATQUERY     = DTN_FORMATQUERYW;
-         NMDATETIMEFORMATQUERY= NMDATETIMEFORMATQUERYW;
-         LPNMDATETIMEFORMATQUERY= LPNMDATETIMEFORMATQUERYW;
-{$ELSE}
-         DTN_FORMATQUERY     = DTN_FORMATQUERYA;
-         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;
-         TDummyStruct17       = DummyStruct17;
-         PDummyStruct17       = ^DummyStruct17;
-
-
-{$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;
-         TDummyStruct18       = DummyStruct18;
-         PDummyStruct18       = ^DummyStruct18;
-
-
-
-// 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 + sizeof("://"));
-
-         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); external commctrldll name 'InitMUILanguage';
-
-
-function GetMUILanguage:LANGID; 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; external commctrldll name '_TrackMouseEvent';
-
-{$ENDIF} // !NOTRACKMOUSEEVENT
-
-{$ifdef ie4plus}
-
-//====== Flat Scrollbar APIs=========================================
-{$IFNDEF NOFLATSBAPIS}
-
-
-CONST
-         WSB_PROP_CYVSCROLL             = $00000001L;
-         WSB_PROP_CXHSCROLL             = $00000002L;
-         WSB_PROP_CYHSCROLL             = $00000004L;
-         WSB_PROP_CXVSCROLL             = $00000008L;
-         WSB_PROP_CXHTHUMB              = $00000010L;
-         WSB_PROP_CYVTHUMB              = $00000020L;
-         WSB_PROP_VBKGCOLOR             = $00000040L;
-         WSB_PROP_HBKGCOLOR             = $00000080L;
-         WSB_PROP_VSTYLE                = $00000100L;
-         WSB_PROP_HSTYLE                = $00000200L;
-         WSB_PROP_WINSTYLE              = $00000400L;
-         WSB_PROP_PALETTE               = $00000800L;
-         WSB_PROP_MASK                  = $00000FFFL;
-
-         FSB_FLAT_MODE                  = 2;
-         FSB_ENCARTA_MODE               = 1;
-         FSB_REGULAR_MODE               = 0;
-
-function FlatSB_EnableScrollBar(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_EnableScrollBar';
-function FlatSB_ShowScrollBar(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_ShowScrollBar';
-
-function FlatSB_GetScrollRange(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_GetScrollRange';
-function FlatSB_GetScrollInfo(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_GetScrollInfo';
-
-function FlatSB_GetScrollPos(hwnd:HWND):cint; external commctrldll name 'FlatSB_GetScrollPos';
-
-
-function FlatSB_GetScrollProp(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_GetScrollProp';
-{$IFDEF _WIN64}
-function FlatSB_GetScrollPropPtr(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_GetScrollPropPtr';
-{$ELSE}
-function FlatSB_GetScrollPropPtr(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_GetScrollProp';
-{$ENDIF}
-
-
-function FlatSB_SetScrollPos(:HWND):cint; external commctrldll name 'FlatSB_SetScrollPos';
-
-function FlatSB_SetScrollInfo(:HWND):cint; external commctrldll name 'FlatSB_SetScrollInfo';
-
-
-function FlatSB_SetScrollRange(:HWND):cint; external commctrldll name 'FlatSB_SetScrollRange';
-function FlatSB_SetScrollProp(:HWND):BOOL; external commctrldll name 'FlatSB_SetScrollProp';
-
-CONST
-         FlatSB_SetScrollPropPtr        = FlatSB_SetScrollProp;
-
-function InitializeFlatSB(:HWND):BOOL; external commctrldll name 'InitializeFlatSB';
-function UninitializeFlatSB(:HWND):HRESULT; 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; external commctrldll name 'SetWindowSubclass';
-function GetWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR;pdwRefData:PDWORD_PTR):BOOL; external commctrldll name 'GetWindowSubclass';
-function RemoveWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR):BOOL; external commctrldll name 'RemoveWindowSubclass';
-
-function DefSubclassProc(hWnd:HWND;uMsg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT; 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; 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:longint); stdcall;
-
-Begin
- fnType(fn)(hwnd, wParam, Longint(@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, Longint(@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;lpbmp:LPCTSTR;cx:cint;cGrow:cint;crMask:COLORREF);
-
-Begin
- ImageList_LoadImage(hi, lpbmp, 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, DWord(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), Longint(@phdi)));
-end;
-
-// Macro 18
-//#define Header_DeleteItem(hwndHD, i) \
-//     (BOOL)SNDMSG((hwndHD), HDM_DELETEITEM, (WPARAM)(int)(i), DWord(0))
-
-Function Header_DeleteItem( hwndHD : hwnd; i : cint):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwndHD), HDM_DELETEITEM, (i), DWord(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), Longint(@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), Longint(@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, Longint(@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 : LPARAM):BOOL;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), HDM_SETORDERARRAY, iCount, 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, DWord(0))
-
-Function ListView_GetBkColor( hwnd : hwnd):COLORREF;
-
-Begin
- Result:=COLORREF(SendMessage((hwnd), LVM_GETBKCOLOR, 0, DWord(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, DWord(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, DWord(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, Longint(@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, Longint(@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, Longint(@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), DWord(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, DWord(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, Longint(@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;prc {!};code {!}):BOOL;
-//
-// Begin
-// Result:=BOOL(SendMessage((hwnd), LVM_GETITEMRECT, (i), \)
-// 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;
-
-Begin
- Result:=BOOL(SendMessage((hwndLV), LVM_ENSUREVISIBLE, (i), MAKELPARAM((fPartialOK), 0)))
-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, DWord(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), DWord(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, DWord(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, Longint(@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, Longint(@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, Longint(@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, DWord(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;
-
-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, Longint(@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, DWord(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, DWord(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), Longint(@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), DWord(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,longint(@_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,Longint(@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, DWord(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:=DWORD(SendMessage((hwndLV), LVM_GETITEMSPACING, fSmall, DWord(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;
-Begin
- Result:=BOOL(SendMessage((hwnd), LVM_SETWORKAREAS, nWorkAreas, Longint(@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, Longint(@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, Longint(@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;
-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: TREEITEM; code : WPARAM; prc : pRECT):BOOL;
-Begin
- HTREEITEM(prc)^:=HITEM;
- Result:=Bool(SendMessage((hwnd), TVM_GETITEMRECT, code, longint(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
-
-procedure TreeView_GetChild(hwnd:hwnd; hitem:HTREEITEM);
-
-Begin
- TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD)
-End;
-// Macro 168
-
-// #define TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM);
-// (hwnd, hitem)
-// TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT)
-
-
-
-procedure TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM);
-// (hwnd, hitem)
-// TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT)
-
-Begin
- TreeView_getNextItem(hwnd,hitem,TVGN_NEXT);
-end;
-
-// Macro 169
-Procedure TreeView_GetPrevSibling(hwnd:hwnd; hitem:HTREEITEM);
-
-begin
- TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS);
-end;
-
-// Macro 170
-
-procedure TreeView_GetParent(hwnd:hwnd; hitem:HTREEITEM);
-begin
- TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT)
-end;
-
-// Macro 171
-// #define TreeView_GetFirstVisible(hwnd:hwnd);
-// TreeView_GetNextItem(hwnd, NULL,  TVGN_FIRSTVISIBLE)
-
-Procedure TreeView_GetFirstVisible(hwnd:hwnd);
-begin
-TreeView_GetNextItem(hwnd, NIL,  TVGN_FIRSTVISIBLE)
-end;
-
-// Macro 172
-
-//#define TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM);
-//(hwnd, hitem)    TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE)
-Procedure TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM);
-begin
-  TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE)
-end;
-
-// Macro 173
-//#define TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM);
-// (hwnd, hitem)    TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE)
-
-
-Procedure TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM);
-Begin
-  TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE)
-end;
-
-// Macro 174
-
-Procedure TreeView_GetSelection(hwnd:hwnd);
-begin
- TreeView_GetNextItem(hwnd, NIL,  TVGN_CARET)
-end;
-
-// Macro 175
-
-//#define TreeView_GetDropHilight(hwnd:hwnd);
-//TreeView_GetNextItem(hwnd, NULL,  TVGN_DROPHILITE)
-
-Procedure TreeView_GetDropHilight(hwnd:hwnd);
-
-begin
-  TreeView_GetNextItem(hwnd, NIL,  TVGN_DROPHILITE)
-end;
-
-
-// Macro 176
-
-Procedure TreeView_GetRoot(hwnd:hwnd);
-
-begin
-  TreeView_GetNextItem(hwnd, NIL,  TVGN_ROOT)
-end;
-
-// Macro 177
-//#define TreeView_GetLastVisible(hwnd:hwnd);
-//TreeView_GetNextItem(hwnd, NULL,  TVGN_LASTVISIBLE)
-
-Procedure TreeView_GetLastVisible(hwnd:hwnd);
-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, Longint(@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;
-
-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;
-
-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;
-
-Begin
- Result:=BOOL(SendMessage((hwnd), TVM_ENDEDITLABELNOW, 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, DWord(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, DWord(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, Longint(@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, Longint(@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, Longint(@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), DWord(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, DWord(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), Longint(@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;
-
-Begin
- Result:=cint(SendMessage((hwndTC), TCM_HITTEST, 0, Longint(@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, DWord(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 : cint ; y : cint ):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 : cint);
-
-Begin
-SendMessage((hwnd), TCM_REMOVEIMAGE, i, DWord(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 : cint ; cy : cint );
-
-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, DWord(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, DWord(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, DWord(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 : cint );
-
-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 : cint ):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 :cint );
-
-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 : cint):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;
-
-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;
-
-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):Bool;
-
-begin
-     Result:=BOOL(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))
-
-// 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))
-
-// 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)
-
-// 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)
-
-// 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 - 86
rtl/win32/comobj.pp

@@ -1,86 +0,0 @@
-{
-    $Id$
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2002 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+}
-unit comobj;
-
-  interface
-
-{$ifndef VER1_0}
-    {$i comobjh.inc}
-
-   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;
-{$endif VER1_0}
-
-  implementation
-
-{$ifndef VER1_0}
-    uses
-       windows,activex;
-
-    {$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;
-
-    {$i comobj.inc}
-
-   function CreateComObject(const ClassID : TGUID) : IUnknown;
-     begin
-       {!!!!!!!}
-       runerror(211);
-     end;
-
-
-   function CreateRemoteComObject(const MachineName : WideString;const ClassID : TGUID) : IUnknown;
-     begin
-       {!!!!!!!}
-       runerror(211);
-     end;
-
-
-   function CreateOleObject(const ClassName : string) : IDispatch;
-     begin
-       {!!!!!!!}
-       runerror(211);
-     end;
-
-
-   function GetActiveOleObject(const ClassName : string) : IDispatch;
-     begin
-       {!!!!!!!}
-       runerror(211);
-     end;
-
-
-{$endif VER1_0}
-
-end.
-{
-  $Log$
-  Revision 1.3  2005-02-14 17:13:32  peter
-    * truncate log
-
-}

+ 0 - 41
rtl/win32/ole2.pp

@@ -1,41 +0,0 @@
-{
-    $Id$
-    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.
-
- **********************************************************************}
-unit ole2;
-
-{$Mode ObjFpc}
-
-  interface
-
-    uses
-       windows;
-
-    type
-       IUnknown = class
-         public
-           function QueryInterface(const iid: TIID; var obj): HResult; virtual; {$ifndef VER0_99_10}stdcall;{$endif} abstract;
-           function AddRef: Longint; virtual; {$ifndef VER0_99_10}stdcall;{$endif} abstract;
-           function Release: Longint; virtual; {$ifndef VER0_99_10}stdcall;{$endif} abstract;
-       end;
-
-  implementation
-
-end.
-{
-  $Log$
-  Revision 1.4  2005-02-14 17:13:32  peter
-    * truncate log
-
-}

+ 0 - 952
rtl/win32/shellapi.pp

@@ -1,952 +0,0 @@
-{
-    $Id$
-    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;
-       UINT_PTR = ^UINT;
-       DWORD_PTR= ^DWORD;
-       pHICON   = ^HICON;
-       pBool    = ^BOOL;
-
-
-
-     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.
-{
-  $Log$
-  Revision 1.8  2005-02-14 17:13:32  peter
-    * truncate log
-
-  Revision 1.7  2005/02/03 20:48:56  florian
-    * fixed SHGetFileInfo
-
-}

+ 0 - 115
rtl/win32/shfolder.pp

@@ -1,115 +0,0 @@
-{
-    $Id$
-    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.
-{
-  $Log$
-  Revision 1.4  2005-02-14 17:13:32  peter
-    * truncate log
-
-}

+ 0 - 16
rtl/win32/shlobj.pp

@@ -1,16 +0,0 @@
-{
-  $Id$
-}
-unit shlobj;
-
-  interface
-
-  implementation
-
-end.
-{
-  $Log$
-  Revision 1.2  2005-02-14 17:13:32  peter
-    * truncate log
-
-}

+ 0 - 212
rtl/win32/wininc/objbase.inc

@@ -1,212 +0,0 @@
-{
-    $Id$
-    This file is part of the Free Pascal run time library.
-
-    Contains the corresponding declarations to objbase.h
-    Used objbase.h, file date 2001-09-14 from MingW-C
-    This file is heavily edited after conversion!
-
- **********************************************************************}
-{$ifdef read_interface}
-
-  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 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';
-
-{$endif read_interface}
-
-{
-  $Log$
-  Revision 1.4  2005-02-14 17:13:32  peter
-    * truncate log
-
-}