clear m_aTypes array in Clear() as well (patch 1165866)
[wxWidgets.git] / include / wx / msw / missing.h
index 631006ba340326b0bec185ba33c2b07852d9820a..75f5b5a13c268228f664e11d75d36b1bcf2c7583 100644 (file)
@@ -1,9 +1,10 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        missing.h
+// Name:        wx/msw/missing.h
 // Purpose:     Declarations for parts of the Win32 SDK that are missing in
-//              the version that comes with some compilers
+//              the versions that come with some compilers
 // Created:     2002/04/23
 // RCS-ID:      $Id$
+// Copyright:   (c) 2002 Mattia Barbon
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
     #define LVCFMT_JUSTIFYMASK 0x0003
 #endif
 
+#ifndef LVSICF_NOSCROLL
+    #define LVSICF_NOINVALIDATEALL  0x0001
+    #define LVSICF_NOSCROLL         0x0002
+#endif
+
 // mingw32/cygwin don't have declarations for comctl32.dll 4.70+ stuff
 #ifndef NM_CACHEHINT
     typedef struct tagNMLVCACHEHINT
@@ -159,8 +165,9 @@ typedef struct tagNMLVDISPINFOW {
 #endif
 #endif
 
-#if defined(__GNUWIN32__) && !defined(HDN_GETDISPINFOW)
+#if ((defined(__WATCOMC__) && __WATCOMC__ >= 1200) || defined(__GNUWIN32__) || defined (__MINGW32__) || defined(__DIGITALMARS__) || defined (__BORLANDC__)) && !defined(HDN_GETDISPINFOW)
 #define HDN_GETDISPINFOW (HDN_FIRST-29)
+#if !wxCHECK_W32API_VERSION(2, 2)
 typedef struct {
         NMHDR hdr;
         int iItem;
@@ -171,7 +178,95 @@ typedef struct {
         LPARAM lParam;
 } NMHDDISPINFOW, *LPNMHDDISPINFOW;
 #endif
+#endif
+
+#ifndef LVM_SETUNICODEFORMAT
+#define LVM_SETUNICODEFORMAT 0x2005
+#endif
+
+// ----------------------------------------------------------------------------
+// Common Control missing
+// ----------------------------------------------------------------------------
+// __DMC__ date time control IDs
+
+#ifdef __DMC__
+#define DATETIMEPICK_CLASSW L"SysDateTimePick32"
+#define DATETIMEPICK_CLASSA "SysDateTimePick32"
+
+#define ICC_DATE_CLASSES 256
+
+#if (_WIN32_IE >= 0x0300)
+typedef struct tagINITCOMMONCONTROLSEX {
+       DWORD dwSize;
+       DWORD dwICC;
+} INITCOMMONCONTROLSEX,*LPINITCOMMONCONTROLSEX;
+
+#define GDTR_MIN 1
+#define GDTR_MAX 2
+
+#define GDT_ERROR -1
+#define GDT_VALID 0
+#define GDT_NONE 1
+
+
+#define DTS_UPDOWN 1
+#define DTS_SHOWNONE 2
+#define DTS_SHORTDATEFORMAT 0
+#define DTS_LONGDATEFORMAT 4
+#define DTS_TIMEFORMAT 9
+#define DTS_APPCANPARSE 16
+#define DTS_RIGHTALIGN 32
+#if ( _WIN32_IE >= 0x500 )
+#define DTS_SHORTDATECENTURYFORMAT     0x000C
+#endif /* _WIN32_IE >= 0x500 */
+#endif
+
+
+
+#define DATETIMEPICK_CLASSW L"SysDateTimePick32"
+#define DATETIMEPICK_CLASSA "SysDateTimePick32"
+
+#ifdef UNICODE
+    #define DATETIMEPICK_CLASS DATETIMEPICK_CLASSW
+#else
+    #define DATETIMEPICK_CLASS DATETIMEPICK_CLASSA
+#endif
 
+#define DTM_GETSYSTEMTIME 0x1001
+#define DTM_SETSYSTEMTIME 0x1002
+#define DTM_GETRANGE 0x1003
+#define DTM_SETRANGE 0x1004
+#define DTN_DATETIMECHANGE ((UINT)-759) 
+
+#define DateTime_GetMonthCal(hwnd) SNDMSG(hwnd, DTM_GETMONTHCAL, 0, 0)
+#define DateTime_GetMonthCalColor(hwnd, icolor) SNDMSG(hwnd, DTM_GETMONTHCAL, (WPARAM)icolor,0)
+#define DateTime_GetMonthCalFont(hwnd) SNDMSG(hwnd,DTM_GETMCFONT,0,0)
+#define DateTime_GetRange(hwnd,lpsystimearray) SNDMSG(hwnd,DTM_GETRANGE,0,(LPARAM)lpsystimearray)
+#define DateTime_GetSystemTime(hwnd,lpsystime) SNDMSG(hwnd,DTM_GETSYSTEMTIME,0,(LPARAM)lpsystime)
+#define DateTime_SetFormat(hwnd,lpszformat) SNDMSG(hwnd,DTM_SETFORMAT,0,(LPARAM)lpszformat)
+#define DateTime_SetMonthCalColor(hwnd,icolor,clr) SNDMSG(hwnd,DTM_SETMCCOLOR,(WPARAM)icolor,(LPARAM)clr)
+#define DateTime_SetMonthCalFont(hwnd,hfont,lparam) SNDMSG(hwnd,DTM_SETMCFONT,(WPARAM)hfont,(LPARAM)lparam)
+#define DateTime_SetRange(hwnd,flags,lpsystimearray) SNDMSG(hwnd,DTM_SETRANGE,(WPARAM)flags,(LPARAM)lpsystimearray)
+#define DateTime_SetSystemTime(hwnd,flag,lpsystime) SNDMSG(hwnd,DTM_SETSYSTEMTIME,(WPARAM)flag,(LPARAM)lpsystime)
+
+
+#endif //__DMC__ date time control IDs
+
+#if defined(__GNUWIN32__) && !wxCHECK_W32API_VERSION( 2, 4 ) || defined (__DMC__)
+typedef struct tagNMDATETIMECHANGE
+{
+    NMHDR       nmhdr;
+    DWORD       dwFlags;
+    SYSTEMTIME  st;
+} NMDATETIMECHANGE;
+#endif // old gcc headers
+
+// ----------------------------------------------------------------------------
+// Toolbar define value missing
+// ----------------------------------------------------------------------------
+#if !defined(CCS_VERT)
+#define CCS_VERT                0x00000080L
+#endif
 
 // ----------------------------------------------------------------------------
 // MS HTML Help
@@ -234,27 +329,355 @@ struct HH_AKLINK
     BOOL      fIndexOnFail;
 };
 
+// ----------------------------------------------------------------------------
+// SHGetFileInfo-related things
+// ----------------------------------------------------------------------------
+
+#ifndef SHGetFileInfo
+    #ifdef UNICODE
+        #define SHGetFileInfo SHGetFileInfoW
+    #else
+        #define SHGetFileInfo SHGetFileInfoA
+    #endif
+#endif
+
+#ifndef SHGFI_ATTRIBUTES
+    #define SHGFI_ATTRIBUTES 2048
+#endif
+
+#ifndef SFGAO_READONLY
+    #define SFGAO_READONLY 0x00040000L
+#endif
+
+#ifndef SFGAO_REMOVABLE
+    #define SFGAO_REMOVABLE 0x02000000L
+#endif
+
+#ifndef SHGFI_DISPLAYNAME
+    #define SHGFI_DISPLAYNAME 512
+#endif
+
+#ifndef SHGFI_ICON
+    #define SHGFI_ICON 256
+#endif
+
+#ifndef SHGFI_SMALLICON
+     #define SHGFI_SMALLICON 1
+#endif
+
+#ifndef SHGFI_SHELLICONSIZE
+    #define SHGFI_SHELLICONSIZE 4
+#endif
+
+#ifndef SHGFI_OPENICON
+    #define SHGFI_OPENICON 2
+#endif
+
+// ----------------------------------------------------------------------------
+// Rich text control
+// ----------------------------------------------------------------------------
+
+#if wxUSE_RICHEDIT && defined(MAX_TAB_STOPS)
+
+// old mingw32 doesn't define this
+#ifndef CFM_CHARSET
+    #define CFM_CHARSET 0x08000000
+#endif // CFM_CHARSET
+
+#ifndef CFM_BACKCOLOR
+    #define CFM_BACKCOLOR 0x04000000
+#endif
+
+// cygwin does not have these defined for richedit
+#ifndef ENM_LINK
+    #define ENM_LINK 0x04000000
+#endif
+
+#ifndef EM_AUTOURLDETECT
+    #define EM_AUTOURLDETECT (WM_USER + 91)
+#endif
+
+#ifndef EN_LINK
+    #define EN_LINK 0x070b
+
+    typedef struct _enlink
+    {
+        NMHDR nmhdr;
+        UINT msg;
+        WPARAM wParam;
+        LPARAM lParam;
+        CHARRANGE chrg;
+    } ENLINK;
+#endif // ENLINK
+
+#ifndef SF_UNICODE
+    #define SF_UNICODE 0x0010
+#endif
+
+// Watcom C++ doesn't define this
+#ifndef SCF_ALL
+    #define SCF_ALL 0x0004
+#endif
+
+#ifndef PFA_JUSTIFY
+#define PFA_JUSTIFY 4
+
+typedef struct _paraformat2 {
+    UINT cbSize;
+    DWORD dwMask;
+    WORD wNumbering;
+    WORD wEffects;
+    LONG dxStartIndent;
+    LONG dxRightIndent;
+    LONG dxOffset;
+    WORD wAlignment;
+    SHORT cTabCount;
+    LONG rgxTabs[MAX_TAB_STOPS];
+    LONG dySpaceBefore;
+    LONG dySpaceAfter;
+    LONG dyLineSpacing;
+    SHORT sStype;
+    BYTE bLineSpacingRule;
+    BYTE bOutlineLevel;
+    WORD wShadingWeight;
+    WORD wShadingStyle;
+    WORD wNumberingStart;
+    WORD wNumberingStyle;
+    WORD wNumberingTab;
+    WORD wBorderSpace;
+    WORD wBorderWidth;
+    WORD wBorders;
+} PARAFORMAT2;
+#define wxEffects wReserved
+
+#endif
+
+#endif // wxUSE_RICHEDIT
+
+// ----------------------------------------------------------------------------
+// ToolBar
+// ----------------------------------------------------------------------------
+
+#if wxUSE_TOOLBAR
+
+#if !defined(TBIF_SIZE)
+
+#define TBIF_SIZE 64
+#define TB_SETBUTTONINFO (WM_USER+66)
+
+typedef struct {
+    UINT cbSize;
+    DWORD dwMask;
+    int idCommand;
+    int iImage;
+    BYTE fsState;
+    BYTE fsStyle;
+    WORD cx;
+    DWORD lParam;
+    LPTSTR pszText;
+    int cchText;
+} TBBUTTONINFO, *LPTBBUTTONINFO;
+
+#endif // !defined(TBIF_SIZE)
+
+#endif // wxUSE_TOOLBAR
+
+// ----------------------------------------------------------------------------
+// Tree control
+// ----------------------------------------------------------------------------
+
+#ifndef TVIS_FOCUSED
+    #define TVIS_FOCUSED            0x0001
+#endif
+
+#ifndef TV_FIRST
+    #define TV_FIRST                0x1100
+#endif
+
+#ifndef TVS_CHECKBOXES
+    #define TVS_CHECKBOXES          0x0100
+#endif
+
+#ifndef TVS_FULLROWSELECT
+    #define TVS_FULLROWSELECT       0x1000
+#endif
+
+#ifndef TVM_SETBKCOLOR
+    #define TVM_SETBKCOLOR          (TV_FIRST + 29)
+    #define TVM_SETTEXTCOLOR        (TV_FIRST + 30)
+#endif
+
+#ifndef TVS_INFOTIP
+    #define TVS_INFOTIP 2048
+#endif
+
+#ifndef TVN_GETINFOTIPA
+    #define TVN_GETINFOTIPA    (TVN_FIRST-13)
+    #define TVN_GETINFOTIPW    (TVN_FIRST-14)
+#endif
+
+#ifndef TVN_GETINFOTIP
+    #ifdef UNICODE
+        #define TVN_GETINFOTIP TVN_GETINFOTIPW
+    #else
+        #define TVN_GETINFOTIP TVN_GETINFOTIPA
+    #endif
+#endif
+
+#if !defined(NMTVGETINFOTIP) && defined(TVN_FIRST)
+    // NB: Check for TVN_FIRST is done so that this code is not included if
+    //     <commctrl.h> (which defined HTREEITEM) wasn't included before.
+    struct NMTVGETINFOTIPA
+    {
+        NMHDR     hdr;
+        LPSTR     pszText;
+        int       cchTextMax;
+        HTREEITEM hItem;
+        LPARAM    lParam;
+    };
+    struct NMTVGETINFOTIPW
+    {
+        NMHDR     hdr;
+        LPWSTR     pszText;
+        int       cchTextMax;
+        HTREEITEM hItem;
+        LPARAM    lParam;
+    };
+    #ifdef UNICODE
+        #define NMTVGETINFOTIP NMTVGETINFOTIPW
+    #else
+        #define NMTVGETINFOTIP NMTVGETINFOTIPA
+    #endif
+#endif
 
 // ----------------------------------------------------------------------------
 // Misc stuff
 // ----------------------------------------------------------------------------
 
+#ifndef CCM_SETUNICODEFORMAT
+    #define CCM_SETUNICODEFORMAT 8197
+#endif
+
 #ifndef QS_ALLPOSTMESSAGE
     #define QS_ALLPOSTMESSAGE    0x0100
 #endif
 
-#ifdef __WXWINE__
-#define LV_ITEMA LVITEMA
-#define LV_ITEMW LVITEMW
-#define LV_DISPINFOA NMLVDISPINFOA
-#define LV_DISPINFOW NMLVDISPINFOW
+#ifndef WS_EX_CLIENTEDGE
+    #define WS_EX_CLIENTEDGE 0x00000200L
+#endif
 
-#if wxUSE_UNICODE
-#define LV_FINDINFO LVFINDINFOW
-#else
-#define LV_FINDINFO LVFINDINFOA
+#ifndef ENDSESSION_LOGOFF
+    #define ENDSESSION_LOGOFF    0x80000000
+#endif
+
+#ifndef HANGUL_CHARSET
+    #define HANGUL_CHARSET  129
+#endif
+
+#ifndef TME_HOVER
+    #define TME_HOVER     1
+#endif
+
+#ifndef TME_LEAVE
+    #define TME_LEAVE     2
+#endif
+
+#ifndef TME_QUERY
+    #define TME_QUERY     0x40000000
+#endif
+
+#ifndef TME_CANCEL
+    #define TME_CANCEL    0x80000000
+#endif
+
+#ifndef HOVER_DEFAULT
+    #define HOVER_DEFAULT 0xFFFFFFFF
+#endif
+
+#ifdef __DMC__
+
+    #ifndef _TrackMouseEvent
+        #define _TrackMouseEvent TrackMouseEvent
+    #endif
+
+#endif
+
+// This didn't appear in mingw until 2.95.2
+#ifndef SIF_TRACKPOS
+#define SIF_TRACKPOS 16
+#endif
+
+#if wxUSE_MOUSEWHEEL
+    #ifndef WM_MOUSEWHEEL
+        #define WM_MOUSEWHEEL           0x020A
+    #endif
+    #ifndef WHEEL_DELTA
+        #define WHEEL_DELTA             120
+    #endif
+    #ifndef SPI_GETWHEELSCROLLLINES
+        #define SPI_GETWHEELSCROLLLINES 104
+    #endif
+#endif // wxUSE_MOUSEWHEEL
+
+#ifndef VK_OEM_1
+    #define VK_OEM_1        0xBA
+    #define VK_OEM_2        0xBF
+    #define VK_OEM_3        0xC0
+    #define VK_OEM_4        0xDB
+    #define VK_OEM_5        0xDC
+    #define VK_OEM_6        0xDD
+    #define VK_OEM_7        0xDE
+#endif
+
+#ifndef VK_OEM_COMMA
+    #define VK_OEM_PLUS     0xBB
+    #define VK_OEM_COMMA    0xBC
+    #define VK_OEM_MINUS    0xBD
+    #define VK_OEM_PERIOD   0xBE
+#endif
+
+#ifndef WM_UPDATEUISTATE
+    #define WM_UPDATEUISTATE    0x128
+#endif
+
+#ifndef UIS_INITIALIZE
+    #define UIS_INITIALIZE  3
+#endif
+
+#ifndef UISF_HIDEFOCUS
+    #define UISF_HIDEFOCUS  1
+#endif
+
+#ifndef UISF_HIDEACCEL
+    #define UISF_HIDEACCEL 2
+#endif
+
+#ifndef WC_NO_BEST_FIT_CHARS
+    #define WC_NO_BEST_FIT_CHARS 0x400
+#endif
+
+#ifndef OFN_EXPLORER
+    #define OFN_EXPLORER 0x00080000
+#endif
+
+#ifndef OFN_ENABLESIZING
+    #define OFN_ENABLESIZING 0x00800000
+#endif
+
+// ------------------ For Flashing Window -------------
+#if (defined(__BORLANDC__) && (__BORLANDC__ < 550))
+typedef struct {
+    UINT  cbSize;
+    HWND  hwnd;
+    DWORD dwFlags;
+    UINT  uCount;
+    DWORD dwTimeout;
+} FLASHWINFO, *PFLASHWINFO;
 #endif
 
+// In addition, include stuff not defined in WinCE
+#ifdef __WXWINCE__
+    #include "wx/msw/wince/missing.h"
 #endif
 
 #endif