+#ifndef TVS_FULLROWSELECT
+ #define TVS_FULLROWSELECT 0x1000
+#endif
+
+#ifndef TVM_SETBKCOLOR
+ #define TVM_SETBKCOLOR (TV_FIRST + 29)
+ #define TVM_SETTEXTCOLOR (TV_FIRST + 30)
+#endif
+
+ /*
+ * The following are required for BC++ 5.5 (none at present.)
+ */
+
+ /*
+ * The following are specifically required for Digital Mars C++
+ */
+
+#ifdef __DMC__
+
+typedef struct _OSVERSIONINFOEX {
+ DWORD dwOSVersionInfoSize;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ DWORD dwBuildNumber;
+ DWORD dwPlatformId;
+ TCHAR szCSDVersion[ 128 ];
+ WORD wServicePackMajor;
+ WORD wServicePackMinor;
+ WORD wSuiteMask;
+ BYTE wProductType;
+ BYTE wReserved;
+} OSVERSIONINFOEX;
+
+#ifndef _TrackMouseEvent
+ #define _TrackMouseEvent TrackMouseEvent
+#endif
+
+#ifndef LVM_SETEXTENDEDLISTVIEWSTYLE
+ #define LVM_SETEXTENDEDLISTVIEWSTYLE (0x1000 + 54)
+#endif
+
+#ifndef LVM_GETSUBITEMRECT
+ #define LVM_GETSUBITEMRECT (0x1000 + 56)
+#endif
+
+#ifndef LVCF_IMAGE
+ #define LVCF_IMAGE 0x0010
+#endif
+
+#ifndef Header_GetItemRect
+ #define Header_GetItemRect(w,i,r) \
+ (BOOL)SendMessage((w),HDM_GETITEMRECT,(WPARAM)(i),(LPARAM)(r))
+#endif
+
+#ifndef HDM_GETITEMRECT
+ #define HDM_GETITEMRECT (HDM_FIRST+7)
+#endif
+
+#ifndef ListView_GetHeader
+ #define ListView_GetHeader(w) (HWND)SendMessage((w),LVM_GETHEADER,0,0)
+#endif
+
+#ifndef ListView_GetSubItemRect
+ #define ListView_GetSubItemRect(w, i, s, c, p) (HWND)SendMessage(w,LVM_GETSUBITEMRECT,i, ((p) ? ((((LPRECT)(p))->top = s), (((LPRECT)(p))->left = c), (LPARAM)(p)) : (LPARAM)(LPRECT)NULL))
+#endif
+
+#ifndef LVM_GETHEADER
+ #define LVM_GETHEADER (LVM_FIRST+31)
+#endif
+
+#ifndef LVSICF_NOSCROLL
+ #define LVSICF_NOINVALIDATEALL 0x0001
+ #define LVSICF_NOSCROLL 0x0002
+#endif
+
+#ifndef CP_SYMBOL
+ #define CP_SYMBOL 42
+#endif